:root{--bg:#f3f6f5;--panel:#ffffff;--ink:#1c2321;--muted:#66706b;--line:#d8e1de;--brand:#006b5f;--brand-dark:#00483f;--brand-soft:#e3f1ee;--danger:#b42318;--warn:#ad6800;--ok:#067647;--shadow:0 12px 34px rgba(17,38,34,0.08)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#eef6f4 0,var(--bg) 320px),var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.shell{width:min(1240px,100%);margin:0 auto;padding:18px}.topbar{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:flex;gap:12px;justify-content:space-between;margin-bottom:20px;padding:12px;position:-webkit-sticky;position:sticky;top:12px;z-index:10}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:10px;font-size:20px;font-weight:800}.brand-logo{display:block;height:34px;object-fit:contain;width:136px}.current-session{align-items:center;background:#f6faf9;border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;max-width:520px;padding:8px 10px}.current-session strong{font-size:16px}.current-session span:not(.status){color:var(--muted);font-size:13px}.scan-queue{display:flex;flex-wrap:wrap;gap:8px}.close-checklist{background:#f8fbfa;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:6px;gap:6px;margin-top:10px;padding:10px}.check-item{align-items:center;display:inline-flex;gap:6px}.check-item.ok{color:var(--ok)}.check-item.warn{color:var(--warn)}.progress-dashboard{background:#ffffff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;margin-top:16px;padding:16px}.section-head.compact{margin:0}.progress-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric{background:#f7faf9;border:1px solid var(--line);border-radius:8px;padding:12px}.metric span,.progress-note{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px}.metric strong{display:block;font-size:24px;margin-top:8px}.progress-note{justify-content:space-between}.login-logo{height:44px;object-fit:contain;width:176px}.nav{display:flex;flex-wrap:wrap;gap:8px}.user-actions{align-items:center;display:inline-flex;gap:8px}.user-chip{background:#f2f6f5;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;font-weight:700;padding:9px 12px}.button,button{align-items:center;background:var(--brand);border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:15px;font-weight:700;gap:8px;justify-content:center;min-height:44px;padding:10px 14px}.button.secondary,button.secondary{background:#e6efed;color:var(--brand-dark)}.button.danger,button.danger{background:#f8d7d3;color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.6}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(29,51,46,.05)}.panel{padding:18px}.grid{display:grid;grid-gap:14px;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-panel{align-items:center;background:#ffffff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:flex;gap:16px;justify-content:space-between;margin-bottom:22px;padding:22px}.hero-panel h1,.section-head h2{margin:4px 0 8px}.eyebrow{color:var(--brand);font-size:12px;font-weight:900;letter-spacing:0;margin:0;text-transform:uppercase}.section-head{align-items:end;display:flex;justify-content:space-between;margin:18px 0 10px}.toolbar{align-items:end;background:#ffffff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(29,51,46,.05);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(240px,1fr) 210px 190px;margin-bottom:16px;padding:14px}.toolbar label span{align-items:center;display:inline-flex;gap:6px}.search-field{position:relative}.search-field svg{color:var(--muted);left:12px;position:absolute;top:34px}.search-field input{padding-left:38px}.session-grid{display:grid;grid-gap:14px;gap:14px}.session-card{background:#ffffff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(29,51,46,.05);padding:16px}.session-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.session-card h3{margin:4px 0 0}.session-id{color:var(--brand);font-size:12px;font-weight:900}.session-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:10px 16px;margin:12px 0}.session-meta span{align-items:center;display:inline-flex;gap:6px}label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px;font-weight:700}input,select,textarea{border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit;min-height:44px;padding:10px;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,107,95,.14);outline:none}input::placeholder,textarea::placeholder{color:#9aa39f;font-style:italic;opacity:.75}input[type=checkbox]{min-height:auto;width:auto}textarea{min-height:88px}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}.table-wrap{overflow-x:auto}.stat{padding:14px}.stat strong{display:block;font-size:26px}.muted{color:var(--muted)}.scan-button{font-size:22px;min-height:72px;width:100%}.scanner{background:#111;border-radius:8px;min-height:280px;overflow:hidden}.success{background:#e4f7ec;border:1px solid #a8dfbd;color:var(--ok);padding:12px;border-radius:8px}.status{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:5px 8px;white-space:nowrap}.status.ok{background:#e4f7ec;color:var(--ok)}.status.warn{background:#fff0d4;color:var(--warn)}.status.bad{background:#fde2df;color:var(--danger)}.void-row{color:var(--muted);text-decoration:line-through}@media (max-width:760px){.shell{padding:14px}.grid.four,.grid.two{grid-template-columns:1fr}.topbar{position:static}.hero-panel,.section-head,.topbar{align-items:flex-start;flex-direction:column}.toolbar{grid-template-columns:1fr}.button,.nav,.user-actions{width:100%}.user-actions{align-items:stretch;flex-direction:column}}