:root{--orange:#ff560b;--orange-soft:#ffe7db;--red:#b80201;--navy:#10141d;--navy-2:#171c28;--cyan:#0e9dc4;--cyan-soft:#ddf3fa;--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--border:#e3e6eb;--border-2:#eceef2;--ink:#14181f;--ink-2:#3d4552;--muted:#5d6774;--muted-2:#8a93a0;--accent:var(--orange);--accent-soft:var(--orange-soft);--good:#0e9f5a;--good-soft:#dcf5e8;--bad:#d92d20;--bad-soft:#fee4e2;--warn:#b54708;--warn-soft:#fef0c7;--data-1:#0891b2;--data-2:#7c6ae8;--data-3:#0e9f5a;--data-4:#d97706;--data-5:#db2777;--r-sm:5px;--r:8px;--r-lg:12px;--r-xl:14px;--sh-1:0 1px 2px #10141d0d;--sh-2:0 2px 8px #10141d12;--sh-3:0 8px 24px #10141d1f;--font-sans:"IBM Plex Sans", "IBM Plex Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.32, .72, 0, 1);--dur-fast:.14s;--dur:.2s;--dur-slow:.28s}html[data-theme=dark]{--bg:#0a0c10;--surface:#10131a;--surface-2:#161a23;--border:#ffffff14;--border-2:#ffffff0d;--ink:#eef1f6;--ink-2:#c3cad6;--muted:#98a2b3;--muted-2:#667085;--orange-soft:#ff560b21;--accent-soft:#ff560b21;--cyan:#38bdf8;--cyan-soft:#38bdf81f;--good:#34d399;--good-soft:#34d3991f;--bad:#f87171;--bad-soft:#f871711f;--warn:#fbbf24;--warn-soft:#fbbf241f;--data-1:#22d3ee;--data-2:#a78bfa;--data-3:#34d399;--data-4:#fbbf24;--data-5:#f472b6;--sh-1:0 0 0 1px #ffffff0a;--sh-2:0 0 0 1px #ffffff0d, 0 4px 16px #00000073;--sh-3:0 0 0 1px #ffffff0f, 0 16px 40px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0a0c10;--surface:#10131a;--surface-2:#161a23;--border:#ffffff14;--border-2:#ffffff0d;--ink:#eef1f6;--ink-2:#c3cad6;--muted:#98a2b3;--muted-2:#667085;--orange-soft:#ff560b21;--accent-soft:#ff560b21;--cyan:#38bdf8;--cyan-soft:#38bdf81f;--good:#34d399;--good-soft:#34d3991f;--bad:#f87171;--bad-soft:#f871711f;--warn:#fbbf24;--warn-soft:#fbbf241f;--data-1:#22d3ee;--data-2:#a78bfa;--data-3:#34d399;--data-4:#fbbf24;--data-5:#f472b6;--sh-1:0 0 0 1px #ffffff0a;--sh-2:0 0 0 1px #ffffff0d, 0 4px 16px #00000073;--sh-3:0 0 0 1px #ffffff0f, 0 16px 40px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}html{transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out)}body,.card,.input,.btn,.app-sidebar{transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out)}@media (prefers-reduced-motion:reduce){html,body,.card,.input,.btn,.app-sidebar{transition:none}}*{box-sizing:border-box}html,body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}#root{min-height:100vh}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}input,select,textarea{font-family:inherit}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.btn{border-radius:var(--r);border:1px solid var(--border);background:var(--surface);color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);white-space:nowrap;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.98)}.btn:hover{border-color:var(--ink-2);background:var(--surface-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(.94);border-color:var(--accent);background:var(--accent)}.btn-navy{background:var(--navy);border-color:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-2);border-color:var(--navy-2)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg)}.btn-sm{padding:6px 10px;font-size:12px}.chip{background:var(--bg);border:1px solid var(--border);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.chip-good{background:var(--good-soft);color:var(--good);border-color:#0000}.chip-bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.chip-accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:12px;font-weight:500}.input{border-radius:var(--r);border:1px solid var(--border);background:var(--surface);height:40px;color:var(--ink);outline:none;padding:0 12px;font-size:14px;transition:border .12s,box-shadow .12s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 18%, transparent)}.divider{background:var(--border);border:0;height:1px;margin:0}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#d8dee7;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#b8c2d1}@keyframes fadeUp{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-fade{opacity:1;animation:.32s both fadeUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes drawerIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}@keyframes skeleton-pulse{0%,to{background-color:var(--surface-2,#f1f5f9)}50%{background-color:var(--border-2,#e5e7eb)}}.show-md,.show-sm{display:none!important}@media (width<=1024px){.hide-md{display:none!important}.show-md{display:inline-flex!important}}@media (width<=640px){.hide-sm{display:none!important}.show-sm{display:inline-flex!important}}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.responsive-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.responsive-table-wrap>table{min-width:720px}@media (width<=640px){.responsive-table-wrap>table{min-width:700px}}.table-wrap-sticky{max-height:70vh;overflow:auto}.table-wrap-sticky>table>thead{z-index:2;background:var(--surface);position:sticky;top:0}.split-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}@media (width<=640px){.split-row{align-items:flex-start}.split-row>.split-row-end{width:100%}.split-row>.split-row-end>.btn{justify-content:center;width:100%}}html[data-theme=dark] .chip-good{color:#4ade80}html[data-theme=dark] .chip-bad{color:#f87171}html[data-theme=dark] .chip-warn{color:#fbbf24}html[data-theme=dark] .chip-accent{color:var(--accent)}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:var(--surface-2);color:var(--ink);border-color:var(--border)}html[data-theme=dark] input:focus,html[data-theme=dark] select:focus,html[data-theme=dark] textarea:focus{border-color:var(--accent);outline-color:var(--accent)}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:var(--muted-2)}html[data-theme=dark] code,html[data-theme=dark] .mono{background:var(--surface-2);color:var(--ink-2)}html[data-theme=dark] ::-webkit-scrollbar{width:10px;height:10px}html[data-theme=dark] ::-webkit-scrollbar-track{background:var(--bg)}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}html[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}html[data-theme=dark] .card-tinted-good{background:#22c55e14;border-color:#22c55e33}html[data-theme=dark] .card-tinted-bad{background:#dc262614;border-color:#dc262633}@media (prefers-color-scheme:dark){html[data-theme=system] .chip-good{color:#4ade80}html[data-theme=system] .chip-bad{color:#f87171}html[data-theme=system] .chip-warn{color:#fbbf24}html[data-theme=system] input,html[data-theme=system] select,html[data-theme=system] textarea{background:var(--surface-2);color:var(--ink);border-color:var(--border)}}.metric-section{padding:0;overflow:hidden}.metric-section-head{display:block}.metric-grid{background:var(--border);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;display:grid}.metric-grid>.card{box-shadow:none;border:none;border-radius:0;min-height:108px}.metric-grid>.card:hover{border:none}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;flex-shrink:0;width:240px;height:100vh;transition:transform .24s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0}@media (width<=1024px){.app-sidebar{box-shadow:var(--sh-3);position:fixed;top:0;left:0;transform:translate(-100%)}.app-sidebar.is-open{transform:translate(0)}}.app-scrim{display:none}@media (width<=1024px){.app-scrim{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a254073;animation:.18s both fadeIn;display:block;position:fixed;inset:0}}.app-topbar{padding:20px 28px}@media (width<=640px){.app-topbar{padding:14px 16px}.app-topbar h1{font-size:18px!important}.app-topbar .topbar-sub{font-size:12px!important}.page-fade{padding:16px!important}}.modal-overlay{padding:24px}.modal-card{max-width:min(560px,100vw - 32px)}@media (width<=640px){.modal-overlay{padding:16px}.modal-card{max-width:min(560px,100vw - 32px)}.modal-header,.modal-footer{padding:14px 16px!important}.modal-body{padding:16px!important}}@media (width<=1024px){.app-sidebar nav button{min-height:44px;padding:11px 12px!important}}.kpi-grid-4{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.kpi-grid-5{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}@media (width<=1180px){.kpi-grid-5{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.kpi-grid-4,.kpi-grid-5{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.kpi-grid-4,.kpi-grid-5{grid-template-columns:repeat(2,1fr)}}@media (width<=400px){.kpi-grid-4,.kpi-grid-5{grid-template-columns:1fr}}@media (width<=640px){.reports-layout{grid-template-columns:1fr!important}.reports-metric-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}}.login-screen{background:var(--surface);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}.login-brand{color:#fff;background:#0a0c10;border-right:1px solid #ffffff0f;flex-direction:column;justify-content:space-between;gap:24px;padding:48px 56px;display:flex;position:relative;overflow:hidden}.login-form-pane{flex-direction:column;justify-content:center;align-items:center;padding:48px 56px;display:flex;position:relative}.login-logo-wrap{z-index:1;justify-content:center;display:flex;position:relative}.login-logo-img{object-fit:contain;filter:drop-shadow(0 6px 28px #00000080);width:100%;max-width:480px;height:auto;display:block}.login-headline{letter-spacing:-.02em;margin:0;font-size:52px;font-weight:800;line-height:1.05}.login-trust{color:#ffffff80;flex-wrap:wrap;align-items:center;gap:18px;font-size:12px;display:flex}@media (width<=1024px){.login-screen{grid-template-columns:1fr}.login-brand{order:2;gap:22px;min-height:auto;padding:28px 22px 32px}.login-form-pane{order:1;min-height:auto;padding:36px 22px 48px}.login-logo-img{max-width:340px}.login-headline{font-size:34px}.login-orb-1{width:280px!important;height:280px!important}.login-orb-2{display:none!important}}@media (width<=560px){.login-logo-img{max-width:240px}.login-headline{font-size:26px}.login-trust{gap:8px;font-size:11px}.login-trust .dot{display:none}.login-brand{padding:22px 18px 26px}.login-form-pane{padding:28px 18px 48px}}.bottom-nav{display:none}@media (width<=1024px){.bottom-nav{background:var(--surface);border-top:1px solid var(--border);z-index:45;justify-content:space-around;height:60px;padding:4px 0 8px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{cursor:pointer;min-height:52px;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-size:10px;font-weight:500;display:flex}.bottom-nav button.is-active{color:var(--accent)}.page-fade{padding-bottom:80px!important}}
