.login-page{--login-ink: #17212b;--login-muted: #6f7a86;--login-teal: #087f79;--login-teal-dark: #06706b;--login-teal-soft: #e7f5f1;--login-amber: #d98614;--login-line: #ded7cc;--login-card-border: #d8d0c5;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:44px 18px;color:var(--login-ink);background:radial-gradient(circle at 50% 0%,#ffffffe6,#f7f3ec5c 42%,#f4efe7d1),linear-gradient(rgba(23,33,43,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,33,43,.035) 1px,transparent 1px),#f8f4ed;background-size:auto,24px 24px,24px 24px,auto}.login-card{width:min(100%,486px);padding:35px 38px 30px;border:1px solid var(--login-card-border);border-radius:18px;background:#fffffff0;box-shadow:0 18px 55px #2d261b1a,0 1px #fffc inset;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-brand{text-align:center;margin-bottom:26px}.login-brand-mark{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--login-teal);line-height:1}.login-brand-shield{width:58px;height:58px;fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.login-brand h1{margin:0;color:var(--login-ink);font-size:30px;font-weight:800;letter-spacing:.07em;line-height:1.22}.login-brand p{margin:10px 0 0;color:#667383;font-size:15px;line-height:1.7}.hardware-login-panel{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:88px;padding:15px 18px;margin-bottom:26px;border:1px solid rgba(8,127,121,.25);border-radius:10px;background:linear-gradient(135deg,#e7f5f1eb,#fffffff5 58%),#fff}.hardware-login-panel.is-warning{border-color:#d9861452;background:linear-gradient(135deg,#fff8ebf5,#fffffffa)}.hardware-login-panel.is-muted{border-color:#6673833d;background:linear-gradient(135deg,#f6f7f8f5,#fffffffa)}.hardware-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(8,127,121,.16);border-radius:50%;color:var(--login-teal);background:#087f791a;font-size:24px}.hardware-content{min-width:0}.hardware-heading{display:flex;align-items:center;color:var(--login-ink);font-size:18px;font-weight:800;line-height:1.35;white-space:nowrap}.hardware-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;align-self:stretch;justify-content:center}.hardware-status-pill{flex:none;padding:1px 11px;border-radius:999px;border:1px solid rgba(217,134,20,.48);color:var(--login-amber);background:#fff9efeb;font-size:12px;font-weight:700}.hardware-status-pill.is-success{border-color:#087f793d;color:var(--login-teal);background:#e7f5f1eb}.hardware-status-pill.is-muted{border-color:#66738333;color:#6c7782;background:#f5f6f7f0}.hardware-message{display:flex;align-items:center;gap:7px;margin-top:7px;color:#667383;font-size:14px;line-height:1.5}.hardware-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--login-amber);box-shadow:0 0 0 3px #d986141f}.hardware-serial{display:block;margin-top:5px;font-size:12px;word-break:break-all}.hardware-retry{height:auto;padding:0;color:var(--login-teal);font-size:14px;font-weight:700;white-space:nowrap}.hardware-retry:hover{color:var(--login-teal-dark)!important}.login-divider{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;margin-bottom:20px;color:#72808d;font-size:15px;font-weight:600}.login-divider:before,.login-divider:after{content:"";height:1px;background:linear-gradient(90deg,transparent,var(--login-line))}.login-divider:after{background:linear-gradient(90deg,var(--login-line),transparent)}.login-error{margin-bottom:18px;border-radius:10px}.login-form .ant-form-item{margin-bottom:18px}.login-form .ant-form-item-label{padding-bottom:7px}.login-form .ant-form-item-label>label{color:var(--login-ink);font-size:15px;font-weight:800}.login-form .ant-input-affix-wrapper{height:50px;border-color:#17212b29;border-radius:8px;background:#fffffff5;box-shadow:none}.login-form .ant-input-affix-wrapper:hover,.login-form .ant-input-affix-wrapper-focused{border-color:#087f79a6;box-shadow:0 0 0 3px #087f7917}.login-form .ant-input-prefix{margin-right:12px;color:#8a949f;font-size:18px}.login-form input::placeholder{color:#9aa3ac}.login-submit-item{margin-top:4px;margin-bottom:0!important}.login-submit{height:50px;border:none;border-radius:8px;background:linear-gradient(135deg,#0b948b,#06706b)!important;box-shadow:0 10px 22px #087f7938;font-size:18px;font-weight:800;letter-spacing:.08em}.login-submit-text{letter-spacing:.08em}.login-submit:hover,.login-submit:focus{background:linear-gradient(135deg,#0a8d85,#055e5b)!important;box-shadow:0 13px 26px #087f7945}.login-footnote{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:19px;color:#717d89;font-size:14px}@media (max-width: 560px){.login-page{align-items:flex-start;padding:24px 14px}.login-card{padding:28px 20px 24px;border-radius:16px}.login-brand h1{font-size:26px}.hardware-login-panel{grid-template-columns:44px minmax(0,1fr);padding:14px}.hardware-icon{width:42px;height:42px;font-size:21px}.hardware-heading{font-size:16px}.hardware-actions{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px}.hardware-retry{justify-self:start}}.app-logo{height:64px;display:flex;align-items:center;justify-content:flex-start;padding:0 24px;font-size:20px;font-weight:800;color:#fff;letter-spacing:-.02em}.ant-layout-sider{background:linear-gradient(180deg,#061d31,#041524)!important}.ant-layout,.ant-layout-has-sider,.ant-layout-has-sider>.ant-layout{min-width:0}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{background:transparent!important}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-submenu-title{width:calc(100% - 8px);margin-inline:4px;border-radius:8px}.ant-menu-dark .ant-menu-item-selected{background:linear-gradient(135deg,#008b83,#00717a)!important;box-shadow:0 14px 28px #00717a4d}.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .ant-menu-title-content{color:#fff}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;box-shadow:0 1px 4px #00152914;min-width:0}.header-left{font-size:16px;font-weight:500;white-space:nowrap}.header-right{display:flex;align-items:center;min-width:0}.header-datetime{display:flex;align-items:center;margin-right:16px;color:#666;font-size:14px}.datetime-text{white-space:nowrap}.header-user{margin-right:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-divider{width:1px;height:16px;background-color:#e0e0e0;margin-right:16px}.header-logout{border:none;background:transparent;cursor:pointer;display:flex;align-items:center;color:#ff4d4f}.header-logout:hover{opacity:.8}.app-content{margin:16px;padding:16px;background:#fff;min-height:calc(100vh - 96px);min-width:0;overflow-x:hidden}@media (max-width: 760px){.app-header{gap:10px;padding:0 12px}.header-left{display:none}.header-right{flex:1;justify-content:flex-end;gap:8px}.header-datetime,.header-user{margin-right:0}.datetime-text{display:inline-block;max-width:118px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.header-user{max-width:82px}.header-divider,.header-logout span{display:none}.app-content{margin:12px;padding:12px}}:root{--primary-color: #1890ff;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #eb5757;--bg-color: #f5f5f5}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";background-color:var(--bg-color)}.full-center{min-height:100vh;display:flex;align-items:center;justify-content:center}
