:root{--bg:#f6f7f9;--surface:#fff;--text:#1d2430;--muted:#5f6b7a;--border:#dde2e8;--primary:#1f5f8b;--primary-text:#fff;--danger:#b42318;--success:#067647;--sidebar:#17324a;--sidebar-text:#dbe6f0;--radius:6px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Noto Sans,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}h1{margin:0;font-size:20px}h2{font-size:16px}button,input,select{font:inherit}button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:6px 12px}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}button:disabled{opacity:.5;cursor:default}button.link,a.link{color:var(--primary);background:0 0;border:none;padding:2px 6px;text-decoration:none}button.link.danger{color:var(--danger)}input,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:6px 8px}label,.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}label.inline{flex-direction:row;align-items:center;gap:8px;margin-bottom:6px}small,.hint{color:var(--muted)}.error{color:var(--danger)}.success{color:var(--success)}.notice{color:#1d4f86;background:#e8f1fb;border:1px solid #b9d3f0;border-radius:6px;padding:8px 12px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.loading{text-align:center;padding:40px}.layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);width:220px;color:var(--sidebar-text);flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto}.brand{padding:16px;font-size:16px;font-weight:700}.menu-group-title{width:100%;color:var(--sidebar-text);text-align:left;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 16px;font-weight:600;display:flex}.menu-group a.menu-group-title{box-sizing:border-box;padding:8px 16px;font-weight:600;text-decoration:none}a.menu-group-title.active{background:#ffffff1f}.menu-group-title>span:first-child{flex:1;min-width:0}.menu-group ul{margin:0;padding:0 0 8px;list-style:none}.menu-group a{color:var(--sidebar-text);padding:6px 16px 6px 28px;text-decoration:none;display:block}.menu-group a.active{color:#fff;background:#ffffff1f}.badge{background:#7f7f7f33;border-radius:8px;margin-left:6px;padding:0 6px;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:5;background:var(--surface);border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar label,.login-header label{margin:0}.content{padding:20px}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters>button{white-space:nowrap;flex:none}table.list,table.matrix{border-collapse:collapse;background:var(--surface);width:100%}table.list th,table.list td,table.matrix th,table.matrix td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}table.list th{color:var(--muted);font-weight:600}table.matrix thead th{z-index:1;background:var(--surface);box-shadow:0 1px 0 var(--border);position:sticky;top:0}table.matrix td.cell{text-align:center;color:var(--muted)}table.matrix .group-row th{background:var(--bg)}table.matrix .group-row label{flex-direction:row;align-items:center;gap:8px;margin:0}.row-actions{white-space:nowrap}.modal-backdrop{white-space:normal}code.detail{color:var(--muted);word-break:break-all;font-size:12px}.pagination{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.pagination label{flex-direction:row;align-items:center;margin:0}.pagination button.current{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.pagination input{width:110px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card.narrow,.login .card{width:360px}.login{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-header{justify-content:space-between;align-items:center;display:flex}.form-row{grid-template-columns:1fr 2fr;gap:12px;display:grid}fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 12px}.modal-backdrop{z-index:100;background:#0f172073;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);width:480px;max-width:100%}.modal.wide{width:960px}.modal-backdrop:has(.modal.full){padding:12px}.modal.full{flex-direction:column;width:100%;height:calc(100vh - 24px);display:flex}.modal.full .modal-body{flex:1;min-height:0;padding:12px 20px;overflow:auto}.modal.full header h2{margin:0}.modal header,.modal footer{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.modal footer{border-bottom:none;border-top:1px solid var(--border);justify-content:flex-end;gap:8px}.modal-body{padding:16px 20px}.changes.added h4{color:var(--success)}.changes.removed h4{color:var(--danger)}.address-picker{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;display:grid}.address-picker input{grid-column:1/-1}.scope-targets{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;max-height:240px;display:grid;overflow:auto}.scope-targets h4{margin:4px 0}.tabs{border-bottom:1px solid var(--border,#d0d5dd);gap:4px;margin-bottom:12px;display:flex}.tabs .tab{cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px}.tabs .tab.active{border-bottom-color:var(--primary,#1f5f8b);font-weight:600}.image-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:12px 0;display:grid}.image-grid figure{border:1px solid var(--border,#d0d5dd);background:#fff;border-radius:6px;margin:0;overflow:hidden}.image-grid img{aspect-ratio:1;object-fit:contain;background:#f5f6f8;width:100%}.image-grid figcaption{flex-direction:column;gap:2px;padding:6px 8px;display:flex}table.list.compact td,table.list.compact th{padding:4px 8px}.plan-preview{margin-top:8px}.price-sheet input{width:100px}.thumb{object-fit:contain;vertical-align:middle;width:40px;height:40px}.status-pill{color:#555;background:#eef0f3;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.status-pill.on{color:#1a7f45;background:#e3f5ea}.status-pill.danger{background:#fdecea;margin-left:4px}.thumb.large{width:120px;height:120px;margin:4px 0 8px;display:block}.saved{color:#1a7f45;margin-right:auto}dl.facts{grid-template-columns:max-content 1fr;gap:4px 16px;margin:0 0 12px;display:grid}dl.facts dt{color:#667085}dl.facts dd{margin:0}.purchase-lines{margin-bottom:8px;overflow-x:auto}.purchase-lines select{width:100%;min-width:96px}.purchase-lines input.imei{width:100%;min-width:120px}.purchase-head select,.purchase-head input{width:100%;min-width:0}.purchase-lines input.narrow{width:100px}.purchase-lines td{padding:4px 6px}td.last-price{white-space:nowrap;color:#667085}td.last-price small{font-size:11px;display:block}.purchase-head{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.purchase-head2{grid-template-columns:1fr 1fr;align-items:end;gap:12px;margin:8px 0;display:grid}.purchase-head2 fieldset{margin:0}@media (width<=900px){.purchase-head,.purchase-head2{grid-template-columns:1fr}}.summary{color:#667085;margin-right:auto}button.danger{color:var(--danger)}.hint-box{background:#fff7e0;border:1px solid #f0d58a;border-radius:6px;padding:8px 12px}.upload-button{background:var(--primary);color:var(--primary-text);cursor:pointer;border-radius:6px;padding:6px 14px;display:inline-block}.upload-button input{display:none}.totals{margin:8px 0;font-weight:600}.facts-pair{display:contents}.review-facts{grid-template-columns:3fr 2fr;gap:16px;display:grid}.review-doc-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.review-doc{border:2px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;margin:0;padding:8px;display:flex}.review-doc.ACCEPTED{border-color:#1a7f45}.review-doc.REJECTED,.review-doc.MISSING{border-color:var(--danger)}.review-doc img{object-fit:contain;background:#f5f6f8;width:100%;max-height:220px}.review-doc figcaption{justify-content:space-between;gap:6px;display:flex}.review-doc-actions{grid-template-columns:auto 1fr auto;gap:4px;display:grid}.review-note{flex:1;margin-right:8px}.timeline{padding:0;list-style:none}.timeline li{border-bottom:1px dashed var(--border);padding:4px 0}th.num,td.num{text-align:right;white-space:nowrap}td.danger,.danger:not(button){color:#b42318}fieldset.lease-step{flex-wrap:wrap;align-items:end;gap:8px 12px;display:flex}fieldset.lease-step legend{font-weight:600}.receipt-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.receipt-layout .proof img{border:1px solid #d0d5dd;border-radius:6px;max-width:100%;max-height:480px}@media (width<=720px){.receipt-layout{grid-template-columns:1fr}}.payment-form label{margin-bottom:8px;display:block}.decide-row{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:12px;display:flex}.decide-row label{flex:260px}tr.muted{color:var(--muted)}table.list tr.sub-row td{background:var(--surface-muted,transparent);font-size:.92em}.store-qr{width:240px;height:240px;image-rendering:pixelated;margin:12px auto;display:block}.welcome-groups{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:16px;display:grid}.welcome-groups ul{margin:0;padding:0;line-height:2;list-style:none}label.button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:6px 12px;display:inline-block}.modal textarea{width:100%;font:inherit}.danger-zone{border-radius:var(--radius);border:1px solid #c62828;max-width:640px;padding:16px}.table-scroll{max-width:100%;overflow-x:auto}table.report td:first-child{white-space:nowrap}tr.section-row th{background:var(--surface-alt,#eef2f6);text-align:left;padding-top:12px}tr.result-row td{border-top:2px solid}.kpis{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0 20px;display:grid}.kpi{background:var(--surface,#fff);border:1px solid var(--border,#dde3ea);border-radius:var(--radius,8px);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.kpi span{opacity:.75;font-size:13px}.kpi strong{font-size:22px}.todo-list{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.todo-list a{border:1px solid var(--border,#dde3ea);border-radius:var(--radius,8px);background:var(--surface,#fff);padding:8px 12px;text-decoration:none;display:inline-block}.bars{align-items:flex-end;gap:16px;height:220px;padding:8px 0 0;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.bar-fill{background:var(--primary,#1f5f8b);border-radius:4px 4px 0 0;width:60%;min-height:2px}.bar-value,.bar-label{white-space:nowrap;font-size:12px}ol.steps{padding-left:32px;line-height:1.7}.contact-links a,a.contact-links{margin-right:10px;font-size:13px}.contact-card ul.plain{margin:0;padding:0;line-height:1.9;list-style:none}.upload-list ul{margin:8px 0 0;padding:0;list-style:none}.upload-line{border-bottom:1px solid var(--border);grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:6px 0;display:grid}.upload-line img{object-fit:cover;border-radius:4px;width:48px;height:48px}.upload-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-line.done .upload-state{color:#1d7a3a}.upload-line.failed .upload-state{color:var(--danger,#b42318)}td.ok{color:#1d7a3a}.settings-form{gap:12px;max-width:640px;margin-bottom:16px;display:grid}.settings-form label{gap:4px;display:grid}.settings-form fieldset{gap:10px;display:grid}.storage-colors{border-bottom:1px solid #eef0f3;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0;display:flex}.storage-colors strong{min-width:80px}.nowrap{white-space:nowrap}.model-images{flex-wrap:wrap;gap:12px;display:flex}.model-images figure{margin:0}.model-images figcaption{gap:8px;font-size:13px;display:flex}.h5-gallery{scroll-snap-type:x mandatory;gap:8px;margin:8px 0 12px;display:flex;position:relative;overflow-x:auto}.h5-gallery img{object-fit:contain;scroll-snap-align:center;flex:0 0 100%;max-height:320px}.h5-gallery-count{color:#fff;background:#00000080;border-radius:10px;align-self:flex-end;padding:2px 8px;font-size:12px;position:sticky;right:8px}.list th.tick,.list td.tick{text-align:center;width:2rem}.list tr.selected td{background:var(--selected-bg,#2563eb14)}.bulk-bar{z-index:2;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.bulk-bar label{align-items:center;gap:.4rem;margin:0;display:flex}.error-box{color:var(--danger);background:#fdecea;border:1px solid #f5c2bd;border-radius:6px;padding:8px 12px;font-weight:600}.check-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px;display:grid}tr.highlight td{background:#fff8e6}.approval-banner{color:#7a4100;background:#fff4e5;border:1px solid #f5b971;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px;padding:10px 14px;font-weight:600;display:flex}.approval-banner a{margin-left:auto}.count-badge{background:var(--danger);color:#fff;text-align:center;border-radius:10px;min-width:20px;padding:1px 6px;font-size:12px;text-decoration:none;display:inline-block}.investor-top{color:#fff;background:#13304d;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:12px 20px;display:flex}.investor-top nav{flex-wrap:wrap;gap:4px 16px;display:flex}.investor-top a{color:#cfe0f3;text-decoration:none}.investor-top a.active{color:#fff;border-bottom:2px solid #fff;font-weight:600}.investor-user{align-items:center;gap:12px;margin-left:auto;display:flex}.investor-user .link{color:#cfe0f3}.figures{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:12px;display:grid}.figure{background:#fff;border:1px solid #e3e7ec;border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.figure span{color:#5b6573;font-size:13px}.figure strong{font-size:20px}.figure.strong{background:#eef5fc;border-color:#1d6fb8}a.button{background:var(--primary,#1f5f8b);color:#fff;border-radius:6px;padding:8px 14px;text-decoration:none;display:inline-block}.date-range{flex-wrap:wrap;align-items:flex-end;gap:8px 16px;display:flex}.date-range label{min-width:160px}.date-range .quick{flex-wrap:wrap;gap:4px 12px;padding-bottom:8px;display:flex}th .part{color:var(--muted,#6b7280);font-size:.8em;font-weight:400;display:block}.check-grid label.check{flex-direction:row;align-items:center;gap:8px;display:flex}.check-grid label.check input{width:auto;margin:0}.decide-row .date-range{display:contents}.status-pill.warn{color:#9a5b00;background:#fff4e0}.warn-text{color:#9a5b00}.channel-hero{background:var(--surface);border:1px solid #cfdcea;border-radius:12px;grid-template-columns:minmax(220px,1.2fr) 2fr;gap:0;margin:12px 0 16px;display:grid;overflow:hidden}.channel-hero .hero-main{color:#fff;background:linear-gradient(135deg,#1f5f8b 0%,#2c8a9e 100%);flex-direction:column;gap:6px;padding:18px 20px;display:flex}.channel-hero .hero-main span{opacity:.85;font-size:13px}.channel-hero .hero-main strong{letter-spacing:.5px;font-size:30px}.channel-hero .hero-main small{opacity:.85}.channel-hero .hero-error{background:#0000002e;border-radius:6px;padding:4px 8px}.channel-hero .hero-side{grid-template-columns:repeat(3,1fr);display:grid}.channel-hero .hero-side>div{border-left:1px solid var(--border);flex-direction:column;justify-content:center;gap:4px;padding:14px 18px;display:flex}.channel-hero .hero-side span{color:var(--muted);font-size:13px}.channel-hero .hero-side strong{font-size:19px}@media (width<=760px){.channel-hero,.channel-hero .hero-side{grid-template-columns:1fr}.channel-hero .hero-side>div{border-left:none;border-top:1px solid var(--border)}}.period-picker{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 12px;display:flex}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:0;padding:7px 14px}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--primary);color:var(--primary-text)}.range-inputs{align-items:center;gap:6px;display:inline-flex}.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat{border:1px solid var(--border);border-left:4px solid var(--primary);background:var(--surface);border-radius:8px;flex-direction:column;gap:3px;padding:10px 14px;display:flex}.stat span{color:var(--muted);font-size:12px}.stat strong{font-size:18px}.stat.good{border-left-color:var(--success)}.stat.warn{border-left-color:#d98a00}.way-bars{flex-direction:column;gap:6px;margin:0 0 14px;display:flex}.way-bar{grid-template-columns:90px 1fr 170px;align-items:center;gap:10px;font-size:13px;display:grid}.way-bar .track{background:#eef1f5;border-radius:5px;height:10px;display:block;overflow:hidden}.way-bar .fill{background:linear-gradient(90deg,#2c8a9e,#1f5f8b);height:100%;display:block}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.pay-steps{flex-direction:column;gap:12px;display:flex}.pay-steps fieldset{border:1px solid var(--border);border-radius:8px;padding:10px 14px 14px}.pay-steps legend{padding:0 4px;font-weight:600}.choice-cards{flex-wrap:wrap;gap:10px;display:flex}.choice-cards label{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex:160px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.choice-cards label.active{border-color:var(--primary);background:#eef5fc}.code-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.channel-hero .hero-main small{opacity:.92;color:#fff}.table-scroll .status-pill{white-space:nowrap}.inline-checks label{align-items:center;gap:6px;margin-right:18px;display:inline-flex}.settings-form textarea{padding:6px 8px;font-family:inherit;font-size:14px}.purpose-panel{border:1px solid #cfdcea;border-left:4px solid var(--primary);background:#f5f9fd;border-radius:8px;margin-bottom:14px;padding:10px 14px}.purpose-panel h3{margin:0 0 6px;font-size:15px}.purpose-note{white-space:pre-wrap;margin:0 0 8px;font-size:15px;font-weight:600}.purpose-panel .facts{margin:0}.purpose-row{display:contents}.pay-qr .store-qr{width:280px;height:280px}.pay-qr .store-qr.muted{opacity:.25}.hint-box.good{color:#1d6b34;background:#e8f6ec;border-color:#9bd3a9;font-weight:600}.pending-moves{margin:8px 0 12px}.pending-moves .hint-box{margin-top:8px}.pre-wrap{white-space:pre-wrap}.device-scan{flex-direction:column;flex:100%;gap:8px;display:flex}.device-scan .scan-input{letter-spacing:.04em;max-width:360px;font-size:1.15em}.device-scan .scan-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.device-scan .scan-card p{margin:0}.device-scan .scan-ok{align-items:center;gap:12px;font-weight:600;display:flex}.device-scan .stock-list summary{cursor:pointer;color:var(--muted)}.device-scan .stock-list .form-row{margin-top:8px}fieldset.lease-step .ship-collect{flex:100%}fieldset.lease-step .ship-collect p{margin:0}.messenger{grid-template-columns:minmax(220px,300px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.messenger-list ul{max-height:70vh;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.messenger-list li button{text-align:left;background:0 0;border:0;border-bottom:1px solid #eaecf0;gap:2px;width:100%;padding:8px 10px;display:grid;position:relative}.messenger-list li button.active{background:#eef4fb}.messenger-list li button small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.messenger-list .badge{color:#fff;background:#d92d20;position:absolute;top:8px;right:8px}.messenger-thread ol{background:#f9fafb;border-radius:6px;flex-direction:column;gap:8px;max-height:60vh;margin:8px 0;padding:8px;list-style:none;display:flex;overflow-y:auto}.messenger-thread .bubble{background:#fff;border:1px solid #eaecf0;border-radius:12px;max-width:70%;padding:6px 10px}.messenger-thread .bubble.out{background:#e6f0ff;align-self:flex-end}.messenger-thread .bubble.FAILED{border-color:#f04438}.messenger-thread .bubble p{margin:0 0 4px}.messenger-thread .bubble img{border-radius:6px;max-width:240px;max-height:240px}.messenger-thread .bubble small{color:var(--muted)}.messenger-reply{align-items:flex-end;gap:8px;display:flex}.messenger-reply textarea{flex:1}@media (width<=760px){.messenger{grid-template-columns:1fr}}.settings-form label.inline{display:flex}.otp-code{letter-spacing:3px;font-family:ui-monospace,monospace;font-size:20px}.pay-link input{box-sizing:border-box;width:100%;font-family:ui-monospace,monospace}.pay-link .actions{align-items:center;gap:12px;margin:10px 0;display:flex}.area-filter{flex-wrap:wrap;gap:6px;display:inline-flex}.merchant-summary{margin:8px 0 12px}.area-counts{flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.area-counts li{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 10px}.area-counts b{color:var(--primary)}.area-counts small{color:var(--muted);margin-left:6px}.merchant-groups .group-row{cursor:pointer}.merchant-groups .group-row:hover{background:#f1f5f9}.merchant-groups .caret{width:14px;color:var(--muted);display:inline-block}.merchant-groups .sub-row td{background:#fafbfc}.merchant-groups .sub-row td:first-child{padding-left:32px}.merchant-groups .sub-list table{margin:0}.picker-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.picker-filters input{flex:220px}.picker-filters select{flex:0 160px}.choice-row,.ship-transfer .choice-row{flex-wrap:wrap;gap:16px;margin-bottom:8px;display:flex}.choice-row label,.ship-transfer .choice-row label{flex-direction:row;align-items:center;gap:6px;margin:0}.multi-pick{flex-wrap:wrap;gap:6px;max-height:180px;display:flex;overflow-y:auto}.backfill{border-color:#e8c66a;margin-top:16px}.multi-pick .chip{border:1px solid var(--border);background:#fff;border-radius:16px;margin:0;padding:5px 12px}.multi-pick .chip.on{border-color:var(--primary);background:var(--primary);color:#fff}.return-summary h4{margin:10px 0 6px}.return-summary .stat strong{font-size:15px}.stat.bad{border-left-color:var(--danger)}.logistics-table td:first-child,.logistics-table td:nth-child(2),.logistics-table td:nth-child(3),.logistics-table th,.logistics-table td:nth-child(7),.logistics-table td:nth-child(9){white-space:nowrap}.logistics-table td:nth-child(4){min-width:180px;max-width:260px}.lease-flags{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.lease-flags .tag{white-space:nowrap;color:var(--text);background:#7f7f7f26;border-radius:10px;padding:1px 7px;font-size:12px}.lease-flags .tag.danger{background:var(--danger);color:#fff;font-weight:600}.lease-flags .tag.warn{color:#8a5a00;background:#fdf0d5}.h5-card.repair-card{border-left:4px solid var(--danger)}.merchant-groups .group-row.sub{background:#fafbfc}.merchant-groups .part-row td{color:var(--muted);font-size:13px}.device-filters{flex-wrap:wrap;align-items:center}.device-filters select{width:140px}.device-filters .device-totals{text-align:right;flex:280px}.staff-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start;gap:14px 18px;display:grid}.staff-part{border:1px solid #dde3ea;border-radius:10px;margin:0 0 16px;padding:12px 18px 18px}.staff-part legend{padding:0 6px}.staff-part-main{background:#f3f7fc;border-color:#b9cde4}.staff-part-main .staff-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.staff-part legend{font-weight:600}.staff-optional{color:var(--muted,#6b7280);background:#eef0f3;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:400}.staff-grid label input,.staff-grid label select{box-sizing:border-box;width:100%;min-height:38px}.staff-grid .staff-add{place-self:end start;padding-bottom:10px}.staff-grid label{flex-direction:column;gap:4px;display:flex}.staff-grid .wide{grid-column:1/-1}.staff-grid .contact-row{grid-template-columns:140px 1fr 1fr 1fr auto;align-items:center;gap:8px;display:grid}.staff-grid .inline-input{gap:6px;display:flex}.staff-grid .inline-input input{flex:1}.staff-summary{grid-template-columns:160px 1fr;gap:6px 12px;margin:0 0 12px;display:grid}.staff-summary dt{color:var(--muted,#667)}.staff-summary dd{margin:0}.staff-files{margin:0 0 8px;padding:0;list-style:none}.staff-files li{border-bottom:1px solid var(--border);padding:4px 0}@media (width<=640px){.staff-grid .contact-row,.staff-summary,.staff-part-main .staff-grid{grid-template-columns:1fr}}.hint-box.danger{color:#9b2317;background:#fdecea;border-color:#f0a8a0}.grid-scroll{max-width:100%;overflow-x:auto}.roster-grid,.attendance-grid{white-space:nowrap;font-size:12px}.roster-grid th,.roster-grid td,.attendance-grid th,.attendance-grid td{text-align:center;padding:3px 4px}.roster-grid .sticky,.attendance-grid .sticky{z-index:1;background:var(--surface,#fff);text-align:left;min-width:140px;position:sticky;left:0}.roster-grid th.sun{color:var(--danger)}.roster-grid td select{min-width:54px;padding:1px 2px;font-size:12px}.roster-grid td.rest{background:#7f7f7f1f}.roster-grid td.unplanned select{border-style:dashed}.roster-grid td.changed{outline-offset:-2px;outline:2px solid #f0b400}.roster-grid td.off-roll{background:repeating-linear-gradient(45deg,#0000,#0000 4px,#7f7f7f1a 4px 8px)}.att-cell{cursor:pointer;min-width:70px}.att-shift{color:var(--muted,#6b7280);font-size:10px;font-weight:400;line-height:1.2;display:block}.att-cell.state-ISSUE .att-shift{color:#b4534a}.att-cell.state-DONE .att-shift{color:#4f7bd8}.att-cell.kind-REST,.att-cell.kind-REGULAR,.att-cell.kind-SPECIAL{background:#7f7f7f14}.att-cell.state-ISSUE{color:#9b2317;background:#fde2df;font-weight:600}.att-cell.state-DONE{color:#1d4ed8;background:#dbeafe}.att-cell:hover{outline:2px solid var(--primary,#2563eb);outline-offset:-2px}.issue-list{color:#9b2317;margin:0 0 12px;padding-left:18px}.issue-list.done{color:#1d4ed8}.shift-chips{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.tag-button{border-radius:14px;padding:2px 10px}input.short{width:80px}table.compact td input.num{width:100px}.tabs.sub .tab{font-size:13px}.payroll-sum{white-space:nowrap;font-size:12px}.payroll-sum tr.picked td{background:#2563eb0f}.payroll-sum tfoot td{border-top:2px solid var(--border,#d1d5db);font-weight:600}.payroll-sum .tag{color:#92400e;background:#fef3c7;border-radius:8px;margin-left:6px;padding:0 6px;font-size:11px}.print-root{z-index:200;background:#e5e7eb;padding:56px 16px 24px;position:fixed;inset:0;overflow:auto}.print-bar{background:var(--surface,#fff);border-bottom:1px solid var(--border,#d1d5db);z-index:1;align-items:center;gap:8px;padding:10px 16px;display:flex;position:fixed;top:0;left:0;right:0}.print-bar span{margin-right:auto}.slip-page{box-sizing:border-box;color:#000;background:#fff;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:4mm 8mm;width:297mm;height:210mm;margin:0 auto 16px;padding:6mm;font-family:Arial,Helvetica,sans-serif;display:grid}.slip{border-bottom:1px dashed #9ca3af;padding-bottom:1mm;font-size:6.6pt;line-height:1.22;overflow:hidden}.slip-title{text-align:center;font-size:10pt;font-weight:700}.slip-company{text-align:center;margin-bottom:1mm;font-size:8.5pt;font-weight:700}.slip table{border-collapse:collapse;width:100%}.slip th,.slip td{text-align:left;white-space:nowrap;padding:0 2px;font-weight:400}.slip-info th{width:22%;font-weight:700}.slip-info td{width:28%}.slip-note{margin:.5mm 0;font-size:5.8pt;font-style:italic}.slip-lines thead th{border-bottom:1px solid #000;font-weight:700}.slip-lines td.n{text-align:right}.slip-lines tr.slip-total td{border-top:1px solid #000;font-weight:700}.slip-sign{gap:4mm;margin-top:3mm;font-weight:700;display:flex}.slip-line{text-align:center;border-top:1px solid #000;flex:1;margin-top:4mm;padding-top:.5mm;font-size:6pt;font-weight:400}@media print{@page{size:A4 landscape;margin:0}body.printing>:not(.print-root){display:none!important}body.printing .print-root{background:0 0;padding:0;position:static;overflow:visible}body.printing .print-bar{display:none}body.printing .slip-page{page-break-after:always;break-after:page;margin:0}body.printing .slip-page:last-child{page-break-after:auto;break-after:auto}}.staff-no{font-variant-numeric:tabular-nums;font-weight:600}.day-board legend input[type=date]{margin:0 4px}.day-board-groups{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.day-board-group{border:1px solid var(--border,#d1d5db);background:var(--surface,#fff);border-radius:8px;padding:8px 10px}.day-board-group.rest{background:#7f7f7f0f}.day-board-group.unplanned{border-style:dashed}.day-board-head{align-items:baseline;gap:6px;display:flex}.day-board-count{color:var(--primary,#2563eb);margin-left:auto;font-weight:700}.day-board-names{margin-top:4px;font-size:13px;line-height:1.5}.roster-counts td{cursor:pointer;border-top:1px solid var(--border,#d1d5db);font-weight:600}.roster-grid th.picked-day,.roster-grid td.picked-day{box-shadow:inset 0 0 0 2px var(--primary,#2563eb)}.roster-grid thead th{cursor:pointer}.hrm-pick input,.hrm-pick select{box-sizing:border-box;width:100%;max-width:100%}.hrm-pick select{margin-top:0}.hrm-pick-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.hrm-pick-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;max-height:300px;padding:2px;display:grid;overflow-y:auto}.hrm-person{text-align:left;cursor:pointer;background:#fff;border:1px solid #dde3ea;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.hrm-person:hover{border-color:#8fb0d6}.hrm-person.chosen{border-color:var(--primary,#1f5f8b);box-shadow:0 0 0 1px var(--primary,#1f5f8b);background:#eef5fc}.hrm-person-name{align-items:baseline;gap:8px;display:flex}.hrm-person small{color:var(--muted,#6b7280)}.hrm-person-job{flex-direction:column;font-size:13px;display:flex}.hrm-pick-chosen{color:#1d5b2a;background:#eef7ef;border-radius:6px;margin:10px 0 0;padding:8px 12px}.form-pair{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.form-pair input{box-sizing:border-box;width:100%}.form-pair .hint{grid-column:1/-1}@media (width<=640px){.hrm-pick-filters,.form-pair{grid-template-columns:1fr}}.date-select{gap:6px;display:flex}.date-select select{flex:1;min-width:0}.date-select select:first-child{flex:1.6}.purchase-warehouse{flex-direction:column;gap:6px;display:flex}.purchase-warehouse .segmented{align-self:flex-start}.modal table.list th,.modal table.list td button.link{white-space:nowrap}.header-actions{gap:8px;display:inline-flex}.chip-list{flex-wrap:wrap;gap:6px;max-height:220px;margin-top:6px;display:flex;overflow:auto}.chip-list .chip{border:1px solid var(--border,#d0d5dd);cursor:pointer;background:0 0;border-radius:999px;padding:2px 10px;font-size:12px}.entity-cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin:8px 0;display:grid}.entity-card{background:#fff;border:1px solid #e3e8ed;border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.entity-card strong{font-size:18px}.entity-card small{color:#4a5763}.sheet{border-collapse:collapse;white-space:nowrap;background:#fff;margin:0 0 18px;font-size:12px}.sheet th,.sheet td{text-align:center;vertical-align:middle;border:1px solid #9aa3ad;padding:3px 6px}.sheet thead th{color:#1f2328;background:#fff200;font-weight:700}.sheet-date{min-width:82px}.sheet-date strong,.sheet-date small{line-height:1.2;display:block}.sheet-date small{font-weight:400}.sheet-tag{color:#2e7d4f;background:#d9f2e3;border:1px solid #2e7d4f;border-radius:4px;width:max-content;margin:0 auto 3px;padding:1px 4px;font-size:10px;font-weight:400;display:block}.sheet thead th.rest,.sheet td.rest{background:#a6a6a6}.sheet td.rest.sheet-cell{background:#d4d4d4}.sheet-no{color:#c0392b;min-width:56px}.sheet-name{min-width:170px;font-weight:600;text-align:left!important}.sheet-standing{background:#fff;border-radius:999px;margin-top:4px;padding:1px 10px;font-size:12px}.sheet-standing.OPEN{color:#c0392b;background:#fdecea;border-color:#c0392b}.sheet-standing.PENDING{color:#8a5a00;background:#fff4e0;border-color:#b7791f}.sheet-standing.DONE{color:#2e7d4f;background:#e6f4ec;border-color:#2e7d4f}.sheet-label{background:#fff;min-width:140px;font-weight:400;text-align:left!important}.sheet-group{background:#e7edf5;font-weight:700}.sheet-cell{cursor:pointer}.sheet-cell:hover{outline-offset:-2px;outline:2px solid #2563eb}.sheet-rest{color:#c0392b;font-weight:700}.sheet .punches.state-ISSUE{color:#b42318;background:#fde2df}.sheet .punches.state-PENDING{background:#9cc3e6}.sheet .punches.state-DONE{background:#b7dfc4}.sheet-absence td,.sheet-absence th.sheet-label{background:#dce6f1}.sheet-ot td,.sheet-ot th.sheet-label,.sheet-ot th.sheet-group{background:#fdf0cf}.sheet-allowance th.sheet-group{background:#e5e7eb}.sheet .meal-SUGGESTED{background:#fbd5d5}.sheet .meal-CONFIRMED{background:#9cc3e6}.sheet .meal-APPROVED{background:#b7dfc4}.sheet .meal-INVALID{color:#b42318;text-decoration:line-through}.item-list{margin:0 0 12px;padding:0;list-style:none}.item-list li{border-bottom:1px solid #eef1f4;padding:6px 0}.item-state{text-align:center;border-radius:999px;min-width:52px;margin-right:8px;padding:1px 8px;font-size:12px;display:inline-block}.item-state.OPEN{color:#b42318;background:#fde2df}.item-state.PENDING{color:#1d4ed8;background:#dbeafe}.item-state.DONE{color:#166534;background:#dcfce7}.item-actions{flex-wrap:wrap;gap:6px;margin-left:10px;display:inline-flex}.req-status.APPROVED{color:#166534}.req-status.REJECTED,.req-status.REVOKED{color:#b42318}.req-status.PENDING,.req-status.CONFIRMED{color:#1d4ed8}.page-header .presence{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.page-header .presence .badge{margin-left:0}.badge.success{color:#15803d;background:#16a34a2e}.team-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.tick-list{max-height:320px;margin:0;padding:0;list-style:none;overflow:auto}.tick-list li{padding:2px 0}.settings-form label.check,.tick-list label.check{flex-direction:row;align-items:center;gap:6px;display:flex}.filters label:has(>input[type=checkbox]){flex-direction:row;align-items:center;gap:6px;display:flex}.filters label>input[type=checkbox],.settings-form label.check>input,.tick-list label.check>input{width:auto;margin:0}tr.voided td{color:var(--muted,#8a8f98);text-decoration:line-through}tr.voided td small,tr.voided td button{text-decoration:none}.device-select{flex-wrap:wrap;gap:6px;display:flex}.device-select input{min-width:220px}.toast{z-index:2000;color:#fff;background:#166534;border-radius:8px;max-width:calc(100vw - 32px);padding:10px 18px;font-size:14px;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0000002e}.todo-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.todo-card{border:1px solid var(--border,#e5e7eb);background:var(--card,#fff);color:inherit;border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;display:flex}.todo-card:hover{border-color:#2563eb}.todo-card-label{color:var(--muted,#6b7280);font-size:14px}.todo-card-count{font-size:22px}.todo-card-amount{font-size:15px}.todo-card.danger .todo-card-count,.todo-card.danger .todo-card-amount{color:#b91c1c}@media (width<=1100px) and (width>=641px){.staff-part-main .staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
