:root{--ink:#172722;--muted:#71817c;--line:#e5ebe8;--paper:#f7f9f8;--panel:#fff;--green:#0b6d54;--teal:#007f78;--lime:#d8f385;--amber:#efb554;--red:#c64b4b;--nav:#102b25}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,'Noto Sans SC',sans-serif;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:244px;background:var(--nav);color:#d9e7e1;padding:28px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;font-size:15px;font-weight:700;line-height:1.15;padding:0 8px 35px}.brand small{font-size:10px;color:#86a59b;letter-spacing:.06em;font-weight:500}.brand-mark{width:31px;height:31px;border-radius:9px;background:var(--lime);color:#16342d;display:grid;place-items:center;font-size:20px}.nav-label{font-size:10px;color:#7da095;letter-spacing:.12em;margin:0 10px 10px}.nav-label.second{margin-top:31px}.nav-item{display:flex;align-items:center;gap:12px;color:#b6cdc5;text-decoration:none;padding:11px 12px;border-radius:8px;margin:2px 0;font-weight:600}.nav-item span{font-size:18px;width:19px;text-align:center;font-weight:400}.nav-item.active,.nav-item:hover{background:#22433a;color:#fff}.sidebar-footer{margin-top:auto;padding:16px 12px;font-size:12px;color:#b9cbc5;line-height:1.8;border-top:1px solid #315249}.sidebar-footer small{color:#789a90}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#79d397;margin-right:6px}.content{margin-left:244px;width:calc(100% - 244px);padding:35px 48px 60px;max-width:1600px}.topbar{display:flex;justify-content:space-between;align-items:start;margin-bottom:27px}.eyebrow{font:500 10px 'DM Mono',monospace;letter-spacing:.11em;color:#83928d;margin:0 0 7px}.eyebrow.accent{color:var(--green)}h1{font-size:25px;margin:0;letter-spacing:-.04em}h2{font-size:25px;letter-spacing:-.04em;margin:0}h3{margin:0;font-size:16px;letter-spacing:-.02em}.top-actions{display:flex;gap:12px;align-items:center}.icon-button,.user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.icon-button{background:#fff;color:var(--ink);text-decoration:none;border:1px solid var(--line);font-size:20px}.user-avatar{background:#d4e8df;color:var(--green);font-weight:800}.hero-card{background:linear-gradient(106deg,#d8f385 0%,#c8eb91 61%,#a5d8ac 100%);border-radius:16px;padding:32px 35px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;min-height:160px;overflow:hidden}.hero-card h2{font-size:25px}.hero-card p:not(.eyebrow){color:#365149;max-width:590px;margin:9px 0 0;line-height:1.7}.hero-actions{display:flex;gap:10px;flex-shrink:0}.button{display:inline-flex;justify-content:center;align-items:center;min-height:38px;border-radius:7px;border:0;padding:0 15px;text-decoration:none;font:700 13px Manrope,'Noto Sans SC';cursor:pointer}.button.primary{background:var(--green);color:#fff}.button.dark{background:var(--ink);color:#fff}.button.light{border:1px solid #c4d3cd;background:#fff;color:var(--ink)}.button.small{min-height:32px;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;position:relative;overflow:hidden}.metric:after{content:'';position:absolute;right:-13px;top:-15px;width:67px;height:67px;border-radius:50%;background:#ebf5ef}.metric.teal:after{background:#e0f2ed}.metric.amber:after{background:#fff3dc}.metric.dark{background:#19362e;color:#fff;border-color:#19362e}.metric.dark:after{background:#315b4d}.metric p{margin:0;color:var(--muted);font-size:12px}.metric.dark p,.metric.dark span{color:#b7d2c7}.metric strong{display:block;font-size:29px;letter-spacing:-.05em;margin:7px 0 2px}.metric span{font-size:11px;color:#8b9994}.split-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:20px}.lower{margin-top:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}.panel-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:18px}.panel-head>a,.text-link{color:var(--green);font-size:12px;font-weight:700;text-decoration:none}.inventory-bars>div{display:grid;grid-template-columns:65px 30px 1fr;gap:10px;align-items:center;margin:15px 0;font-size:12px}.inventory-bars b{font-family:'DM Mono';font-size:13px}.inventory-bars i{height:7px;background:#dcefe7;border-radius:999px;position:relative;overflow:hidden}.inventory-bars i:after{content:'';position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(90deg,var(--green),#51a58d);border-radius:inherit}.trace-panel{background:#fdfefc}.trace-row{display:flex;align-items:center;margin:25px 0 22px}.trace-node{font-size:11px;font-weight:700;background:#e9f3ed;border-radius:6px;padding:8px 7px;white-space:nowrap}.trace-node.host{background:var(--green);color:#fff}.trace-line{height:1px;flex:1;background:#a8bfb5;min-width:7px}.muted{font-size:12px;color:var(--muted);line-height:1.65}.compact-list{margin:0 -5px}.compact-row{display:flex;align-items:center;gap:10px;padding:9px 5px;color:var(--ink);text-decoration:none;border-bottom:1px solid #eef2ef}.compact-row:last-child{border:0}.compact-row>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1}.compact-row b{font-size:12px}.compact-row small{font-size:11px;color:var(--muted)}.compact-row time{font:10px 'DM Mono';color:#8f9d98}.avatar-square,.status-icon{width:29px;height:29px;border-radius:7px;display:grid;place-items:center;background:#e6f2ed;color:var(--green);font-weight:800}.status-icon{border-radius:50%;background:#e9f1ee}.status-icon.warning{background:#fff1d8;color:#b87912}.empty-state{color:#84918c;font-size:13px;text-align:center;padding:28px 12px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.page-head p{margin:0;color:var(--muted)}.filter-bar{display:flex;gap:10px;margin-bottom:18px}.filter-bar input{width:370px}.filter-bar select{width:140px}input,select,textarea{border:1px solid #d8e1dc;border-radius:7px;padding:9px 11px;background:#fff;font:13px Manrope,'Noto Sans SC';color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#4f9c84;box-shadow:0 0 0 3px #dbeee7}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:22px 22px 0}table{width:100%;border-collapse:collapse;text-align:left}th{font:500 10px 'DM Mono';letter-spacing:.07em;color:#81908b;background:#f7f9f8;padding:12px 20px;text-transform:uppercase}td{padding:13px 20px;border-top:1px solid #edf1ef;font-size:12px;vertical-align:middle}td small,.device-link small{display:block;color:#82918c;font-size:10px;margin-top:2px}.device-name{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none}.device-name span:last-child{display:flex;flex-direction:column}.type-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#e9f3ed;color:var(--green);font-size:11px;font-weight:800}.type-icon.sensor{background:#e5f4f4;color:#007a72}.type-icon.battery{background:#fff2dc;color:#ba7b19}.type-icon.antenna{background:#eeeafb;color:#6655a9}.type-icon.big{width:46px;height:46px;font-size:17px}code{font:11px 'DM Mono';color:#50615b;background:#f1f5f3;padding:4px 6px;border-radius:4px}.pill{display:inline-block;border-radius:99px;padding:4px 8px;background:#ebf3ef;color:#287154;font-size:10px;font-weight:700}.pill.stock{background:#edf1ef;color:#66746e}.pill.maintenance,.pill.pending{background:#fff1dc;color:#a26709}.pill.scrapped{background:#f7e6e6;color:#a64949}.pill.resolved{background:#e5f5ec;color:#248054}.pill.monitoring{background:#e8f1f6;color:#39708d}.table-action{color:var(--green);font:700 11px Manrope;border:0;background:none;cursor:pointer;text-decoration:none}.table-action.danger{color:#ad5555}.detail-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-id{display:flex;gap:13px;align-items:center}.detail-id h2{font-size:23px}.detail-id h2 .pill{vertical-align:middle;margin-left:7px}.detail-id p:last-child{margin:7px 0 0;font-size:12px;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 280px;gap:20px;margin-bottom:20px}.info-panel h3{margin-bottom:17px}.info-panel dl{display:grid;grid-template-columns:repeat(2,1fr);margin:0;gap:0 28px}.info-panel dl>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eef2ef}.info-panel dt{font-size:12px;color:var(--muted)}.info-panel dd{margin:0;font-size:12px;font-weight:600}.note{margin-top:18px;padding:11px;background:#f6f8f7;color:#63716c;border-radius:7px;font-size:12px;line-height:1.6}.note b{display:block;color:var(--ink);margin-bottom:3px}.qr-panel{text-align:center;display:flex;align-items:center;flex-direction:column}.qr-panel h3{margin:10px 0 3px}.qr-panel p{font-size:11px;color:var(--muted);line-height:1.55;margin:0 0 10px}.fake-qr{width:105px;height:105px;padding:9px;background:repeating-linear-gradient(90deg,#15352b 0 4px,transparent 4px 8px),repeating-linear-gradient(#15352b 0 4px,#fff 4px 8px);opacity:.82;position:relative}.fake-qr span{width:25px;height:25px;background:#fff;border:6px solid #14342a;position:absolute}.fake-qr span:nth-child(1){top:5px;left:5px}.fake-qr span:nth-child(2){top:5px;right:5px}.fake-qr span:nth-child(3){bottom:5px;left:5px}.fake-qr span:nth-child(4){display:none}.fake-qr i{position:absolute;background:#14342a;width:7px;height:7px;bottom:18px;right:17px}.assembly-panel{margin-bottom:20px}.assembly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.assembly-item{border:1px solid #e6ece8;border-radius:8px;padding:12px;display:flex;gap:9px;align-items:center}.assembly-item>div{display:flex;flex-direction:column;gap:2px}.assembly-item small,.assembly-item em{font-size:10px;color:var(--muted);font-style:normal}.assembly-item a{color:var(--ink);font-size:12px;font-weight:700;text-decoration:none}.linked-host{display:flex;gap:11px;align-items:center;border:1px solid #e4ebe7;padding:13px;border-radius:8px;text-decoration:none;color:var(--green);font-weight:700}.linked-host span:nth-child(2){display:flex;flex:1;flex-direction:column;color:var(--ink)}.linked-host small{font-size:11px;color:var(--muted);margin-top:2px}.count{font:500 12px 'DM Mono';color:var(--muted)}.rule-card{border:1px solid #c8e4d7;background:#eef9f3;padding:14px 17px;border-radius:9px;margin-bottom:20px;display:flex;gap:11px;align-items:start}.rule-card>span{color:#168358;font-weight:800}.rule-card b{font-size:12px}.rule-card p{margin:3px 0 0;font-size:12px;color:#527166}.device-link{color:var(--ink);text-decoration:none}.form-page{max-width:760px}.form-intro{margin-bottom:18px}.form-intro p:last-child{color:var(--muted);margin:7px 0 0}.form-card{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:1/-1}.field label{font-size:12px;font-weight:700}.field label i{color:var(--red);font-style:normal;margin-left:3px}.field small{color:var(--muted);font-size:10px}.field .error{color:#b24747}.form-control{width:100%}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:17px;margin-top:3px}.messages{margin:-10px 0 18px}.message{padding:11px 14px;border-radius:7px;font-size:12px;background:#e6f5ec;color:#25724f}.message.error{background:#fae9e9;color:#a44949}.scan-page{display:grid;place-items:center;padding:45px 0}.scan-card{width:min(100%,570px);background:#fff;border:1px solid var(--line);border-radius:16px;padding:41px;text-align:center;box-shadow:0 12px 35px #14352a0b}.scan-card h2{font-size:24px}.scan-card>p:not(.eyebrow){line-height:1.7;color:var(--muted);margin:10px auto 21px;max-width:420px}.scan-form{display:flex;gap:9px;margin-bottom:12px}.scan-form input{flex:1}.scan-card>small{font-size:10px;color:#8b9893}.scan-icon{width:60px;height:60px;border-radius:17px;background:#e0f1e8;margin:0 auto 18px;position:relative}.scan-icon:before{content:'';position:absolute;inset:16px;border:2px solid var(--green);border-radius:4px}.scan-icon span{position:absolute;width:12px;height:12px;border-color:var(--green);border-style:solid}.scan-icon span:nth-child(1){left:10px;top:10px;border-width:2px 0 0 2px}.scan-icon span:nth-child(2){right:10px;top:10px;border-width:2px 2px 0 0}.scan-icon span:nth-child(3){left:10px;bottom:10px;border-width:0 0 2px 2px}.scan-icon span:nth-child(4){right:10px;bottom:10px;border-width:0 2px 2px 0}@media(max-width:850px){.sidebar{width:64px;padding:24px 8px}.brand{padding:0 4px 35px}.brand>span:last-child,.nav-label,.nav-item:not(.active){font-size:0}.nav-item{justify-content:center;padding:11px}.nav-item span{font-size:19px}.sidebar-footer{display:none}.content{margin-left:64px;width:calc(100% - 64px);padding:28px 24px}.metric-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.assembly-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.content{padding:22px 15px}.hero-card,.page-head,.detail-heading{align-items:flex-start;flex-direction:column;gap:15px}.hero-actions{width:100%}.hero-actions .button{flex:1}.metric-grid,.split-grid{grid-template-columns:1fr}.filter-bar,.scan-form{flex-direction:column}.filter-bar input,.filter-bar select{width:100%}.table-panel{overflow-x:auto}.table-panel table{min-width:650px}.form-card{grid-template-columns:1fr}.info-panel dl{grid-template-columns:1fr}.assembly-grid{grid-template-columns:1fr}}
.logout-form{display:inline}.logout-form button{font:inherit;color:#abc6bb;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}.logout-form button:hover{color:#fff}.role-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:20px}.role-guide article{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px}.role-guide p{margin:3px 0 0;font-size:11px;line-height:1.45;color:var(--muted)}.role-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#e1f2eb;color:#197757;font-size:12px;font-weight:800}.role-icon.admin{background:#e6e2f9;color:#5c48a3}.role-icon.ops{background:#e0f2f2;color:#08756f}.role-icon.field{background:#fff0d8;color:#aa6d0b}.account-name{display:flex;align-items:center;gap:8px}.account-name span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#dceee5;color:var(--green);font-weight:800;font-size:11px}.role-badge{display:inline-block;padding:4px 8px;border-radius:99px;background:#e7f4ef;color:#297657;font-size:10px;font-weight:700}.role-badge.admin{background:#e9e5f9;color:#5b47a2}.role-badge.muted-role{background:#eef1ef;color:#76837e}.checkbox-input{width:17px;height:17px;accent-color:var(--green);align-self:flex-start}.login-body{min-height:100vh;background:#f7faf8}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-brand{background:linear-gradient(147deg,#d8f385 0%,#bde598 48%,#82c2a5 100%);padding:37px 10%;display:flex;flex-direction:column;justify-content:space-between}.login-brand .brand{padding:0;color:var(--ink)}.login-brand .brand small{color:#59786c}.login-brand h1{font-size:42px;line-height:1.17;letter-spacing:-.055em;max-width:480px}.login-brand>div>p:not(.eyebrow){max-width:450px;line-height:1.7;color:#3e5d52;margin:18px 0 0}.login-flow{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;color:#31594c}.login-flow span{background:#ffffff70;border:1px solid #ffffff9c;padding:8px 10px;border-radius:7px}.login-flow i{height:1px;width:24px;background:#4c7a6a}.login-form-area{display:grid;place-items:center;padding:28px}.login-card{width:min(100%,390px)}.login-card h2{font-size:27px}.login-subtitle{color:var(--muted);margin:8px 0 26px;font-size:13px}.login-card .field{margin-bottom:16px}.login-submit{width:100%;margin-top:9px;height:43px}.login-help{display:block;text-align:center;margin-top:15px;color:#8a9893;font-size:10px}.login-error{background:#fae9e9;color:#a44c4c;border-radius:6px;padding:9px 11px;margin:0 0 15px;font-size:12px}@media(max-width:850px){.login-layout{grid-template-columns:1fr}.login-brand{min-height:290px;padding:28px 9%}.login-brand h1{font-size:32px}.login-flow{display:none}.login-form-area{padding:42px 25px}}@media(max-width:620px){.role-guide{grid-template-columns:1fr}.login-brand{min-height:250px}.login-brand h1{font-size:28px}}
.action-group{display:flex;gap:9px}.qr-image{width:135px;height:135px;margin:-5px 0 8px}.qr-download{margin-top:10px}.binding-workbench{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px;max-width:960px}.binding-host-card{background:linear-gradient(150deg,#d8f385,#a8dca6);border-radius:13px;padding:26px;min-height:270px}.binding-host-card>div{display:flex;gap:12px;align-items:center;margin:24px 0}.binding-host-card h2{font-size:25px}.binding-host-card p:not(.eyebrow){font-size:12px;color:#46675b;margin:5px 0}.scan-component-card>p:not(.eyebrow){font-size:12px;line-height:1.6;color:var(--muted)}.stacked-form{display:block}.stacked-form .field{margin-bottom:12px;text-align:left}.stacked-form .button{width:100%}.scan-bound-list{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.scan-bound-list .panel-head{margin-bottom:9px}.scan-bound-list .panel-head span{font-size:11px;color:var(--muted)}.scan-bound-row{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eef2ef;font-size:12px}.scan-bound-row small{font-size:10px;color:var(--muted)}.finish-button{margin-top:16px;width:100%}@media(max-width:850px){.binding-workbench{grid-template-columns:1fr}}@media(max-width:620px){.action-group{width:100%}.action-group .button{flex:1}.qr-image{width:120px;height:120px}}
.label-page{min-height:100vh;padding:40px;background:#eef2ef;font-family:Arial,'Noto Sans SC',sans-serif}.label-toolbar{width:720px;margin:0 auto 15px;display:flex;justify-content:space-between}.label-toolbar a,.label-toolbar button{font-size:13px;color:var(--green);border:0;background:none;text-decoration:none;cursor:pointer}.label-toolbar button{background:var(--green);color:#fff;border-radius:5px;padding:8px 14px}.device-label{width:720px;min-height:310px;margin:auto;background:#fff;border:1px solid #bac4bf;border-radius:10px;box-shadow:0 10px 25px #18342a17;overflow:hidden}.device-label header{height:65px;padding:12px 22px;display:flex;align-items:center;gap:11px;border-bottom:2px solid #0b6d54}.label-logo{width:36px;height:36px;display:grid;place-items:center;background:#0b6d54;color:#d8f385;font-size:14px;font-weight:800;border-radius:6px}.device-label header strong{display:block;font-size:16px;letter-spacing:.02em}.device-label header small{display:block;font-size:7px;color:#73817b;letter-spacing:.04em;margin-top:2px}.device-label header>span{margin-left:auto;font-size:11px;color:#0b6d54;border:1px solid #b8d9cc;background:#edf7f2;padding:4px 8px;border-radius:99px}.label-content{display:grid;grid-template-columns:185px 1fr;gap:20px;padding:22px 26px 13px}.label-content img{width:145px;height:145px;padding:5px;border:1px solid #d8e1dc}.label-content h1{font-size:18px;margin:1px 0 11px;letter-spacing:.01em}.label-content p{display:grid;grid-template-columns:95px 1fr;margin:5px 0;font-size:12px;line-height:1.4}.label-content p b{color:#63726c;font-weight:500}.label-content code{width:max-content;font-size:13px;color:#0b6d54;background:#e6f2ed}.device-label footer{border-top:1px solid #dce4df;color:#74827d;padding:8px 26px;font-size:10px;text-align:right}@media print{.label-page{background:#fff;padding:0}.label-toolbar{display:none}.device-label{box-shadow:none;margin:0;border-color:#999;width:720px;break-inside:avoid}}@media(max-width:760px){.label-page{padding:15px}.label-toolbar,.device-label{width:100%}.device-label{min-height:auto}.label-content{grid-template-columns:125px 1fr;padding:17px}.label-content img{width:112px;height:112px}.label-content p{grid-template-columns:80px 1fr;font-size:10px}.device-label header{padding:10px}.device-label header strong{font-size:12px}.device-label header small{display:none}}
.active-task-count{margin-left:auto;font-size:11px;color:#31765b;font-weight:700;white-space:nowrap}.assignment-history{margin-bottom:20px}.assignment-history td small{display:block;color:var(--muted);font-size:10px;margin-top:2px}@media(max-width:620px){.active-task-count{display:none}}
.user-menu{position:relative}.user-avatar{border:0;cursor:pointer;font:800 13px Manrope,'Noto Sans SC';transition:transform .18s,box-shadow .18s}.user-avatar:hover,.user-menu.is-open .user-avatar{transform:translateY(-1px);box-shadow:0 5px 13px #0b6d5430}.user-menu.is-open .user-avatar{outline:3px solid #d9eee5}.user-menu-panel{position:absolute;right:0;top:49px;width:218px;padding:7px;background:#fff;border:1px solid #dfe8e3;border-radius:13px;box-shadow:0 18px 38px #18342a24;z-index:20;display:none;transform-origin:top right}.user-menu.is-open .user-menu-panel{display:block;animation:user-menu-in .16s ease-out}.user-menu-head{display:flex;align-items:center;gap:10px;padding:10px 10px 12px}.user-menu-initial{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#d8f385,#a7dfae);color:#195440;font:800 13px Manrope}.user-menu-head b{display:block;font-size:12px;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-head small{display:block;margin-top:2px;color:#82908b;font-size:10px}.user-menu-links{padding:4px 0;border-top:1px solid #edf1ef;border-bottom:1px solid #edf1ef}.user-menu-panel a,.user-menu-panel button{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:9px 10px;border:0;border-radius:7px;background:none;color:#33453f;font:600 12px Manrope,'Noto Sans SC';text-decoration:none;cursor:pointer}.user-menu-panel a span,.user-menu-panel button span{width:16px;text-align:center;color:#669282;font-size:14px}.user-menu-panel a:hover,.user-menu-panel button:hover{background:#edf6f1;color:var(--green)}.user-menu-panel form{margin:4px 0 0}.user-menu-panel form button{color:#b04d4d}.user-menu-panel form button span{color:#c56b6b}.user-menu-panel form button:hover{background:#fbeeee;color:#a84141}@keyframes user-menu-in{from{opacity:0;transform:scale(.96) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}
.metric-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.metric-link:hover{transform:translateY(-3px);box-shadow:0 10px 22px #18342a13;border-color:#bad4c9}.metric-link:focus-visible{outline:3px solid #91cbb4;outline-offset:2px}.metric-link span{transition:color .18s}.metric-link:hover span{color:var(--green)}.metric-link.dark:hover span{color:var(--lime)}
.account-form{width:min(100%,560px);max-width:none}.account-form .form-card{grid-template-columns:1fr;padding:26px}.account-form .form-control{max-width:420px}.account-form .form-actions{margin-top:6px}.account-form .field small{max-width:420px}@media(max-width:620px){.account-form{width:100%}.account-form .form-control{max-width:none}}
.time-confirm-row{display:flex;align-items:center;gap:9px;margin-top:2px}.time-confirm-button{border:1px solid #b7d2c6;background:#fff;color:var(--green);border-radius:5px;padding:5px 9px;font:700 11px Manrope,'Noto Sans SC';cursor:pointer}.time-confirm-button:hover,.time-confirm-button.confirmed{background:#e6f4ec;border-color:#7db99e}.time-confirmed{color:#38805f!important;font-size:10px!important}
.label-content p{align-items:center}.label-content p b{display:flex;align-items:center;min-height:32px}.label-content p code{display:inline-flex;align-items:center;min-height:32px;line-height:1}
.info-panel dl{grid-template-columns:1fr}.info-panel dl>div{gap:24px}.info-panel dd{max-width:72%;text-align:right;word-break:break-word}
.page-title-row{display:flex;align-items:center;gap:10px}.title-back-button{display:grid;place-items:center;width:31px;height:31px;border:1px solid #d5e0db;border-radius:8px;background:#fff;color:#41675a;font-size:20px;line-height:1;cursor:pointer;transition:background .15s,color .15s,transform .15s}.title-back-button:hover{background:#eaf4ef;color:var(--green);transform:translateX(-2px)}.label-preview-dialog{width:min(860px,calc(100vw - 32px));margin:auto;padding:0;border:0;border-radius:16px;background:#fff;box-shadow:0 26px 70px #102b2560;overflow:hidden}.label-preview-dialog::backdrop{background:#132d27a6;backdrop-filter:blur(3px)}.label-preview-title{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 58px 0 20px;border-bottom:1px solid var(--line);font-size:13px;font-weight:800}.label-preview-title button{border:1px solid #b9d3c7;border-radius:6px;background:#fff;color:var(--green);padding:6px 10px;font:700 11px Manrope,'Noto Sans SC';cursor:pointer}.label-preview-close{position:absolute;right:12px;top:10px;width:30px;height:30px;border:0;border-radius:50%;background:#edf3f0;color:#527167;font-size:23px;line-height:1;cursor:pointer;z-index:2}.label-preview-close:hover{background:#e0ece6;color:var(--ink)}.label-preview-body{max-height:min(620px,calc(100vh - 110px));overflow:auto;padding:24px;background:#f1f4f2}.label-preview-body .device-label{width:720px;max-width:100%;margin:0 auto;box-shadow:none}.label-embed{padding:18px;background:#fff;min-height:auto}.label-embed .device-label{width:720px;max-width:100%;margin:0 auto;box-shadow:none}@media print{body *{visibility:hidden}.label-preview-dialog[open],.label-preview-dialog[open] *{visibility:visible}.label-preview-dialog[open]{position:fixed;inset:0;width:100%;max-width:none;border:0;border-radius:0;box-shadow:none}.label-preview-title,.label-preview-close{display:none!important}.label-preview-body{max-height:none;overflow:visible;padding:0;background:#fff}.label-preview-body .device-label{width:720px;margin:0;box-shadow:none}}@media(max-width:620px){.label-preview-title{padding-left:16px}.label-preview-close{right:10px;top:10px}.label-preview-body{padding:10px}.label-embed{padding:8px}}
.field-asset_code[hidden]{display:none!important}
.custom-time-picker{position:relative}.custom-time-input,.custom-date-input{cursor:pointer}.custom-time-popover{position:absolute;z-index:30;top:calc(100% + 7px);left:0;width:262px;padding:14px;border:1px solid #c9ddd4;border-radius:12px;background:#fff;box-shadow:0 16px 35px #173b2c2b}.custom-time-popover[hidden]{display:none!important}.custom-time-title{margin-bottom:10px;color:#294439;font:800 12px Manrope,'Noto Sans SC'}.custom-time-popover label{display:block;margin:9px 0 0;color:#667b72;font:700 11px Manrope,'Noto Sans SC'}.custom-time-popover input[type=date],.custom-time-popover input[type=time]{box-sizing:border-box;width:100%;height:34px;margin-top:5px;padding:0 8px;border:1px solid #c8d9d1;border-radius:7px;background:#fff;color:#1d3029;font:600 12px Manrope,'Noto Sans SC'}.custom-time-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:11px;border-top:1px solid #e4ece8}.custom-time-actions button{height:32px;padding:0 12px;border:1px solid #bbd3c7;border-radius:7px;background:#fff;color:#466358;font:700 11px Manrope,'Noto Sans SC';cursor:pointer}.custom-time-actions .picker-confirm{border-color:#08785b;background:#08785b;color:#fff}.custom-time-actions .picker-confirm:hover{background:#056448}.custom-time-actions .picker-cancel:hover{background:#edf5f1;color:#245746}
.notification-button{position:relative}.notification-button i{position:absolute;top:-5px;right:-6px;display:grid;min-width:15px;height:15px;padding:0 2px;place-items:center;border:2px solid #fff;border-radius:999px;background:#c54e49;color:#fff;font:800 9px Manrope,'Noto Sans SC';font-style:normal}.notification-list{padding:0}.notification-row{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid #e5ede9}.notification-row:last-child{border-bottom:0}.notification-row.unread{background:#f2faf5}.notification-symbol{display:grid;width:33px;height:33px;place-items:center;border-radius:10px;background:#dff2e7;color:#08785b;font-size:19px}.notification-row h3{margin:0;color:#1e332c;font-size:14px}.notification-row p{margin:4px 0;color:#61776d;font-size:12px}.notification-row small{color:#8ca097;font-size:10px}.notification-row .button{margin-left:auto;white-space:nowrap}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid #e5ede9;color:#71857c;font:600 11px Manrope,'Noto Sans SC'}.pagination-actions{display:flex;align-items:center;gap:5px}.pagination-actions a,.pagination-actions span{display:grid;min-width:29px;height:29px;padding:0 8px;place-items:center;border:1px solid #d5e3dd;border-radius:7px;background:#fff;color:#48675b;text-decoration:none}.pagination-actions a:hover{border-color:#86bba4;background:#edf7f1;color:#08785b}.pagination-actions .current{border-color:#08785b;background:#08785b;color:#fff}.pagination-actions .disabled{color:#afbeb8;background:#f5f7f6;cursor:default}@media(max-width:700px){.pagination{align-items:flex-start;flex-direction:column}.pagination-actions{flex-wrap:wrap}}
.login-body{display:flex;flex-direction:column}.login-layout{min-height:0;flex:1}.login-filing{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 20px;background:#fff;border-top:1px solid #e5ebe8;color:#85938e;font:500 10px Manrope,'Noto Sans SC';letter-spacing:.01em}.login-filing i{width:3px;height:3px;border-radius:50%;background:#a9b7b1}@media(max-width:620px){.login-filing{flex-direction:column;gap:4px;text-align:center}.login-filing i{display:none}}
.barcode-image{width:248px;max-width:100%;height:78px;margin:4px 0 15px;object-fit:fill}.label-content .label-barcode{width:100%;height:74px;padding:0;border:0;align-self:center;object-fit:fill}.label-content{grid-template-columns:340px 1fr}@media(max-width:760px){.label-content{grid-template-columns:1fr}.label-content .label-barcode{width:100%;height:62px}.barcode-image{height:66px}}
.dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.usage-filter{flex-wrap:wrap}.usage-filter input{min-width:260px;flex:1}.usage-filter select{min-width:135px;width:auto}.usage-filter .usage-location-filter{min-width:210px}.usage-detail-table{margin-top:0}.usage-detail-table .panel-head{margin-bottom:16px}@media(max-width:850px){.dashboard-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.dashboard-metrics{grid-template-columns:1fr}.usage-filter input,.usage-filter select{width:100%;min-width:0}.usage-detail-table table{min-width:930px}}
.assignment-filter{flex-wrap:wrap}.assignment-filter input{min-width:250px;flex:1}.assignment-filter select{width:auto;min-width:135px}.assignment-filter .assignment-location-filter{min-width:210px}@media(max-width:620px){.assignment-filter input,.assignment-filter select{width:100%;min-width:0}}
.binding-filter input{min-width:300px;flex:0 1 420px}@media(max-width:620px){.binding-filter input{width:100%;min-width:0}}
.project-filter input{min-width:280px;flex:0 1 420px}.project-filter select{min-width:210px;width:auto}@media(max-width:620px){.project-filter input,.project-filter select{width:100%;min-width:0}}
.maintenance-filter{flex-wrap:wrap}.maintenance-filter>input:first-child{min-width:280px;flex:1}.maintenance-filter select{min-width:135px;width:auto}.maintenance-filter input[type=date]{width:140px}.filter-checkbox{display:flex;align-items:center;gap:5px;white-space:nowrap;color:#48675b;font-size:12px;font-weight:700}.filter-checkbox input{width:15px;height:15px;accent-color:var(--green)}@media(max-width:620px){.maintenance-filter>input:first-child,.maintenance-filter select,.maintenance-filter input[type=date]{width:100%;min-width:0}.filter-checkbox{padding:8px 0}}
