:root{--bg:#090c12;--panel:rgba(22,27,37,.78);--line:rgba(148,163,184,.16);--ink:#edf2f7;--muted:#8a97a8;--cyan:#86d6ed;--red:#fb5966;--green:#77c99c;--amber:#f7bf69}*{box-sizing:border-box}body{margin:0;background:radial-gradient(800px 500px at 85% -10%,#172436 0%,transparent 62%),var(--bg);color:var(--ink);font-family:Manrope,"Noto Sans Thai",sans-serif}button{font:inherit;cursor:pointer}.hidden{display:none!important}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;background:rgba(9,12,18,.8);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}.brand{display:flex;gap:11px;align-items:center;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #76d4ef;border-radius:9px;background:#12313f;color:#b8f0ff;font:500 .72rem DM Mono,monospace}.brand strong{font-size:.92rem}.brand small,.admin-name small{display:block;color:var(--muted);font-size:.65rem;margin-top:2px}.environment{font:500 .65rem DM Mono,monospace;color:#9fb8c3;border:1px solid #294353;border-radius:99px;padding:7px 10px}.environment i{display:inline-block;width:6px;height:6px;border-radius:99px;background:#5add9a;margin-right:6px;box-shadow:0 0 9px #5add9a}.nav-actions{display:flex;align-items:center;gap:10px}.admin-name{text-align:right;font-size:.75rem}.quiet-button,.logout-button,.text-button{border:1px solid var(--line);color:#b9c7d1;background:transparent;border-radius:7px;padding:7px 10px;font-size:.7rem}.quiet-button:hover{border-color:#74cce5;color:#dffbff}.logout-button{color:#edafb4}.shell{max-width:1340px;margin:auto;padding:42px clamp(20px,4vw,64px) 64px}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.eyebrow{font:500 .65rem DM Mono,monospace;letter-spacing:.14em;color:#78afc0;margin:0 0 10px}.hero h1{font-size:clamp(2rem,4vw,3.7rem);letter-spacing:-.06em;margin:0}.hero h1 span{color:#a4dce8}.hero p:not(.eyebrow),.upload-zone p{color:var(--muted);font-size:.83rem}.live-risk{border-left:1px solid var(--line);padding-left:30px}.live-risk p{margin:0;color:var(--muted);font:500 .62rem DM Mono,monospace}.live-risk strong{font:500 2.35rem/1 DM Mono,monospace;color:var(--red);display:block;margin:8px 0}.live-risk span{font:.63rem DM Mono,monospace;color:#b9969a}.alert-strip{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,rgba(155,33,48,.8),rgba(88,26,37,.55));border:1px solid rgba(255,110,120,.42);border-radius:10px;padding:13px 16px;margin-bottom:18px;font-size:.8rem}.alert-pulse{width:8px;height:8px;border-radius:50%;background:#ffb2ba;box-shadow:0 0 0 0 rgba(255,104,116,.8);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}.box-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.box-card{position:relative;text-align:left;border:1px solid var(--line);border-radius:12px;padding:17px;background:var(--panel);color:var(--ink);box-shadow:0 12px 30px rgba(0,0,0,.14);transition:.18s}.box-card:hover,.box-card.active{transform:translateY(-2px);border-color:#4e8291;background:#172531}.box-icon{color:#7bd5ee;font:500 .63rem DM Mono,monospace}.box-label{display:block;color:#b9c8d1;font-size:.75rem;margin:13px 0 2px}.box-card strong{font:600 1.8rem DM Mono,monospace}.box-meta{display:flex;gap:10px;margin-top:9px;font:500 .62rem DM Mono,monospace}.box-meta b{color:#f4bd75}.box-meta em{color:#79c99d;font-style:normal}.workspace-card{background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 40px rgba(0,0,0,.14);backdrop-filter:blur(12px)}.upload-panel{margin-bottom:18px}.upload-zone{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid var(--line);transition:.2s}.upload-zone.dragging{background:#152936}.upload-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#17303c;color:#9de7fb;font:1.35rem DM Mono,monospace}.upload-zone strong{font-size:.85rem}.upload-zone p{margin:4px 0 0}.primary-button{border:0;border-radius:7px;background:#a3e5f7;color:#10212b;padding:9px 13px;font-weight:700;font-size:.73rem;margin-left:auto}.upload-feedback{padding:10px 20px;display:flex;gap:15px;justify-content:space-between;color:var(--muted);font:.7rem DM Mono,monospace}.text-button{padding:0;border:0;color:#8cdced}.table-card{overflow:hidden}.table-header{display:flex;align-items:center;justify-content:space-between;padding:20px}.table-header h2{font-size:1rem;margin:0}.filter-state{display:flex;gap:12px;color:var(--muted);font:.7rem DM Mono,monospace}.table-shell{overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th{padding:11px 18px;background:rgba(11,15,22,.6);text-align:left;color:#8192a3;font:500 .62rem DM Mono,monospace;letter-spacing:.08em}td{padding:14px 18px;border-top:1px solid var(--line);font-size:.76rem;color:#c9d4dd}td strong,td small{display:block}td strong{color:#eef4f7;font-weight:600}td small{color:#7f91a0;margin-top:4px;font:.63rem DM Mono,monospace}.tax-tag{display:inline-block;border:1px solid #304d5b;border-radius:99px;padding:3px 6px;color:#a7d9e7}.risk-badge,.status-pill,.deadline-pill{display:inline-block;border-radius:99px;padding:5px 8px;font:500 .61rem DM Mono,monospace}.risk-a,.deadline-pill.overdue{background:#4a1f29;color:#ffd8dc}.risk-b,.deadline-pill.near{background:#4a3720;color:#ffe0a4}.risk-c,.deadline-pill.safe{background:#1b3340;color:#b4e7f6}.status-completed{background:#1a3c2e;color:#a5e1c0}.status-open{background:#2b3340;color:#c5d1df}tr.risk-a{background:linear-gradient(90deg,rgba(122,34,46,.66),rgba(61,23,30,.38));box-shadow:inset 4px 0 #fb5966}tr.risk-a td{color:#ffe7e9}.row-actions{white-space:nowrap}.detail-button,.delete-button{background:transparent;border:0;color:#91ddef;font-size:.68rem;padding:4px}.delete-button{color:#f3a6ad}.empty-state{padding:46px;text-align:center;color:var(--muted)}dialog{width:min(680px,92vw);border:1px solid #385360;border-radius:13px;background:#111923;color:var(--ink);padding:25px;box-shadow:0 28px 90px #000}dialog::backdrop{background:rgba(0,0,0,.7)}dialog button{float:right;border:0;background:transparent;color:#fff;font-size:1.4rem}dialog h2{font-size:1rem}dialog pre{overflow:auto;white-space:pre-wrap;color:#a9c5d1;font:.72rem/1.6 DM Mono,monospace}.login-body{min-height:100vh;display:grid;place-items:center}.login-card{width:min(430px,92vw);border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:34px;box-shadow:0 30px 80px #000}.login-card .brand-mark{margin-bottom:25px}.login-card h1{font-size:2rem;letter-spacing:-.05em;margin:0}.login-copy{color:var(--muted);font-size:.82rem}.login-card label{display:block;color:#b8c6d1;font-size:.72rem;margin-top:17px}.login-card input{display:block;width:100%;margin-top:7px;border:1px solid #344554;border-radius:7px;background:#0c121a;color:#fff;padding:11px}.login-submit{width:100%;margin:22px 0 0}.login-error,.login-notice{margin-top:15px;padding:10px;border-radius:7px;font-size:.72rem}.login-error{background:#44212a;color:#ffbec4}.login-notice{background:#40321c;color:#ffe0a1}@media(max-width:800px){.topbar{height:auto;padding:14px 20px;gap:12px;flex-wrap:wrap}.environment{display:none}.hero{align-items:start;gap:20px}.box-grid{grid-template-columns:repeat(2,1fr)}.nav-actions{margin-left:auto}.admin-name{display:none}.upload-zone{align-items:flex-start;flex-wrap:wrap}.primary-button{margin-left:0}.live-risk{padding-left:14px}.shell{padding-top:28px}}
