:root{--accent: oklch(.715 .172 50);--accent-hover: oklch(.672 .178 48);--accent-press: oklch(.62 .175 46);--accent-soft: oklch(.965 .035 60);--accent-soft-2: oklch(.93 .06 58);--accent-ink: oklch(.46 .13 45);--accent-line: oklch(.85 .1 58);--steel: oklch(.52 .008 60);--steel-soft: oklch(.88 .005 60);--ink-950: oklch(.16 .008 60);--ink-900: oklch(.22 .008 60);--ink-800: oklch(.3 .008 60);--ink-700: oklch(.4 .008 60);--ink-600: oklch(.5 .008 60);--ink-500: oklch(.6 .008 60);--ink-400: oklch(.72 .006 60);--ink-300: oklch(.84 .005 60);--ink-200: oklch(.91 .004 60);--ink-150: oklch(.945 .003 60);--ink-100: oklch(.965 .003 60);--ink-50: oklch(.985 .002 60);--bg: oklch(.985 .002 60);--surface: #ffffff;--surface-2: oklch(.975 .003 60);--border: oklch(.91 .004 60);--border-strong:oklch(.84 .005 60);--divider: oklch(.945 .003 60);--ok: oklch(.66 .13 150);--ok-soft: oklch(.96 .05 150);--ok-ink: oklch(.4 .1 150);--warn: oklch(.78 .14 80);--warn-soft: oklch(.97 .06 85);--warn-ink: oklch(.45 .1 75);--danger: oklch(.62 .18 25);--danger-soft:oklch(.965 .04 25);--danger-ink: oklch(.45 .15 25);--info: oklch(.62 .13 245);--info-soft: oklch(.96 .04 245);--info-ink: oklch(.42 .13 245);--font-ui: "Geist", -apple-system, BlinkMacSystemFont, "Inter", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display: "Geist", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--r-1: 4px;--r-2: 6px;--r-3: 8px;--r-4: 10px;--r-5: 14px;--r-pill: 999px;--shadow-1: 0 1px 0 oklch(.91 .004 60 / .7);--shadow-2: 0 1px 2px oklch(.16 .008 60 / .04), 0 4px 12px oklch(.16 .008 60 / .04);--shadow-3: 0 8px 30px oklch(.16 .008 60 / .08);--row-h: 48px;--pad-x: 16px;--pad-y: 12px;--gap: 16px;--gap-sm: 12px;--gap-lg: 24px;--t-12:12px;--t-13:13px;--t-14:14px;--t-15:15px;--t-16:16px;--t-18:18px;--t-20:20px;--t-24:24px;--t-28:28px;--t-32:32px;--t-40:40px}[data-density=compact]{--row-h:36px;--pad-x:12px;--pad-y:8px;--gap:12px;--gap-sm:8px;--gap-lg:18px}[data-density=cozy]{--row-h:48px;--pad-x:16px;--pad-y:12px;--gap:16px;--gap-sm:12px;--gap-lg:24px}[data-density=comfy]{--row-h:60px;--pad-x:20px;--pad-y:16px;--gap:20px;--gap-sm:16px;--gap-lg:32px}[data-theme=dark]{--bg: oklch(.17 .008 60);--surface: oklch(.215 .008 60);--surface-2: oklch(.255 .008 60);--border: oklch(.3 .008 60);--border-strong:oklch(.36 .008 60);--divider: oklch(.27 .008 60);--ink-950: oklch(.98 .003 60);--ink-900: oklch(.95 .003 60);--ink-800: oklch(.88 .004 60);--ink-700: oklch(.78 .005 60);--ink-600: oklch(.66 .006 60);--ink-500: oklch(.56 .007 60);--ink-400: oklch(.46 .007 60);--ink-300: oklch(.36 .008 60);--ink-200: oklch(.3 .008 60);--ink-150: oklch(.265 .008 60);--ink-100: oklch(.24 .008 60);--ink-50: oklch(.22 .008 60);--accent-soft: oklch(.32 .06 55);--accent-soft-2: oklch(.4 .1 55);--accent-ink: oklch(.85 .13 60);--accent-line: oklch(.4 .1 55);--ok-soft: oklch(.32 .06 150);--ok-ink: oklch(.82 .13 150);--warn-soft: oklch(.34 .07 80);--warn-ink: oklch(.85 .13 85);--danger-soft:oklch(.32 .07 25);--danger-ink:oklch(.82 .13 25);--info-soft: oklch(.3 .06 245);--info-ink: oklch(.82 .13 245);--shadow-2: 0 1px 2px oklch(0 0 0 / .3), 0 6px 14px oklch(0 0 0 / .35);--shadow-3: 0 12px 36px oklch(0 0 0 / .5)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:var(--t-14);line-height:1.45;color:var(--ink-900);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11";font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--bg)}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:56px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:10}.content{flex:1;overflow:auto;padding:28px 32px 64px}.side{background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;height:100vh;overflow-y:auto}.side-brand{display:flex;align-items:center;gap:10px;padding:6px 10px 14px;border-bottom:1px solid var(--divider);margin-bottom:10px}.side-brand .mark{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--ink-950);color:var(--surface);flex-shrink:0}.side-brand .name{font-weight:600;font-size:15px;letter-spacing:-.01em}.side-brand .env{font-family:var(--font-mono);font-size:11px;color:var(--ink-500);margin-left:auto;padding:2px 7px;border:1px solid var(--border);border-radius:var(--r-1)}.side-section{color:var(--ink-500);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:12px 10px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-2);color:var(--ink-700);font-size:var(--t-14);position:relative;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:var(--ink-100);color:var(--ink-900)}.nav-item.active{background:var(--ink-100);color:var(--ink-950);font-weight:500}.nav-item .ic{color:var(--ink-500);display:flex}.nav-item.active .ic{color:var(--ink-950)}.nav-item .nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:11px;background:var(--ink-150);color:var(--ink-700);padding:1px 6px;border-radius:var(--r-1)}.nav-item.active .nav-badge{background:var(--accent-soft);color:var(--accent-ink)}.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--divider);display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:600;font-size:12px;border:1px solid var(--accent-line);flex-shrink:0}.side-foot .who{flex:1;min-width:0}.side-foot .who .nm{font-size:13px;font-weight:500;color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-foot .who .em{font-size:11px;color:var(--ink-500);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumbs{font-size:13px;color:var(--ink-500);display:flex;align-items:center;gap:8px}.crumbs strong{color:var(--ink-900);font-weight:500}.crumbs .sep{color:var(--ink-300)}.topbar .grow{flex:1}.search{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface-2);min-width:280px;color:var(--ink-500);font-size:13px}.search input{background:transparent;border:0;outline:none;flex:1;color:var(--ink-900);font-size:13px}.search input::placeholder{color:var(--ink-500)}.search .kbd{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-500);border:1px solid var(--border);padding:1px 5px;border-radius:3px;background:var(--surface)}.iconbtn{width:32px;height:32px;border-radius:var(--r-2);border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink-700)}.iconbtn:hover{background:var(--ink-100);color:var(--ink-900)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:24px}.page-head h1{margin:0;font-family:var(--font-display);font-size:28px;font-weight:500;letter-spacing:-.02em;color:var(--ink-950)}.page-head .sub{margin-top:6px;color:var(--ink-600);font-size:14px}.page-head .actions{display:flex;gap:8px}.btn{height:34px;padding:0 14px;border-radius:var(--r-2);border:1px solid var(--border);background:var(--surface);color:var(--ink-900);display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:500;transition:background 80ms}.btn:hover{background:var(--ink-100)}.btn.primary{background:var(--ink-950);color:var(--surface);border-color:var(--ink-950)}.btn.primary:hover{background:var(--ink-800);border-color:var(--ink-800)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--ink-100)}.btn.danger{color:var(--danger-ink)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.lg{height:40px;padding:0 18px;font-size:14px}.btn:disabled{opacity:.4;pointer-events:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4)}.card-head{padding:14px var(--pad-x);border-bottom:1px solid var(--divider);display:flex;align-items:center;gap:12px}.card-head h3{margin:0;font-size:14px;font-weight:500;color:var(--ink-900)}.card-head .actions{margin-left:auto;display:flex;gap:6px}.card-body{padding:var(--pad-x)}.metric{padding:18px 20px}.metric .lbl{font-size:12px;color:var(--ink-600);font-weight:500;letter-spacing:.01em;text-transform:uppercase}.metric .val{font-family:var(--font-display);font-size:28px;font-weight:500;color:var(--ink-950);letter-spacing:-.02em;margin-top:8px;font-variant-numeric:tabular-nums}.metric .val .cur{font-size:14px;font-weight:400;color:var(--ink-500);margin-right:4px}.metric .delta{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:12px;margin-top:8px}.metric .delta.up{color:var(--ok-ink)}.metric .delta.dn{color:var(--danger-ink)}.ds-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 8px;border-radius:var(--r-1);background:var(--ink-100);color:var(--ink-700);border:1px solid var(--divider);letter-spacing:.01em}.ds-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.ds-badge.ok{background:var(--ok-soft);color:var(--ok-ink);border-color:transparent}.ds-badge.warn{background:var(--warn-soft);color:var(--warn-ink);border-color:transparent}.ds-badge.danger{background:var(--danger-soft);color:var(--danger-ink);border-color:transparent}.ds-badge.info{background:var(--info-soft);color:var(--info-ink);border-color:transparent}.ds-badge.accent{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.ds-badge.neutral{background:var(--ink-100);color:var(--ink-700);border-color:transparent}.status-min{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-800)}.status-min .dot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in oklch,currentColor 18%,transparent)}.status-min.ok{color:var(--ok)}.status-min.warn{color:var(--warn-ink)}.status-min.danger{color:var(--danger)}.status-min.info{color:var(--info)}.status-min .label{color:var(--ink-900)}.tbl-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);overflow:hidden}.tbl-tools{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--divider);background:var(--surface)}.tbl-tools .grow{flex:1}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-2);font-size:12px;color:var(--ink-700);cursor:pointer}.chip.active{background:var(--ink-950);color:var(--surface);border-color:var(--ink-950)}.chip .x{color:var(--ink-500)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl thead th{text-align:left;padding:10px var(--pad-x);font-size:11px;font-weight:500;color:var(--ink-600);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}table.tbl tbody td{padding:var(--pad-y) var(--pad-x);border-bottom:1px solid var(--divider);color:var(--ink-800);vertical-align:middle;height:var(--row-h);white-space:nowrap}table.tbl tbody tr:last-child td{border-bottom:0}table.tbl tbody tr:hover{background:var(--ink-50);cursor:pointer}table.tbl td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.tbl td.id{font-family:var(--font-mono);color:var(--ink-700);font-size:12px}table.tbl td.amount{font-family:var(--font-mono);font-weight:500;color:var(--ink-950);text-align:right}table.tbl th.right,table.tbl td.right{text-align:right}table.tbl .cell-method{display:inline-flex;align-items:center;gap:8px}table.tbl .card-mark{width:28px;height:18px;border-radius:3px;background:var(--ink-100);color:var(--ink-700);display:grid;place-items:center;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.02em;border:1px solid var(--border)}.card-mark.visa{background:#e8f3ff;background:oklch(.96 .04 250);color:#004981;color:oklch(.4 .15 250);border-color:#badbfe}.card-mark.mc{background:#ffedea;background:oklch(.96 .04 30);color:#932c21;border-color:#ffc9bf;border-color:oklch(.88 .07 30)}.card-mark.mir{background:#e0fae4;color:#005725;color:oklch(.4 .12 150);border-color:#b7e5bf}.card-mark.sbp{background:#eff1ff;background:oklch(.96 .04 280);color:#413aa0;border-color:#cfd4ff;border-color:oklch(.88 .07 280)}.card-mark.mobile{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.tbl-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--divider);font-size:12px;color:var(--ink-600);background:var(--surface-2)}.tbl-foot .grow{flex:1}.tbl-foot .pager{display:flex;gap:4px}.tbl-foot .pager button{width:26px;height:26px;border-radius:var(--r-1);border:1px solid var(--border);background:var(--surface);color:var(--ink-700);cursor:pointer;display:grid;place-items:center;font-family:var(--font-mono);font-size:12px}.tbl-foot .pager button.active{background:var(--ink-950);color:var(--surface);border-color:var(--ink-950)}.tbl-foot .pager button:disabled{opacity:.4;pointer-events:none}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:500;color:var(--ink-800)}.field .hint{font-size:12px;color:var(--ink-500)}.ds-input,.ds-select{height:34px;padding:0 10px;border-radius:var(--r-2);border:1px solid var(--border);background:var(--surface);color:var(--ink-900);font-size:13px;outline:none;transition:border-color 80ms,box-shadow 80ms}.ds-input:focus,.ds-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ds-input.mono{font-family:var(--font-mono)}.input-group{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);height:34px;padding-right:4px}.input-group input{flex:1;height:100%;border:0;background:transparent;outline:none;padding:0 10px;font-size:13px;color:var(--ink-900)}.input-group .copy{font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-700);cursor:pointer}.input-group .copy:hover{background:var(--ink-100)}.ds-toggle{position:relative;width:32px;height:18px;background:var(--ink-300);border-radius:var(--r-pill);cursor:pointer;transition:background .1s;border:none;padding:0}.ds-toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .12s}.ds-toggle.on{background:var(--ink-950)}.ds-toggle.on:after{left:16px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs .tab{padding:10px 14px;font-size:13px;color:var(--ink-600);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500;background:none;border-top:none;border-left:none;border-right:none}.tabs .tab:hover{color:var(--ink-900)}.tabs .tab.active{color:var(--ink-950);border-bottom-color:var(--ink-950)}.chart-grid path{stroke:var(--divider);stroke-width:1}.chart-axis text{fill:var(--ink-500);font-family:var(--font-mono);font-size:10px}.chart-line{fill:none;stroke:var(--ink-950);stroke-width:1.5}.chart-fill{fill:var(--ink-100);opacity:.6}.chart-bar{fill:var(--ink-200)}.chart-bar.active{fill:var(--ink-950)}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#100c0a59;z-index:20;display:flex;justify-content:flex-end}.sheet{width:560px;max-width:100vw;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.sheet-head{padding:16px 22px;border-bottom:1px solid var(--divider);display:flex;align-items:center;gap:12px}.sheet-head h3{margin:0;font-size:14px;font-weight:500}.sheet-head .sid{font-family:var(--font-mono);font-size:12px;color:var(--ink-600)}.sheet-body{flex:1;overflow:auto;padding:22px}.sheet-foot{padding:14px 22px;border-top:1px solid var(--divider);display:flex;gap:8px;justify-content:flex-end}.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 16px;font-size:13px}.kv dt{color:var(--ink-600);padding:8px 0;border-bottom:1px dashed var(--divider)}.kv dd{margin:0;color:var(--ink-900);padding:8px 0;border-bottom:1px dashed var(--divider);font-family:var(--font-mono);font-size:12px;text-align:right}.kv dd.plain{font-family:var(--font-ui);font-size:13px}.timeline{display:flex;flex-direction:column;gap:14px;padding-left:8px}.timeline .ev{display:grid;grid-template-columns:14px 1fr;gap:12px;align-items:flex-start;position:relative}.timeline .ev:before{content:"";position:absolute;left:6px;top:14px;bottom:-14px;width:1px;background:var(--divider)}.timeline .ev:last-child:before{display:none}.timeline .ev .pt{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--ink-300);margin-top:1px}.timeline .ev.done .pt{background:var(--ok);border-color:var(--ok)}.timeline .ev.now .pt{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline .ev .ttl{font-size:13px;color:var(--ink-900);font-weight:500}.timeline .ev .ts{font-family:var(--font-mono);font-size:11px;color:var(--ink-500);margin-top:2px}.section-title{font-size:13px;font-weight:500;color:var(--ink-700);text-transform:uppercase;letter-spacing:.04em;margin:28px 0 12px}.code-block{font-family:var(--font-mono);font-size:12px;padding:14px 16px;background:var(--ink-50);border:1px solid var(--border);border-radius:var(--r-3);color:var(--ink-900);white-space:pre;overflow:auto;line-height:1.55}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px;gap:16px}.empty h3{margin:0;font-size:18px;font-weight:500;color:var(--ink-950)}.empty p{margin:0;max-width:380px;color:var(--ink-600);font-size:13px}.row{display:flex;align-items:center;gap:var(--gap-sm)}.col{display:flex;flex-direction:column;gap:var(--gap-sm)}.grow{flex:1}.muted{color:var(--ink-500)}.divider-h{height:1px;background:var(--divider);margin:0;border:0}.ds-grid{display:grid;gap:var(--gap)}.ds-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ds-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--ink-200);border-radius:10px;border:2px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:var(--ink-300)}*::-webkit-scrollbar-track{background:transparent}
