.q-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0 0 10px}
.q-kpi{border:1px solid var(--border);background:var(--card);border-radius:var(--radius2);padding:10px 12px}
.q-kpi .k{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--muted)}
.q-kpi .v{font-size:20px;font-weight:900;margin-top:3px;color:var(--navy)}.q-kpi .s{font-size:11px;color:var(--muted);font-weight:700;margin-top:2px;text-transform:none}
.q-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.q-grid2 .card{margin:0}
.q-tb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
.q-tb input.q{min-width:240px;padding:6px 9px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--paper);color:var(--text);text-transform:none}
.q-tb select,.q-tb input[type=month]{padding:6px 8px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:700;background:var(--card);color:var(--text)}
.q-tb .sp{margin-left:auto;font-size:11px;font-weight:800;color:var(--muted)}
.q-wrap{overflow-x:auto}.q-wrap td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.c{text-align:center;white-space:nowrap}
.q-b{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.03em;white-space:nowrap;background:var(--bg2);color:var(--text)}
.q-b.sv{background:#dcebfa;color:#1f4f8a}.q-b.vk{background:#f6e3c7;color:#7a4a10}.q-b.ok{background:#d9efdf;color:#1d6b3a}.q-b.no{background:#f8d0d0;color:#a01818}.q-b.wa{background:#fff2c2;color:#7a5b00}.q-b.pu{background:#eadff7;color:#5b2d8f}
.q-al{padding:7px 10px;border-left:4px solid var(--border2);background:var(--card);margin:0 0 5px;font-size:12px;font-weight:700;text-transform:none;cursor:pointer}
.q-al.red{border-color:#b22;background:#fbe3e3}.q-al.amber{border-color:#c8902a;background:#fdf3d8}.q-al.info{border-color:#5a7fb0}
.q-bars{display:flex;gap:10px;align-items:flex-end;height:170px;padding:10px 6px 0}.q-bars .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.q-bars .stk{width:70%;display:flex;flex-direction:column-reverse}.q-bars .b1{background:#1f4f8a}.q-bars .b2{background:#c8902a}.q-bars .lb{font-size:10px;font-weight:800;margin-top:4px;color:var(--muted)}.q-bars .vl{font-size:10px;font-weight:800;margin-bottom:2px}
.q-leg{font-size:11px;font-weight:700;display:flex;gap:12px;padding:6px 10px}.q-leg i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:middle}
.q-donut{display:flex;align-items:center;gap:16px;padding:10px 12px}.q-donut .lg div{font-size:12px;font-weight:700;margin:3px 0}
.q-prof{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 14px}.q-prof .form-group{margin-bottom:6px}
.q-sec{font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--gold);margin:10px 0 6px;border-bottom:1px solid var(--border);padding-bottom:3px;grid-column:1/-1}
.q-imgs{display:flex;gap:10px;flex-wrap:wrap}.q-imgs img{max-width:260px;max-height:170px;border:1px solid var(--border);border-radius:6px;cursor:zoom-in}
.modal.wide{max-width:1100px;width:96vw}
.q-note{font-size:11px;color:var(--muted);font-weight:600;text-transform:none;line-height:1.5;padding:6px 12px}
tr.q-click{cursor:pointer}tr.q-click:hover td{background:var(--hover)}tr.q-tot td{font-weight:900;background:var(--bg)}
.login-card .brand-title{text-transform:uppercase}
@media(max-width:900px){.q-grid2{grid-template-columns:1fr}.q-prof{grid-template-columns:1fr}}

.q-lb{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);display:none;flex-direction:column;text-transform:none}
.q-lb-top{display:flex;gap:6px;align-items:center;padding:8px 12px;color:#fff;font-size:13px}.q-lb-top button{background:#333;color:#fff;border:1px solid #666;border-radius:6px;padding:5px 10px;cursor:pointer;font-weight:700}
.q-lb-stage{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center}.q-lb-stage img{max-width:92vw;max-height:84vh;transform-origin:center;transition:transform .15s;cursor:zoom-in;border-radius:6px}
.q-lb-nav{position:absolute;top:50%;z-index:2;background:rgba(255,255,255,.15);color:#fff;border:none;font-size:42px;width:52px;height:72px;cursor:pointer;border-radius:8px}.q-lb-nav.l{left:10px}.q-lb-nav.r{right:10px}
.q-imgs img{width:240px;height:150px;object-fit:cover}

.q-pv{position:fixed;inset:0;z-index:9000;background:#5d636d;display:none;flex-direction:column;text-transform:none}
.q-pv-bar{display:flex;gap:6px;align-items:center;padding:8px 12px;background:var(--navy);color:var(--on);font-size:13px}
.q-pv-bar button{background:rgba(255,255,255,.1);color:var(--on);border:1px solid rgba(255,255,255,.35);border-radius:6px;padding:6px 11px;cursor:pointer;font-weight:800;font-size:12px}.q-pv-bar button.pri{background:#2f8f50;border-color:#2f8f50}
.q-pv-stage{flex:1;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:15px}
.q-pv-wrap{transform-origin:0 0;flex-shrink:0;position:relative}.q-pv-wrap iframe{width:794px;height:1123px;border:0;background:#fff;box-shadow:0 6px 30px rgba(0,0,0,.45);transform-origin:0 0;position:absolute;left:0;top:0}

/* sticky headers */
.content .q-tb{position:sticky;top:-12px;z-index:20;background:var(--bg);margin:-12px -12px 10px;padding:10px 12px 8px;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.q-wrap{overflow:auto;max-height:calc(100vh / 1.1 - 190px);position:relative}
.card .tbl thead{position:sticky;top:0;z-index:6}
.card .tbl thead th{position:relative;background:var(--navy);background-clip:padding-box}
.card .tbl thead tr:last-child th{box-shadow:0 2px 3px rgba(0,0,0,.25)}
.tbl.stk1 td:first-child,.tbl.stk1 thead tr:first-child th:first-child,.tbl.stk2 td:nth-child(-n+2),.tbl.stk2 th:nth-child(-n+2){position:sticky;z-index:3}
.tbl.stk1 td:first-child,.tbl.stk1 thead tr:first-child th:first-child{left:0}
.tbl.stk2 td:first-child,.tbl.stk2 th:first-child{left:0;min-width:56px;width:56px}.tbl.stk2 td:nth-child(2),.tbl.stk2 th:nth-child(2){left:56px}
.tbl.stk1 td:first-child,.tbl.stk2 td:nth-child(-n+2){background:var(--card);box-shadow:inset -1px 0 0 var(--border2)}
.tbl.stk1 tr:nth-child(even) td:first-child,.tbl.stk2 tr:nth-child(even) td:nth-child(-n+2){background:var(--bg)}
.tbl.stk1 thead th:first-child,.tbl.stk2 thead th:nth-child(-n+2){z-index:8}
.tbl tr.q-tot td:first-child{background:var(--bg)}
@media(max-width:900px){.q-wrap{max-height:calc(100vh / 1.1 - 150px)}.content .q-tb{position:static;margin:0 0 10px;padding:0;box-shadow:none}}

.q-av{width:24px;height:24px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px;border:1px solid var(--border2);display:inline-block}.q-av0{background:var(--bg2);color:var(--muted);font-size:11px;font-weight:900;text-align:center;line-height:22px}
.tbl.stk2 td:nth-child(2),.tbl.stk2 th:nth-child(2){min-width:230px}

.q-brand{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--on);margin:2px 0 6px}
.q-brand-login{color:var(--navy);margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.q-brand-login .q-bt{font-size:20px;font-weight:900;letter-spacing:.06em;line-height:1.1}.q-brand-login .q-bs{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--muted);margin-top:4px}

/* one-line rows */
.card .tbl th,.card .tbl td{white-space:nowrap;padding-top:4px;padding-bottom:4px;line-height:1.35;vertical-align:middle}
.card .tbl td .q-note{display:none}
.card .tbl .ell{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.card .tbl td .btn-sm{padding:2px 7px;font-size:11px;line-height:1.4;white-space:nowrap}
.card .tbl td .badge,.card .tbl td .b{white-space:nowrap}
.q-tx{display:inline-block;margin-left:5px;padding:0 5px;border-radius:4px;background:#e8f0ff;color:#1e3a6e;font-size:10.5px;font-weight:800;vertical-align:middle;line-height:16px}
.card .tbl .q-av{width:20px;height:20px;vertical-align:middle}
