:root{--ink:#18212b;--muted:#77818d;--line:#e7ebef;--surface:#fff;--wash:#f5f7f8;--violet:#7257f5;--violet-2:#9b85ff;--green:#23a681;--orange:#e89a2d;--red:#df5c63;--blue:#3b8ddd;--shadow:0 14px 40px rgba(24,33,43,.08)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--wash);font-family:Manrope,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft Yahei",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.login-view{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#f4f5f9}.login-art{position:relative;overflow:hidden;padding:54px 6vw;background:#1b1d29;color:#fff}.login-brand-logo{display:block;width:94px;height:94px;object-fit:contain;filter:drop-shadow(0 8px 22px rgba(94,221,47,.16))}.login-art h1{margin:110px 0 18px;font-size:clamp(32px,3.35vw,64px);line-height:1.08;letter-spacing:0;white-space:nowrap}.login-art h1 em{font-style:normal;color:#a697ff}.login-art p{margin:0;color:#a9afb9;line-height:1.8;font-size:clamp(12px,1.05vw,15px);letter-spacing:0;white-space:nowrap}.login-orbit{position:absolute;width:500px;height:500px;border:1px solid rgba(164,148,255,.22);border-radius:50%;right:-145px;bottom:-175px}.login-orbit:before,.login-orbit:after{content:"";position:absolute;inset:50px;border:1px solid rgba(164,148,255,.18);border-radius:50%}.login-orbit:after{inset:115px}.login-orbit span{position:absolute;width:12px;height:12px;border-radius:50%;background:#9f8dff;box-shadow:0 0 26px #9380ff}.login-orbit span:nth-child(1){top:60px;left:80px}.login-orbit span:nth-child(2){right:42px;top:220px;background:#55d0bc}.login-orbit span:nth-child(3){bottom:60px;left:165px;background:#f3bb63}.login-card{align-self:center;justify-self:center;width:min(390px,80%);padding:44px;background:#fff;border:1px solid #eceef3;border-radius:22px;box-shadow:var(--shadow)}.login-card h2{font-size:31px;letter-spacing:0;margin:0 0 7px}.muted{color:var(--muted);margin:0;line-height:1.6}.login-card label{display:block;font-size:12px;font-weight:700;margin-top:28px;color:#53606c}.login-card input{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;outline:none;transition:.2s}.login-card input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(114,87,245,.12)}.primary{background:var(--violet);color:#fff;border-radius:10px;padding:13px 18px;font-weight:700;transition:.2s;box-shadow:0 7px 17px rgba(114,87,245,.2)}.primary:hover{background:#5e44e8;transform:translateY(-1px)}.primary span{float:right;font-size:18px;line-height:14px}.full{width:100%;margin-top:28px}.demo-hint{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}.demo-hint code{font:11px 'DM Mono',monospace;color:#505d69}.app-shell{min-height:100vh;display:flex}.sidebar{width:244px;flex:0 0 244px;background:#1b1d29;color:#fff;padding:27px 15px 18px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;min-height:70px;padding:0 12px 28px}.side-brand-logo{display:block;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 7px 18px rgba(94,221,47,.13))}.workspace-switcher{display:flex;align-items:center;gap:8px;margin:0 5px 25px;padding:11px 12px;border:1px solid rgba(255,255,255,.09);border-radius:9px;color:#c7cad3;font-size:12px}.workspace-switcher .status-dot{width:7px;height:7px;background:#50c9aa;border-radius:50%;box-shadow:0 0 8px #50c9aa}.workspace-switcher .chevron{margin-left:auto;color:#858b9e;font-size:16px}.nav-label{color:#70778c;font:10px 'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase;padding:0 14px;margin:18px 0 8px}.nav-item{width:100%;display:flex;align-items:center;gap:11px;background:transparent;color:#9fa6b6;padding:11px 13px;border-radius:9px;text-align:left;font-weight:600;margin:2px 0;transition:.2s}.nav-item:hover{color:#fff;background:rgba(255,255,255,.06)}.nav-item.active{color:#fff;background:linear-gradient(90deg,rgba(114,87,245,.95),rgba(114,87,245,.72));box-shadow:0 8px 19px rgba(114,87,245,.2)}.nav-icon{width:16px;text-align:center;font-size:17px;color:#b5acf9}.sidebar-footer{margin-top:auto}.help-card{display:flex;align-items:center;gap:10px;padding:14px 11px;border-radius:10px;background:rgba(255,255,255,.055);color:#aeb4c3;margin-bottom:15px;font-size:12px}.help-card strong,.help-card small{display:block}.help-card strong{color:#e1e3eb;font-size:11px}.help-card small{margin-top:4px;color:#7f8799;font-size:10px}.help-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid #6f688d;border-radius:50%;color:#a69afd}.help-card>span:last-child{margin-left:auto;color:#888e9e;font-size:18px}.user-mini{display:flex;align-items:center;gap:9px;padding:12px 10px;border-top:1px solid rgba(255,255,255,.08)}.user-mini .avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#d2c9ff;color:#4736a8;font-size:12px;font-weight:800}.user-mini strong,.user-mini small{display:block}.user-mini strong{font-size:11px;color:#e9eaf0}.user-mini small{font-size:10px;color:#838a9c;margin-top:3px}.user-mini button{margin-left:auto;background:transparent;color:#7e8697;font-size:17px}.main-content{flex:1;min-width:0}.topbar{height:94px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(22px,4vw,54px)}.breadcrumbs{display:flex;gap:10px;align-items:center;font-size:12px;color:#a2aab4}.breadcrumbs i{font-style:normal;color:#d1d5da}.breadcrumbs strong{color:var(--ink);font-weight:700}.topbar p{margin:8px 0 0;font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:16px}.last-sync{font:10px 'DM Mono',monospace;color:#a3acb6}.last-sync strong{color:#525f6b;font-weight:500}.icon-btn,.notify-btn{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#77818d;font-size:18px;position:relative}.notify-btn span{width:6px;height:6px;background:var(--violet);border-radius:50%;position:absolute;right:7px;top:6px}.page{padding:34px clamp(22px,4vw,54px) 54px;max-width:1600px;margin:0 auto}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:23px}.section-head h1{margin:0;font-size:25px;letter-spacing:-.04em}.section-head p{margin:8px 0 0;color:var(--muted);font-size:12px}.section-actions{display:flex;gap:9px}.ghost,.outline{border:1px solid var(--line);color:#57616d;background:#fff;border-radius:9px;padding:10px 14px;font-weight:700;font-size:12px}.ghost:hover,.outline:hover{border-color:#b8bdc7;color:var(--ink)}.dashboard-grid{display:grid;grid-template-columns:1fr 1.78fr;gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px rgba(24,33,43,.025)}.inventory-panel{padding:25px;position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 54%,#f4f1ff)}.inventory-panel:after{content:"";position:absolute;width:220px;height:220px;border:1px solid #ded6ff;border-radius:50%;right:-120px;bottom:-110px}.panel-kicker{font:10px 'DM Mono',monospace;letter-spacing:.13em;color:var(--muted);text-transform:uppercase}.stock-total{display:flex;align-items:flex-end;gap:9px;margin:14px 0 24px}.stock-total strong{font-size:62px;line-height:.92;letter-spacing:-.08em}.stock-total span{font-size:13px;color:var(--muted);padding-bottom:6px}.stock-meta{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--green)}.pulse{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 4px rgba(35,166,129,.12)}.model-list{border-top:1px solid var(--line);padding-top:18px;margin-top:19px;position:relative;z-index:1}.model-row{display:flex;align-items:center;gap:10px;margin:14px 0}.model-dot{width:9px;height:9px;border-radius:3px}.model-row .model-name{flex:1;font-size:12px;color:#596572}.model-row .model-count{font-weight:800;font-size:17px;letter-spacing:-.04em}.model-row .unit{color:#a3abb4;font-size:10px}.mini-bar{height:4px;background:#eceef1;border-radius:9px;margin-top:4px;overflow:hidden}.mini-bar span{display:block;height:100%;border-radius:9px}.class-panel{padding:25px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.panel-head h2{font-size:17px;letter-spacing:-.035em;margin:0}.panel-head p{margin:6px 0 0;color:var(--muted);font-size:11px}.view-all{color:var(--violet);font-size:11px;font-weight:700;background:none}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.search-box{position:relative;flex:1;min-width:190px}.search-box input{width:100%;padding:10px 12px 10px 33px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;outline:none;font-size:12px}.search-box:before{content:"⌕";position:absolute;left:12px;top:7px;color:#8b94a1;font-size:17px}.select{padding:10px 27px 10px 11px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:#68737e;font-size:12px;outline:none}.class-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.class-card{position:relative;padding:15px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(160deg,#fff,#fbfcfe);cursor:pointer;transition:.2s}.class-card:hover{border-color:#bdb2ff;box-shadow:0 8px 20px rgba(114,87,245,.1);transform:translateY(-2px)}.class-card .class-city{font-size:10px;color:var(--muted)}.class-card h3{font-size:13px;margin:9px 0 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-card .class-owner{font-size:10px;color:#7c8792}.class-card .device-number{display:flex;justify-content:space-between;align-items:end;margin-top:16px;padding-top:11px;border-top:1px solid #eef0f2}.class-card .device-number strong{font-size:23px;letter-spacing:-.06em}.class-card .device-number span{font-size:10px;color:var(--muted)}.class-card .class-accent{position:absolute;left:0;top:14px;width:3px;height:22px;border-radius:0 4px 4px 0;background:var(--violet)}.empty{padding:35px;text-align:center;color:var(--muted);font-size:12px;border:1px dashed var(--line);border-radius:10px}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.stat-chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 17px}.stat-chip small{color:var(--muted);font-size:10px}.stat-chip strong{display:block;margin-top:8px;font-size:23px;letter-spacing:-.06em}.chip-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.table-panel{padding:22px}.table-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.table-tools .search-box{max-width:310px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;color:#98a0a9;font-size:10px;font-weight:600;letter-spacing:.03em;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:14px 10px;border-bottom:1px solid #f0f2f4;color:#4d5965;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#fcfcff}.serial{font:11px 'DM Mono',monospace;color:#2b3540}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:6px;font-size:10px;font-weight:700}.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-green{background:#eaf8f3;color:#1d9a79}.status-blue{background:#edf5ff;color:#327fcd}.status-orange{background:#fff6e8;color:#cf861c}.status-red{background:#fff0f1;color:#d45f67}.row-actions{display:flex;gap:5px}.row-actions button{padding:6px 8px;color:#798491;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:11px}.row-actions button:hover{color:var(--violet);border-color:#c9c1fb}.metric-row{display:flex;gap:12px;align-items:stretch;margin-bottom:20px}.metric-card{flex:1;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}.metric-card small{color:var(--muted);font-size:11px}.metric-card strong{display:block;font-size:28px;margin-top:9px;letter-spacing:-.07em}.modal-backdrop{position:fixed;inset:0;background:rgba(24,29,41,.45);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}.modal{width:min(640px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 22px 70px rgba(0,0,0,.22)}.modal.wide{width:min(900px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 26px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:20px;letter-spacing:-.04em}.modal-head p{margin:6px 0 0;color:var(--muted);font-size:11px}.close{font-size:22px;color:#9ba4ae;background:transparent}.modal-body{padding:22px 26px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1;margin-top:0}.field label{font-size:11px;color:#63707c;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;padding:10px 11px;outline:none;color:var(--ink)}.field textarea{min-height:75px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(114,87,245,.1)}.modal-foot{padding:16px 26px 22px;display:flex;justify-content:flex-end;gap:8px}.modal-foot .primary{margin-top:0}.device-select-list{max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:9px}.device-select-item{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid #f0f2f4}.device-select-item:last-child{border:0}.device-select-item small{color:var(--muted);margin-left:auto}.file-drop{padding:27px;text-align:center;border:1px dashed #bdb6ef;border-radius:12px;background:#faf9ff;color:#6f61be}.file-drop strong{display:block;color:#5644c9;margin-bottom:5px}.file-drop small{color:#8c86ab}.file-drop input{display:none}.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}.import-summary>div{padding:12px;border-radius:8px;background:#f7f8fa}.import-summary strong{display:block;font-size:20px}.import-summary span{font-size:10px;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;z-index:30;padding:13px 16px;background:#202631;color:#fff;border-radius:9px;box-shadow:var(--shadow);font-size:12px;animation:toast-in .25s ease}.toast.error{background:#c9535d}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.pagination{display:flex;justify-content:flex-end;gap:7px;padding-top:16px}.pagination button{min-width:28px;height:28px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#6f7a86;font-size:11px}.pagination button.active{background:var(--violet);border-color:var(--violet);color:#fff}.notice{padding:12px 14px;border-radius:8px;background:#fff7e9;color:#9b701e;font-size:11px;margin-bottom:16px}.split-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:20px}.detail-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:13px}.detail-card h3{margin:0 0 18px;font-size:16px}.detail-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f2f4;font-size:12px}.detail-line span{color:var(--muted)}@media(max-width:1100px){.dashboard-grid{grid-template-columns:1fr}.class-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.sidebar{width:70px;flex-basis:70px;padding:20px 9px}.side-brand{justify-content:center;min-height:50px;padding:0 0 28px}.side-brand-logo{width:50px;height:50px}.workspace-switcher span:not(.status-dot),.workspace-switcher .chevron,.nav-label,.nav-item:not(.active)::after,.nav-item{font-size:0}.nav-item{justify-content:center;padding:12px}.nav-icon{font-size:18px}.help-card,.user-mini>div:not(.avatar),.user-mini button{display:none}.user-mini{justify-content:center}.topbar{padding:0 20px}.last-sync{display:none}.page{padding:25px 18px 45px}.class-cards{grid-template-columns:repeat(2,1fr)}.stat-strip{grid-template-columns:repeat(2,1fr)}.split-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}@media(max-width:480px){.login-view{display:block}.login-art{padding:28px 22px 105px}.login-brand-logo{width:72px;height:72px}.login-art h1{margin-top:48px;font-size:clamp(25px,7.35vw,34px)}.login-art p{font-size:clamp(9px,2.55vw,12px)}.login-card{width:calc(100% - 36px);margin:-54px auto 30px;position:relative;padding:30px}.class-cards{grid-template-columns:1fr}.topbar{height:80px}.topbar p{display:none}.section-head{align-items:flex-start;gap:15px;flex-direction:column}.section-actions{width:100%}.section-actions>*{flex:1}.metric-row{display:grid;grid-template-columns:1fr 1fr}.data-table{min-width:670px}.table-panel{overflow:auto}}
/* product layout overrides */
.public-mode .sidebar{display:none}
.public-mode .main-content{width:100%}
.public-mode .topbar{padding-left:clamp(18px,2.4vw,32px);padding-right:clamp(18px,2.4vw,32px)}
.page{padding-left:clamp(18px,2.4vw,32px);padding-right:clamp(18px,2.4vw,32px);max-width:1440px}
.page{max-width:none}
.section-actions{flex-wrap:wrap}
.public-mode .topbar .breadcrumbs>span:first-child{font-weight:700;color:var(--violet)}

/* public dashboard visual system */
.public-mode{background:#eef2f7}
.public-mode .main-content{background:linear-gradient(145deg,#f3f5fa 0%,#edf2f8 100%)}
.public-mode .topbar{height:58px;background:transparent;border-bottom:0}
.public-mode .topbar>div:first-child{display:none}
.public-mode .logout-top{display:none}
.public-mode .page{min-height:calc(100vh - 58px);display:flex;flex-direction:column;padding-top:14px;padding-bottom:18px}
.public-mode .section-head{margin-bottom:14px;align-items:center}
.public-mode .section-head p{display:none}
.public-mode .section-head h1{font-size:30px}
.public-mode .dashboard-grid{flex:1;grid-template-columns:minmax(310px,.88fr) minmax(0,1.72fr);gap:18px;min-height:430px}
.public-mode .inventory-panel{min-height:100%;border:0;color:#fff;background-color:#7358ef;background-image:linear-gradient(145deg,rgba(64,44,180,.98),rgba(126,91,244,.92)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.18'%3E%3Ccircle cx='300' cy='120' r='110'/%3E%3Ccircle cx='300' cy='120' r='72'/%3E%3Cpath d='M40 320C130 210 230 380 410 220' stroke-width='22' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");background-position:center,right bottom;background-repeat:no-repeat;background-size:cover,380px 380px;box-shadow:0 18px 42px rgba(74,49,179,.23)}
.public-mode .inventory-panel:after{border-color:rgba(255,255,255,.18);width:300px;height:300px;right:-140px;bottom:-150px}
.public-mode .inventory-panel .panel-kicker,.public-mode .inventory-panel .stock-total span,.public-mode .inventory-panel .model-name,.public-mode .inventory-panel .unit{color:rgba(255,255,255,.72)}
.public-mode .inventory-panel .stock-total strong,.public-mode .inventory-panel .model-count{color:#fff}
.public-mode .inventory-panel .stock-meta{color:#bff7e6}
.public-mode .inventory-panel .pulse{background:#62edc1;box-shadow:0 0 0 4px rgba(98,237,193,.18)}
.public-mode .inventory-panel .model-list{border-color:rgba(255,255,255,.22)}
.public-mode .inventory-panel .mini-bar{background:rgba(255,255,255,.18)}
.public-mode .class-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100%;border:0;background-color:#eaf7ff;background-image:linear-gradient(145deg,rgba(255,255,255,.97),rgba(229,246,255,.92)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='360' viewBox='0 0 520 360'%3E%3Cg fill='none' stroke='%2323b5d3' stroke-opacity='.14'%3E%3Cpath d='M326 66c58 0 105 47 105 105v63c0 31-25 56-56 56h-25v-99h81M326 66c-58 0-105 47-105 105v63c0 31 25 56 56 56h25v-99h-81' stroke-width='18' stroke-linecap='round'/%3E%3Ccircle cx='86' cy='76' r='52'/%3E%3Ccircle cx='470' cy='52' r='22'/%3E%3C/g%3E%3C/svg%3E");background-position:center,right bottom;background-repeat:no-repeat;background-size:cover,480px 330px;box-shadow:0 18px 42px rgba(54,113,150,.13)}
.public-mode .class-panel>*{position:relative;z-index:1}
.public-mode .class-cards{flex:1;align-items:stretch}
.public-mode .class-card{min-height:165px;display:flex;flex-direction:column;justify-content:space-between;border:0;box-shadow:0 9px 24px rgba(60,77,102,.09)}
.public-mode .class-card:nth-child(3n+1){background:linear-gradient(145deg,#eee9ff,#ded4ff)}
.public-mode .class-card:nth-child(3n+2){background:linear-gradient(145deg,#e1f7fb,#c8eff6)}
.public-mode .class-card:nth-child(3n+3){background:linear-gradient(145deg,#fff1d9,#ffe3b1)}
.public-mode .class-card:nth-child(3n+1) .class-accent{background:#7257f5}
.public-mode .class-card:nth-child(3n+2) .class-accent{background:#23b5d3}
.public-mode .class-card:nth-child(3n+3) .class-accent{background:#eda838}
.public-mode .class-card h3{font-size:15px}
.public-mode .stat-strip{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}
.public-mode .stat-chip{border:0;padding:18px 20px;box-shadow:0 10px 24px rgba(58,77,99,.08)}
.public-mode .stat-chip:nth-child(1){background:linear-gradient(135deg,#dcf8ee,#bfeedd)}
.public-mode .stat-chip:nth-child(2){background:linear-gradient(135deg,#dfefff,#bfdbfa)}
.public-mode .stat-chip:nth-child(3){background:linear-gradient(135deg,#fff0d3,#ffdda1)}
.public-mode .stat-chip:last-child{display:none}
.public-mode .stat-chip strong{font-size:28px}
.admin-mode .sidebar-footer{display:none}
@media(max-width:1100px){.public-mode .dashboard-grid{grid-template-columns:1fr;min-height:auto}.public-mode .inventory-panel{min-height:390px}.public-mode .class-panel{min-height:440px}}
@media(max-width:650px){.public-mode .topbar{height:52px}.public-mode .page{min-height:calc(100vh - 52px)}.public-mode .section-head{align-items:flex-start}.public-mode .dashboard-grid{gap:14px}.public-mode .class-cards{grid-template-columns:1fr}.public-mode .stat-strip{grid-template-columns:1fr}.public-mode .inventory-panel{min-height:410px}}

/* dashboard reference layout */
.dashboard-reference-page{gap:16px;overflow:hidden}
.dashboard-reference-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.dashboard-reference-toolbar h1{margin:5px 0 0;font-size:27px;letter-spacing:-.04em}
.dashboard-label{font:500 10px 'DM Mono',monospace;letter-spacing:.16em;color:#7867d8}
.dashboard-reference-grid{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(690px,1.38fr);gap:18px;flex:1;height:calc(100vh - 146px);min-height:580px}
.dashboard-summary-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:18px;min-height:0}
.summary-card{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;border-radius:20px;padding:20px 22px;min-height:0;box-shadow:0 16px 38px rgba(42,57,79,.12)}
.summary-card:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(50,31,139,.97) 0%,rgba(77,49,173,.86) 48%,rgba(98,68,199,.54) 100%)}
.summary-inbound{color:#fff;background:#6548e1}
.summary-available{color:#173a3b;background:#8dd9cd}
.summary-available:before{background:linear-gradient(90deg,rgba(188,239,224,.97) 0%,rgba(153,224,210,.88) 50%,rgba(122,205,194,.55) 100%)}
.summary-copy{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:space-between;min-height:0}
.summary-background-art{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34;pointer-events:none;user-select:none;filter:saturate(.92) contrast(1.06)}
.summary-scenes-art{object-position:center 46%}
.summary-hero-art{object-position:64% 36%;opacity:.38}
.summary-card-title{font-size:clamp(21px,1.45vw,25px);font-weight:800;letter-spacing:.01em;text-align:left;text-shadow:0 2px 14px rgba(25,19,72,.18)}
.summary-total{display:flex;align-items:flex-end;justify-content:flex-start;margin:4px 0 12px;position:relative;z-index:2}
.summary-total strong{font-size:clamp(68px,5.2vw,88px);line-height:.86;letter-spacing:-.075em;text-shadow:0 3px 20px rgba(25,19,72,.16)}
.summary-total span{font-size:21px;font-weight:800;margin:0 0 8px 12px}
.summary-models{display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:2;padding:14px 5px;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:rgba(255,255,255,.15);backdrop-filter:blur(7px)}
.summary-available .summary-models{border-color:rgba(23,58,59,.16);background:rgba(239,255,250,.31)}
.summary-model{padding:1px 9px;text-align:center;border-right:1px solid rgba(255,255,255,.4)}
.summary-available .summary-model{border-color:rgba(23,58,59,.22)}
.summary-model:last-child{border-right:0}
.summary-model span{display:block;font-size:13px;font-weight:700;opacity:.8;margin-bottom:8px}
.summary-model strong{font-size:clamp(26px,2vw,32px);letter-spacing:-.045em}
.summary-model small{font-size:12px;font-weight:700}
.class-usage-panel-reference{display:flex;flex-direction:column;height:100%;min-height:0;border-radius:20px;padding:22px;background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(232,243,251,.96));box-shadow:0 16px 38px rgba(43,73,101,.11);position:relative;overflow:hidden}
.class-usage-panel-reference:after{content:"";position:absolute;width:430px;height:430px;right:-220px;top:-250px;border-radius:50%;background:radial-gradient(circle,rgba(87,160,218,.15),transparent 68%)}
.class-usage-panel-reference>*{position:relative;z-index:1}
.class-usage-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:13px}
.class-usage-title span{font:500 9px 'DM Mono',monospace;letter-spacing:.15em;color:#4d91be}
.class-usage-title h2{font-size:25px;letter-spacing:-.04em;margin:3px 0 0}
.class-usage-title>strong{font-size:11px;padding:7px 10px;border-radius:8px;background:#dfedf8;color:#40779d}
.class-usage-filters{display:flex;gap:9px;margin-bottom:12px}
.class-usage-filters .search-box{flex:1}
.class-usage-columns,.class-usage-card{display:grid;grid-template-columns:1.05fr 1.7fr .85fr 1.05fr .8fr 1fr;align-items:center;column-gap:12px}
.class-usage-columns{flex:0 0 auto;padding:12px 18px;border-radius:10px;background:#273446;color:#dce7f1;font-size:11px;font-weight:700;letter-spacing:.02em;box-shadow:0 5px 14px rgba(24,39,56,.12)}
.class-usage-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 7px 3px 0;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:#aebccd transparent}
.class-usage-scroll::-webkit-scrollbar{width:7px}
.class-usage-scroll::-webkit-scrollbar-thumb{border-radius:10px;background:#aebccd}
.class-usage-scroll::-webkit-scrollbar-track{background:transparent}
.class-usage-card{flex:0 0 auto;min-height:92px;padding:15px 18px;border-radius:15px;cursor:pointer;border:1px solid transparent;transition:.2s;box-shadow:0 6px 16px rgba(60,78,101,.07)}
.class-usage-card:hover{transform:translateY(-1px);box-shadow:0 10px 23px rgba(60,78,101,.13)}
.class-usage-card.status-pending{background:linear-gradient(100deg,#fff1d6,#ffe1aa);border-color:#f1cb82}
.class-usage-card.status-active{background:linear-gradient(100deg,#e3f2ff,#cde7fb);border-color:#add3ef}
.class-usage-card.status-finished{background:linear-gradient(100deg,#edf1f4,#dde4e9);border-color:#ccd5dc}
.usage-field small{display:none;color:#85909a;font-size:10px;margin-bottom:5px}
.usage-field strong{font-size:14px;color:#27323d;line-height:1.35}
.usage-name strong{font-size:15px}
.usage-status .status-pill{white-space:nowrap;font-size:11px;padding:6px 9px}
.class-detail-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.class-detail-summary>div{padding:14px;border-radius:10px;background:#f4f7fa;min-width:0}
.class-detail-summary span{display:block;font-size:9px;color:#8b959f;margin-bottom:7px}
.class-detail-summary strong{font-size:12px;color:#303c47}
.class-detail-device-table{max-height:350px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.shipping-info-card{margin-top:16px;padding:16px 18px;border:1px solid #dce9f2;border-radius:12px;background:linear-gradient(135deg,#f7fbff,#edf7fc)}
.shipping-info-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.shipping-info-title span{font:500 9px 'DM Mono',monospace;letter-spacing:.13em;color:#4d91be}
.shipping-info-title h3{margin:0;font-size:15px;letter-spacing:-.025em}
.shipping-info-grid{display:grid;grid-template-columns:.8fr 1fr 2.2fr;gap:10px}
.shipping-info-grid>div{min-width:0;padding:11px 12px;border-radius:9px;background:rgba(255,255,255,.78)}
.shipping-info-grid small{display:block;margin-bottom:5px;color:#8593a0;font-size:9px}
.shipping-info-grid strong{display:block;color:#34424e;font-size:12px;line-height:1.55;word-break:break-word}
.classes-admin-table{min-width:1050px}
.class-shipping-cell{display:flex;min-width:190px;max-width:270px;flex-direction:column;gap:3px}
.class-shipping-cell strong{font-size:12px;color:#35414c}
.class-shipping-cell span{font-size:10px;color:#687480}
.class-shipping-cell small{overflow:hidden;color:#9099a2;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.class-status-preview>div{display:flex;align-items:center;gap:9px;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#f7f9fb}
.class-status-preview small{color:var(--muted);font-size:9px}
.detail-address{max-width:68%;text-align:right;line-height:1.55}
.class-device-progress{display:flex;align-items:baseline;gap:5px;white-space:nowrap;color:#287f69}
.class-device-progress strong{font-size:14px}.class-device-progress span{font-size:9px;color:var(--muted)}
.class-device-progress.over,.text-danger{color:var(--red)!important}
.class-date-cell{display:flex;flex-direction:column;gap:3px;white-space:nowrap}.class-date-cell strong{font-size:11px}.class-date-cell span{font-size:9px;color:var(--muted)}
@media(max-width:1150px){.dashboard-reference-grid{grid-template-columns:minmax(290px,.68fr) minmax(620px,1.32fr)}.summary-card{padding:18px}.summary-total strong{font-size:64px}.summary-model strong{font-size:24px}.class-usage-columns,.class-usage-card{grid-template-columns:1fr 1.5fr .8fr 1fr .8fr 1fr}}
@media(max-width:950px){.dashboard-reference-page{overflow:visible}.dashboard-reference-grid{grid-template-columns:1fr;height:auto;min-height:auto}.dashboard-summary-stack{grid-template-columns:repeat(2,1fr);grid-template-rows:none}.summary-card{min-height:285px}.summary-background-art{opacity:.31}.summary-hero-art{opacity:.35}.class-usage-panel-reference{height:620px;min-height:620px}.class-detail-summary{grid-template-columns:repeat(2,1fr)}.shipping-info-grid{grid-template-columns:1fr 1fr}.shipping-address{grid-column:1/-1}}
@media(max-width:650px){.dashboard-reference-toolbar{align-items:flex-start;flex-direction:column}.dashboard-reference-toolbar .section-actions{width:100%}.dashboard-summary-stack{grid-template-columns:1fr}.summary-card{min-height:270px;padding:18px}.summary-background-art{opacity:.28}.summary-hero-art{opacity:.32;object-position:68% 36%}.summary-card-title{font-size:21px}.summary-total{margin:3px 0 12px}.summary-total strong{font-size:64px}.summary-total span{font-size:18px}.summary-model{padding:0 6px}.summary-model span{font-size:12px}.summary-model strong{font-size:24px}.class-usage-panel-reference{padding:15px;height:620px;min-height:620px}.class-usage-columns{display:none}.class-usage-card{grid-template-columns:repeat(2,1fr);gap:12px;min-height:150px;padding:15px}.usage-field small{display:block}.class-usage-filters{flex-direction:column}.class-detail-summary{grid-template-columns:1fr 1fr}.shipping-info-title{align-items:flex-start;flex-direction:column}.shipping-info-grid{grid-template-columns:1fr}.shipping-address{grid-column:auto}}
.supplier-table{min-width:1080px}
.supplier-table tbody td:first-child strong{color:#33485e;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:.2s}
.supplier-table tbody td:first-child strong:hover{color:var(--violet);text-decoration-color:currentColor}
.supplier-count-cell{display:flex;flex-direction:column;gap:4px;white-space:nowrap}
.supplier-count-cell strong{font-size:13px;color:#35414c}
.supplier-count-cell small{font-size:9px;font-weight:700}
.count-aligned{color:var(--green)}
.count-mismatch{color:var(--red)}
.main-nav{margin-top:8px}

/* stock movement management */
.stock-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.stock-action-card{position:relative;overflow:hidden;padding:24px;border:1px solid #e5e9ef;border-top-width:4px;box-shadow:0 12px 30px rgba(39,52,70,.07)}
.stock-action-card:after{content:"";position:absolute;width:190px;height:190px;right:-100px;top:-105px;border-radius:50%;pointer-events:none}
.stock-outbound{border-top-color:var(--violet);background:linear-gradient(155deg,#fff 0%,#fff 72%,#f7f4ff 100%)}
.stock-outbound:after{background:radial-gradient(circle,rgba(114,87,245,.14),transparent 68%)}
.stock-inbound{border-top-color:var(--green);background:linear-gradient(155deg,#fff 0%,#fff 72%,#effaf7 100%)}
.stock-inbound:after{background:radial-gradient(circle,rgba(35,166,129,.14),transparent 68%)}
.stock-action-card>*{position:relative;z-index:1}
.stock-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.stock-card-head span{display:block;margin-bottom:5px;font:500 10px 'DM Mono',monospace;letter-spacing:.16em;color:var(--violet)}
.stock-inbound .stock-card-head span{color:var(--green)}
.stock-card-head h2{margin:0;font-size:22px;letter-spacing:-.035em}
.stock-action-card .notice{margin-bottom:18px;padding:12px 14px;border:1px solid #f1dfb7;border-radius:10px;background:#fff8e9;color:#94691d;line-height:1.65}
.stock-action-card>.field{margin-top:16px}
.stock-action-card .field label{font-size:12px;color:#55616d}
.stock-action-card .field input,.stock-action-card .field select,.stock-action-card .field textarea{background:#fff;padding:12px 13px;border-color:#dfe4ea;font-size:13px}
.stock-action-card .field textarea{min-height:118px;line-height:1.65}
.compact-file{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 14px;margin-top:16px;padding:15px 16px;border:1px dashed #bbb2f1;border-radius:11px;background:#faf9ff;cursor:pointer;transition:.2s}
.compact-file:hover{border-color:var(--violet);background:#f6f3ff}
.stock-inbound .compact-file{border-color:#9ed9c9;background:#f3fbf8}
.compact-file strong{font-size:12px;color:#5444bb}
.compact-file span{grid-column:1;font-size:10px;color:#817b9e}
.compact-file input{grid-column:2;grid-row:1/3;max-width:190px;font-size:11px;color:#6b7480}
.compact-file input::file-selector-button{margin-right:8px;padding:8px 10px;border:1px solid #d8d2f8;border-radius:7px;background:#fff;color:#5d4fc2;font-weight:700;cursor:pointer}
.stock-main-action{width:100%;margin-top:18px;padding:14px 18px;font-size:13px}
.stock-main-action:disabled,.danger:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:none}
.stock-return-fields{margin-top:16px;gap:12px}
.stock-device-box{margin-top:16px;border:1px solid #dfe5e9;border-radius:12px;background:#fbfcfd;overflow:hidden}
.stock-device-box>.empty{border:0;border-radius:0;padding:54px 20px;background:transparent}
.stock-device-toolbar{display:flex;align-items:center;gap:9px;min-height:54px;padding:10px 13px;border-bottom:1px solid #e7ebee;background:#f1f8f6}
.stock-device-toolbar strong{font-size:13px;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-device-toolbar span{font-size:11px;color:var(--muted)}
.stock-device-toolbar .ghost{margin-left:auto;padding:7px 10px;background:#fff}
.stock-device-list{max-height:330px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bdc8ce transparent}
.stock-device-list .device-select-item{display:grid;grid-template-columns:18px minmax(125px,1.2fr) minmax(70px,.7fr) minmax(50px,.6fr);gap:10px;min-height:48px;padding:11px 13px;background:#fff;cursor:pointer}
.stock-device-list .device-select-item:hover{background:#f7fbfa}
.stock-device-list .device-select-item input{width:15px;height:15px;margin:0;accent-color:var(--green)}
.stock-device-list .device-select-item span{font-size:12px}
.stock-device-list .device-select-item small{margin-left:0;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-preview-table{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.stock-preview-table .data-table{min-width:620px;background:#fff}
.stock-record-panel{margin-top:20px;overflow:hidden}
.stock-record-panel>.panel-head{margin-bottom:10px}
#stock-records{overflow-x:auto}
.stock-record-table{min-width:850px}
.quantity-warning{display:flex;flex-direction:column;gap:6px;margin:14px 0;padding:14px 15px;border:1px solid #efb8bd;border-radius:9px;background:#fff2f3;color:#9e3f47;line-height:1.55}
.quantity-warning strong{font-size:13px}.quantity-warning span{font-size:11px}.quantity-warning small{font-size:9px;color:#b26168}
.quantity-ok{margin:12px 0;padding:10px 12px;border:1px solid #cce8df;border-radius:8px;background:#f0faf6;color:#267d67;font-size:11px;font-weight:700}
.class-quantity-banner{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;margin-bottom:14px;padding:13px 15px;border:1px solid #dfe5eb;border-radius:9px;background:#f7f9fb}
.class-quantity-banner span{font-size:10px;color:var(--muted)}.class-quantity-banner strong{font-size:15px}
.transfer-route{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:12px}
.transfer-route>div{display:flex;min-width:0;min-height:90px;flex-direction:column;justify-content:center;gap:7px;padding:13px 15px;border:1px solid #dfe5eb;border-radius:9px;background:#f8fafb}
.transfer-route span,.transfer-route small{font-size:9px;color:var(--muted)}.transfer-route strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-route b{text-align:center;color:var(--violet);font-size:20px}
.transfer-route select{width:100%;min-width:0;padding:9px 10px;border:1px solid #d9dfe5;border-radius:7px;background:#fff}
.transfer-device-list{max-height:310px;overflow-y:auto;border:1px solid var(--line);border-radius:9px}
.transfer-pill{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eeeaff;color:#5d4bc5;font-size:9px;font-weight:800;white-space:nowrap}
@media(max-width:1180px){.stock-management-grid{grid-template-columns:1fr}.stock-action-card{padding:22px}}
@media(max-width:650px){.stock-action-card{padding:18px}.stock-card-head h2{font-size:20px}.compact-file{grid-template-columns:1fr}.compact-file input{grid-column:1;grid-row:auto;max-width:100%;margin-top:6px}.stock-device-list .device-select-item{grid-template-columns:18px minmax(115px,1fr) 70px}.stock-device-list .device-select-item small{display:none}.stock-record-panel{padding:16px}.stock-device-toolbar{flex-wrap:wrap}.stock-device-toolbar strong{max-width:70%}.class-quantity-banner{grid-template-columns:1fr auto}.transfer-route{grid-template-columns:1fr}.transfer-route b{transform:rotate(90deg)}}

/* barcode scanner */
.scanner-panel{margin-top:16px;padding:14px;border:1px dashed #bdb4ef;border-radius:11px;background:#faf9ff}
.scanner-panel-green{border-color:#9bd8c8;background:#f2faf7}
.scanner-copy{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.scanner-copy strong{font-size:12px;color:#5648ba}
.scanner-panel-green .scanner-copy strong{color:#21856c}
.scanner-copy span{font-size:10px;color:#817b9e;text-align:right}
.scanner-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
.scanner-input-row input{min-width:0;width:100%;padding:11px 12px;border:1px solid #dcd7f5;border-radius:8px;background:#fff;outline:none;font:12px 'DM Mono',monospace;color:#27323d}
.scanner-panel-green .scanner-input-row input{border-color:#c8e7df}
.scanner-input-row input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(114,87,245,.1)}
.scanner-panel-green .scanner-input-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(35,166,129,.1)}
.scanner-input-row .outline{padding:10px 11px;white-space:nowrap}
.scanner-count{min-width:82px;padding:8px 9px;border-radius:7px;background:#eeeaff;color:#5c4bc4;text-align:center;font-size:10px;font-weight:800;transition:.2s}
.scanner-panel-green .scanner-count{background:#dff5ee;color:#23846d}
.scanner-count.scan-success{transform:scale(1.06);background:#d7f5e9;color:#1e896e}
.stock-device-list .device-select-item.scan-hit{animation:scan-hit .8s ease;background:#dff7ee}
@keyframes scan-hit{0%{box-shadow:inset 0 0 0 2px #27aa86}100%{box-shadow:inset 0 0 0 0 transparent}}

/* supplier-grouped device entry */
.device-entry-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.device-entry-overview>div{padding:17px 19px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(43,57,75,.05)}
.device-entry-overview span{display:block;color:var(--muted);font-size:11px}
.device-entry-overview strong{display:inline-block;margin-top:7px;font-size:29px;letter-spacing:-.055em}
.device-entry-overview small{margin-left:5px;color:#8b949e;font-size:11px}
.device-entry-overview .has-warning strong,.device-entry-overview .has-warning small{color:var(--red)}
.device-entry-browser{min-width:0}
.device-entry-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.device-entry-toolbar .search-box{width:min(390px,100%);flex:0 1 390px}
.device-entry-toolbar>span{color:var(--muted);font-size:11px}
.device-supplier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.device-supplier-card{min-width:0;overflow:hidden;border:1px solid #e1e6eb;border-radius:15px;background:#fff;box-shadow:0 9px 25px rgba(42,56,73,.06);transition:.2s}
.device-supplier-card:hover{border-color:#cfc8f7;box-shadow:0 12px 28px rgba(61,51,129,.09)}
.device-supplier-card.expanded{grid-column:1/-1;border-color:#beb3f5;box-shadow:0 15px 35px rgba(74,57,154,.11)}
.device-supplier-summary{width:100%;display:grid;grid-template-columns:minmax(180px,1fr) minmax(230px,1.25fr) 22px;align-items:center;gap:14px;padding:18px;background:linear-gradient(145deg,#fff,#fbfcfe);color:var(--ink);text-align:left}
.device-supplier-identity{display:flex;align-items:center;gap:12px;min-width:0}
.device-supplier-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#8973f8,#6048dd);color:#fff;font-size:17px;font-weight:800;box-shadow:0 7px 17px rgba(104,79,224,.23)}
.device-supplier-identity>div{min-width:0}
.device-supplier-identity h3{margin:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.device-supplier-identity p{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:7px 0 0;color:var(--muted);font-size:9px}
.device-supplier-identity p b{padding:4px 6px;border-radius:5px;background:#eeeaff;color:#5e4fc3}
.device-supplier-identity p em{font-style:normal;font-weight:700}
.device-supplier-identity p .aligned{color:var(--green)}
.device-supplier-identity p .mismatch{color:var(--red)}
.device-supplier-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-left:1px solid #edf0f3}
.device-supplier-count{padding:1px 8px;text-align:center;border-right:1px solid #edf0f3}
.device-supplier-count:last-child{border-right:0}
.device-supplier-count span{display:block;margin-bottom:5px;color:#8b949e;font-size:9px;white-space:nowrap}
.device-supplier-count strong{font-size:18px;letter-spacing:-.04em}
.device-supplier-chevron{font-size:22px;color:#8d96a0;transition:.2s}
.device-supplier-card.expanded .device-supplier-chevron{transform:rotate(180deg);color:var(--violet)}
.device-supplier-detail{padding:18px;border-top:1px solid #e8eaf0;background:#fafbfc}
.device-supplier-filter{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.device-supplier-filter .search-box{flex:1;max-width:390px}
.device-sort-tools{display:flex;align-items:center;gap:5px;white-space:nowrap}
.device-sort-tools>span{color:var(--muted);font-size:10px}
.device-sort-tools .outline{padding:8px 10px;font-size:10px}
.device-sort-tools .outline.active{border-color:var(--violet);background:#eeeaff;color:#5d4bc5}
.supplier-device-table{min-width:0}
.device-entry-table-wrap{overflow-x:auto;border:1px solid #e5e9ed;border-radius:10px;background:#fff}
.device-entry-table-wrap .data-table{min-width:820px}
.device-remark{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-location{display:inline-flex;align-items:center;gap:6px;max-width:210px;padding:6px 9px;border-radius:7px;font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.device-location i{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:currentColor}
.device-location-stock{background:#e9f8f2;color:#1f9577}
.device-location-class{background:#eaf3ff;color:#337fc8}
.supplier-device-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px;color:var(--muted);font-size:11px}
.supplier-device-pagination>div{display:flex;gap:7px}
.supplier-device-pagination button{padding:7px 11px}
.supplier-device-pagination button:disabled{cursor:not-allowed;opacity:.42}

/* administrator settings */
.account-settings-layout{display:grid;grid-template-columns:minmax(620px,1fr) minmax(260px,.38fr);gap:20px;max-width:1220px}
.account-settings-card{padding:28px}
.account-settings-head{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.account-settings-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#eeeaff;color:#5d4bc5;font-size:21px}
.account-settings-head h2{margin:0;font-size:20px}
.account-settings-head p{margin:6px 0 0;color:var(--muted);font-size:11px}
.account-settings-card form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.account-settings-card form .field:first-child,.account-settings-card form .field:nth-child(2){grid-column:1/-1}
.account-settings-card .metric-row{margin-bottom:18px}
.account-settings-card .metric-card{background:#f8f9fb;box-shadow:none}
.account-current-name{font-size:18px!important;letter-spacing:-.03em!important;overflow-wrap:anywhere}
.account-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:11px}
.admin-account-table{min-width:680px;background:#fff}
.admin-account-table td:first-child strong{font-size:13px;color:#34414e}
.admin-account-table .row-actions button:disabled{cursor:not-allowed;opacity:.42;background:#f6f7f8}

/* Mainland-friendly system fonts: no runtime dependency on Google Fonts. */
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif}
.account-save-button{grid-column:1/-1;margin-top:5px}
.account-security-note{align-self:start;padding:25px;border-radius:15px;background:linear-gradient(145deg,#24283a,#191c29);color:#fff;box-shadow:0 14px 35px rgba(23,27,42,.17)}
.account-security-note strong{font-size:16px}
.account-security-note ul{margin:17px 0 0;padding-left:18px;color:#b5bbc9;font-size:11px;line-height:1.8}
.danger{padding:11px 16px;border-radius:9px;background:var(--red);color:#fff;font-weight:800}
.danger-outline{color:var(--red)!important;border-color:#f1c6ca!important}
.danger-outline:hover{background:#fff2f3!important;border-color:var(--red)!important}
.danger-notice{display:flex;flex-direction:column;gap:9px;padding:16px;border:1px solid #f2c8cc;border-radius:10px;background:#fff3f4;color:#a6474f}
.danger-notice strong{font-size:14px}.danger-notice span{font-size:11px;line-height:1.55}

@media(max-width:1200px){.device-supplier-grid{grid-template-columns:1fr}.device-supplier-card.expanded{grid-column:auto}.account-settings-layout{grid-template-columns:1fr}}
@media(max-width:800px){.device-entry-overview{grid-template-columns:repeat(2,1fr)}.device-supplier-summary{grid-template-columns:1fr 22px}.device-supplier-counts{grid-column:1/-1;grid-row:2;border-left:0;border-top:1px solid #edf0f3;padding-top:12px}.device-supplier-chevron{grid-column:2;grid-row:1}.device-supplier-filter{align-items:stretch;flex-direction:column}.device-supplier-filter .search-box{width:100%;max-width:none}.device-supplier-filter .select,.device-supplier-filter .outline,.device-sort-tools .outline{width:100%}.device-sort-tools{align-items:stretch;flex-wrap:wrap}.device-sort-tools>span{width:100%}.account-settings-card form{grid-template-columns:1fr}.account-settings-card form .field{grid-column:1!important}}
@media(max-width:650px){.scanner-copy{align-items:flex-start;flex-direction:column}.scanner-copy span{text-align:left}.scanner-input-row{grid-template-columns:1fr auto}.scanner-count{grid-column:1/-1}.device-entry-toolbar{align-items:flex-start;flex-direction:column}.device-entry-toolbar .search-box{width:100%;flex-basis:auto}.device-supplier-summary{padding:15px}.device-supplier-count span{font-size:8px}.device-supplier-count strong{font-size:16px}.device-supplier-detail{padding:14px}.supplier-device-pagination{align-items:flex-start;flex-direction:column}.account-settings-card{padding:20px}}
