@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/prompt-thai-400-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/prompt-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/prompt-thai-500-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/prompt-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/prompt-thai-600-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/prompt-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/prompt-thai-700-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/prompt-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#f1f5fb;--surface:#fff;--text:#153052;--muted:#71869e;--line:#dbe5f1;--blue:#1768b6;--blue-soft:#e7f1fd;--navy:#071e42;--shadow:0 5px 22px #0d335b09}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Prompt,'Noto Sans Thai',system-ui,sans-serif;font-size:14px}body.dark{--bg:#0a192d;--surface:#102743;--text:#e9f2ff;--muted:#9cb3cc;--line:#294365;--blue:#6cb1ff;--blue-soft:#1c416a;--navy:#05152e;--shadow:0 5px 20px #0002;color-scheme:dark}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:10px 12px;outline-color:var(--blue)}textarea{resize:vertical}label{display:grid;gap:5px;font-size:12px;font-weight:600}label input,label select,label textarea{font-weight:400}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#d8e7fc;padding:20px 12px;position:sticky;top:0;height:100vh}.brand{padding:4px 9px 26px;display:grid;gap:4px}.brand img{width:190px;max-width:100%;background:white;border-radius:10px;padding:4px;margin-bottom:10px}.brand b{font-size:17px;color:#fff}.brand small{color:#99bfea;font-size:9px;letter-spacing:.7px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#c6d8ee;border-radius:10px;font-size:13px}.sidebar nav a span{width:22px;text-align:center;font-size:17px}.sidebar nav a:hover,.sidebar nav a.selected{background:#174477;color:#fff}.workspace{min-width:0}.topbar{height:68px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;gap:12px}.top-logo{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1px}.top-logo img{width:72px;height:38px;object-fit:contain;background:white;border-radius:6px}.top-actions{display:flex;align-items:center;gap:9px}.top-actions select{width:auto;padding:7px;font-size:12px}.user-name{font-size:12px;white-space:nowrap}.icon-btn,.menu-toggle{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;min-width:35px;height:35px}.menu-toggle{display:none}.inline{display:inline}.content{max-width:1470px;margin:auto;padding:28px 30px 80px}.heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.heading h1,.ticket-heading h1{font-size:25px;margin:2px 0 5px}.heading p,.ticket-heading p{margin:0;color:var(--muted);font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:700;color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;background:#1768b6;color:white;border:0;border-radius:9px;padding:10px 16px;font-size:12px;font-weight:700;min-height:39px}.btn:hover{background:#0d539c;color:#fff}.btn.secondary{color:var(--blue);background:var(--blue-soft);border:1px solid var(--line)}.btn.secondary:hover{background:#cfe4fb;color:#135996}.btn.wide{width:100%}.btn.small{padding:6px 10px;min-height:33px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:19px;box-shadow:var(--shadow);margin-bottom:16px}.panel h2{font-size:16px;margin:0 0 16px}.panel p{line-height:1.6}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head a{font-size:11px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:13px;padding:18px;display:grid;gap:10px;box-shadow:var(--shadow)}.stat span{font-size:11px;color:var(--muted)}.stat strong{font-size:28px;line-height:1}.stat.danger{border-left-color:#d95d6b}.stat.warning{border-left-color:#e0a048}.dash-panels,.detail-columns{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;align-items:start}.priority-chart{display:grid;gap:14px}.barline{display:flex;align-items:center;gap:10px;font-size:12px}.barline b{width:28px}.barline span{width:24px;text-align:right}.bar-track{height:10px;background:var(--blue-soft);border-radius:10px;flex:1;overflow:hidden}.bar{height:100%;display:block;background:#448ad4;border-radius:10px}.bar.P1{background:#dc6270}.bar.P2{background:#e3a149}.bar.P3{background:#5f9bdd}.bar.P4{background:#9dbce0}.low-block{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;padding-top:19px;margin-top:24px;font-size:11px}.ticket-list,.tickets-grid{display:grid;gap:10px}.tickets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-card{display:block;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:13px 14px;color:var(--text);min-width:0}.ticket-card:hover{border-color:var(--blue);box-shadow:var(--shadow)}.ticket-card>div:first-child,.ticket-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}.ticket-card>div:first-child b{font-size:11px;color:var(--blue)}.ticket-card strong{display:block;font-size:13px;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-card small{font-size:10px;color:var(--muted)}.ticket-foot{border-top:1px solid var(--line);margin-top:11px;padding-top:9px}.priority,.status{font-size:10px;font-weight:700;border-radius:20px;padding:4px 8px;white-space:nowrap}.priority.P1{background:#ffe6e9;color:#b83950}.priority.P2{background:#fff0da;color:#b97827}.priority.P3{background:#e4effc;color:#2468ad}.priority.P4{background:#e8f3fa;color:#437c9b}.priority.large{font-size:12px;padding:7px 12px}.status{background:var(--blue-soft);color:var(--blue)}.status.paused{background:#fff0da;color:#a36b22}.status.resolved,.status.closed{background:#e5f5ed;color:#19764a}.filter-row{display:flex;gap:8px;overflow:auto;margin:0 0 18px;padding-bottom:5px}.chip{padding:7px 13px;border:1px solid var(--line);background:var(--surface);border-radius:30px;white-space:nowrap;font-size:11px}.chip.active{background:#1768b6;color:#fff;border-color:#1768b6}.ticket-heading{margin-bottom:12px}.ticket-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.back{font-size:11px;font-weight:600}.status-strip{background:var(--blue-soft);border-radius:9px;padding:10px 13px;font-size:12px;font-weight:600;margin:14px 0}.live-dot{width:8px;height:8px;display:inline-block;background:#4b96e0;border-radius:50%;margin-right:5px}.live-dot.pulsing{box-shadow:0 0 0 5px #4b96e02b}.time-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.time-cards>div{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px;display:grid;gap:7px}.time-cards small{font-size:10px;color:var(--muted)}.time-cards strong{font-size:20px;font-variant-numeric:tabular-nums}.action-bar{margin:0 0 15px}.action-inner{display:flex;gap:9px}.action-form{display:flex;gap:8px;flex:1}.action-form select{max-width:200px}.action-form .btn{flex:1}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.meta-grid>div{display:grid;gap:4px}.meta-grid small{font-size:10px;color:var(--muted)}.meta-grid b{font-size:12px}.timeline{border-left:2px solid var(--line);margin:4px 0 0 7px;padding:0 0 0 18px}.timeline>div{position:relative;padding:0 0 20px}.timeline>div:last-child{padding-bottom:0}.timeline i{position:absolute;left:-24px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--blue)}.timeline b{font-size:12px}.timeline p{margin:3px 0;font-size:12px}.timeline small{color:var(--muted);font-size:10px}.detail-columns .panel form{display:grid;gap:10px}.detail-columns form.panel{display:grid;gap:10px}.detail-columns form.panel h2{margin-bottom:3px}.footnote{color:var(--muted);font-size:10px}.form-panel{max-width:850px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid>.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.suggestion{background:var(--blue-soft);padding:12px;border-radius:9px;font-size:12px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.step-grid>div{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:11px}.step-grid b{border-radius:8px;background:var(--blue-soft);color:var(--blue);width:25px;height:25px;display:grid;place-items:center}.muted,.empty{color:var(--muted);font-size:12px}.empty{padding:15px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}td,th{padding:12px 9px;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500}tr:last-child td{border:0}.low{color:#c87b25}details summary{cursor:pointer;color:var(--blue);font-weight:700}details form{margin-top:18px}.line-pair{display:flex;gap:7px}.line-pair input{min-width:145px}.alert{padding:12px 16px;border-radius:9px;background:#e7f5ef;color:#176e48;margin-bottom:15px}.alert.error{background:#ffe7e9;color:#ab3a4b}.login-shell,.setup{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--surface);padding:30px;border-radius:18px;box-shadow:var(--shadow)}.login-card img{width:180px;background:#fff}.login-card h1{margin:14px 0 2px}.login-card p{font-size:12px;color:var(--muted);margin:0 0 20px}.login-card form{display:grid;gap:13px}.setup{display:block;max-width:600px;margin:50px auto}.setup form{display:grid;gap:14px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.dash-panels,.detail-columns{grid-template-columns:1fr}.step-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.shell{display:block}.sidebar{position:fixed;z-index:30;width:235px;transform:translateX(-100%);transition:.2s}.sidebar.show{transform:none}.menu-toggle{display:block}.topbar{height:58px;padding:0 12px}.top-logo img{width:66px;height:34px}.top-logo span,.user-name{display:none}.top-actions{gap:5px}.top-actions select{max-width:80px}.content{padding:16px 14px 90px}.heading{align-items:flex-start}.heading h1,.ticket-heading h1{font-size:21px}.heading .btn{white-space:nowrap;padding:8px 10px;font-size:11px}.stats{gap:9px}.stat{padding:12px}.stat strong{font-size:25px}.tickets-grid{grid-template-columns:1fr}.time-cards{grid-template-columns:1fr 1fr;gap:7px;position:sticky;top:0;background:var(--bg);padding:9px 0;z-index:8}.time-cards>div{padding:9px}.time-cards strong{font-size:16px}.action-bar{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -5px 18px #0002;z-index:20;padding:10px 12px max(10px,env(safe-area-inset-bottom));margin:0}.action-inner{max-width:700px;margin:auto}.action-form{min-width:0}.action-form select{width:47%;padding:8px 3px;font-size:11px}.action-form .btn{padding:8px;min-height:46px}.detail-columns{margin-top:14px}.form-grid{grid-template-columns:1fr}.form-grid>.full{grid-column:auto}.step-grid{gap:7px}.step-grid>div{padding:9px;font-size:10px}}
.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.btn.danger{background:#c43a49;color:#fff}.btn.danger:hover{background:#a92335}.asset-thumb{width:48px;height:48px;object-fit:cover;border-radius:7px;border:1px solid var(--line)}.asset-photo{max-width:420px;max-height:310px;width:100%;object-fit:contain;border-radius:12px;border:1px solid var(--line)}.asset-detail{display:flex;gap:22px;align-items:flex-start}.asset-detail .meta-grid{flex:1;min-width:220px;margin:0;border:0}.label-toolbar{display:flex;gap:12px;margin-bottom:22px}.print-sheet{background:#fff;padding:28px;display:inline-block;border-radius:12px}.asset-label{background:white;color:#102d50;border:1px solid #456381;border-radius:8px;width:400px;min-height:182px;display:flex;justify-content:space-between;gap:12px;padding:12px;align-items:center}.label-info{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:215px}.label-info img{width:112px;height:42px;object-fit:contain;object-position:left center}.label-info strong{font-size:19px;overflow-wrap:anywhere}.label-info span,.label-info small{font-size:10px;overflow-wrap:anywhere}.label-qr canvas{display:block;image-rendering:pixelated}.label-note{margin-top:12px}@media(max-width:720px){.asset-detail{display:block}.asset-detail .meta-grid{margin-top:15px}.print-sheet{max-width:100%;overflow:auto}}@media print{.sidebar,.topbar,.label-toolbar,.label-note,.alert{display:none!important}.shell{display:block}.content{padding:0;margin:0;max-width:none}.print-sheet{padding:0}.asset-label{break-inside:avoid}body,body.dark{background:#fff!important;color:#102d50!important}}
.priority-info{width:22px;height:22px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:700;line-height:1;padding:0}.priority-info:hover,.priority-info:focus-visible{background:var(--blue);color:#fff}.priority-dialog{max-width:min(420px,calc(100vw - 32px));width:100%;border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--surface);color:var(--text);box-shadow:0 22px 65px #0006}.priority-dialog::backdrop{background:#06182bb8}.priority-dialog-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.priority-dialog-head h2{margin:0;font-size:18px}.priority-dialog p{white-space:normal;font-size:13px;line-height:1.7}.priority-example{background:var(--blue-soft);border-radius:10px;padding:13px;margin:18px 0}.priority-example p{margin:5px 0 0}
.role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.role-grid>div{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:7px}.role-grid b{font-size:12px}.role-grid small{color:var(--muted);font-size:11px;line-height:1.5}.user-state{display:inline-block;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:700}.user-state.enabled{background:#e4f5ee;color:#19764a}.user-state.disabled{background:#ffe7e9;color:#ab3a4b}.user-edit-list details:target{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.user-edit-list details:target:not([open]){background:var(--blue-soft)}.user-edit-list summary .muted{font-weight:400}@media(max-width:950px){.role-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.role-grid{grid-template-columns:1fr}}
.line-link-panel{max-width:700px}.link-steps{display:grid;gap:14px;margin:15px 0 20px}.link-steps>div{display:flex;gap:12px;align-items:center}.link-steps b{width:30px;height:30px;flex:none;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);border-radius:50%}.link-steps span{line-height:1.6}.link-code{background:var(--blue-soft);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px;display:grid;gap:8px}.link-code strong{font-size:clamp(18px,4vw,28px);letter-spacing:1px;overflow-wrap:anywhere}.link-code small{font-size:11px;color:var(--muted)}.line-connected{color:#19764a;font-weight:700;font-size:18px}
.report-filter{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto;gap:12px;align-items:end;margin-bottom:20px}.report-filter .btn{white-space:nowrap}.report-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.report-time{font-size:clamp(16px,2vw,25px)!important;white-space:nowrap}.report-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.report-panels .panel{min-width:0}.report-panels h2{margin:0 0 10px}.report-panels .muted{margin:0 0 15px}.report-trend,.report-bars{display:grid;gap:9px}.report-trend-row,.report-bars>div{display:grid;grid-template-columns:100px minmax(0,1fr) 36px;gap:10px;align-items:center;font-size:12px}.report-trend-row>div,.report-bars>div>div{height:9px;background:var(--blue-soft);border-radius:20px;overflow:hidden}.report-trend-row i,.report-bars i{display:block;height:100%;border-radius:20px;background:var(--blue);min-width:0}.report-trend-row b,.report-bars b{text-align:right}.report-bars i.P1{background:#dd4b5a}.report-bars i.P2{background:#ec9a41}.report-bars i.P3{background:#5b9de6}.report-bars i.P4{background:#69ba9b}.report-subtitle{margin-top:22px!important}.report-metrics{display:grid;gap:10px;margin:15px 0}.report-metrics>div{display:flex;justify-content:space-between;gap:10px;padding:13px;background:var(--blue-soft);border-radius:10px}.report-metrics b{text-align:right}@media(max-width:1100px){.report-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.report-filter .btn{align-self:end}}@media(max-width:760px){.report-panels{grid-template-columns:1fr}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.report-filter{grid-template-columns:1fr}.report-trend-row,.report-bars>div{grid-template-columns:82px minmax(0,1fr) 26px;gap:6px;font-size:11px}.report-stats{gap:9px}.report-time{white-space:normal}}
.report-trend-row progress,.report-bars progress{display:block;width:100%;height:9px;border:0;border-radius:20px;background:var(--blue-soft);overflow:hidden;accent-color:var(--blue)}.report-trend-row progress::-webkit-progress-bar,.report-bars progress::-webkit-progress-bar{background:var(--blue-soft)}.report-trend-row progress::-webkit-progress-value,.report-bars progress::-webkit-progress-value{background:var(--blue);border-radius:20px}.report-trend-row progress::-moz-progress-bar,.report-bars progress::-moz-progress-bar{background:var(--blue);border-radius:20px}.report-bars progress.P1{accent-color:#dd4b5a}.report-bars progress.P2{accent-color:#ec9a41}.report-bars progress.P3{accent-color:#5b9de6}.report-bars progress.P4{accent-color:#69ba9b}.report-bars progress.P1::-webkit-progress-value{background:#dd4b5a}.report-bars progress.P2::-webkit-progress-value{background:#ec9a41}.report-bars progress.P3::-webkit-progress-value{background:#5b9de6}.report-bars progress.P4::-webkit-progress-value{background:#69ba9b}.report-bars progress.P1::-moz-progress-bar{background:#dd4b5a}.report-bars progress.P2::-moz-progress-bar{background:#ec9a41}.report-bars progress.P3::-moz-progress-bar{background:#5b9de6}.report-bars progress.P4::-moz-progress-bar{background:#69ba9b}
.passkey-divider{text-align:center;color:var(--muted);margin:18px 0 12px}.passkey-message{padding:11px 13px;border-radius:9px;background:var(--blue-soft);color:var(--text);font-size:12px;line-height:1.6}.passkey-panel{max-width:850px}.passkey-panel h2:not(:first-child){margin-top:28px}.passkey-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:18px 0}.passkey-fields .btn{white-space:nowrap}.passkey-list{display:grid;gap:9px;margin:14px 0 18px}.passkey-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.passkey-list strong{display:block}.passkey-list small{display:block;color:var(--muted);margin-top:3px}@media(max-width:720px){.passkey-fields{grid-template-columns:1fr}.passkey-list>div{align-items:flex-start}.passkey-list .btn{flex:none}}
[hidden]{display:none!important}.line-external-link{margin-top:14px;justify-content:center}.line-external-note{font-size:12px;line-height:1.6;color:var(--muted);margin:10px 0 0;text-align:center}

/* V1.0.17 Helpdesk workflow guidance */
.ticket-tools{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 15px}.ticket-tools label{width:min(450px,100%)}.ticket-tools span{font-size:12px;color:var(--muted);padding-bottom:10px;white-space:nowrap}.helpdesk-guide summary,.workflow-more summary{cursor:pointer;color:var(--blue);font-weight:700}.helpdesk-guide summary span{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px}.guide-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:17px}.guide-item{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.guide-item b{font-size:12px}.guide-item p{font-size:11px;line-height:1.5;margin:7px 0}.guide-item small{color:var(--blue);font-size:10px}.helpdesk-progress{padding:20px;margin:14px 0 18px}.guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.guide-head small{font-size:10px;letter-spacing:.09em;color:var(--blue);font-weight:700}.guide-head h2{margin:5px 0 7px;font-size:22px}.guide-head p{margin:0;color:var(--muted);font-size:13px}.guide-stage{color:var(--blue);background:var(--blue-soft);border-radius:20px;padding:7px 11px;font-size:11px;font-weight:700;white-space:nowrap}.workflow-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;list-style:none;padding:0;margin:22px 0}.workflow-steps li{min-width:0;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:9px;background:var(--bg);color:var(--muted)}.workflow-steps li span{display:grid;place-items:center;border-radius:50%;width:25px;height:25px;flex:none;background:var(--line);font-size:11px;font-weight:700}.workflow-steps li b{font-size:11px;line-height:1.35}.workflow-steps li.done{color:var(--text)}.workflow-steps li.done span{background:#d9f4e7;color:#166f4a}.workflow-steps li.current{border-color:var(--blue);background:var(--blue-soft);color:var(--text)}.workflow-steps li.current span{background:#1768b6;color:#fff}.next-action{display:flex;align-items:center;gap:10px;background:var(--blue-soft);border-radius:10px;padding:11px 14px;font-size:12px}.next-action strong{color:var(--blue);white-space:nowrap}.next-action small{color:#aa6327;margin-left:auto}.workflow-more{margin-top:13px}.action-hint{display:block;font-size:10px;color:var(--muted);font-weight:700;margin-bottom:6px}.ticket-card[hidden]{display:none!important}
@media(max-width:1050px){.guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.ticket-tools{align-items:stretch;flex-direction:column;gap:4px}.ticket-tools label{width:100%}.ticket-tools span{padding:0}.guide-list{grid-template-columns:1fr}.helpdesk-progress{padding:15px}.guide-head h2{font-size:19px}.guide-stage{display:none}.workflow-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:15px 0}.workflow-steps li{padding:6px 5px;display:grid;justify-items:center;text-align:center}.workflow-steps li span{width:22px;height:22px}.workflow-steps li b{font-size:10px}.next-action{display:grid;gap:4px}.next-action small{margin:0}.time-cards{position:static}.action-bar{padding-bottom:max(10px,env(safe-area-inset-bottom))}.action-hint{margin-bottom:4px}.content:has(.action-bar){padding-bottom:145px}}

/* V1.0.18: visible ownership and deliberate handoff */
.takeover-notice{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 12px;margin-bottom:9px;border-radius:9px;background:var(--blue-soft);font-size:12px}.takeover-notice b{color:var(--blue)}.takeover-form{display:flex;align-items:end;gap:10px}.takeover-form label{flex:1;min-width:220px}.takeover-form .btn{min-height:42px;white-space:nowrap}
@media(max-width:720px){.takeover-form{display:grid;gap:6px}.takeover-form label{min-width:0}.takeover-form .btn{width:100%}.takeover-notice{font-size:11px}.content:has(.takeover-form){padding-bottom:240px}}

/* V1.0.19 ticket table, date filters and pagination */
.ticket-filter-form{display:grid;grid-template-columns:minmax(180px,1.7fr) repeat(3,minmax(92px,.55fr)) minmax(175px,1.15fr) auto auto;gap:10px;align-items:end;margin-bottom:15px}.ticket-filter-form label{min-width:0}.ticket-filter-form .btn{white-space:nowrap;min-height:41px}.ticket-table-panel{padding:0;overflow:hidden}.ticket-table-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 19px;border-bottom:1px solid var(--line)}.ticket-table-head h2{margin:0}.ticket-table-head span{font-size:11px;color:var(--muted)}.ticket-data-table{min-width:900px;width:100%;border-collapse:collapse}.ticket-data-table th{background:var(--blue-soft);text-align:left;font-size:11px;color:var(--text);padding:12px 14px;white-space:nowrap}.ticket-data-table th a{color:var(--blue)}.ticket-data-table td{padding:14px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:top}.ticket-data-table tr:last-child td{border-bottom:0}.ticket-data-table tbody tr:hover{background:var(--blue-soft)}.ticket-data-table td:nth-child(2){min-width:190px;max-width:370px;overflow-wrap:anywhere}.ticket-data-table td:nth-child(7){white-space:nowrap}.ticket-no-link{font-weight:700;white-space:nowrap}.ticket-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin:17px 0}.ticket-pagination span{font-size:12px;color:var(--muted)}
@media(max-width:1300px){.ticket-filter-form{grid-template-columns:repeat(4,minmax(0,1fr))}.ticket-filter-form label:first-of-type{grid-column:span 2}.ticket-filter-form label:last-of-type{grid-column:span 2}}
@media(max-width:720px){.ticket-filter-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:13px}.ticket-filter-form label:first-of-type,.ticket-filter-form label:last-of-type{grid-column:1/-1}.ticket-filter-form .btn{grid-column:span 1;padding:8px}.ticket-filter-form .btn.secondary{grid-column:span 2}.ticket-data-table{min-width:850px}.ticket-table-head{padding:12px}.ticket-table-head h2{font-size:14px}.ticket-pagination .btn{padding:9px 11px}}

/* V1.0.20 Spare Parts */
.parts-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin:0 0 16px}.parts-overview>div{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px 18px;box-shadow:var(--shadow)}.parts-overview small{display:block;color:var(--muted);font-size:11px}.parts-overview strong{display:block;color:var(--text);font-size:25px;margin-top:8px;line-height:1}.parts-overview .is-low{border-color:#e5a461;background:#fff8ed}.parts-overview .is-low strong{color:#a75e19}.parts-guide summary{font-weight:700;color:var(--blue);cursor:pointer}.parts-guide summary small{font-weight:400;color:var(--muted);margin-left:7px}.parts-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.parts-guide-grid>div{border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:12px}.parts-guide-grid b{font-size:12px}.parts-guide-grid p{font-size:11px;margin:7px 0 0;color:var(--muted)}.parts-guide-note{background:var(--blue-soft);padding:12px;border-radius:8px;font-size:11px;margin:14px 0 0}.parts-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;align-items:start}.parts-actions summary{font-weight:700;color:var(--blue);cursor:pointer}.parts-actions details form{margin-top:16px}.parts-actions .form-grid{gap:12px}.stock-preview{background:var(--blue-soft);border-radius:9px;padding:12px;font-size:12px;font-weight:600}.stock-preview.warning{background:#fff0de;color:#9b541d}.parts-list-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.parts-list-head h2{margin-bottom:6px}.parts-list-head p{font-size:11px;margin:0 0 14px}.parts-list-head>span{white-space:nowrap;font-weight:700;color:var(--blue);background:var(--blue-soft);border-radius:20px;padding:5px 10px}.parts-filter{display:flex;align-items:end;gap:15px;margin:0 0 16px}.parts-filter>label:first-child{width:min(420px,100%)}.parts-check{display:flex;align-items:center;gap:7px;padding-bottom:10px;white-space:nowrap}.parts-check input{width:18px;height:18px;accent-color:#1768b6}.parts-table,.parts-history-table{border-collapse:collapse;width:100%;min-width:850px}.parts-table th,.parts-history-table th{text-align:left;color:var(--muted);font-size:11px;padding:12px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}.parts-table td,.parts-history-table td{padding:13px 10px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}.parts-table tr:last-child td,.parts-history-table tr:last-child td{border-bottom:0}.parts-table tbody tr:hover,.parts-history-table tbody tr:hover{background:var(--blue-soft)}.parts-table td:first-child{min-width:170px}.parts-table td:first-child strong{display:block;color:var(--blue);margin-bottom:4px}.parts-table td:first-child span{display:block;line-height:1.45}.available-count{color:#16764d}.available-count.low{color:#a75e19}.stock-alert{display:inline-block;border-radius:15px;padding:3px 7px;background:#fff0de;color:#a65e1e;font-weight:700;margin-left:6px;white-space:nowrap}.part-price-edit{min-width:94px}.part-price-edit summary{color:var(--blue);cursor:pointer;font-weight:700;white-space:nowrap}.part-price-form{display:grid;gap:7px;margin-top:8px}.part-price-form label{font-size:10px}.part-price-form input{min-width:115px}.part-price-form .btn{width:100%}.parts-row[hidden]{display:none!important}
@media(max-width:1050px){.parts-overview{grid-template-columns:repeat(3,1fr)}.parts-guide-grid{grid-template-columns:repeat(2,1fr)}.parts-actions{grid-template-columns:1fr}}
@media(max-width:720px){.parts-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.parts-overview>div{padding:12px}.parts-overview strong{font-size:21px}.parts-overview>div:last-child{grid-column:1/-1}.parts-guide-grid{grid-template-columns:1fr}.parts-filter{display:grid;gap:5px}.parts-filter>label:first-child{width:100%}.parts-check{padding:4px 0 0}.parts-list-head{align-items:center}.parts-list-head>span{font-size:11px}.parts-list .table-scroll,.parts-history .table-scroll{overflow:visible}.parts-table,.parts-history-table{min-width:0;display:block}.parts-table thead,.parts-history-table thead{display:none}.parts-table tbody,.parts-history-table tbody{display:grid;gap:10px}.parts-table tr,.parts-history-table tr{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;box-shadow:var(--shadow)}.parts-table td,.parts-history-table td{display:flex;justify-content:space-between;align-items:start;gap:15px;padding:8px 0;border-bottom:1px solid var(--line);text-align:right;min-width:0}.parts-table td::before,.parts-history-table td::before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:600;text-align:left;max-width:45%}.parts-table td:first-child{display:block;text-align:left;min-width:0}.parts-table td:first-child::before{display:none}.parts-table td:first-child strong{font-size:14px}.parts-table td:first-child span{font-size:12px}.parts-table td:last-child,.parts-history-table td:last-child{border-bottom:0}.parts-table td.parts-edit-cell{display:block;text-align:left}.parts-table td.parts-edit-cell::before{display:none}.part-price-edit summary{display:inline-block;background:var(--blue-soft);padding:8px 12px;border-radius:8px}.part-price-form{grid-template-columns:1fr auto;align-items:end}.part-price-form input{min-width:0}.part-price-form .btn{width:auto}.parts-history-table tr:has(td[colspan]) td{display:block;text-align:center}.parts-history-table tr:has(td[colspan]) td::before{display:none}}
/* V1.0.21 cost reporting */
.report-cost-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.report-cost-stats .stat{min-width:0}.report-cost-stats strong{font-size:clamp(19px,2.1vw,30px);overflow-wrap:anywhere}.report-cost-stats small{display:block;color:var(--muted);margin-top:5px}.report-cost-panel{margin:18px 0}.report-cost-chart{display:grid;gap:13px;margin:20px 0}.report-cost-row{display:grid;grid-template-columns:76px minmax(0,1fr) 130px;align-items:center;gap:12px}.report-cost-row time{color:var(--muted)}.report-cost-row b{text-align:right;white-space:nowrap}.report-cost-track{height:22px;display:flex;background:var(--blue-soft);border-radius:7px;overflow:hidden}.report-cost-track span{height:100%;display:block}.report-cost-service,.legend-service{background:#236bb2}.report-cost-parts,.legend-parts{background:#36b8bb}.report-cost-legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px}.report-cost-legend span{display:inline-block;width:13px;height:13px;border-radius:3px;margin-left:12px}.report-cost-legend span:first-child{margin-left:0}.report-cost-note{margin:12px 0 0}.report-cost-warning{border:1px solid #efc57f;background:#fff5df;color:#6f4605;border-radius:10px;padding:12px 15px}.report-cost-table .money{text-align:right;white-space:nowrap}.report-cost-table .unpriced{display:block;color:#98660b}.report-pages{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
@media(max-width:850px){.report-cost-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.report-cost-row{grid-template-columns:64px minmax(0,1fr);gap:7px}.report-cost-row b{grid-column:2;text-align:left;font-size:12px}.report-cost-stats{gap:9px}.report-cost-stats strong{font-size:19px}.report-cost-table{min-width:800px}}

/* V1.0.22 vertical monthly expense columns */
.report-cost-scroll{overflow-x:auto;overscroll-behavior-inline:contain;padding:8px 4px 12px;margin:8px 0}.report-cost-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.report-cost-columns{display:flex;align-items:flex-end;gap:18px;min-height:296px;min-width:max-content;border-bottom:1px solid #d5e2f1}.report-cost-column{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:104px;min-width:104px;height:296px}.report-cost-value{font-size:12px;white-space:nowrap;text-align:center;margin-bottom:7px}.report-cost-plot{height:230px;width:100%;display:flex;align-items:flex-end;justify-content:center;background:repeating-linear-gradient(to top,transparent 0,transparent 56px,#e9eff8 57px,#e9eff8 58px)}.report-cost-column-bar{width:58px;display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:7px 7px 0 0;min-height:0}.report-cost-column-bar span{display:block;width:100%;flex:none}.report-cost-service{background:#236bb2}.report-cost-parts{background:#36b8bb}.report-cost-column time{font-size:12px;color:var(--muted);height:28px;padding-top:7px}.report-cost-columns .empty{align-self:center;min-width:min(80vw,500px)}
@media(max-width:520px){.report-cost-columns{gap:12px}.report-cost-column{width:84px;min-width:84px}.report-cost-column-bar{width:48px}.report-cost-value{font-size:11px}}

/* V1.0.23: explicit SVG bars avoid percentage-height collapse in flex layouts */
.report-cost-svg{display:block;width:62px;height:210px;overflow:visible;flex:none}.report-cost-plot{align-items:flex-end}.report-cost-column-bar{display:none}
@media(max-width:520px){.report-cost-svg{width:52px;height:210px}}
/* V1.0.24 dashboard stock overview */
.dashboard-stock .panel-head{align-items:flex-start;margin-bottom:16px}.dashboard-stock .panel-head h2{margin:4px 0 4px;font-size:19px}.dashboard-stock .panel-head p{margin:0}.dashboard-stock-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.45fr);gap:22px;align-items:start}.dashboard-stock-graph{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.stock-graph-row{display:grid;grid-template-columns:minmax(112px,155px) minmax(0,1fr) 28px;gap:12px;align-items:center}.stock-graph-label{display:flex;align-items:center;gap:7px;min-width:0;font-size:12px}.stock-graph-label b{font-weight:600}.stock-dot{width:10px;height:10px;flex:none;border-radius:50%}.stock-dot.critical,.stock-pill.critical{background:#d84355}.stock-dot.reorder,.stock-pill.reorder{background:#e6982e}.stock-dot.watch,.stock-pill.watch{background:#d6b335}.stock-dot.healthy,.stock-pill.healthy{background:#269b6d}.stock-graph-row>strong{text-align:right;font-variant-numeric:tabular-nums}.stock-graph-row progress,.priority-progress{appearance:none;-webkit-appearance:none;width:100%;height:14px;border:0;border-radius:20px;overflow:hidden;background:var(--blue-soft)}.stock-graph-row progress::-webkit-progress-bar,.priority-progress::-webkit-progress-bar{background:var(--blue-soft);border-radius:20px}.stock-graph-row progress::-webkit-progress-value{background:#269b6d;border-radius:20px}.stock-graph-row progress::-moz-progress-bar{background:#269b6d;border-radius:20px}.stock-graph-row progress.critical::-webkit-progress-value{background:#d84355}.stock-graph-row progress.critical::-moz-progress-bar{background:#d84355}.stock-graph-row progress.reorder::-webkit-progress-value{background:#e6982e}.stock-graph-row progress.reorder::-moz-progress-bar{background:#e6982e}.stock-graph-row progress.watch::-webkit-progress-value{background:#d6b335}.stock-graph-row progress.watch::-moz-progress-bar{background:#d6b335}.stock-graph-row progress.healthy::-webkit-progress-value{background:#269b6d}.stock-graph-row progress.healthy::-moz-progress-bar{background:#269b6d}.stock-graph-row progress.critical{accent-color:#d84355}.stock-graph-row progress.reorder{accent-color:#e6982e}.stock-graph-row progress.watch{accent-color:#d6b335}.stock-graph-row progress.healthy{accent-color:#269b6d}.stock-graph-caption{font-size:11px;color:var(--muted);margin:2px 0 0}.dashboard-stock-alerts h3{font-size:13px;margin:0 0 10px}.stock-attention{border:1px solid var(--line);border-left:4px solid #269b6d;background:var(--surface);border-radius:10px;padding:9px 12px;margin-bottom:8px}.stock-attention.critical{border-left-color:#d84355}.stock-attention.reorder{border-left-color:#e6982e}.stock-attention.watch{border-left-color:#d6b335}.stock-attention-top,.stock-attention-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.stock-attention-top>div{display:flex;gap:8px;align-items:baseline;min-width:0}.stock-attention-top strong{color:var(--blue);font-size:12px;white-space:nowrap}.stock-attention-top span:not(.stock-pill){font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-pill{color:#fff;border-radius:20px;font-size:10px;white-space:nowrap;padding:3px 8px}.stock-attention-bottom{margin-top:9px}.stock-level{width:35%;max-width:140px;height:8px;background:var(--blue-soft);border-radius:8px;overflow:hidden;flex:none}.stock-level i{display:block;height:100%;background:#269b6d}.stock-level i.critical{background:#d84355}.stock-level i.reorder{background:#e6982e}.stock-level i.watch{background:#d6b335}.stock-attention-bottom small{color:var(--muted);text-align:right;font-size:10px}.stock-attention-bottom b{color:var(--text)}.stock-all-good{color:#16815a;background:#e8f7ef;padding:14px;border-radius:10px}.stock-legend-note{color:var(--muted);font-size:10px;margin:13px 0 0}.priority-progress{flex:1;height:10px}.priority-progress.P1{accent-color:#dc6270}.priority-progress.P2{accent-color:#e3a149}.priority-progress.P3{accent-color:#5f9bdd}.priority-progress.P4{accent-color:#9dbce0}.priority-progress.P1::-webkit-progress-value{background:#dc6270}.priority-progress.P1::-moz-progress-bar{background:#dc6270}.priority-progress.P2::-webkit-progress-value{background:#e3a149}.priority-progress.P2::-moz-progress-bar{background:#e3a149}.priority-progress.P3::-webkit-progress-value{background:#5f9bdd}.priority-progress.P3::-moz-progress-bar{background:#5f9bdd}.priority-progress.P4::-webkit-progress-value{background:#9dbce0}.priority-progress.P4::-moz-progress-bar{background:#9dbce0}
@media(max-width:1100px){.dashboard-stock-layout{grid-template-columns:1fr}}@media(max-width:720px){.dashboard-stock .panel-head{display:grid;gap:10px}.dashboard-stock .panel-head .btn{width:100%}.dashboard-stock-graph{padding:12px;gap:11px}.stock-graph-row{grid-template-columns:minmax(95px,125px) minmax(0,1fr) 24px;gap:7px}.stock-graph-label{font-size:11px}.stock-attention-top>div{display:grid;gap:0}.stock-attention-bottom{align-items:flex-start;display:grid}.stock-level{width:100%;max-width:none}.stock-attention-bottom small{text-align:left}}
/* V1.0.25 home-screen installation guide */
.pwa-install-guide{padding:12px 16px;border-left:4px solid var(--blue);margin-top:-4px}.pwa-install-guide summary{font-size:12px}.pwa-install-content{padding:12px 0 2px}.pwa-install-content p{font-size:11px;margin:8px 0}.pwa-install-content .btn{margin:0 0 8px}.pwa-install-content [hidden]{display:none!important}@media(min-width:721px){.pwa-install-guide{max-width:650px}}
/* V1.0.26 Fixed Asset history */
.asset-status{font-size:10px;font-weight:700;border-radius:20px;padding:4px 9px;white-space:nowrap;background:#e5f5ed;color:#19764a}.asset-status.spare{background:var(--blue-soft);color:var(--blue)}.asset-status.repair{background:#fff0da;color:#a36b22}.asset-status.retired{background:#eceff3;color:#66768a}
.asset-history-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0 18px}.asset-history-stats>div{border:1px solid var(--line);border-radius:11px;padding:12px;display:grid;gap:6px}.asset-history-stats small{font-size:10px;color:var(--muted)}.asset-history-stats strong{font-size:18px;font-variant-numeric:tabular-nums}
#history h3{font-size:13px;margin:4px 0 12px}#history .table-scroll+h3{margin-top:22px}#history td .muted{font-size:10px}
.asset-timeline .history-note{background:var(--blue-soft);border-radius:8px;padding:7px 10px}.asset-timeline .ev-transfer>i{background:#7a5bd1}.asset-timeline .ev-status>i,.asset-timeline .ev-repair>i{background:#e0a048}.asset-timeline .ev-maintenance>i,.asset-timeline .ev-upgrade>i,.asset-timeline .ev-audit>i{background:#2f9a68}.asset-timeline .ev-created>i,.asset-timeline .ev-baseline>i{background:var(--navy);box-shadow:0 0 0 2px var(--blue)}
.history-add{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
.history-filter{display:grid;grid-template-columns:2fr 1.3fr 1fr 1fr auto;gap:12px;align-items:end}.history-filter-actions{display:flex;gap:8px}
.history-table td.wrap{white-space:normal;min-width:260px;line-height:1.6}.history-type{font-size:10px;font-weight:700;border-radius:20px;padding:4px 9px;background:var(--blue-soft);color:var(--blue);white-space:nowrap}.history-type.ev-transfer{background:#efe9fd;color:#5b3fb0}.history-type.ev-status,.history-type.ev-repair{background:#fff0da;color:#a36b22}.history-type.ev-maintenance,.history-type.ev-upgrade,.history-type.ev-audit{background:#e5f5ed;color:#19764a}
body.dark .asset-status{background:#173f2e;color:#8fe0b7}body.dark .asset-status.repair,body.dark .history-type.ev-status,body.dark .history-type.ev-repair{background:#4a3612;color:#ffd08a}body.dark .asset-status.retired{background:#2b3a4e;color:#b5c3d4}body.dark .history-type.ev-transfer{background:#33285a;color:#cbbaff}body.dark .history-type.ev-maintenance,body.dark .history-type.ev-upgrade,body.dark .history-type.ev-audit{background:#173f2e;color:#8fe0b7}
@media(max-width:900px){.asset-history-stats{grid-template-columns:1fr 1fr}.history-filter{grid-template-columns:1fr 1fr}.history-filter-actions{grid-column:1/-1}}

/* V1.0.27 */
.timeline small{display:block;margin-top:2px}.stock-level i.fill-0{width:0%}.stock-level i.fill-5{width:5%}.stock-level i.fill-10{width:10%}.stock-level i.fill-15{width:15%}.stock-level i.fill-20{width:20%}.stock-level i.fill-25{width:25%}.stock-level i.fill-30{width:30%}.stock-level i.fill-35{width:35%}.stock-level i.fill-40{width:40%}.stock-level i.fill-45{width:45%}.stock-level i.fill-50{width:50%}.stock-level i.fill-55{width:55%}.stock-level i.fill-60{width:60%}.stock-level i.fill-65{width:65%}.stock-level i.fill-70{width:70%}.stock-level i.fill-75{width:75%}.stock-level i.fill-80{width:80%}.stock-level i.fill-85{width:85%}.stock-level i.fill-90{width:90%}.stock-level i.fill-95{width:95%}.stock-level i.fill-100{width:100%}
.health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.health-grid>div{border:1px solid var(--line);border-left:4px solid #269b6d;border-radius:11px;padding:12px;display:grid;gap:4px}.health-grid>div.warn{border-left-color:#e0a048}.health-grid>div.bad{border-left-color:#d95d6b}.health-grid small,.health-grid span{font-size:10px;color:var(--muted)}.health-grid b{font-size:16px}.cron-cmd{background:var(--blue-soft);padding:10px 12px;border-radius:9px;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:720px){.health-grid{grid-template-columns:1fr}}
.btn.is-busy{opacity:.6;cursor:progress}
/* V1.0.28 helpdesk: SLA + attachments */
.stats.five{grid-template-columns:repeat(5,1fr)}a.stat{color:var(--text)}a.stat:hover{box-shadow:0 0 0 2px #d95d6b33}.sla-stat.alerting strong{color:#c43a49}
.sla-badge{font-size:10px;font-weight:700;border-radius:20px;padding:4px 8px;white-space:nowrap}.sla-badge.breach{background:#c43a49;color:#fff}.sla-badge.warn{background:#fff0da;color:#a36b22}.sla-badge.late{background:#ffe7e9;color:#ab3a4b}
.ticket-foot{flex-wrap:wrap}
.sla-panel .panel-head small{font-size:10px}.sla-legs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sla-leg{border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:11px;padding:12px;display:grid;gap:5px}.sla-leg small,.sla-leg span{font-size:10px;color:var(--muted)}.sla-leg b{font-size:14px}.sla-leg.met{border-left-color:#269b6d}.sla-leg.met b{color:#19764a}.sla-leg.warn{border-left-color:#e0a048}.sla-leg.warn b{color:#a36b22}.sla-leg.breach,.sla-leg.late{border-left-color:#d95d6b}.sla-leg.breach b,.sla-leg.late b{color:#c43a49}.sla-leg.paused{border-left-color:#9aaabb}
.timeline .tev-sla_breach>i{background:#c43a49}.timeline .tev-sla_warn>i{background:#e0a048}.timeline .tev-attachment>i{background:#7a5bd1}
.attach-input{gap:7px}.attach-input input[type=file]{padding:9px;background:var(--blue-soft)}.attach-preview{font-weight:400;color:var(--muted);white-space:pre-line;font-size:11px}
.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:16px}.attach-item{margin:0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--surface)}.attach-item>a{display:block;aspect-ratio:4/3;background:var(--blue-soft)}.attach-item img{width:100%;height:100%;object-fit:cover;display:block}.attach-pdf{display:grid;place-items:center;height:100%;font-weight:800;font-size:22px;color:#c43a49}
.attach-item figcaption{padding:8px;display:grid;gap:3px;font-size:11px}.attach-item figcaption span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-item figcaption small{color:var(--muted);font-size:10px}.link-danger{background:none;border:0;padding:0;color:#c43a49;font-size:11px;font-weight:700;justify-self:start}
.attach-form{display:grid;gap:10px}.close-notice h2{margin-bottom:6px}.sla-filter-note a{font-weight:700}
.settings-form table input{max-width:140px}.settings-form .form-grid{margin-top:16px}.report-sla .stat small.sla-sev{font-size:12px;line-height:1.8}.report-sla .stats{margin-bottom:0}
body.dark .sla-badge.warn{background:#4a3612;color:#ffd08a}body.dark .sla-badge.late{background:#4a1f27;color:#ffb3bd}
@media(max-width:1050px){.stats.five{grid-template-columns:repeat(2,1fr)}.stats.five>.sla-stat{grid-column:1/-1}}@media(max-width:720px){.sla-legs{grid-template-columns:1fr}}
/* V1.0.29 asset + stock */
.w-badge{font-size:10px;font-weight:700;border-radius:20px;padding:3px 8px;white-space:nowrap;margin-left:4px}.w-badge.expired{background:#c43a49;color:#fff}.w-badge.urgent{background:#ffe7e9;color:#ab3a4b}.w-badge.soon{background:#fff0da;color:#a36b22}
.asset-filter{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end}.asset-count{margin:0 0 6px}
.dashboard-warranty .warranty-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 14px}.warranty-counts>*{border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:11px;padding:11px;display:grid;gap:3px;color:var(--text)}.warranty-counts b{font-size:22px}.warranty-counts small{font-size:10px;color:var(--muted)}.warranty-counts .expired{border-left-color:#c43a49}.warranty-counts .urgent{border-left-color:#d95d6b}.warranty-counts .soon{border-left-color:#e0a048}
.warranty-list{display:grid;gap:8px}.warranty-list a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--text);font-size:12px}.warranty-list a:hover{border-color:var(--blue)}.warranty-list strong{color:var(--blue)}.warranty-list span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warranty-list em{font-style:normal;white-space:nowrap}
.import-guide code{background:var(--blue-soft);padding:2px 6px;border-radius:5px;font-size:11px}.import-guide td{white-space:normal}
.import-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:6px 0 14px}.import-summary>div{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:2px}.import-summary b{font-size:20px}.import-summary small{font-size:10px;color:var(--muted)}.import-summary .create b{color:#19764a}.import-summary .update b{color:var(--blue)}.import-summary .error b{color:#c43a49}
.imp-badge{font-size:10px;font-weight:700;border-radius:20px;padding:3px 8px;background:var(--blue-soft);color:var(--blue)}.imp-badge.create{background:#e5f5ed;color:#19764a}.imp-badge.error{background:#c43a49;color:#fff}.imp-badge.skip,.imp-badge.same{background:#eceff3;color:#66768a}.import-table tr.imp-error td{background:#fff5f6}body.dark .import-table tr.imp-error td{background:#3a1d24}
.wrap-cell{white-space:normal!important;min-width:220px;line-height:1.55}
.part-inactive{opacity:.55}.part-off{font-size:9px;font-weight:700;background:#eceff3;color:#66768a;border-radius:10px;padding:2px 6px}.part-edit-form{display:grid;gap:8px;min-width:240px}
.count-note{max-width:420px;margin-bottom:14px}.count-table input{width:110px}.count-diff{font-weight:700;font-variant-numeric:tabular-nums}.count-diff.plus{color:#19764a}.count-diff.minus{color:#c43a49}.count-diff.zero{color:var(--muted)}.stock-count-form .form-actions{align-items:center}
@media(max-width:720px){.asset-filter,.import-summary{grid-template-columns:1fr 1fr}.dashboard-warranty .warranty-counts{grid-template-columns:1fr 1fr 1fr}.warranty-list a{grid-template-columns:1fr}}
@media print{.stock-count-form .form-actions,.stock-count-form .muted,.heading .btn{display:none!important}.count-table input{border:1px solid #999}}
td .row-actions{flex-wrap:nowrap}
/* V1.0.30 accounting, documents, audit */
.acct-fields{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0}.acct-fields legend{font-weight:700;font-size:12px;padding:0 6px;color:var(--blue)}.acct-fields small{display:block;margin-top:8px;font-size:10px}
.acct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.acct-grid>div{border:1px solid var(--line);border-radius:11px;padding:11px;display:grid;gap:4px}.acct-grid small{font-size:10px;color:var(--muted)}.acct-grid b{font-size:16px;font-variant-numeric:tabular-nums}.acct-grid .book{border-left:4px solid var(--blue)}
.acct-progress{width:100%;height:8px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:var(--blue-soft);margin:4px 0 12px}.acct-progress::-webkit-progress-bar{background:var(--blue-soft)}.acct-progress::-webkit-progress-value{background:var(--blue)}.acct-progress::-moz-progress-bar{background:var(--blue)}.acct-meta{margin-top:4px}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.dep-filter{grid-template-columns:240px auto}
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sigpad-wrap{display:grid;gap:8px}.sigpad-label{font-size:12px;font-weight:700}.sigpad{position:relative;border:2px dashed #9fb3cc;border-radius:12px;background:#fff;height:180px;touch-action:none}.sigpad canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.sigpad-hint{position:absolute;inset:auto 0 10px;text-align:center;font-size:11px;color:#9aaabb;pointer-events:none}.sigpad.signed .sigpad-hint{display:none}.sigpad.signed{border-style:solid;border-color:var(--blue)}.sigpad-wrap .btn{justify-self:start}
.doc-terms{background:var(--blue-soft);border-radius:10px;padding:10px 12px}.doc-terms p{margin:4px 0 0;font-size:12px;line-height:1.6}.doc-from{display:grid;gap:3px}.doc-from small{font-size:10px;color:var(--muted)}.pending-docs{display:block;font-weight:700;margin-bottom:14px}
.doc-sheet{background:#fff;color:#111;max-width:820px;margin:0 auto 18px;padding:34px 40px;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 30px #0b34701a;font-size:13px}
.doc-head{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:center;border-bottom:2px solid #0b3470;padding-bottom:14px;margin-bottom:18px}.doc-head img{width:150px}.doc-head h2{margin:0;font-size:20px;color:#0b3470}.doc-head p{margin:2px 0 0;color:#555;font-size:12px}.doc-head dl{margin:0;display:grid;grid-template-columns:auto auto;gap:3px 10px;font-size:12px}.doc-head dt{color:#666}.doc-head dd{margin:0;font-weight:700}
.doc-table{width:100%;border-collapse:collapse}.doc-table th,.doc-table td{border:1px solid #c9d3df;padding:8px 10px;text-align:left;vertical-align:top;white-space:normal}.doc-table th{width:34%;background:#f3f6fa;font-weight:600;color:#333}
.doc-terms-print{margin-top:16px;border:1px solid #c9d3df;padding:10px 12px;border-radius:4px}.doc-terms-print h3{margin:0 0 6px;font-size:13px}.doc-terms-print p{margin:0;line-height:1.7}
.doc-signs{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px;text-align:center}.sig-box{height:110px;border-bottom:1px dotted #333;display:flex;align-items:flex-end;justify-content:center}.sig-box img{max-height:105px;max-width:100%}.doc-signs p{margin:8px 0 2px;font-weight:600}.doc-signs small{display:block;color:#555;font-size:11px}.sig-witness{font-style:italic}
.doc-foot{margin-top:28px;border-top:1px solid #ddd;padding-top:8px;font-size:10px;color:#888;text-align:right}.doc-sign-form{max-width:820px;margin:0 auto}
.audit-mark{display:grid;grid-template-columns:1.4fr 1fr 140px auto auto;gap:12px;align-items:end;border-left:4px solid #e0a048}.audit-mark>div{display:grid;gap:3px}.audit-mark small{font-size:10px}.audit-done{margin-bottom:14px}.audit-close{display:flex;justify-content:space-between;align-items:center;gap:14px}
.scan-page .heading{align-items:center}.scan-progress{font-size:20px;font-weight:700;background:var(--blue-soft);border-radius:12px;padding:8px 14px}.scan-video-wrap{position:relative;background:#0b1a33;border-radius:16px;overflow:hidden;aspect-ratio:4/3;max-height:58vh;display:grid;place-items:center;margin-bottom:12px}.scan-video-wrap video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.scan-frame{position:absolute;inset:18% 22%;border:3px solid #ffffffcc;border-radius:16px;box-shadow:0 0 0 999px #0006;pointer-events:none;display:none}.scanning .scan-frame{display:block}.scan-video-wrap .btn{position:relative;z-index:2}
.scan-result{padding:14px 16px;border-radius:12px;font-weight:700;background:var(--blue-soft);margin-bottom:12px;min-height:48px}.scan-result.good{background:#e5f5ed;color:#19764a}.scan-result.warn{background:#fff0da;color:#a36b22}.scan-result.bad{background:#ffe7e9;color:#ab3a4b}
.scan-manual{display:flex;gap:8px}.scan-manual input{flex:1}.scan-log{margin:0;padding-left:0;list-style:none;display:grid;gap:6px;font-size:12px}.scan-log li{padding:8px 10px;border-radius:9px;background:var(--blue-soft)}.scan-log li.good{background:#e5f5ed}.scan-log li.warn{background:#fff0da}.scan-log li.bad{background:#ffe7e9}
body.dark .scan-result.good,body.dark .scan-log li.good{background:#173f2e;color:#8fe0b7}body.dark .scan-result.warn,body.dark .scan-log li.warn{background:#4a3612;color:#ffd08a}body.dark .scan-result.bad,body.dark .scan-log li.bad{background:#4a1f27;color:#ffb3bd}
@media(max-width:900px){.acct-grid{grid-template-columns:1fr 1fr}.sig-grid{grid-template-columns:1fr}.audit-mark{grid-template-columns:1fr 1fr}.doc-sheet{padding:20px}.doc-head{grid-template-columns:1fr}.doc-signs{gap:16px}}
@media print{@page{size:A4;margin:14mm}body{background:#fff!important}.sidebar,.topbar,.no-print,.alert{display:none!important}.shell,.workspace{display:block!important;margin:0!important;padding:0!important}main{padding:0!important;max-width:none!important}.doc-sheet{border:0;box-shadow:none;margin:0;padding:0;max-width:none;border-radius:0}}
@media print{.doc-head{grid-template-columns:150px 1fr auto!important}.doc-signs{gap:40px!important}.doc-sheet{font-size:12.5px}}

/* V1.0.31 categories + asset dashboard */
.subnav{display:flex;gap:6px;overflow-x:auto;margin:-4px 0 18px;padding-bottom:4px;scrollbar-width:thin}.subnav a{white-space:nowrap;padding:8px 14px;border-radius:20px;font-size:12px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line)}.subnav a:hover{color:var(--blue);border-color:var(--blue)}.subnav a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.asset-filter-3{grid-template-columns:2fr 1.2fr 1fr auto}.cat-cell{white-space:nowrap}.cat-cell a{color:var(--text)}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.cat-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:10px;color:var(--text);background:var(--surface);transition:.15s}.cat-card:hover{border-color:var(--blue);box-shadow:0 6px 18px #0b347014}
.cat-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.cat-icon{font-size:22px;width:42px;height:42px;display:grid;place-items:center;background:var(--blue-soft);border-radius:12px}.cat-card-head small{display:block;color:var(--muted);font-size:10px}.cat-card-head strong{font-size:26px;font-variant-numeric:tabular-nums}
.stackbar{display:flex;height:8px;border-radius:8px;overflow:hidden;background:var(--blue-soft)}.seg{display:block;height:100%}.seg.in_use{background:#2f9a68}.seg.spare{background:var(--blue)}.seg.repair{background:#e0a048}
.cat-card dl{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:0;font-size:11px}.cat-card dl>div{display:flex;justify-content:space-between;gap:6px;border-bottom:1px dashed var(--line);padding-bottom:3px}.cat-card dt{color:var(--muted)}.cat-card dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.cat-card dd.bad{color:#c43a49}.cat-card dd.warn{color:#a36b22}
.status-legend{display:flex;gap:12px;font-size:10px;color:var(--muted)}.lg::before{content:'';display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}.lg.in_use::before{background:#2f9a68}.lg.spare::before{background:var(--blue)}.lg.repair::before{background:#e0a048}
.hbars{display:grid;gap:9px}.hbars>*{display:grid;grid-template-columns:minmax(120px,40%) 1fr 34px;gap:10px;align-items:center;font-size:12px;color:var(--text)}.hbars span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbars b{text-align:right;font-variant-numeric:tabular-nums}.hbar{display:block;height:10px;border-radius:10px;background:var(--blue-soft);overflow:hidden}.hbar>i{display:block;height:100%;background:var(--blue);border-radius:10px}.hbar>i.age{background:#7a5bd1}
.pivot td.num,.pivot th{text-align:center}.pivot td:first-child,.pivot th:first-child{text-align:left}
.cat-strip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.cat-strip-grid a{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;color:var(--text)}.cat-strip-grid a:hover{border-color:var(--blue)}.cat-strip-grid .cat-icon{grid-row:1/3;width:36px;height:36px;font-size:18px}.cat-strip-grid b{font-size:18px}.cat-strip-grid small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-strip-grid em{grid-column:1/-1;justify-self:start;margin:6px 0 0}
.cat-table .cat-icon-cell{font-size:20px}.cat-form{min-width:280px;margin-top:8px}.cat-auto{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.seg.w0,.hbar>i.w0{width:0%}.seg.w1,.hbar>i.w1{width:1%}.seg.w2,.hbar>i.w2{width:2%}.seg.w3,.hbar>i.w3{width:3%}.seg.w4,.hbar>i.w4{width:4%}.seg.w5,.hbar>i.w5{width:5%}.seg.w6,.hbar>i.w6{width:6%}.seg.w7,.hbar>i.w7{width:7%}.seg.w8,.hbar>i.w8{width:8%}.seg.w9,.hbar>i.w9{width:9%}.seg.w10,.hbar>i.w10{width:10%}.seg.w11,.hbar>i.w11{width:11%}.seg.w12,.hbar>i.w12{width:12%}.seg.w13,.hbar>i.w13{width:13%}.seg.w14,.hbar>i.w14{width:14%}.seg.w15,.hbar>i.w15{width:15%}.seg.w16,.hbar>i.w16{width:16%}.seg.w17,.hbar>i.w17{width:17%}.seg.w18,.hbar>i.w18{width:18%}.seg.w19,.hbar>i.w19{width:19%}.seg.w20,.hbar>i.w20{width:20%}.seg.w21,.hbar>i.w21{width:21%}.seg.w22,.hbar>i.w22{width:22%}.seg.w23,.hbar>i.w23{width:23%}.seg.w24,.hbar>i.w24{width:24%}.seg.w25,.hbar>i.w25{width:25%}.seg.w26,.hbar>i.w26{width:26%}.seg.w27,.hbar>i.w27{width:27%}.seg.w28,.hbar>i.w28{width:28%}.seg.w29,.hbar>i.w29{width:29%}.seg.w30,.hbar>i.w30{width:30%}.seg.w31,.hbar>i.w31{width:31%}.seg.w32,.hbar>i.w32{width:32%}.seg.w33,.hbar>i.w33{width:33%}.seg.w34,.hbar>i.w34{width:34%}.seg.w35,.hbar>i.w35{width:35%}.seg.w36,.hbar>i.w36{width:36%}.seg.w37,.hbar>i.w37{width:37%}.seg.w38,.hbar>i.w38{width:38%}.seg.w39,.hbar>i.w39{width:39%}.seg.w40,.hbar>i.w40{width:40%}.seg.w41,.hbar>i.w41{width:41%}.seg.w42,.hbar>i.w42{width:42%}.seg.w43,.hbar>i.w43{width:43%}.seg.w44,.hbar>i.w44{width:44%}.seg.w45,.hbar>i.w45{width:45%}.seg.w46,.hbar>i.w46{width:46%}.seg.w47,.hbar>i.w47{width:47%}.seg.w48,.hbar>i.w48{width:48%}.seg.w49,.hbar>i.w49{width:49%}.seg.w50,.hbar>i.w50{width:50%}.seg.w51,.hbar>i.w51{width:51%}.seg.w52,.hbar>i.w52{width:52%}.seg.w53,.hbar>i.w53{width:53%}.seg.w54,.hbar>i.w54{width:54%}.seg.w55,.hbar>i.w55{width:55%}.seg.w56,.hbar>i.w56{width:56%}.seg.w57,.hbar>i.w57{width:57%}.seg.w58,.hbar>i.w58{width:58%}.seg.w59,.hbar>i.w59{width:59%}.seg.w60,.hbar>i.w60{width:60%}.seg.w61,.hbar>i.w61{width:61%}.seg.w62,.hbar>i.w62{width:62%}.seg.w63,.hbar>i.w63{width:63%}.seg.w64,.hbar>i.w64{width:64%}.seg.w65,.hbar>i.w65{width:65%}.seg.w66,.hbar>i.w66{width:66%}.seg.w67,.hbar>i.w67{width:67%}.seg.w68,.hbar>i.w68{width:68%}.seg.w69,.hbar>i.w69{width:69%}.seg.w70,.hbar>i.w70{width:70%}.seg.w71,.hbar>i.w71{width:71%}.seg.w72,.hbar>i.w72{width:72%}.seg.w73,.hbar>i.w73{width:73%}.seg.w74,.hbar>i.w74{width:74%}.seg.w75,.hbar>i.w75{width:75%}.seg.w76,.hbar>i.w76{width:76%}.seg.w77,.hbar>i.w77{width:77%}.seg.w78,.hbar>i.w78{width:78%}.seg.w79,.hbar>i.w79{width:79%}.seg.w80,.hbar>i.w80{width:80%}.seg.w81,.hbar>i.w81{width:81%}.seg.w82,.hbar>i.w82{width:82%}.seg.w83,.hbar>i.w83{width:83%}.seg.w84,.hbar>i.w84{width:84%}.seg.w85,.hbar>i.w85{width:85%}.seg.w86,.hbar>i.w86{width:86%}.seg.w87,.hbar>i.w87{width:87%}.seg.w88,.hbar>i.w88{width:88%}.seg.w89,.hbar>i.w89{width:89%}.seg.w90,.hbar>i.w90{width:90%}.seg.w91,.hbar>i.w91{width:91%}.seg.w92,.hbar>i.w92{width:92%}.seg.w93,.hbar>i.w93{width:93%}.seg.w94,.hbar>i.w94{width:94%}.seg.w95,.hbar>i.w95{width:95%}.seg.w96,.hbar>i.w96{width:96%}.seg.w97,.hbar>i.w97{width:97%}.seg.w98,.hbar>i.w98{width:98%}.seg.w99,.hbar>i.w99{width:99%}.seg.w100,.hbar>i.w100{width:100%}
@media(max-width:900px){.asset-filter-3{grid-template-columns:1fr 1fr}.hbars>*{grid-template-columns:110px 1fr 30px}}
.cat-cell{white-space:normal!important;min-width:100px;max-width:160px;line-height:1.4}
/* V1.0.32 idle sign-out dialog */
.idle-modal{position:fixed;inset:0;z-index:1000;background:#06152dcc;display:grid;place-items:center;padding:20px}.idle-modal[hidden]{display:none}
.idle-card{background:var(--surface);color:var(--text);border-radius:18px;padding:26px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 20px 60px #0008}
.idle-icon{font-size:34px}.idle-card h2{margin:6px 0}.idle-card p{margin:0;color:var(--muted)}.idle-count{display:block;font-size:42px;font-variant-numeric:tabular-nums;color:#c43a49;margin:10px 0 16px}
.idle-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* V1.0.33 self-registration */
.register-link{text-align:center;font-size:13px;margin:14px 0 0}.register-link a{font-weight:700}
.register-card{max-width:460px}.register-form{display:grid;gap:12px;text-align:left}.register-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.register-note{text-align:center;font-size:11px;margin-top:12px}
.hp-field{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.register-done{text-align:center;display:grid;gap:8px}.register-done-icon{width:56px;height:56px;border-radius:50%;background:#e5f5ed;color:#19764a;font-size:28px;display:grid;place-items:center;margin:0 auto}
.registrations{border-left:4px solid #e0a048}.reg-item{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:16px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}.reg-item:first-of-type{border-top:0}
.reg-info{display:grid;gap:3px}.reg-info span{font-size:12px}.reg-approve{display:grid;gap:8px}.reg-assets{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;margin:0;display:grid;gap:6px}.reg-assets legend{font-size:11px;font-weight:700;color:var(--blue)}.reg-assets span{font-size:11px}.reg-reject{display:grid;gap:8px}
@media(max-width:900px){.reg-item{grid-template-columns:1fr}.register-2col{grid-template-columns:1fr}}
/* V1.0.34 password eye, strength, forgot/reset */
.pw-wrap{position:relative;display:block}.pw-wrap input{width:100%;padding-right:46px}
.pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;border-radius:9px;display:grid;place-items:center;color:var(--muted);cursor:pointer;padding:0}
.pw-eye:hover,.pw-eye:focus-visible{color:var(--blue);background:var(--blue-soft);outline:none}.pw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
input::-ms-reveal,input::-ms-clear{display:none}
.pw-strength{display:block;font-size:11px;font-weight:700;margin-top:4px;min-height:14px}.pw-strength.s0{color:#c43a49}.pw-strength.s1{color:#a36b22}.pw-strength.s2{color:var(--blue)}.pw-strength.s3{color:#19764a}
.forgot-link{text-align:right;margin:8px 0 0;font-size:12px}.forgot-link a{font-weight:700}
.admin-reset-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:12px}
.reset-link-panel{border-left:4px solid var(--blue)}.copy-row{display:flex;gap:8px}.copy-row input{flex:1;font-family:monospace;font-size:12px}
.delivery-tests{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.delivery-mail{display:flex;gap:8px}.delivery-mail input{min-width:240px}.delivery-help ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:12px;line-height:1.6}
/* V1.0.35 spare-part issue (Zebra TC21), requisitions, barcode labels */
.issue-page{max-width:640px;margin:0 auto}.issue-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 10px;margin-bottom:12px}.issue-head .back{grid-column:1/-1}.issue-head h1{margin:0;font-size:22px}.issue-list-link{font-size:12px;font-weight:700}
.scan-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;background:var(--surface);border:2px solid var(--blue);border-radius:14px;padding:6px 6px 6px 12px;box-shadow:0 6px 18px #0b347022}
.scan-bar input{flex:1;border:0;font-size:17px;padding:10px 4px;background:transparent;min-width:0}.scan-bar input:focus{outline:none}.scan-led{width:12px;height:12px;border-radius:50%;background:#9aaabb;flex:none}.scan-bar:focus-within .scan-led{background:#2f9a68;box-shadow:0 0 0 4px #2f9a6833}
.scan-kbd{border:1px solid var(--line);background:var(--blue-soft);border-radius:10px;width:44px;height:44px;font-size:20px;flex:none}.issue-page.typing .scan-kbd{background:var(--blue);color:#fff}
.issue-page .scan-result{margin:10px 0 14px;font-size:14px}
.issue-step h2{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 12px}.issue-step h2>span{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:12px}.issue-count{margin-left:auto;background:var(--blue-soft);color:var(--blue);border-radius:20px;padding:2px 10px;font-size:13px}
.issue-step label{display:grid;gap:6px;margin-bottom:10px}.issue-noacc{margin:0 0 10px;font-size:12px}.issue-noacc summary{color:var(--blue);font-weight:700;margin-bottom:8px}
.cart{list-style:none;margin:0;padding:0;display:grid;gap:8px}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px}.cart-line.over{border-color:#d95d6b;background:#fff5f6}
.cart-info{display:grid;gap:2px;min-width:0}.cart-info b{color:var(--blue)}.cart-info span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-info small{font-size:10px;color:var(--muted)}.cart-line.over small{color:#c43a49;font-weight:700}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}.qty button{width:40px;height:40px;border:0;background:var(--blue-soft);font-size:18px;font-weight:700;color:var(--blue)}.qty output{min-width:34px;text-align:center;font-weight:800;font-size:16px}
.cart-del{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#c43a49;font-size:16px}.cart-empty{margin:4px 0 8px}
.cart-total{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.cart-total b{font-size:18px}
.manual-add{margin-top:10px;font-size:12px}.manual-add summary{color:var(--blue);font-weight:700}.manual-row{display:flex;gap:8px;margin-top:8px}.manual-row select{flex:1;min-width:0}
.issue-asset{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--blue-soft);border-radius:10px;padding:10px;margin-bottom:8px;font-weight:700;font-size:13px}.small-note{font-size:11px;margin:0 0 10px}
.issue-page .sigpad{height:200px}.issue-submit{position:sticky;bottom:0;padding:10px 0 14px;background:linear-gradient(transparent,var(--bg) 30%);z-index:15}.issue-submit .btn{font-size:16px;padding:16px}
body.dark .cart-line.over{background:#3a1d24}
.req-filter{display:grid;grid-template-columns:repeat(4,1fr) 1.5fr auto;gap:10px;align-items:end}.hbar-money{min-width:70px}.hbars>a .hbar-money{text-align:right}
.req-sheet.is-cancelled{position:relative}.req-sheet.is-cancelled::after{content:'CANCELLED';position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-18deg);font-size:72px;font-weight:900;color:#c43a4933;pointer-events:none}
.req-cancel-note{background:#ffe7e9;color:#ab3a4b;padding:8px 10px;border-radius:6px;font-weight:700}.req-items{margin-top:14px}.req-items th,.req-items td{padding:6px 8px}.req-total td{background:#f3f6fa}
.req-cancel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;max-width:820px;margin:0 auto}
.label-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.label-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.bc-label{background:#fff;color:#111;border:1px dashed #9aaabb;border-radius:6px;padding:8px 10px;display:grid;gap:2px;justify-items:center;text-align:center;break-inside:avoid;page-break-inside:avoid}.bc-label b{font-size:13px}.bc-label span{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bc-label small{font-size:10px;font-family:monospace}.bc-label svg{max-width:100%;height:46px}
@media(max-width:900px){.req-filter{grid-template-columns:1fr 1fr}.req-cancel{grid-template-columns:1fr}}
@media print{.label-sheet{grid-template-columns:repeat(3,1fr);gap:4mm}.bc-label{border:1px dashed #bbb}.req-sheet.is-cancelled::after{color:#c43a4955}}
.issue-submit{pointer-events:none}.issue-submit .btn{pointer-events:auto}
.req-items th{width:auto;white-space:nowrap}.req-items th:first-child,.req-items td:first-child{width:28px;text-align:center}.req-items td:nth-child(3){width:48%}
.req-items .req-total td:first-child{text-align:right;width:auto}
.hbars.money>*{grid-template-columns:minmax(110px,38%) 1fr 76px}
/* V1.0.36 receive / check / adjust */
.mobile-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 14px}.mobile-tiles a{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 14px;display:grid;gap:6px;color:var(--text);min-height:132px;align-content:start}.mobile-tiles a:active{transform:scale(.98)}.mobile-tiles span{font-size:30px}.mobile-tiles b{font-size:16px}.mobile-tiles small{font-size:11px;color:var(--muted);line-height:1.4}
.mobile-links{display:flex;gap:16px;justify-content:center;font-size:13px;font-weight:700;margin-bottom:10px}
.link-panel{border-left:4px solid #e0a048}.link-panel p{margin:0 0 6px}.link-panel code{font-size:14px;background:var(--blue-soft);padding:2px 8px;border-radius:6px}.link-panel .manual-row{margin-top:8px}
.rcv-line{grid-template-columns:1fr auto auto}.rcv-price{grid-column:1/-1;display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:11px;color:var(--muted)}.rcv-price input{width:110px;padding:6px 8px}.rcv-line.price-changed .rcv-price input{border-color:#e0a048;background:#fff8ec}
.qty-input{width:62px;border:0;text-align:center;font-weight:800;font-size:16px;padding:8px 2px;-moz-appearance:textfield}.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rcv-update{margin-top:12px}
.part-card .pc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pc-head>div{display:grid;gap:3px}.pc-head b{font-size:20px;color:var(--blue)}.pc-head small{color:var(--muted)}
.pc-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.pc-nums>div{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:2px;text-align:center}.pc-nums small{font-size:10px;color:var(--muted)}.pc-nums b{font-size:26px;font-variant-numeric:tabular-nums}.pc-nums .av{border:2px solid #2f9a68}.part-card.low .pc-nums .av{border-color:#d95d6b}.part-card.low .pc-nums .av b{color:#c43a49}
.pc-meta{display:grid;gap:6px;margin:0 0 12px;font-size:12px}.pc-meta>div{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:4px}.pc-meta dt{color:var(--muted)}.pc-meta dd{margin:0;font-weight:700}
.part-card h3{font-size:13px;margin:4px 0 8px}.pc-recent{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:11px}.pc-recent li{padding:6px 8px;border-radius:8px;background:var(--blue-soft)}.pc-recent li.in{background:#e5f5ed}.pc-recent li.out{background:#fff0da}
.pc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.pc-actions .btn{padding:10px 4px;font-size:12px}
.adj-line{grid-template-columns:1fr auto auto}.adj-diff{grid-column:1/-1;font-weight:800;font-size:13px}.adj-diff.plus{color:#19764a}.adj-diff.minus{color:#c43a49}.adj-diff.zero{color:var(--muted);font-weight:600}
.txt-plus{color:#19764a}.txt-minus{color:#c43a49}
body.dark .rcv-line.price-changed .rcv-price input{background:#4a3612}body.dark .pc-recent li.in{background:#173f2e}body.dark .pc-recent li.out{background:#4a3612}
.cart-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.issue-step label.parts-check{display:flex;gap:10px;align-items:flex-start;margin-top:12px}.issue-step label.parts-check input{flex:none;width:20px;height:20px;margin-top:2px}
/* V1.0.37 departments */
.dept-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.dept-manage{font-weight:500;font-size:11px}
.dept-new{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px;padding:9px;border:1px dashed var(--blue);border-radius:9px;background:var(--blue-soft)}.dept-new[hidden],.dept-done[hidden]{display:none}.dept-new input{flex:1 1 180px;width:auto}.dept-msg{flex-basis:100%;font-weight:500;color:#ab3a4b}.dept-msg:empty{display:none}.dept-done{color:#176e48;font-weight:600}
.dept-list{display:grid;gap:8px}.dept-item{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:8px}.dept-row{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 80px 180px 140px 74px;gap:8px;align-items:center;margin:0}.dept-headrow{font-size:11px;color:var(--muted);margin-right:44px}.dept-use{font-size:11px;color:var(--muted);white-space:nowrap}.dept-del{margin:0}.dept-unlisted{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
@media(max-width:720px){.dept-headrow{display:none}.dept-item{align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:10px}.dept-row{grid-template-columns:1fr 70px}.dept-row>input[name=name]{grid-column:1/-1}.dept-use{grid-column:1/-1}}
.dept-add-form .btn{justify-self:start;min-width:140px}
/* V1.0.38 stock history filters + pager */
.hist-filter{display:grid;grid-template-columns:2fr 1.6fr 1.3fr 1.3fr 1.1fr 1fr 1fr .7fr;gap:10px;align-items:end;margin:0 0 12px}.hist-filter .hist-btns{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}
.hist-summary{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:12px;padding:10px 12px;background:var(--blue-soft);border-radius:9px;margin-bottom:6px}
td.hist-in,.hist-summary .hist-in{color:#16764d;font-weight:700}td.hist-out,.hist-summary .hist-out{color:#b23b4c;font-weight:700}
.hist-type{display:inline-block;font-size:11px;font-weight:600;border-radius:20px;padding:3px 9px;background:var(--blue-soft);color:var(--blue);white-space:nowrap}.hist-type.t-receive,.hist-type.t-return,.hist-type.t-adjust_in{background:#e5f5ed;color:#19764a}.hist-type.t-issue,.hist-type.t-adjust_out{background:#ffe9ec;color:#ab3a4b}.hist-type.t-reserve,.hist-type.t-unreserve{background:#fff2df;color:#9b5d17}
.hist-sku:hover b{text-decoration:underline}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin-top:16px}.pager a,.pager span{min-width:36px;height:36px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;font-size:12px;font-weight:600;background:var(--surface)}.pager a:hover{border-color:var(--blue)}.pager .cur{background:#1768b6;border-color:#1768b6;color:#fff}.pager .off{color:var(--muted);opacity:.55}.pager .gap{border:0;background:none;min-width:auto;padding:0 2px}
@media(max-width:1100px){.hist-filter{grid-template-columns:repeat(4,minmax(0,1fr))}.hist-filter .hist-q{grid-column:span 2}}
@media(max-width:720px){.hist-filter{grid-template-columns:1fr 1fr}.hist-filter .hist-q{grid-column:1/-1}.hist-filter .hist-btns .btn{flex:1}}
.parts-history .parts-list-head .btn{white-space:nowrap}
/* V1.0.39 employee history + requisition LINE status */
.my-parts-filter{grid-template-columns:2fr 1fr 1fr 1fr}.my-parts-top h2{margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips .chip b{color:var(--blue);margin-left:4px}
.req-line{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;max-width:820px;margin:0 auto 12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12px}.req-line form{margin:0}
@media(max-width:720px){.my-parts-filter{grid-template-columns:1fr 1fr}.my-parts-stats{grid-template-columns:1fr 1fr}}
/* V1.0.40 cancellation history */
.cancel-filter{grid-template-columns:2fr 1.1fr 1.4fr 1.1fr 1fr 1fr}.cancel-age{display:block;font-size:10px;margin-top:3px}.cancel-table td{vertical-align:top}.cancel-table .hist-type{margin:3px 0}
.cancel-users{list-style:none;margin:0;padding:0;display:grid;gap:8px}.cancel-users li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 2px;font-size:13px}.cancel-users li:last-child{border:0}
.req-cancel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:10px;align-items:end}
@media(max-width:1100px){.cancel-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.cancel-filter{grid-template-columns:1fr 1fr}.req-cancel{grid-template-columns:1fr}}
.cancel-by{display:block;font-size:11px;font-weight:600;margin-top:3px}.cancel-table{min-width:0}.cancel-table td.wrap-cell{white-space:normal;min-width:140px}
@media(max-width:720px){.cancel-table td{display:block;text-align:left}.cancel-table td::before{display:block;max-width:none;margin-bottom:3px}.cancel-table td.wrap-cell{min-width:0}}
/* V1.0.42 stock count rounds */
.sc-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}.sc-flow>div{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:11px}.sc-flow b{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border-radius:7px;background:var(--blue-soft);color:var(--blue)}
.sc-steps{display:flex;gap:0;list-style:none;padding:0;margin:0 0 16px;counter-reset:s}.sc-steps li{flex:1;text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:10px 6px;border-bottom:4px solid var(--line)}.sc-steps li.on{color:var(--blue);border-color:#1768b6}
.sc-stats,.sc-values{grid-template-columns:repeat(4,1fr)}.sc-values{grid-template-columns:repeat(5,1fr)}.sc-stats strong small{font-size:14px;color:var(--muted)}.sc-values strong{font-size:20px}
.sc-note{background:var(--blue-soft);color:var(--text)}
.sc-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.sc-tabs .chip b{margin-left:4px}.sc-search{margin-left:auto;min-width:220px}
.sc-table tr.sc-diff td:first-child{box-shadow:inset 3px 0 #d95d6b}.sc-table tr.sc-uncounted td:first-child{box-shadow:inset 3px 0 #e0a048}.sc-table tr.sc-match td:first-child{box-shadow:inset 3px 0 #3aa776}
.sc-actions{display:grid;gap:12px}.sc-submit,.sc-approve{display:grid;gap:12px;border:2px solid #1768b6}.sc-submit h2,.sc-approve h2{margin:0}.sc-submit .btn,.sc-approve .btn{justify-self:start;min-width:180px}
.sc-mode{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px}.sc-mode legend{font-size:12px;font-weight:700;padding:0 6px}
.sc-cancel{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.sc-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0}.sc-progress{font-size:13px}.sc-per{display:flex;align-items:center;gap:6px;font-size:12px}.sc-per .qty input{width:56px}
.sc-card-head{display:flex;justify-content:space-between;gap:8px}.sc-card-head b{display:block;font-size:18px;color:var(--blue)}.sc-card-head span{display:block}.sc-card-head small{color:var(--muted)}
.sc-card-nums{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin:12px 0}.sc-card-nums>div{background:var(--bg);border-radius:10px;padding:10px;text-align:center}.sc-card-nums small{display:block;font-size:11px;color:var(--muted)}.sc-card-nums b{font-size:22px}.sc-card-nums .big b{font-size:40px;color:var(--blue)}.sc-card-nums .plus{color:#16764d}.sc-card-nums .minus{color:#b23b4c}
.sc-card-actions{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px}
.sc-list{list-style:none;margin:0;padding:0}.sc-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}.sc-line.cur{background:var(--blue-soft)}.sc-line b{display:block}.sc-line span{font-size:11px;color:var(--muted)}.sc-line em{font-style:normal;font-weight:700;font-size:16px;white-space:nowrap}.sc-line em.ok{color:#16764d}.sc-line em.bad{color:#b23b4c}
@media(max-width:900px){.sc-flow{grid-template-columns:1fr 1fr}.sc-values{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.sc-stats{grid-template-columns:1fr 1fr}.sc-cancel{grid-template-columns:1fr}.sc-search{margin-left:0;width:100%}}
@media print{.sc-table tr td:first-child{box-shadow:none}}
.sc-title{display:block;font-size:11px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:720px){.sc-table td:first-child,.sc-table td:last-child{display:block;text-align:left}.sc-table td:first-child::before,.sc-table td:last-child::before{display:block;max-width:none;margin-bottom:3px}}
/* V1.0.43 TC21 asset audit */
.aud-progress{font-size:15px}.aud-room{margin:8px 0;font-size:12px}
.aud-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}.aud-head b{display:block;font-size:20px;color:var(--blue)}.aud-head span{display:block;font-weight:600}.aud-head small{color:var(--muted)}.aud-head .w-badge{font-size:16px}
.aud-check{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;display:grid;gap:8px}.aud-check[data-state="0"]{border-color:#e0a048;background:#fff8ed}
.aud-q small{display:block;font-size:11px;color:var(--muted)}.aud-q b{font-size:16px}
.aud-yn{display:grid;grid-template-columns:1fr 1fr;gap:8px}.aud-yn button{min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-weight:700;color:var(--text)}.aud-yn button[data-ok="1"].on{background:#e5f5ed;border-color:#3aa776;color:#16764d}.aud-yn button[data-ok="0"].on{background:#ffe9ec;border-color:#d95d6b;color:#ab3a4b}
.aud-fix{display:grid;gap:8px}.aud-fix[hidden],.aud-fix input[hidden]{display:none}
.aud-more{display:grid;grid-template-columns:1fr 2fr;gap:8px;margin-bottom:10px}
.aud-log{list-style:none;margin:0;padding:0}.aud-log li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line);font-size:13px}.aud-log span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aud-log em{font-style:normal;font-weight:800}.aud-log .aud-ok em{color:#16764d}.aud-log .aud-fixed em{color:#b25e09}
.w-badge.ok{background:#e5f5ed;color:#19764a}
.aud-table td{vertical-align:top;white-space:normal}
.aud-table td:first-child{min-width:140px}.aud-table td:first-child b{white-space:nowrap}
.scan-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}.scan-photo{cursor:pointer}.scan-photo input[hidden]{display:none}
.aud-cam .scan-video-wrap{max-height:52vh}.aud-cam .scan-tools{margin:8px 0}.aud-switch{margin:6px 0 10px;font-size:13px;font-weight:600}

/* V1.0.46 collapsible sidebar */
.shell{transition:grid-template-columns .2s ease}.brand .brand-mini{display:none}.sidebar .nav-label{font-style:normal}.sidebar{display:flex;flex-direction:column}.sidebar nav{flex:1;align-content:start;overflow-y:auto;overflow-x:hidden}.nav-collapse{display:flex;align-items:center;gap:12px;width:100%;margin-top:10px;padding:10px 14px;border:1px solid #ffffff22;border-radius:10px;background:transparent;color:#99bfea;font-size:12px}.nav-collapse:hover{background:#174477;color:#fff}.nav-collapse span{width:22px;text-align:center;font-size:16px;font-weight:700}.menu-toggle{display:block}.nav-backdrop{display:none}
@media(min-width:721px){html.nav-collapsed .shell{grid-template-columns:78px minmax(0,1fr)}html.nav-collapsed .sidebar{padding:14px 10px;overflow:visible}html.nav-collapsed .brand{padding:2px 0 18px;align-items:center;justify-items:center}html.nav-collapsed .brand .brand-full,html.nav-collapsed .brand b,html.nav-collapsed .brand small{display:none}html.nav-collapsed .brand .brand-mini{display:block;width:46px;height:46px;border-radius:12px;padding:0;margin:0;background:#fff}html.nav-collapsed .sidebar nav a{justify-content:center;padding:12px 0;gap:0}html.nav-collapsed .sidebar nav a span{width:auto;font-size:19px}html.nav-collapsed .sidebar .nav-label{display:none}html.nav-collapsed .nav-collapse{justify-content:center;padding:10px 0}}
@media(min-width:721px) and (max-width:1180px){html:not(.nav-expanded) .shell{grid-template-columns:78px minmax(0,1fr)}html:not(.nav-expanded) .sidebar{padding:14px 10px;overflow:visible}html:not(.nav-expanded) .brand{padding:2px 0 18px;align-items:center;justify-items:center}html:not(.nav-expanded) .brand .brand-full,html:not(.nav-expanded) .brand b,html:not(.nav-expanded) .brand small{display:none}html:not(.nav-expanded) .brand .brand-mini{display:block;width:46px;height:46px;border-radius:12px;padding:0;margin:0;background:#fff}html:not(.nav-expanded) .sidebar nav a{justify-content:center;padding:12px 0;gap:0}html:not(.nav-expanded) .sidebar nav a span{width:auto;font-size:19px}html:not(.nav-expanded) .sidebar .nav-label{display:none}html:not(.nav-expanded) .nav-collapse{justify-content:center;padding:10px 0}}
@media(max-width:720px){.nav-collapse{display:none}.sidebar{overflow-y:auto}.sidebar.show+.nav-backdrop{display:block;position:fixed;inset:0;background:#0007;z-index:29}}
@media print{.nav-collapse,.nav-backdrop,.menu-toggle{display:none!important}}
/* V1.0.47 report center */
.rpt-period{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:end}.rpt-presets{display:flex;flex-wrap:wrap;gap:6px;align-self:center}
.rpt-tabs{margin-bottom:16px}
.rpt-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.rpt-kpi{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:13px;padding:14px 16px;display:grid;gap:6px;box-shadow:var(--shadow);color:var(--text);min-width:0}a.rpt-kpi:hover{border-color:var(--blue)}.rpt-kpi span{font-size:11px;color:var(--muted)}.rpt-kpi strong{font-size:22px;line-height:1.1;overflow-wrap:anywhere}.rpt-kpi strong.rpt-time{font-size:16px}.rpt-kpi small{font-size:11px;color:var(--muted)}
.rpt-warn{color:#b25e09!important}.rpt-neg{color:#b23b4c!important}
.rpt-table td,.rpt-table th{white-space:nowrap}.rpt-table .money{text-align:right;font-variant-numeric:tabular-nums}.rpt-barcell{min-width:200px}.rpt-barcell .hbar{display:inline-block;width:110px;vertical-align:middle;margin-right:8px}.rpt-barcell b{font-variant-numeric:tabular-nums}
.hbar i.neg{background:#d95d6b}
.rpt-audit{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.rpt-audit>div{background:var(--bg);border-radius:10px;padding:10px}.rpt-audit small{display:block;font-size:11px;color:var(--muted)}.rpt-audit b{font-size:18px}
@media(max-width:1280px){.rpt-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.rpt-kpis{grid-template-columns:1fr 1fr}.rpt-period{grid-template-columns:1fr 1fr}.rpt-presets{grid-column:1/-1}}
@media print{.rpt-kpis{grid-template-columns:repeat(3,1fr)}.rpt-kpi,.panel{box-shadow:none;break-inside:avoid}.content{padding:0}}
/* V1.0.48 License (CD-KEY) */
.license-banner{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:11px 15px;border-radius:11px;margin-bottom:15px;font-size:12px;border:1px solid transparent}
.license-banner b{white-space:nowrap;letter-spacing:.3px}
.license-banner a{font-weight:700;color:inherit;text-decoration:underline;margin-left:4px}
.license-banner.warn{background:#fff4e0;color:#8a5a12;border-color:#f3d9a6}
.license-banner.danger{background:#ffe9ec;color:#a12f41;border-color:#f6c1ca}
.license-banner.dev{background:var(--blue-soft);color:var(--blue);border-color:var(--line)}
body.dark .license-banner.warn{background:#3a2c12;color:#ffd391;border-color:#5d4519}
body.dark .license-banner.danger{background:#3d1a22;color:#ffb3c0;border-color:#64303b}
.lic-chip{display:inline-block;font-size:11px;font-weight:700;border-radius:20px;padding:6px 12px;white-space:nowrap}
.lic-chip.ok{background:#e5f5ed;color:#19764a}.lic-chip.warn{background:#fff0da;color:#a36b22}.lic-chip.danger{background:#ffe7e9;color:#ab3a4b}.lic-chip.dev{background:var(--blue-soft);color:var(--blue)}
body.dark .lic-chip.ok{background:#173f2e;color:#8fe0b7}body.dark .lic-chip.warn{background:#3a2c12;color:#ffd391}body.dark .lic-chip.danger{background:#3d1a22;color:#ffb3c0}
.lic-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;align-items:start}
.lic-layout .lic-vendor{grid-column:1/-1}
.lic-layout h2{font-size:15px;margin:0 0 14px}
.lic-dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;margin:0;font-size:13px}
.lic-dl dt{color:var(--muted)}.lic-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.lic-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.2px}
.lic-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.5px;text-transform:uppercase}
.lic-bad{color:#c43a49;font-weight:700}
.lic-note.danger{background:#ffe9ec;color:#a12f41;border-radius:9px;padding:10px 12px;font-size:12px;margin:14px 0 0}
body.dark .lic-note.danger{background:#3d1a22;color:#ffb3c0}
.lic-host{display:inline-block;font-size:16px;font-weight:700;background:var(--blue-soft);color:var(--blue);border:1px dashed var(--blue);border-radius:9px;padding:9px 14px;margin:0 0 12px}
.lic-contact{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px}
.lic-remove{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;font-size:12px}
.lic-remove summary{cursor:pointer;color:var(--muted)}
.lic-remove form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.lic-check{display:flex;gap:8px;align-items:center;font-weight:400}
@media (max-width:860px){.lic-layout{grid-template-columns:1fr}.heading .lic-chip{align-self:flex-start}}
/* V1.0.49 White-label */
.brand-wordmark{display:flex;align-items:center;justify-content:center;text-align:center;background:#fff;color:#071e42;font-weight:700;border-radius:8px;padding:6px 10px;line-height:1.25;overflow-wrap:anywhere;letter-spacing:.2px}
.brand .brand-wordmark{width:190px;max-width:100%;min-height:62px;font-size:15px;margin-bottom:10px;border-radius:10px}
.top-logo .brand-wordmark{display:block;max-width:190px;height:38px;line-height:38px;padding:0 12px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line)}
.login-card .brand-wordmark{font-size:20px;padding:14px 18px;margin:0 auto 4px;max-width:340px;border:1px solid var(--line)}
.doc-head .brand-wordmark{width:150px;font-size:14px;justify-content:flex-start;text-align:left;padding:0;background:none;border-radius:0}
.label-info .brand-wordmark{width:112px;height:42px;font-size:10px;justify-content:flex-start;text-align:left;padding:0;background:none;line-height:1.15;border-radius:0}
.brand-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
.brand-layout .brand-wide{grid-column:1/-1}
.brand-layout h2{font-size:15px;margin:0 0 14px}
.brand-settings input[type=color]{height:42px;padding:4px;cursor:pointer}
.brand-settings input[type=file]{padding:8px;border:1px dashed var(--line);border-radius:9px;background:var(--bg);width:100%}
.brand-preview{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.brand-preview-side{flex:1;background:var(--navy);border-radius:12px;padding:14px;display:grid;gap:4px;min-width:0}
.brand-preview-side img,.brand-preview-side .brand-wordmark{width:170px;max-width:100%;background:#fff;border-radius:9px;padding:4px;margin-bottom:6px}
.brand-preview-side .brand-wordmark{min-height:52px;font-size:13px;padding:6px 10px}
.brand-preview-side b{color:#fff;font-size:14px}.brand-preview-side small{color:#99bfea;font-size:9px;letter-spacing:.7px}
.brand-preview-icon{width:72px;height:72px;border-radius:16px;box-shadow:var(--shadow);flex:none}
@media (max-width:860px){.brand-layout{grid-template-columns:1fr}}
.brand-settings .brand-check{display:flex;flex-direction:row;align-items:center;gap:8px;grid-column:1/-1;font-weight:400}
.brand-settings .brand-check input{width:auto;min-height:0;margin:0}
