:root{--bg:#f6f5f8;--surface:#fff;--text:#1d1b22;--muted:#6a6673;--border:#e2dfe8;--primary:#5b2a86;--primary-text:#fff;--primary-soft:#efe7f7;--ok:#1b7f3b;--ok-soft:#e4f4ea;--warn:#9a5b00;--warn-soft:#fff1d9;--error:#b3261e;--error-soft:#fbe4e2;--radius:10px;--shadow:0 1px 2px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#131217;--surface:#1c1b22;--text:#ece9f2;--muted:#a29eae;--border:#33313c;--primary:#b88be0;--primary-text:#1a1024;--primary-soft:#2b2137;--ok:#5fcf85;--ok-soft:#16301f;--warn:#f0b356;--warn-soft:#3a2b10;--error:#ff8c85;--error-soft:#3d1a18}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{margin:0;font-size:1.5rem}h2{margin:0;font-size:1.15rem}.muted{color:var(--muted)}.small-text{font-size:.85rem}.right{text-align:right}.nowrap{white-space:nowrap}.spacer{flex:1}.center{place-items:center;min-height:60vh;display:grid}.row{align-items:center;gap:8px;display:flex}.wrap{flex-wrap:wrap}.shell{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{color:var(--primary)}.topbar nav{flex-wrap:wrap;gap:4px;display:flex}.topbar nav a{color:var(--text);border-radius:8px;padding:6px 12px;text-decoration:none}.topbar nav a:hover{background:var(--primary-soft)}.topbar nav a.active{background:var(--primary);color:var(--primary-text)}.who small{color:var(--muted)}.content{max-width:1100px;margin:0 auto;padding:20px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;min-height:38px;padding:8px 14px}.btn:hover:not(:disabled){background:var(--primary-soft)}.btn.primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--primary)}.btn.danger{color:var(--error);border-color:var(--error)}.btn.danger:hover:not(:disabled){background:var(--error-soft)}.btn.small{min-height:30px;padding:4px 10px;font-size:.88rem}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,.period-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:1.6rem;line-height:1}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;max-width:100%;min-height:38px;padding:8px 10px}input[type=checkbox]{width:16px;height:16px;min-height:0}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field span{font-size:.9rem;font-weight:600}.field small{color:var(--muted)}.check{align-items:center;gap:8px;margin:8px 0;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.toolbar input[type=search]{min-width:220px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.8rem}th.right,td.right{text-align:right}tbody tr:last-child td{border-bottom:0}tfoot th{color:var(--text);text-transform:none;border-top:2px solid var(--border);border-bottom:0;font-size:.95rem}tr.inactive td{color:var(--muted)}td.empty,p.empty{text-align:center;color:var(--muted);padding:24px}.stats{flex-wrap:wrap;gap:12px;margin:12px 0;display:flex}.stat{min-width:140px;font:inherit;color:inherit;text-align:left;flex-direction:column;padding:14px 18px;display:flex}.stat-n{color:var(--primary);font-size:2rem;font-weight:700;line-height:1.1}.stat.clickable{cursor:pointer}.stat.clickable:hover,.stat.active{border-color:var(--primary);background:var(--primary-soft)}.badge{background:var(--border);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.error{background:var(--error-soft);color:var(--error)}.notice{border-radius:8px;margin:10px 0;padding:10px 14px;font-weight:500}.notice.error{background:var(--error-soft);color:var(--error)}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.info{background:var(--primary-soft);color:var(--primary)}.backdrop{z-index:20;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;outline:none;width:min(480px,100%);max-height:92vh;overflow:auto;box-shadow:0 10px 40px #0000004d}.modal.wide{width:min(720px,100%)}.modal-head{justify-content:space-between;align-items:center;padding:16px 20px 0;display:flex}.modal-body{padding:12px 20px}.modal-actions{justify-content:flex-end;gap:8px;padding:12px 20px 18px;display:flex}.kv{grid-template-columns:auto 1fr;gap:6px 16px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:ui-monospace,monospace}.token{background:var(--bg);border:1px dashed var(--border);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:8px;margin-top:10px;padding:12px;font-size:.95rem;display:block}.split{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}.period-list{flex-direction:column;gap:2px;padding:6px;display:flex}.period-item{cursor:pointer;font:inherit;color:inherit;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px;display:flex}.period-item:hover{background:var(--primary-soft)}.period-item.active{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.period-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;padding:16px;display:flex}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{width:min(380px,100%);padding:28px}.login-card h1{margin-bottom:4px}.login-card .muted{margin:0 0 12px}@media (width<=760px){.split,.grid2{grid-template-columns:1fr}.content{padding:12px}.topbar{gap:8px;padding:8px 12px}.who{display:none}.topbar nav{scrollbar-width:none;flex-wrap:nowrap;flex:1 0 100%;order:3;margin:0 -4px;padding-bottom:2px;overflow-x:auto}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{white-space:nowrap;flex:none}.topbar .spacer{flex:1}th,td{padding:8px 10px}}.link-btn{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.print-overlay{z-index:15;color:#000;background:#ececf1;position:fixed;inset:0;overflow:auto}.print-toolbar{z-index:2;background:var(--surface);color:var(--text);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.print-failures{padding:0 20px}.print-sheets{padding:16px 0 40px}.print-page{background:#fff;grid-template-columns:repeat(2,85mm);grid-auto-rows:54mm;width:170mm;margin:0 auto 16px;display:grid;box-shadow:0 1px 6px #0003}.id-card{box-sizing:border-box;color:#000;outline-offset:-.2mm;break-inside:avoid;background:#fff;outline:.2mm dashed #888;align-items:center;gap:3mm;width:85mm;height:54mm;padding:4mm;display:flex;overflow:hidden}.id-card-text{flex-direction:column;flex:1;justify-content:space-between;min-width:0;height:100%;display:flex}.id-company{letter-spacing:.3mm;text-transform:uppercase;color:#444;font-size:3.2mm;font-weight:700}.id-name{overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;min-height:0;font-size:5.6mm;font-weight:700;line-height:1.15;display:-webkit-box;overflow:hidden}.id-name.long{font-size:4.4mm}.id-hint{color:#444;font-size:2.8mm}.id-code{color:#777;font-family:ui-monospace,monospace;font-size:2.6mm}.id-card .qr{flex:none;width:36mm;height:36mm}@media print{@page{margin:8mm}html,body{background:#fff!important}body>#root,.no-print{display:none!important}.print-overlay{background:#fff;position:static;overflow:visible}.print-sheets{padding:0}.print-page{box-shadow:none;break-after:page;margin:0}.print-page:last-child{break-after:auto}}.sub{margin:18px 0 4px;font-size:1rem}table.mini{width:100%;font-size:.92rem}table.mini th,table.mini td{padding:6px 8px}.section-card{margin:12px 0;padding:14px 16px}.section-card h2{margin-bottom:10px}.row-grid{flex-wrap:wrap;gap:6px;display:flex}.row-chip{border:1px dashed var(--border);min-width:34px;height:34px;color:var(--muted);border-radius:8px;place-items:center;font-size:.85rem;font-weight:600;display:inline-grid}.row-chip.taken{color:#fff;border:0}.dot{border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.assign-form{margin:12px 0;padding:14px 16px}.assign-form h2{margin-bottom:8px}.assign-grid{grid-template-columns:1.3fr 1fr 1.3fr auto;align-items:end;gap:12px;display:grid}.assign-grid .btn{margin-bottom:12px}@media (width<=760px){.assign-grid{grid-template-columns:1fr}}.acopio-stats{align-items:stretch}.acopio-card{min-width:240px;padding:14px 18px}.acopio-card h2{margin-bottom:8px}.acopio-card .kv dd{text-align:right;font-family:inherit;font-weight:600}.neg,.err{color:var(--error)}.kpis .stat{flex:150px;min-width:150px}.tone-bad .stat-n{color:var(--error)}.tone-warn .stat-n{color:var(--warn)}.tone-good .stat-n{color:var(--ok)}.chart-card{margin:12px 0;padding:14px 18px}.chart-card h2{margin-bottom:8px}.chart{margin:0}.chart-bars{align-items:stretch;gap:3px;height:150px;display:flex}.chart-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:stretch;min-width:0;display:flex}.bar-val{text-align:center;min-height:1.3em;color:var(--text);font-size:.7rem;line-height:1.3}.bar{background:var(--primary);opacity:.55;border-radius:3px 3px 0 0}.bar.now{opacity:1}.bar.zero{background:var(--border);opacity:1}.chart-axis{color:var(--muted);justify-content:space-between;margin-top:2px;font-size:.72rem;display:flex}.chart-axis span{text-align:center;flex:1}.dash-grid{align-items:start}@media (width<=760px){.dash-grid{grid-template-columns:1fr}.chart-bars{height:120px}}
