:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg, #ffffff);color:var(--text, #0f172a)}html,body,#root{height:100%;margin:0;padding:0}body{display:flex;flex-direction:column;min-width:320px;min-height:100vh}a{font-weight:500;color:var(--brand, #2563eb);text-decoration:none}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;background:none;padding:0}:root{--bg: #ffffff;--card: #f8fafc;--muted: #475569;--text: #0f172a;--brand: #2563eb;--brand-600: #1d4ed8;--ok: #16a34a;--warn: #f59e0b;--err: #dc2626;--border: #e2e8f0;--shadow: 0 6px 20px rgba(15, 23, 42, .06);--surface: var(--card);--line: var(--border)}@media (prefers-color-scheme: dark){:root{--bg: #0b1220;--card: #0f172a;--muted: #94a3b8;--text: #e2e8f0;--brand: #3b82f6;--brand-600: #2563eb;--ok: #22c55e;--warn: #fbbf24;--err: #f87171;--border: #1e293b;--shadow: 0 6px 24px rgba(2, 6, 23, .6);--surface: var(--card);--line: var(--border)}}.theme-dark{--bg: #0b1220;--card: #0f172a;--muted: #94a3b8;--text: #e2e8f0;--brand: #3b82f6;--brand-600: #2563eb;--ok: #22c55e;--warn: #fbbf24;--err: #f87171;--border: #1e293b;--shadow: 0 6px 24px rgba(2, 6, 23, .6)}html,body,#root{height:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{max-width:1280px;margin:0 auto;padding:24px;text-align:left}.h1,h1{font-size:28px;line-height:1.2;margin:0 0 12px}.h2,h2{font-size:22px;line-height:1.25;margin:16px 0 8px}.h3,h3{font-size:18px;line-height:1.3;margin:12px 0 6px}small,.muted{color:var(--muted)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1280px;margin:0 auto;padding:0 16px}.row{display:flex;gap:16px;flex-wrap:wrap}.col{flex:1 1 280px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:#fff;padding:10px 16px;border-radius:10px;border:1px solid transparent;font-weight:600;cursor:pointer;transition:transform .05s ease,background .2s ease,box-shadow .2s ease;box-shadow:var(--shadow)}.btn:hover{background:var(--brand-600)}.btn[disabled]{opacity:.7;cursor:not-allowed;box-shadow:none}.btn.ghost{background:transparent;color:var(--brand);border-color:var(--border);box-shadow:none}.btn.ghost:hover{background:#2563eb14}.point{background:var(--card);color:var(--text);padding:6px 10px;border-radius:8px;font-size:13px;border:1px solid var(--border)}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.kpi{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;box-shadow:var(--shadow)}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{font-size:1.5rem;font-weight:700;color:var(--text)}.kpis{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:12px;margin:8px 0 12px}@media (max-width: 900px){.kpis{grid-template-columns:repeat(2,minmax(200px,1fr))}}@media (max-width: 640px){.kpis{grid-template-columns:1fr}}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--muted)}.table tr:last-child td{border-bottom:0}.input,input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.input:focus,input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #2563eb26}.theme-dark .input,.theme-dark input[type=text],.theme-dark input[type=email],.theme-dark input[type=password],.theme-dark input[type=number],.theme-dark select,.theme-dark textarea{background:#0b1220;color:var(--text)}@media (prefers-color-scheme: dark){input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{background:#0b1220;color:var(--text)}}.label{display:block;margin:8px 0 6px;font-weight:600}.alert{padding:10px 12px;border-radius:10px;border:1px solid var(--border)}.alert.ok{background:#22c55e14;color:var(--ok)}.alert.warn{background:#f59e0b1f;color:var(--warn)}.alert.err{background:#dc26261a;color:var(--err)}.badge{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;border:1px solid var(--border)}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.read-the-docs{color:#888}.badge-ok{background:#16a34a1a;color:var(--ok);border-color:var(--ok)}.badge-warn{background:#f59e0b1a;color:var(--warn);border-color:var(--warn)}.badge-err{background:#dc26261a;color:var(--err);border-color:var(--err)}.skeleton-block{display:block;width:100%;height:1em;background:linear-gradient(90deg,var(--card) 25%,var(--border) 37%,var(--card) 63%);background-size:400% 100%;animation:skeleton-loading 1.4s ease infinite;border-radius:6px}@keyframes skeleton-loading{0%{background-position:100% 0}to{background-position:0 0}}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:12px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.topbar .logo{height:28px;width:auto;padding:0;filter:none;will-change:auto;transition:none}.brand{font-weight:800;letter-spacing:.2px;font-size:18px}.brand .pay{color:var(--warn)}.btn-primary{background:var(--brand);color:#fff;border-color:transparent}.btn-primary:hover{background:var(--brand-600)}.toast-wrap{position:fixed;right:16px;bottom:16px;display:grid;gap:10px;z-index:1000}.toast{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);min-width:220px;opacity:0;transform:translateY(6px);transition:.2s ease}.toast.show{opacity:1;transform:translateY(0)}.toast .title{font-weight:700;margin-bottom:4px}.toast.ok{border-color:#22c55e80}.toast.err{border-color:#dc262680}.table tr:nth-child(2n) td{background:#00000005}@media (prefers-color-scheme: dark){.table tr:nth-child(2n) td{background:#ffffff08}}@media (max-width: 420px){.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden}.table td{display:grid;grid-template-columns:120px 1fr;gap:8px;border-bottom:1px solid var(--border);padding:10px 12px}.table td:last-child{border-bottom:0}.table td:before{content:attr(data-label);font-weight:700;color:var(--muted)}.copy-id{color:var(--brand);cursor:pointer;position:relative}.copied-badge{margin-left:8px;padding:2px 6px;border-radius:999px;background:#22c55e1f;color:var(--ok);font-size:11px;border:1px solid rgba(34,197,94,.3)}}.copy-id{color:var(--brand);cursor:pointer;position:relative}.copied-badge{margin-left:8px;padding:2px 6px;border-radius:999px;background:#22c55e1f;color:var(--ok);font-size:11px;border:1px solid rgba(34,197,94,.3)}.tableWrap{overflow-x:auto}.table thead th{position:sticky;top:0;background:var(--card);z-index:1}.empty{text-align:center;color:var(--muted);padding:16px}.copy-id:hover{text-decoration:underline}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn.ghost.active{background:#2563eb1f;border-color:var(--brand)}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:12px}.pagination button{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-size:13px;min-width:32px}.pagination button.active{background:var(--brand);color:#fff;border-color:var(--brand)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.date-range-icon{margin-left:6px;color:var(--muted);cursor:pointer;transition:color .2s ease}.date-range-icon:hover{color:var(--brand)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061780;display:grid;place-items:center;z-index:1000}.modal{width:min(680px,92vw);background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.modal-body{padding:14px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.row-click{cursor:pointer}.row-click:hover td{background:#2563eb0f}@media (prefers-color-scheme: dark){.row-click:hover td{background:#3b82f614}}.th-sort{all:unset;cursor:pointer;font-weight:700;color:var(--muted)}.th-sort:hover{color:var(--text)}.table tfoot td{border-top:1px solid var(--border);background:#00000005}@media (prefers-color-scheme: dark){.table tfoot td{background:#ffffff08}}.table.compact th,.table.compact td{padding:6px 10px}.table.compact{font-size:13px}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch input{position:absolute;opacity:0;pointer-events:none}.switch .track{width:38px;height:22px;border-radius:999px;border:1px solid var(--border);background:var(--card);position:relative;transition:background .2s ease,border-color .2s ease}.switch .thumb{position:absolute;top:50%;left:2px;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:var(--muted);transition:left .18s ease,background .2s ease}.switch input:checked+.track{background:#2563eb26;border-color:var(--brand)}.switch input:checked+.track .thumb{left:18px;background:var(--brand)}.tableWrap{max-height:60vh;overflow:auto}.table thead th{position:sticky;top:0;background:var(--card);z-index:2}.table tbody tr:nth-child(odd) td{background:#00000004}@media (prefers-color-scheme: dark){.table tbody tr:nth-child(odd) td{background:#ffffff08}}.kbd{display:inline-block;font:inherit;padding:2px 6px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--muted)}.th-sort:focus-visible,.copy-id:focus-visible,.switch .track:focus-visible,.btn.ghost:focus-visible,.table a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.input::placeholder,input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 80%,var(--text) 20%)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:root{--brand: #6b4fff;--brand-600: #5a3ef6;--brand-700: #4a31e6;--ring: color-mix(in oklab, var(--brand), white 25%);--text-weak: color-mix(in oklab, var(--text, #1a1a1a), white 45%)}.topbar{background:linear-gradient(180deg,color-mix(in oklab,var(--brand),white 92%) 0%,transparent 80%);border-bottom:1px solid color-mix(in oklab,var(--brand),#000 90%)}.topbar .brand{transition:transform .15s ease}.topbar a:hover .brand{transform:translateY(-1px)}.btn{border-radius:12px;border:1px solid color-mix(in oklab,var(--brand),#000 85%);transition:background-color .15s ease,border-color .15s ease,transform .02s ease}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.btn.btn-primary{background:linear-gradient(180deg,var(--brand) 0%,var(--brand-600) 100%);color:#fff;border-color:color-mix(in oklab,var(--brand-700),#000 65%)}.btn.btn-primary:hover{filter:brightness(1.03)}.btn.ghost{background:transparent;color:inherit}.btn.ghost:hover{background:color-mix(in oklab,var(--brand),white 92%)}.input{border-radius:10px;border:1px solid color-mix(in oklab,var(--brand),#000 85%);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.input:focus-visible{outline:none;border-color:var(--brand-600);box-shadow:0 0 0 3px var(--ring)}.badge{border-radius:999px;padding:4px 10px;background:color-mix(in oklab,var(--brand),white 90%);border:1px solid color-mix(in oklab,var(--brand),#000 85%)}.badge-ok{background:color-mix(in oklab,#22c55e,white 85%);border-color:color-mix(in oklab,#22c55e,#000 80%)}.badge-warn{background:color-mix(in oklab,#f59e0b,white 85%);border-color:color-mix(in oklab,#f59e0b,#000 80%)}.badge-err{background:color-mix(in oklab,#ef4444,white 85%);border-color:color-mix(in oklab,#ef4444,#000 80%)}.table{border-collapse:separate;border-spacing:0;width:100%;overflow:hidden;border:1px solid color-mix(in oklab,var(--brand),#000 88%);border-radius:14px}.table thead th{background:color-mix(in oklab,var(--brand),white 93%);font-weight:600;color:var(--text, #1a1a1a);border-bottom:1px solid color-mix(in oklab,var(--brand),#000 88%)}.table .th-sort{background:transparent;border:0;padding:10px 12px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.table tbody tr{border-bottom:1px solid color-mix(in oklab,var(--brand),#000 92%)}.table tbody tr:hover{background:color-mix(in oklab,var(--brand),white 96%)}.table.compact td,.table.compact th{padding:8px 10px}.skeleton-block{background:linear-gradient(90deg,#eee 25%,#f6f6f6 37%,#eee 63%);background-size:400% 100%;animation:shimmer 1.25s infinite linear;border-radius:6px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.modal-backdrop{background:color-mix(in oklab,#000,transparent 65%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{border-radius:14px;border:1px solid color-mix(in oklab,var(--brand),#000 85%);box-shadow:0 10px 30px #0000001f}.toast-wrap{gap:8px}.toast{border:1px solid color-mix(in oklab,var(--brand),#000 85%);box-shadow:0 6px 18px #0000001a}.kpi{border-radius:14px;border:1px solid color-mix(in oklab,var(--brand),#000 90%);background:color-mix(in oklab,var(--brand),white 97%)}.kpi .value{font-weight:700}.copy-id{position:relative;cursor:pointer;border-radius:8px;padding:2px 6px}.copy-id:hover{background:color-mix(in oklab,var(--brand),white 92%)}.copied-badge{margin-left:6px;font-size:11px;padding:2px 6px;border-radius:999px;background:color-mix(in oklab,#22c55e,white 85%);border:1px solid color-mix(in oklab,#22c55e,#000 82%)}.topbar a{color:inherit;text-decoration:none}.topbar a:hover{text-decoration:underline;text-decoration-thickness:1px}.topbar .btn.ghost{color:inherit;border-color:color-mix(in oklab,currentColor,transparent 70%)}.topbar .btn.ghost:hover{background:color-mix(in oklab,currentColor,transparent 92%)}.topbar .badge{background:transparent;color:inherit;border-color:color-mix(in oklab,currentColor,transparent 70%)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklab,var(--bg),#000 30%);display:grid;justify-content:end;z-index:60}.drawer{height:100vh;max-width:92vw;background:var(--surface);border-left:1px solid var(--line);box-shadow:0 10px 30px #00000026;animation:slideIn .2s ease-out;display:grid;grid-template-rows:auto 1fr auto}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}.drawer-body{padding:16px;overflow:auto}.drawer-foot{padding:12px 16px;border-top:1px solid var(--line)}@keyframes slideIn{0%{transform:translate(12px);opacity:0}to{transform:translate(0);opacity:1}}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 720px){.detail-grid{grid-template-columns:1fr}}.sparkline{width:100%;height:36px;display:block}.sparkline path{fill:none;stroke:var(--brand);stroke-width:2;vector-effect:non-scaling-stroke}.sparkline .grid{stroke:var(--line);stroke-width:1;opacity:.6}.tableWrap{overflow:auto}.table thead th{position:sticky;top:0;z-index:2;background:var(--card, #fff);box-shadow:inset 0 -1px 0 var(--line, rgba(0,0,0,.08))}mark{background:#ffdd0059;padding:0 2px;border-radius:3px}.badge.soft{background:#0000000f;color:#555}.badge.warn{background:#fff6e5;color:#ad6a00}.badge.success{background:#e8fff2;color:#0f8a43}.badge.danger{background:#ffe9e9;color:#b40000}.link{color:var(--brand, #6b4fff);text-decoration:none}.link:hover{text-decoration:underline}.table-wrap{overflow:auto}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:8px}.detail-grid .label{color:var(--muted-text);font-size:12px}.btn.danger{background:#ef4444;color:#fff}.btn.danger:hover{filter:brightness(.95)}.input{padding:8px 10px;border:1px solid var(--border, #e5e7eb);border-radius:8px}.muted{color:#6b7280;font-size:12px}
