@font-face{font-family:Sarasa Mono K;font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/sarasa-mono-k-400-latin-Drh-sbrQ.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20A9,U+20AC,U+2122,U+2190-21FF,U+2212,U+2215,U+2500-257F,U+2580-259F,U+25A0-25FF,U+FEFF,U+FFFD}@font-face{font-family:Sarasa Mono K;font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/sarasa-mono-k-400-hangul-Csa332JG.woff2)format("woff2");unicode-range:U+11??,U+3000-303F,U+3130-318F,U+A960-A97F,U+AC00-D7A3,U+D7B0-D7FF,U+FF00-FFEF}@font-face{font-family:Sarasa Mono K;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/sarasa-mono-k-600-latin-C9JjmAZN.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20A9,U+20AC,U+2122,U+2190-21FF,U+2212,U+2215,U+2500-257F,U+2580-259F,U+25A0-25FF,U+FEFF,U+FFFD}@font-face{font-family:Sarasa Mono K;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/sarasa-mono-k-700-latin-DwXcmfb0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20A9,U+20AC,U+2122,U+2190-21FF,U+2212,U+2215,U+2500-257F,U+2580-259F,U+25A0-25FF,U+FEFF,U+FFFD}:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--font-mono:"Sarasa Mono K", ui-monospace, "SF Mono", monospace;--font-term:"Sarasa Fixed K", Consolas, monospace;--t-h1:600 32px/1.25 var(--font-sans);--t-h1-track:-.025em;--fs-h1:32px;--t-h2:600 26px/1.3 var(--font-sans);--t-h2-track:-.025em;--fs-h2:26px;--t-h3:600 21px/1.3 var(--font-sans);--t-h3-track:-.025em;--fs-h3:21px;--t-h4:600 18px/1.4 var(--font-sans);--t-h4-track:0;--fs-h4:18px;--t-h5:600 16px/1.4 var(--font-sans);--t-h5-track:0;--fs-h5:16px;--t-h6:600 14px/1.4 var(--font-sans);--t-h6-track:0;--fs-h6:14px;--t-body:400 14px/1.5 var(--font-sans);--t-body-track:-.01em;--fs-body:14px;--t-label:500 13px/1.2 var(--font-sans);--t-label-track:0;--fs-label:13px;--t-caption:400 11px/1.4 var(--font-sans);--t-caption-track:0;--fs-caption:11px;--t-eyebrow:600 11px/1.3 var(--font-sans);--t-eyebrow-track:.06em;--fs-eyebrow:11px;--t-code:400 13px/1.5 var(--font-mono);--t-code-track:0;--fs-code:13px;--t-mono-sm:400 12px/1.5 var(--font-mono);--t-mono-sm-track:0;--fs-mono-sm:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--gutter:12px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--radius-ctl:6px;--radius-ctl-sm:4px;--radius-card:8px;--radius-float:8px;--radius-badge:9999px;--blur-glass:16px;--control-sm:24px;--control-md:32px;--control-lg:36px;--nav-height:60px;--sidebar-width:280px;--control-touch:44px;--tabbar-height:64px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-stroke:1.75;--bp-narrow:700px;--bp-tabbar:768px;--bp-drawer:960px;--z-base:1;--z-raised:10;--z-sticky:30;--z-dropdown:40;--z-drawer:45;--z-scrim:60;--z-modal:61;--z-popover:70;--z-toast:90;--dur-fast:.12s;--dur-base:.18s;--ease-out:cubic-bezier(.22, .61, .36, 1)}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#07080a;--surface-1:#0e1014;--surface-2:#13161b;--surface-3:#191d23;--surface-4:#1f242b;--surface-glass:#0e1014b8;--hairline:#232830;--hairline-strong:#3a414c;--border-control:#646d7b;--hairline-tertiary:#4a5260;--ink:#f4f6f9;--ink-muted:#c6cdd8;--ink-subtle:#8c95a4;--ink-tertiary:#5c6472;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-pressed:#1e40af;--on-primary:#fff;--primary-text:#6ea8fe;--primary-subtle:#2563eb2e;--focus-ring:#6ea8fe;--success:#4ade80;--success-subtle:#4ade801f;--warning:#fbbf24;--warning-subtle:#fbbf241f;--danger:#f87171;--danger-subtle:#f8717121;--danger-solid:#dc2626;--info:#38bdf8;--info-subtle:#38bdf81f;--overlay:#0000009e;--chart-1:#60a5fa;--chart-2:#34d399;--chart-3:#a78bfa;--chart-4:#fbbf24;--chart-5:#f87171;--chart-6:#22d3ee;--chart-7:#a3e635;--chart-8:#f472b6;--chart-9:#94a3b8;--shadow-edge:inset 0 1px 0 #ffffff0a;--shadow-float:0 12px 32px #0000008c, 0 0 0 1px #ffffff0f}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f6f7f9;--surface-1:#fff;--surface-2:#f1f3f6;--surface-3:#e8ebf0;--surface-4:#dfe3ea;--surface-glass:#ffffffbd;--hairline:#e2e6ec;--hairline-strong:#c3cad4;--border-control:#848c98;--hairline-tertiary:#a9b1bd;--ink:#0c1018;--ink-muted:#384150;--ink-subtle:#5b6474;--ink-tertiary:#98a0ad;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-pressed:#1e40af;--on-primary:#fff;--primary-text:#1d4ed8;--primary-subtle:#e7eefe;--focus-ring:#2563eb;--success:#137538;--success-subtle:#e8f6ed;--warning:#a35208;--warning-subtle:#fcf1df;--danger:#c42020;--danger-subtle:#fcebeb;--danger-solid:#dc2626;--info:#0369a1;--info-subtle:#e5f2fa;--overlay:#0c101861;--chart-1:#3b82f6;--chart-2:#059669;--chart-3:#8b5cf6;--chart-4:#b45309;--chart-5:#dc2626;--chart-6:#0891b2;--chart-7:#4d7c0f;--chart-8:#db2777;--chart-9:#64748b;--shadow-edge:inset 0 1px 0 #ffffffe6;--shadow-float:0 12px 32px #0c10181f, 0 0 0 1px #0c10180f}@media (width<=699px){:root{--gutter:8px}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s}}.t-h1{font:var(--t-h1);letter-spacing:var(--t-h1-track)}.t-h2{font:var(--t-h2);letter-spacing:var(--t-h2-track)}.t-h3{font:var(--t-h3);letter-spacing:var(--t-h3-track)}.t-h4{font:var(--t-h4);letter-spacing:var(--t-h4-track)}.t-h5{font:var(--t-h5);letter-spacing:var(--t-h5-track)}.t-h6{font:var(--t-h6);letter-spacing:var(--t-h6-track)}.t-body{font:var(--t-body);letter-spacing:var(--t-body-track)}.t-label{font:var(--t-label);letter-spacing:var(--t-label-track)}.t-caption{font:var(--t-caption);letter-spacing:var(--t-caption-track)}.t-eyebrow{font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track)}.t-code{font:var(--t-code);letter-spacing:var(--t-code-track)}.t-mono-sm{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track)}html,body{background:var(--canvas);color:var(--ink)}body{font:var(--t-body);letter-spacing:var(--t-body-track);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere;margin:0}*,:before,:after{box-sizing:border-box}.b-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.b-icon{width:var(--icon-sm);height:var(--icon-sm);flex:none;display:block}.b-ibtn-md .b-icon,.b-toast-icon,.b-tabbar-icon .b-icon{width:var(--icon-md);height:var(--icon-md)}.b-eyebrow{font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-subtle);margin:0}:where(.b-btn,.b-ibtn,.b-tab,.b-navlink,.b-tabbar-item,.b-menu-item,.b-crumbs a,.b-card.is-interactive,.b-chip,.b-sidenav-item,.b-dt-row.is-interactive):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@keyframes b-spin{to{transform:rotate(360deg)}}.b-spin{animation:.9s linear infinite b-spin}@media (prefers-reduced-motion:reduce){.b-spin{animation:none}*{transition:none!important}}@keyframes b-spinner{to{transform:rotate(360deg)}}.b-spinner{border-radius:var(--radius-full);opacity:.8;border:2px solid;border-top-color:#0000;flex:none;width:14px;height:14px;animation:.8s linear infinite b-spinner;display:inline-block}.b-spinner.is-sm{width:12px;height:12px}.b-spinner.is-lg{width:var(--icon-sm);height:var(--icon-sm)}@media (prefers-reduced-motion:reduce){.b-spinner{animation-duration:2.5s}}.b-btn{height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-ctl);font:var(--t-label);letter-spacing:var(--t-label-track);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.b-btn-sm{height:var(--control-sm);padding:0 var(--space-2);font-size:var(--fs-caption);border-radius:var(--radius-ctl-sm)}.b-btn-lg{height:var(--control-lg)}.b-btn-block{width:100%}.b-btn-primary{background:var(--primary);color:var(--on-primary)}.b-btn-primary:hover{background:var(--primary-hover)}.b-btn-primary:active{background:var(--primary-pressed)}.b-btn-secondary{background:var(--surface-1);color:var(--ink);border-color:var(--hairline-strong);box-shadow:var(--shadow-edge)}.b-btn-secondary:hover{background:var(--surface-2)}.b-btn-secondary:active{background:var(--surface-4)}.b-btn-ghost{color:var(--ink-muted);background:0 0}.b-btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.b-btn-danger{background:var(--danger-solid);color:var(--on-primary)}.b-btn-danger:hover{filter:brightness(.92)}.b-btn:disabled{background:var(--surface-2);color:var(--ink-tertiary);border-color:var(--hairline);box-shadow:none;cursor:not-allowed;filter:none}.b-ibtn{width:var(--control-md);height:var(--control-md);border-radius:var(--radius-ctl);color:inherit;cursor:pointer;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid;position:relative}.b-ibtn-sm{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-ctl-sm)}.b-ibtn.b-btn-ghost{color:var(--ink-subtle)}.b-ibtn.b-btn-ghost:hover{color:var(--ink)}.b-ibtn-dot{border-radius:var(--radius-full);background:var(--danger);width:7px;height:7px;box-shadow:0 0 0 2px var(--canvas);position:absolute;top:5px;right:5px}:is(.b-btn,.b-ibtn):is(.is-on,[aria-pressed=true],[aria-current]:not([aria-current=false])):not(:disabled){background:var(--primary-subtle);border-color:var(--primary);color:var(--primary-text);box-shadow:none;filter:none}.b-field{gap:6px;min-width:0;display:grid}.b-field-label{font:var(--t-label);letter-spacing:var(--t-label-track);color:var(--ink)}.b-input-wrap{align-items:center;display:flex;position:relative}.b-input{width:100%;height:var(--control-lg);padding:0 var(--space-3);border-radius:var(--radius-ctl);border:1px solid var(--border-control);background:var(--surface-1);color:var(--ink);font:var(--t-body);letter-spacing:var(--t-body-track);transition:border-color var(--dur-fast) ease}.b-input::placeholder{color:var(--ink-subtle)}.b-input:hover{border-color:var(--ink-subtle)}.b-input:focus-visible{border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:0}.b-input.has-icon{padding-left:36px}.b-input.is-mono{font:var(--t-code);letter-spacing:var(--t-code-track)}.b-input.is-md{height:var(--control-md);font:var(--t-label);letter-spacing:var(--t-label-track)}.b-input.is-md.is-mono{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track)}.b-input-icon{left:var(--space-3);color:var(--ink-subtle);pointer-events:none;position:absolute}.b-input-suffix{right:var(--space-3);font-size:var(--fs-caption);color:var(--ink-subtle);position:absolute}.b-field-msg{font:var(--t-caption);color:var(--ink-subtle);align-items:center;gap:6px;margin:0;display:flex}.b-field.is-invalid .b-input{border-color:var(--danger);background:var(--danger-subtle)}.b-field-msg.is-error{color:var(--danger)}.b-badge{align-items:center;gap:var(--space-1);height:var(--control-sm);padding:0 var(--space-2);border-radius:var(--radius-badge);font:var(--t-caption);white-space:nowrap;background:var(--surface-2);color:var(--ink-muted);border:1px solid var(--hairline);font-weight:500;line-height:1;display:inline-flex}.b-badge .b-icon{width:14px;height:14px}.b-badge .b-dot{border-radius:var(--radius-full);background:currentColor;width:6px;height:6px}.b-badge-success{background:var(--success-subtle);color:var(--success);border-color:#0000}.b-badge-warning{background:var(--warning-subtle);color:var(--warning);border-color:#0000}.b-badge-danger{background:var(--danger-subtle);color:var(--danger);border-color:#0000}.b-badge-info{background:var(--info-subtle);color:var(--info);border-color:#0000}.b-badge-primary{background:var(--primary-subtle);color:var(--primary-text);border-color:#0000}.b-card{gap:var(--space-3);min-width:0;padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface-1);border:1px solid var(--hairline);box-shadow:var(--shadow-edge);color:var(--ink);grid-template-columns:minmax(0,1fr);align-content:start;text-decoration:none;display:grid}.b-card>.b-btn{justify-self:start}.b-card.is-featured{background:var(--surface-2);border-color:var(--hairline-strong)}.b-card.is-interactive{cursor:pointer;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease}.b-card.is-interactive:hover{background:var(--surface-2);border-color:var(--hairline-strong)}.b-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.b-card-titles{gap:var(--space-1);min-width:0;display:grid}.b-card-title{font:var(--t-h5);letter-spacing:var(--t-h5-track);text-wrap:balance;margin:0}.b-stat{gap:6px;min-width:0;display:grid}.b-stat-value{font:var(--t-h2);letter-spacing:var(--t-h2-track);font-variant-numeric:tabular-nums;color:var(--ink);margin:0}.b-stat-unit{margin-left:var(--space-1);font:var(--t-label);letter-spacing:var(--t-label-track);color:var(--ink-subtle)}.b-stat-delta{align-items:center;gap:var(--space-1);font:var(--t-caption);color:var(--ink-subtle);font-variant-numeric:tabular-nums;margin:0;font-weight:500;display:inline-flex}.b-stat-delta .b-icon{width:14px;height:14px}.b-stat-delta.is-success{color:var(--success)}.b-stat-delta.is-warning{color:var(--warning)}.b-stat-delta.is-danger{color:var(--danger)}.b-tabs{border-radius:var(--radius-ctl);background:var(--canvas);border:1px solid var(--hairline);scrollbar-width:none;gap:2px;width:max-content;max-width:100%;padding:3px;display:flex;overflow-x:auto}.b-tab{height:var(--control-sm);border-radius:var(--radius-ctl-sm);color:var(--ink-subtle);font:var(--t-label);letter-spacing:var(--t-label-track);white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;text-decoration:none;display:inline-flex}.b-tab:hover{color:var(--ink)}.b-tab.is-on{background:var(--surface-2);color:var(--ink);box-shadow:var(--shadow-edge), 0 0 0 1px var(--hairline-strong)}.b-tab-count{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--ink-subtle)}.b-topnav{z-index:var(--z-sticky);background:var(--surface-glass);-webkit-backdrop-filter:saturate(140%) blur(var(--blur-glass));backdrop-filter:saturate(140%) blur(var(--blur-glass));border-bottom:1px solid var(--hairline);position:sticky;top:0}.b-topnav-in{align-items:center;gap:var(--space-4);height:var(--nav-height);padding:0 var(--gutter);display:flex}.b-brand{align-items:center;gap:var(--space-2);font:var(--t-h6);letter-spacing:var(--t-h6-track);color:var(--ink);white-space:nowrap;text-decoration:none;display:flex}.b-brand-mark{border-radius:var(--radius-ctl-sm);background:var(--primary);width:18px;height:18px}.b-topnav-links{gap:2px;display:flex}.b-navlink{height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-ctl);font:var(--t-label);letter-spacing:var(--t-label-track);color:var(--ink-subtle);align-items:center;gap:6px;text-decoration:none;display:inline-flex}:where(button.b-navlink){appearance:none;text-align:left;cursor:pointer;background:0 0;border:0;margin:0}.b-navlink:hover{color:var(--ink);background:var(--surface-2)}.b-navlink.is-on{color:var(--ink);background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--primary)}.b-topnav-actions{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.b-topnav-menu{display:none}.b-topnav-drawer{padding:var(--space-2) var(--gutter);border-top:1px solid var(--hairline);gap:2px;display:grid}.b-topnav-drawer .b-navlink.is-on{box-shadow:inset 2px 0 0 var(--primary)}.b-topnav-drawer[hidden]{display:none}@media (width<=959px){.b-topnav-links{display:none}.b-topnav-menu{display:inline-grid}}@media (width>=960px){.b-topnav-drawer{display:none}}.b-tabbar{display:none}.b-tabbar-item{min-height:var(--control-touch);color:var(--ink-subtle);font:inherit;cursor:pointer;background:0 0;border:0;align-content:center;justify-items:center;gap:2px;padding:0;text-decoration:none;display:grid}.b-tabbar-icon{position:relative}.b-tabbar-icon .b-ibtn-dot{top:-2px;right:-4px}.b-tabbar-label{font:var(--t-caption);font-weight:500}.b-tabbar-item.is-on{color:var(--primary-text)}@media (width<=767px){.b-tabbar{z-index:var(--z-sticky);min-height:var(--tabbar-height);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-glass);-webkit-backdrop-filter:saturate(140%) blur(var(--blur-glass));backdrop-filter:saturate(140%) blur(var(--blur-glass));border-top:1px solid var(--hairline);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.b-has-tabbar{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px))}.b-page.b-has-tabbar{padding-bottom:calc(var(--space-8) + var(--tabbar-height) + env(safe-area-inset-bottom,0px))}.b-has-tabbar .b-page.b-has-tabbar{padding-bottom:var(--space-8)}}.b-table-wrap{border-radius:var(--radius-card);border:1px solid var(--hairline);background:var(--surface-1);min-width:0;overflow-x:auto}.b-table{border-collapse:collapse;width:100%;font:var(--t-label);font-variant-numeric:tabular-nums;font-weight:400;line-height:1.4}.b-table th{z-index:var(--z-base);height:var(--control-md);padding:0 var(--space-3);text-align:left;white-space:nowrap;background:var(--surface-3);font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-subtle);border-bottom:1px solid var(--hairline);position:sticky;top:0}.b-table td{height:var(--control-md);padding:0 var(--space-3);white-space:nowrap;color:var(--ink-muted);border-bottom:1px solid var(--hairline)}.b-table td.is-primary{color:var(--ink);font-weight:500}.b-table td.is-mono{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track)}.b-table .is-end{text-align:right}.b-table tbody tr:last-child td{border-bottom:0}.b-table tbody tr:hover{background:var(--surface-2)}.b-table tr.is-selected{background:var(--primary-subtle)}.b-dialog-layer{z-index:var(--z-modal);padding:var(--gutter);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.b-dialog-layer.is-inline{min-height:100%;position:relative;inset:auto}.b-scrim{background:var(--overlay);position:absolute;inset:0}.b-dialog{gap:var(--space-4);width:min(480px,100%);max-height:90%;padding:var(--space-5);border-radius:var(--radius-float);background:var(--surface-2);border:1px solid var(--hairline-strong);box-shadow:var(--shadow-float);display:grid;position:relative;overflow:auto}.b-dialog-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.b-dialog-title{font:var(--t-h4);letter-spacing:var(--t-h4-track);margin:0}.b-dialog-body{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted)}.b-dialog-body p{margin:0}.b-dialog-foot{justify-content:flex-end;gap:var(--space-2);display:flex}.b-dialog.is-wide{width:min(720px,100%)}.b-dialog-layer.is-drawer{justify-content:flex-end;align-items:stretch;padding:0}.b-drawer{gap:var(--space-4);width:min(480px,100%);height:100%;padding:var(--space-5);background:var(--surface-1);border-left:1px solid var(--hairline-strong);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:relative;overflow:auto}.b-drawer>.b-dialog-body{flex:1;min-height:0}.b-toast{border-radius:var(--radius-float);background:var(--surface-glass);width:min(400px,100%);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));border:1px solid var(--hairline-strong);box-shadow:var(--shadow-float);align-items:flex-start;gap:10px;padding:10px 10px 10px 14px;display:flex}.b-toast-icon{margin-top:1px}.b-toast-success .b-toast-icon{color:var(--success)}.b-toast-warning .b-toast-icon{color:var(--warning)}.b-toast-danger .b-toast-icon{color:var(--danger)}.b-toast-info .b-toast-icon{color:var(--info)}.b-toast-text{flex:1;min-width:0;padding:1px 0}.b-toast-title{font:var(--t-label);color:var(--ink);margin:0;font-weight:600;line-height:1.4}.b-toast-body{font:var(--t-label);color:var(--ink-muted);margin:2px 0 0;font-weight:400;line-height:1.5}.b-toasts{right:var(--gutter);bottom:var(--space-5);z-index:var(--z-toast);justify-items:end;gap:var(--space-2);width:min(400px, calc(100vw - 2 * var(--gutter)));pointer-events:none;display:grid;position:fixed}.b-toasts>*{pointer-events:auto}@media (width<=767px){.b-toasts{bottom:calc(var(--tabbar-height) + var(--space-2) + env(safe-area-inset-bottom,0px))}}.b-page{gap:var(--space-4);min-width:0;padding:var(--space-4) var(--gutter) var(--space-8);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.b-crumbs{align-items:center;gap:var(--space-1);font:var(--t-caption);color:var(--ink-subtle);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.b-crumbs a{color:inherit;text-decoration:none}.b-crumbs a:hover{color:var(--ink)}.b-crumbs [aria-current=page]{color:var(--ink-muted)}.b-crumbs-sep{color:var(--ink-tertiary)}.b-page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.b-page-titles{gap:var(--space-1);min-width:0;display:grid}.b-page-title{font:var(--t-h1);letter-spacing:var(--t-h1-track);color:var(--ink);text-wrap:balance;margin:0}.b-page-sub{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted);margin:0}.b-page-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.b-section{gap:var(--space-3);grid-template-columns:minmax(0,1fr);align-content:start;min-width:0;display:grid}.b-section-head{justify-content:space-between;align-items:flex-end;gap:var(--space-2) var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.b-section-titles{gap:var(--space-1);min-width:0;display:grid}.b-section-title{align-items:center;gap:var(--space-2);font:var(--t-h5);letter-spacing:var(--t-h5-track);color:var(--ink);margin:0;display:flex}.b-section-sub{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted);margin:0}.b-section-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.b-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.b-grid-2{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=959px){.b-grid-2{grid-template-columns:minmax(0,1fr)}}.b-menu-wrap{display:inline-flex;position:relative}.b-menu{top:calc(100% + var(--space-1));z-index:var(--z-dropdown);min-width:180px;padding:var(--space-1);border-radius:var(--radius-float);background:var(--surface-2);border:1px solid var(--hairline-strong);box-shadow:var(--shadow-float);gap:2px;display:grid;position:absolute;right:0}.b-menu.is-start{left:0;right:auto}.b-menu.is-fixed{z-index:var(--z-popover);position:fixed;top:auto;right:auto}.b-menu-catch{z-index:var(--z-popover);cursor:default;background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0}.b-menu-item{align-items:center;gap:var(--space-2);width:100%;height:var(--control-md);padding:0 var(--space-2);border-radius:var(--radius-ctl-sm);color:var(--ink);font:var(--t-label);letter-spacing:var(--t-label-track);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.b-menu-item:hover{background:var(--surface-3)}.b-menu-item.is-danger{color:var(--danger)}.b-menu-item:disabled,.b-menu-item[aria-disabled=true]{color:var(--ink-tertiary);cursor:not-allowed;background:0 0}.b-menu-sep{height:1px;margin:var(--space-1) 0;background:var(--hairline)}.b-menu-note{contain:inline-size;padding:var(--space-1) var(--space-2);font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle);white-space:normal;overflow-wrap:anywhere;margin:0}.b-popover{top:calc(100% + var(--space-1));z-index:var(--z-popover);width:min(360px, calc(100vw - 2 * var(--gutter)));border-radius:var(--radius-float);background:var(--surface-2);border:1px solid var(--hairline-strong);max-height:min(480px,70vh);box-shadow:var(--shadow-float);display:grid;position:absolute;right:0;overflow:auto}.b-popover-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--hairline);font:var(--t-h6);letter-spacing:var(--t-h6-track);display:flex}.b-popover-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--hairline);gap:2px;display:grid}.b-popover-item:last-child{border-bottom:0}.b-popover-item.is-unread{background:var(--primary-subtle)}@media (width<=767px){.b-topnav .b-popover{top:calc(var(--nav-height) + var(--space-1));right:var(--gutter);position:fixed}}.b-empty{justify-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center;color:var(--ink-subtle);display:grid}.b-empty .b-icon{width:var(--icon-lg);height:var(--icon-lg)}.b-empty-title{font:var(--t-h5);letter-spacing:var(--t-h5-track);color:var(--ink);margin:0}.b-empty-body{max-width:420px;font:var(--t-body);letter-spacing:var(--t-body-track);margin:0}.b-empty.is-compact{gap:var(--space-1);padding:var(--space-5) var(--space-4)}.b-empty.is-compact .b-icon{display:none}.b-empty.is-compact .b-empty-title{font:var(--t-label);letter-spacing:var(--t-label-track)}.b-empty.is-compact .b-empty-body{font:var(--t-caption);letter-spacing:var(--t-caption-track)}.b-alert{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-ctl);border:1px solid var(--hairline);background:var(--surface-2);color:var(--ink);font:var(--t-label);letter-spacing:var(--t-label-track);display:flex}.b-alert>.b-icon{color:var(--ink-subtle);margin-top:2px}.b-alert-body{flex:1;gap:2px;min-width:0;display:grid}.b-alert-title{margin:0;font-weight:600}.b-alert-text{color:var(--ink-muted);margin:0}.b-alert-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.b-alert-info{background:var(--info-subtle);border-color:#0000}.b-alert-info>.b-icon{color:var(--info)}.b-alert-success{background:var(--success-subtle);border-color:#0000}.b-alert-success>.b-icon{color:var(--success)}.b-alert-warning{background:var(--warning-subtle);border-color:#0000}.b-alert-warning>.b-icon{color:var(--warning)}.b-alert-danger{background:var(--danger-subtle);border-color:#0000}.b-alert-danger>.b-icon{color:var(--danger)}.b-meter{gap:var(--space-1);min-width:0;display:grid}.b-meter-head{justify-content:space-between;gap:var(--space-2);font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);font-variant-numeric:tabular-nums;display:flex}.b-meter-track{border-radius:var(--radius-full);background:var(--surface-3);height:6px;position:relative;overflow:hidden}.b-meter-bar{border-radius:inherit;background:var(--primary);transition:width .2s;position:absolute;top:0;bottom:0;left:0}.b-meter.is-success .b-meter-bar{background:var(--success)}.b-meter.is-warning .b-meter-bar{background:var(--warning)}.b-meter.is-danger .b-meter-bar{background:var(--danger)}@keyframes b-meter-slide{0%{left:-30%}to{left:100%}}.b-meter.is-indeterminate .b-meter-bar{width:30%;animation:1.2s ease-in-out infinite b-meter-slide}@media (prefers-reduced-motion:reduce){.b-meter.is-indeterminate .b-meter-bar{opacity:.4;width:100%;animation:none;left:0}}.b-select-wrap{align-items:center;min-width:0;display:flex;position:relative}.b-select-wrap>.b-icon{right:var(--space-3);color:var(--ink-subtle);pointer-events:none;position:absolute}.b-select{appearance:none;width:100%;height:var(--control-lg);padding:0 36px 0 var(--space-3);border-radius:var(--radius-ctl);border:1px solid var(--border-control);background:var(--surface-1);color:var(--ink);font:var(--t-body);letter-spacing:var(--t-body-track);cursor:pointer;transition:border-color var(--dur-fast) ease}.b-select:hover{border-color:var(--ink-subtle)}.b-select:focus-visible{border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:0}.b-select:disabled{background:var(--surface-2);color:var(--ink-tertiary);cursor:not-allowed}.b-select.is-md{height:var(--control-md);font:var(--t-label);letter-spacing:var(--t-label-track)}.b-field.is-invalid .b-select{border-color:var(--danger);background:var(--danger-subtle)}.b-check{align-items:center;gap:var(--space-2);min-height:var(--control-sm);font:var(--t-label);letter-spacing:var(--t-label-track);color:var(--ink);cursor:pointer;display:inline-flex}.b-check input{width:16px;height:16px;accent-color:var(--primary);cursor:inherit;flex:none;margin:0}.b-check input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.b-check:has(input:disabled){color:var(--ink-tertiary);cursor:not-allowed}.b-check-count{padding-left:var(--space-2);font:var(--t-caption);color:var(--ink-subtle);font-variant-numeric:tabular-nums;margin-left:auto}.b-textarea{width:100%;min-height:96px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-ctl);border:1px solid var(--border-control);background:var(--surface-1);color:var(--ink);font:var(--t-body);letter-spacing:var(--t-body-track);resize:vertical;transition:border-color var(--dur-fast) ease}.b-textarea::placeholder{color:var(--ink-subtle)}.b-textarea:hover{border-color:var(--ink-subtle)}.b-textarea:focus-visible{border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:0}.b-textarea.is-mono{font:var(--t-code);letter-spacing:var(--t-code-track)}.b-field.is-invalid .b-textarea{border-color:var(--danger);background:var(--danger-subtle)}.b-chip{appearance:none;align-items:center;gap:var(--space-1);height:var(--control-sm);padding:0 var(--space-2);border:1px solid var(--hairline-strong);border-radius:var(--radius-ctl-sm);color:var(--ink-muted);font:var(--t-caption);letter-spacing:var(--t-caption-track);white-space:nowrap;cursor:pointer;background:0 0;font-weight:500;text-decoration:none;display:inline-flex}.b-chip:hover{color:var(--ink);background:var(--surface-2)}.b-chip.is-on{color:var(--primary-text);background:var(--primary-subtle);border-color:#0000}.b-chip:disabled{color:var(--ink-tertiary);cursor:not-allowed;background:0 0}.b-sidenav{grid-template-columns:minmax(0,1fr);align-content:start;gap:2px;min-width:0;display:grid}.b-sidenav-item{appearance:none;width:100%;min-width:0;min-height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-ctl);color:var(--ink-subtle);font:var(--t-label);letter-spacing:var(--t-label-track);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;text-decoration:none;display:flex;overflow:hidden}.b-sidenav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.b-sidenav-item:hover{color:var(--ink);background:var(--surface-2)}.b-sidenav-item.is-on{color:var(--ink);background:var(--surface-2);box-shadow:inset 2px 0 0 var(--primary)}.b-dt{min-width:0}.b-dt-head,.b-dt-row{align-items:center;gap:var(--space-3);min-height:var(--control-md);padding:var(--space-1) var(--space-3);display:flex}.b-dt.is-grid .b-dt-head,.b-dt.is-grid .b-dt-row{display:grid}.b-dt-head{z-index:var(--z-base);background:var(--surface-3);border-bottom:1px solid var(--hairline);font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-subtle);position:sticky;top:0}.b-dt-row{border-top:1px solid var(--hairline);color:inherit;text-decoration:none}.b-dt-head+.b-dt-row,.b-dt-row:first-child{border-top:0}.b-dt-row.is-interactive{cursor:pointer}.b-dt-row.is-interactive:hover{background:var(--surface-2)}.b-dt-row.is-selected{background:var(--primary-subtle)}.b-dt-cell{min-width:0;font:var(--t-label);letter-spacing:var(--t-label-track);font-variant-numeric:tabular-nums;color:var(--ink-muted);overflow-wrap:anywhere;flex:1 1 0;font-weight:400;line-height:1.4}.b-dt-cell.is-primary{color:var(--ink);font-weight:500}.b-dt-cell.is-muted{color:var(--ink-subtle)}.b-dt-cell.is-mono{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track)}.b-dt-cell.is-end{text-align:right}.b-dt-cell.is-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.b-dt-head .b-dt-cell{font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-subtle)}.b-auth{min-height:100dvh;padding:var(--space-6) var(--gutter);place-items:center;display:grid}.b-auth-card{gap:var(--space-4);width:100%;max-width:380px;padding:var(--space-6);border-radius:var(--radius-card);background:var(--surface-1);border:1px solid var(--hairline);box-shadow:var(--shadow-edge);display:grid}.b-auth-title{font:var(--t-h3);letter-spacing:var(--t-h3-track);margin:0}.b-auth-sub{font:var(--t-body);color:var(--ink-muted);margin:0}@media (width<=767px) and (pointer:coarse){.b-btn,.b-btn-sm,.b-btn-lg,.b-input,.b-select,.b-check,.b-navlink,.b-menu-item,.b-sidenav-item{min-height:var(--control-touch)}.b-ibtn,.b-ibtn-sm{min-width:var(--control-touch);min-height:var(--control-touch)}.b-input,.b-select,.b-textarea{font-size:16px}}:root,:root[data-theme=dark]{--tok-kw:#7dd3fc;--tok-type:#5eead4;--tok-str:#fca5a5;--tok-num:#fcd34d;--tok-comment:#64748b;--tok-anno:#c4b5fd;--tok-fn:#93c5fd;--tok-punct:#94a3b8}:root[data-theme=light]{--tok-kw:#1d4ed8;--tok-type:#0f766e;--tok-str:#b91c1c;--tok-num:#b45309;--tok-comment:#64748b;--tok-anno:#7c3aed;--tok-fn:#2563eb;--tok-punct:#64748b}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.mono{font-family:var(--font-mono);font-variant-ligatures:common-ligatures contextual;letter-spacing:normal}.tm-app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.tm-app>.b-topnav{flex-shrink:0}.tm-brand-name{white-space:nowrap}@media (width<=699px){.tm-brand-name{display:none}}.tm-context{align-items:center;gap:var(--space-1);flex:0 auto;min-width:0;display:flex}.tm-project-chip{min-width:0;height:var(--control-md);padding:0 var(--space-2);border-radius:var(--radius-ctl);background:var(--surface-1);border:1px solid var(--border-control);color:var(--ink-subtle);align-items:center;gap:6px;display:flex}.tm-project-chip svg{flex:none}.tm-project-chip select{color:var(--ink);height:auto;font:var(--t-label);letter-spacing:var(--t-label-track);cursor:pointer;background:0 0;border:none;width:auto;min-width:0;max-width:180px;padding:0}.tm-project-chip select:focus{box-shadow:none;outline:none}.tm-project-chip:focus-within{outline:2px solid var(--focus-ring);outline-offset:0;border-color:var(--focus-ring)}.tm-navlink-btn[aria-expanded=true]{color:var(--ink);background:var(--surface-2)}.tm-menu-item-on{background:var(--primary-subtle);color:var(--primary-text);font-weight:600}.tm-menu-who{padding:var(--space-1) var(--space-2) var(--space-2);font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle);white-space:nowrap;text-overflow:ellipsis;max-width:240px;overflow:hidden}.tm-drawer{max-height:calc(100dvh - var(--nav-height) - var(--tabbar-height));overflow-y:auto}.tm-drawer-group{gap:2px;display:grid}.tm-drawer-group+.tm-drawer-group{margin-top:var(--space-2)}.tm-drawer-group .b-eyebrow{padding:var(--space-2) var(--space-3) var(--space-1)}.tm-count-badge{min-width:16px;height:16px;font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);color:var(--on-primary);background:var(--danger-solid);border-radius:var(--radius-full);place-items:center;padding:0 4px;font-weight:600;line-height:1;display:grid;position:absolute;top:-2px;right:-2px}.tm-popover-item{text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--hairline);width:100%;color:inherit;background:0 0}.tm-popover-item:hover{background:var(--surface-3)}.tm-popover-item.is-unread .tm-popover-text{font-weight:600}.tm-popover-text{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink)}.tm-popover-time{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle)}.tm-popover-empty{padding:var(--space-5) var(--space-4);text-align:center}.tm-dialog-body>.b-section:not(:first-child){border-top:1px solid var(--hairline);padding-top:var(--space-4)}.tm-section-foot{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.ok-msg{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--success)}.route-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.page-toolbar{padding:14px var(--gutter);border-bottom:1px solid var(--hairline);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 12px;display:flex}.page-toolbar .page-title{font:var(--t-h5);letter-spacing:var(--t-h5-track);white-space:nowrap}.spacer{flex:1}.page-hint{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.page-toolbar select,.page-toolbar input{width:auto}.danger-text{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--danger);line-height:1.55}.b-ibtn.tm-ibtn-danger:hover{color:var(--danger)}.ai-btn{font:var(--t-caption);letter-spacing:var(--t-caption-track);cursor:pointer;background:var(--primary-subtle);color:var(--primary-text);border-radius:var(--radius-ctl);transition:border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;align-items:center;gap:4px;padding:7px 12px;display:inline-flex}.ai-btn:hover:not(:disabled){border-color:var(--primary)}.ai-btn:disabled{opacity:.5;cursor:default}.tm-dialog{flex-direction:column;display:flex;overflow:hidden}.tm-dialog>.b-dialog-head{flex:none}.tm-dialog>.b-dialog-foot{flex:none;align-items:center}.tm-dialog-head-actions{align-items:center;gap:var(--space-1);display:flex}.tm-dialog-body{min-height:0;color:var(--ink);flex-direction:column;flex:auto;gap:14px;padding:2px;display:flex;overflow:auto}.tm-dialog-body>.code-block{min-height:120px}.tm-dialog-wide{width:min(560px,100%)}.tm-dialog-xwide{width:min(1100px,100%)}.tm-dialog.is-max{width:100%;height:100%;max-height:100%}.tm-dialog.is-max .tm-dialog-body{flex:1;overflow:auto}.tm-dialog.is-max .tm-bulk-grid-wrap{flex:1;max-height:none}.tm-confirm{width:min(400px,100%)}.tm-confirm-body{gap:12px;display:flex}.tm-confirm-body .b-dialog-title{margin-bottom:6px}.tm-confirm-body .b-dialog-body strong{color:var(--ink)}.tm-confirm-danger-icon{color:var(--danger);flex-shrink:0;margin-top:1px}.field-row{gap:12px;display:flex}.field-row>.b-field{flex:1}.field-hint{color:var(--ink-subtle);font-weight:400}.password-hint{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle);margin:0;line-height:1.4}.field-check{align-items:center;gap:8px;display:flex}.field-check input[type=checkbox]{flex:none}.field-check span{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink)}input,select,textarea{background:var(--surface-1);border:1px solid var(--border-control);color:var(--ink);border-radius:var(--radius-ctl);font:var(--t-body);letter-spacing:var(--t-body-track);width:100%;transition:border-color var(--dur-fast) var(--ease-out);padding:8px 10px}input::placeholder,textarea::placeholder{color:var(--ink-subtle);opacity:1}input[type=checkbox],input[type=radio]{cursor:pointer;width:auto;accent-color:var(--primary);margin:0;padding:0}input[type=range]{cursor:pointer;accent-color:var(--primary);background:0 0;border:none;padding:0}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:0;border-color:var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--ink-tertiary);cursor:not-allowed}.tm-auth-divider{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-subtle);align-items:center;gap:10px;display:flex}.tm-auth-divider:before,.tm-auth-divider:after{content:"";background:var(--hairline);flex:1;height:1px}.auth-loading{color:var(--ink-muted);padding:40px}.gate-page{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.gate-stack{flex-direction:column;gap:18px;width:100%;max-width:420px;display:flex}.gate-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-float);width:100%;box-shadow:var(--shadow-float);flex-direction:column;gap:18px;padding:28px;display:flex}.gate-head{color:var(--primary-text);align-items:flex-start;gap:12px;display:flex}.gate-head h1{font:var(--t-h4);letter-spacing:var(--t-h4-track);color:var(--ink);margin:0 0 4px}.gate-head p{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted);margin:0}.gate-list{flex-direction:column;gap:6px;display:flex}.gate-item{cursor:pointer;background:var(--surface-2);border:1px solid var(--hairline);width:100%;color:var(--ink);font:var(--t-body);letter-spacing:var(--t-body-track);text-align:left;border-radius:9px;align-items:center;gap:10px;padding:11px 14px;display:flex}.gate-item:hover{border-color:var(--primary);background:var(--surface-1)}.gate-item:disabled{cursor:default;opacity:.7}.gate-item .spacer{flex:1}.gate-groups{flex-direction:column;gap:14px;max-height:360px;display:flex;overflow-y:auto}.gate-group-title{font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:6px;padding:0 2px 6px;display:flex}.gate-actions{gap:8px;display:flex}.gate-new{align-self:flex-start}.gate-page .muted{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted)}.data-list-page{padding:var(--space-4) var(--gutter);flex:1;overflow-y:auto}.muted{color:var(--ink-muted);font:var(--t-body);letter-spacing:var(--t-body-track)}.tm-sections{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.crud-page{padding:var(--space-4) var(--gutter);flex-direction:column;flex:1;gap:14px;display:flex;overflow:hidden}.b-table-wrap.tm-dt-fill{flex:auto;min-height:0;overflow:auto}.b-table-wrap.tm-table-scroll{max-height:320px;overflow:auto}.b-dt-row.tm-dt-row-off{opacity:.6;cursor:default}.tm-cell-clip{text-overflow:ellipsis;max-width:420px;display:block;overflow:hidden}.tm-badge-gap{margin-left:var(--space-2)}.tm-col-num{width:48px}.tm-applied-mark{color:var(--success);font:var(--t-caption);letter-spacing:var(--t-caption-track);align-items:center;gap:3px;display:inline-flex}.b-section.tm-section-fill{flex:1 1 0;grid-template-rows:auto minmax(0,1fr);min-height:0}.mono{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track)}.muted-cell{color:var(--ink-muted)}.tm-name-badge{margin-left:var(--space-2)}.conn-test{align-items:center;gap:8px;display:inline-flex;overflow:hidden}.conn-test .test-ok{color:var(--success);font:var(--t-caption);letter-spacing:var(--t-caption-track)}.conn-test .test-fail{color:var(--danger);font:var(--t-caption);letter-spacing:var(--t-caption-track);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conn-picker{font:var(--t-body);letter-spacing:var(--t-body-track);background:var(--surface-2);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius-ctl);width:auto;min-width:160px;padding:7px 10px}.clip{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tm-explorer{flex:1;grid-template-columns:220px 260px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.tm-explorer-pane{border-right:1px solid var(--hairline);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.tm-explorer-pane.is-main{border-right:0}.tm-explorer-pane.is-main>.b-table-wrap{margin:var(--space-2)}.tm-pane-head{align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:0 var(--space-3);border-bottom:1px solid var(--hairline);flex:none;display:flex}.tm-pane-head .b-btn{margin-left:auto}.tm-pane-list{padding:var(--space-2);overflow-y:auto}@media (width<=767px){.tm-explorer{grid-template-rows:auto auto minmax(320px,1fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}.tm-explorer-pane{border-right:0;border-bottom:1px solid var(--hairline)}.tm-explorer-pane:not(.is-main) .tm-pane-list{max-height:200px}}.b-sidenav-item.tm-sidenav-check{cursor:default}.tm-sidenav-check>input{flex:none}.tm-sidenav-check>button{min-width:0;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-self:stretch;align-items:center;padding:0;display:flex}.import-sections{flex-direction:column;gap:18px;display:flex}.import-section-body{flex-direction:column;gap:3px;max-height:240px;padding-right:4px;display:flex;overflow-y:auto}.import-row{font:var(--t-caption);letter-spacing:var(--t-caption-track);align-items:center;gap:8px;padding:3px 2px;display:flex}.import-row input[type=checkbox]{flex:none}.import-key{min-width:130px;color:var(--ink)}.import-arrow{color:var(--ink-muted)}.import-input{min-width:60px;font:var(--t-caption);letter-spacing:var(--t-caption-track);border:1px solid var(--hairline);background:var(--surface-1);color:var(--ink);border-radius:6px;flex:1;padding:3px 7px}.import-input:focus{border-color:var(--primary);outline:none}.import-input.import-name,.import-input.import-type{flex:none;width:90px}.import-input.import-len{flex:none;width:66px}.import-chip{font:var(--t-caption);letter-spacing:var(--t-caption-track);background:var(--surface-2);color:var(--ink-muted);border:1px solid var(--hairline);border-radius:10px;flex:none;padding:2px 8px}.import-cands{font:var(--t-caption);letter-spacing:var(--t-caption-track);flex:none}.import-badges{flex:none;gap:4px;margin-left:auto;display:inline-flex}.import-unmapped{font:var(--t-caption);letter-spacing:var(--t-caption-track);border-top:1px solid var(--hairline);padding-top:12px;line-height:1.6}.import-progress{flex-direction:column;gap:8px;display:flex}.import-progress-bar{background:var(--surface-2);border-radius:4px;width:100%;height:6px;overflow:hidden}.import-progress-fill{background:var(--primary);height:100%;transition:width .2s;display:block}.import-progress-cur{font:var(--t-caption);letter-spacing:var(--t-caption-track);margin:0}.import-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.import-search{flex:1;min-width:140px}.import-toolbar-spacer{flex:1}.import-linkbtn{color:var(--primary-text);font:var(--t-caption);letter-spacing:var(--t-caption-track);cursor:pointer;background:0 0;border:none;width:auto;padding:0 2px}.import-linkbtn:hover{text-decoration:underline}.import-applied{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--success)}.import-empty{color:var(--ink-muted);font:var(--t-body);letter-spacing:var(--t-body-track);text-align:center;padding:20px 0}.import-tab-body{max-height:300px}.spin{vertical-align:middle;margin-right:4px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.xls-toolbar{align-items:center;gap:14px;margin-bottom:12px;display:flex}.xls-search{border:1px solid var(--hairline);background:var(--surface-1);color:var(--ink-muted);border-radius:8px;flex:1;align-items:center;gap:6px;padding:5px 10px;display:flex}.xls-search input{color:var(--ink);font:var(--t-caption);letter-spacing:var(--t-caption-track);background:0 0;border:none;width:100%;padding:0}.xls-search input:focus{outline:none}.xls-selectall{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;display:flex}.xls-count{font:var(--t-caption);letter-spacing:var(--t-caption-track);white-space:nowrap}.input-with-action{align-items:center;gap:6px;display:flex}.input-with-action input{flex:1}.col-name-cell{align-items:center;gap:4px;display:flex}.col-name-cell input{flex:1}.composer-preview{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted)}.composer-list{flex-direction:column;gap:10px;max-height:420px;padding-right:4px;display:flex;overflow-y:auto}.composer-token{border:1px solid var(--hairline);background:var(--surface-1);border-radius:8px;padding:8px 10px}.composer-row{align-items:center;gap:8px;display:flex}.composer-word{min-width:96px;font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink)}.composer-sub{margin-top:8px}.composer-register{align-items:center;gap:6px;display:flex}.composer-register .import-input{flex:none;width:140px}.composer-hint{font:var(--t-caption);letter-spacing:var(--t-caption-track)}.composer-syn{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.syn-chip{font:var(--t-caption);letter-spacing:var(--t-caption-track);background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-muted);cursor:default;border-radius:14px;align-items:center;gap:2px;padding:4px 10px;display:inline-flex}.syn-chip.standard{color:var(--ink);border-color:var(--primary);cursor:pointer}.syn-chip.standard:hover{background:var(--primary-subtle)}.explain-page{padding:var(--space-4) var(--gutter);flex-direction:column;flex:1;gap:12px;display:flex;overflow:hidden}.explain-query{resize:vertical;width:100%;min-height:96px;font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);background:var(--surface-1);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius-card);padding:12px}.analyze-toggle{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink-muted);align-items:center;gap:6px;display:flex}.analyze-toggle input{width:auto}.plan-tree,.plan-tree ul{padding-left:18px;list-style:none;overflow-y:auto}.plan-tree{padding-left:0}.plan-node{font:var(--t-caption);letter-spacing:var(--t-caption-track);border:1px solid var(--hairline);background:var(--surface-1);border-radius:8px;align-items:center;gap:10px;margin:3px 0;padding:6px 10px;display:flex}.plan-node.high{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.plan-type{font-weight:600}.plan-rel{color:var(--primary-text)}.plan-cost,.plan-rows,.plan-time{color:var(--ink-muted);font:var(--t-caption);letter-spacing:var(--t-caption-track)}.dump-result{max-width:640px;font:var(--t-body);letter-spacing:var(--t-body-track);flex-direction:column;gap:10px;display:flex}.dump-result>div{align-items:center;gap:12px;display:flex}.dump-result .k{width:110px;font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);text-transform:uppercase;color:var(--ink-muted)}.dump-result strong{color:var(--primary-text)}.tm-page-tabs{margin:var(--space-3) var(--gutter) 0;flex-shrink:0}.settings-page{padding:var(--space-5) var(--gutter);flex-direction:column;gap:20px;display:flex;overflow-y:auto}.settings-form{flex-direction:column;gap:14px;max-width:480px;display:flex}.settings-field{flex-direction:column;gap:5px;display:flex}.settings-field span{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted)}.appearance-card{flex-direction:column;gap:18px;max-width:520px;display:flex}.appearance-row{flex-direction:column;gap:8px;display:flex}.appearance-row-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.appearance-row-head span{font:var(--t-body);letter-spacing:var(--t-body-track);color:var(--ink)}.placeholder{padding:var(--space-10) var(--gutter);color:var(--ink-muted)}.placeholder h2{font:var(--t-h4);letter-spacing:var(--t-h4-track);color:var(--ink);margin-bottom:8px}.placeholder strong{color:var(--primary-text)}.excel-bar{align-items:center;gap:8px;margin-left:auto;display:flex}.view-toggle{border:1px solid var(--hairline);border-radius:var(--radius-ctl);display:flex;overflow:hidden}.view-toggle button{width:auto;font:var(--t-caption);letter-spacing:var(--t-caption-track);background:var(--surface-2);color:var(--ink-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:none;align-items:center;gap:5px;padding:6px 10px;display:flex}.view-toggle button+button{border-left:1px solid var(--hairline)}.view-toggle button.active{background:var(--primary-subtle);color:var(--primary-text)}.excel-msg{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--success);animation:4s forwards excelFade}@keyframes excelFade{0%,80%{opacity:1}to{opacity:0}}.content{flex:1;min-width:0;display:flex;overflow:hidden}.sidebar{background:var(--surface-1);border-right:1px solid var(--hairline);flex-shrink:0;width:260px;min-width:180px;max-width:40vw;overflow:hidden auto}.right-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--hairline);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.panel-header h2{font:var(--t-body);letter-spacing:var(--t-body-track);text-overflow:ellipsis;white-space:nowrap;min-width:44px;overflow:hidden}.panel-header .sub{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;margin-left:6px;display:block;overflow:hidden}.header-actions{flex-wrap:wrap;align-items:center;gap:8px 6px;min-width:0;display:flex}.btn-icon{background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink);border-radius:var(--radius-ctl);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.btn-icon:hover{border-color:var(--primary)}.btn-icon.active{background:var(--primary-subtle);color:var(--primary-text);border-color:var(--primary)}.table-items{min-width:0;list-style:none}.table-item{border-bottom:1px solid var(--hairline);flex-direction:column;min-width:0;display:flex}.table-item.active{background:var(--surface-2)}.table-item-row{align-items:flex-start;min-width:0;display:flex}.table-item-main{cursor:pointer;flex:1;align-items:flex-start;gap:6px;min-width:0;padding:7px 10px;display:flex}.table-item-main:hover{background:var(--surface-2)}.table-item-main>svg{color:var(--ink-muted);flex-shrink:0;margin-top:2px}.table-names{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.table-names .physical{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);overflow-wrap:anywhere;line-height:1.35}.table-names .logical{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);word-break:keep-all;overflow-wrap:anywhere;line-height:1.35}.table-item .meta{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.table-item .meta-chip{max-width:100%;font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--radius-full);white-space:nowrap;text-overflow:ellipsis;padding:0 6px;line-height:1.7;overflow:hidden}.table-item .meta-chip.mono{font-family:var(--font-mono)}.table-item .meta .b-badge{flex:none}.table-view-bar{background:var(--surface-2);border-bottom:1px solid var(--hairline);flex-direction:column;gap:8px;padding:8px 10px;display:flex}.table-view-bar .tv-row{align-items:center;gap:6px;display:flex}.table-view-bar .tv-label{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);flex:none;width:28px}.table-view-bar select{min-width:0;font:var(--t-caption);letter-spacing:var(--t-caption-track);flex:1;padding:3px 6px}.table-view-bar .tv-checks{flex-wrap:wrap;gap:4px 10px;display:flex}.table-view-bar .tv-check{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);cursor:pointer;align-items:center;gap:4px;display:flex}.table-view-bar .tv-check input{width:auto}.table-item-foot{align-items:center;gap:4px;min-width:0;padding:0 6px 6px 10px;display:flex}.table-item-foot.indent{padding-left:31px}.table-item-foot .meta{flex:0 auto}.table-item-foot .ti-spacer{flex:auto;min-width:4px}.table-item-check{cursor:pointer;flex-shrink:0;margin:9px 0 0 8px}.table-item-schema{width:auto;max-width:110px;font:var(--t-caption);letter-spacing:var(--t-caption-track);padding:2px 4px}.table-bulk-bar{background:var(--surface-2);border-bottom:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.table-bulk-bar .bulk-check{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);cursor:pointer;align-items:center;gap:6px;display:flex}.table-bulk-bar .bulk-apply{align-items:center;gap:6px;display:flex}.table-bulk-bar .bulk-apply select{width:auto;max-width:130px;font:var(--t-caption);letter-spacing:var(--t-caption-track);padding:3px 6px}.header-actions .bulk-apply{align-items:center;gap:6px;display:flex}.header-actions .bulk-apply select{width:auto;max-width:130px;font:var(--t-caption);letter-spacing:var(--t-caption-track);padding:3px 6px}.radio-cell{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.settings-field--row{flex-direction:row;align-items:center;gap:8px}.settings-field--row span{font:var(--t-caption);letter-spacing:var(--t-caption-track)}.settings-field--row input{flex:1;min-width:0}.settings-field--row .b-btn{flex:none}.tm-xl-type-select.tm-xl-type-신규{color:var(--primary-text);font-weight:700}.tm-xl-type-select.tm-xl-type-수정{color:var(--warning);font-weight:700}.tm-xl-type-select.tm-xl-type-삭제{color:var(--danger);font-weight:700}.form-panel{background:var(--surface-2);border-bottom:1px solid var(--hairline);flex-direction:column;gap:7px;padding:10px 12px;display:flex}.form-actions{gap:8px;display:flex}.column-editor{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.tm-xl-wrap{flex:1;overflow:auto}.tm-xl-grid{border-collapse:collapse;table-layout:fixed;font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);background:var(--surface-1);font-variant-numeric:tabular-nums;width:max-content;min-width:100%}.tm-xl-grid th,.tm-xl-grid td{border:1px solid var(--hairline)}.tm-xl-grid thead th{z-index:2;background:var(--surface-2);color:var(--ink-muted);white-space:nowrap;text-align:center;border-color:var(--border-control);padding:5px 8px;font-weight:600;position:sticky;top:0}.tm-xl-grid td{vertical-align:middle;height:27px;padding:0}.tm-xl-grid tbody tr:hover td{background:var(--surface-2)}.tm-xl-grid td input:not([type=checkbox]),.tm-xl-grid td select{width:100%;height:100%;font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);color:var(--ink);background:0 0;border:none;border-radius:0;padding:4px 7px}.tm-xl-grid td input:not([type=checkbox]):focus,.tm-xl-grid td select:focus{outline:2px solid var(--primary);outline-offset:-2px;box-shadow:none;background:var(--surface-1)}.tm-xl-grid td select{padding-right:2px}.tm-xl-inline{align-items:center;height:100%;display:flex}.tm-xl-inline>input{flex:1;min-width:0}.tm-xl-inline>button{flex:none;margin-right:2px}.tm-xl-namehint{color:var(--ink-muted);cursor:help;flex:none;align-items:center;margin-right:2px;display:inline-flex}.tm-xl-namehint:hover{color:var(--primary-text)}.tm-xl-rownum-h{width:28px;position:sticky;left:0}.tm-xl-rownum{text-align:center;width:28px;min-width:28px;color:var(--ink-muted);background:var(--surface-2);cursor:grab;-webkit-user-select:none;user-select:none;font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);z-index:1;position:sticky;left:0}.tm-xl-rownum:active{cursor:grabbing}.tm-xl-check-h+.tm-xl-rownum-h,.tm-xl-check+.tm-xl-rownum{left:24px}.tm-xl-grid tr.drag-over td{border-top:2px solid var(--primary)}.tm-xl-sort-btn{width:100%;height:100%;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;padding:0;display:flex}.tm-xl-sort-btn:hover{color:var(--primary-text)}.tm-xl-sort-btn svg{flex:none}.tm-xl-cell-center{text-align:center}.tm-xl-cell-center input[type=checkbox]{margin:0 auto}.tm-xl-narrow{width:64px}.tm-xl-actions-h{width:52px}.tm-xl-actions{background:var(--surface-2);width:52px;min-width:52px;padding:0}.tm-xl-actions .tm-xl-action-btns{opacity:0;transition:opacity var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:1px;display:flex}.tm-xl-grid tbody tr:hover .tm-xl-action-btns{opacity:1}.tm-xl-empty{text-align:center;color:var(--ink-muted);height:auto;padding:20px}.tm-xl-grid td.tm-xl-bad,.tm-xl-grid tbody tr:hover td.tm-xl-bad{background:color-mix(in srgb, var(--danger) 16%, transparent);box-shadow:inset 0 0 0 1px var(--danger)}.tm-xl-grid td.tm-xl-bad input,.tm-xl-grid td.tm-xl-bad select{color:var(--danger);font-weight:600}.tm-xl-warn{color:var(--danger);flex-shrink:0;align-items:center;padding-right:3px;display:inline-flex}.view-tabs{flex-wrap:wrap;gap:2px;margin-left:14px;display:flex}.view-tabs button{white-space:nowrap;width:auto;color:var(--ink-muted);border-radius:var(--radius-ctl);cursor:pointer;font:var(--t-body);letter-spacing:var(--t-body-track);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;display:flex}.view-tabs button:hover{background:var(--surface-2);color:var(--ink)}.view-tabs button.active{background:var(--primary-subtle);color:var(--primary-text);border-color:var(--primary);font-weight:600}.combined-cols{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.combined-cols .column-editor{border-bottom:3px solid var(--border-control);flex:none;overflow:visible}.combined-cols .tm-xl-wrap{overflow:visible}.split-cols{flex:1;min-width:0;display:flex;overflow:hidden}.split-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.split-nav{align-items:center;gap:2px;margin-right:4px;display:flex}.split-pos{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);color:var(--ink-muted);text-align:center;min-width:44px}.ce-title{align-items:center;gap:8px;min-width:0;display:flex}.ce-title-names{min-width:0}.ce-title-names h2{align-items:center;gap:6px;display:flex}.ce-count{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);color:var(--ink-muted);background:var(--surface-2);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;padding:2px 8px}.ce-warn{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.dirty-dot{background:var(--warning);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.code-generator{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.code-generator .gen-controls{border-bottom:1px solid var(--hairline);flex-shrink:0;padding:14px 16px}.code-generator .code-block{margin:16px}.gen-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.gen-check{align-items:center;gap:6px;height:34px;display:flex}.gen-check input{width:auto}.gen-check span{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted)}.tbar{align-items:center;gap:6px;display:flex}.tgroup{align-items:center;gap:2px;display:flex;position:relative}.tdiv{background:var(--border-control);align-self:stretch;width:1px;min-height:22px;margin:0 6px}.tbtn{border-radius:var(--radius-ctl);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.tbtn:hover{background:var(--surface-2);color:var(--ink)}.tbtn.active{background:var(--primary-subtle);color:var(--primary-text);border-color:var(--primary)}.tbtn:disabled{opacity:.4;cursor:default}.tbtn[data-tip]:after{content:attr(data-tip);background:var(--surface-2);color:var(--ink);border:1px solid var(--border-control);font:var(--t-caption);letter-spacing:var(--t-caption-track);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out);z-index:60;box-shadow:var(--shadow-edge);border-radius:6px;padding:4px 8px;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)}.tbtn[data-tip]:hover:after{opacity:1}.cols-layout{flex:1;min-width:0;display:flex;overflow:hidden}.filter-panel{background:var(--surface-1);border-right:1px solid var(--hairline);flex-direction:column;flex-shrink:0;gap:12px;width:240px;min-width:200px;padding:12px;display:flex;overflow-y:auto}.filter-head{font:var(--t-body);letter-spacing:var(--t-body-track);justify-content:space-between;align-items:center;display:flex}.filter-field{flex-direction:column;gap:5px;display:flex}.filter-field span{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted)}.filter-count{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);margin-top:auto}.tm-xl-check-h,.tm-xl-check{text-align:center;background:var(--surface-2);width:24px;position:sticky;left:0}.tm-xl-check{z-index:1}.tm-xl-check input[type=checkbox],.tm-xl-check-h input[type=checkbox]{margin:0 auto}.control-group{flex-direction:column;gap:4px;min-width:140px;display:flex}.control-group label{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted)}.control-group input,.control-group select{width:auto}.code-tabs{gap:4px;display:flex}.code-tabs button{background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-muted);border-radius:var(--radius-ctl);cursor:pointer;font:var(--t-body);letter-spacing:var(--t-body-track);align-items:center;gap:6px;width:auto;padding:6px 14px;display:flex}.code-tabs button.active{background:var(--primary-subtle);color:var(--primary-text);border-color:var(--primary)}.code-block{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-ctl);flex:1;padding:14px;position:relative;overflow:auto}.copy-btn{background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-muted);cursor:pointer;font:var(--t-caption);letter-spacing:var(--t-caption-track);border-radius:6px;align-items:center;gap:4px;width:auto;padding:4px 10px;display:flex;position:absolute;top:8px;right:8px}.copy-btn:hover{color:var(--ink)}pre{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);white-space:pre;font-variant-ligatures:common-ligatures contextual;line-height:1.6}code{font-family:var(--font-mono);font-variant-ligatures:common-ligatures contextual;letter-spacing:normal}pre.hl code{color:var(--ink)}.tok-kw{color:var(--tok-kw);font-weight:600}.tok-type{color:var(--tok-type)}.tok-str{color:var(--tok-str)}.tok-num{color:var(--tok-num)}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-anno{color:var(--tok-anno)}.tok-fn{color:var(--tok-fn)}.tok-punct{color:var(--tok-punct)}.tm-empty{flex:1;align-content:center}.loading{color:var(--ink-muted);font:var(--t-body);letter-spacing:var(--t-body-track)}.batch-form{flex-direction:column;gap:14px;max-width:640px;margin-bottom:8px;display:flex}.batch-form-row{flex-wrap:wrap;gap:14px;display:flex}.batch-form-row .settings-field{flex:1;min-width:180px}.batch-progress{align-items:center;gap:8px;display:flex}.progress-track{background:var(--surface-2);border-radius:4px;flex:none;width:90px;height:6px;overflow:hidden}.progress-fill{background:var(--primary);height:100%;transition:width .3s;display:block}.linklike{color:var(--primary-text);cursor:pointer;font:var(--t-caption);letter-spacing:var(--t-caption-track);text-align:left;background:0 0;border:none;width:auto;padding:0}.linklike:hover{text-decoration:underline}.self-start{align-self:flex-start}.name-with-action{align-items:center;gap:8px;display:flex}.name-with-action>input{flex:1}.ai-suggestion{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--radius-ctl);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.ai-suggestion-row{align-items:center;gap:10px;display:flex}.ai-suggestion-label{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);min-width:68px}.tm-chip-row{flex-wrap:wrap;gap:6px;display:flex}.tm-chip{font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);border-radius:var(--radius-full);cursor:pointer;background:var(--primary-subtle);color:var(--primary-text);transition:border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;padding:4px 11px}.tm-chip:hover{border-color:var(--primary)}.ai-btn.sm{padding:5px 8px}.assemble-panel{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--radius-ctl);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.assemble-row{align-items:center;gap:10px;display:flex}.assemble-word{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);min-width:96px}.assemble-token,.assemble-input{flex:1}.seg{border:1px solid var(--hairline);border-radius:var(--radius-ctl);display:inline-flex;overflow:hidden}.seg-btn{font:var(--t-caption);letter-spacing:var(--t-caption-track);background:var(--surface-1);color:var(--ink-muted);cursor:pointer;border:none;width:auto;padding:4px 10px}.seg-btn.active{background:var(--primary-subtle);color:var(--primary-text);font-weight:600}.seg-btn:disabled{opacity:.4;cursor:default}.assemble-preview{border-top:1px solid var(--hairline);align-items:center;gap:10px;margin-top:2px;padding-top:8px;display:flex}.assemble-stale{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;padding:6px 10px;display:flex}.bulk-hint{margin-bottom:4px}.tm-bulk-grid-wrap{border:1px solid var(--hairline);border-radius:6px;max-height:340px;overflow:auto}.bulk-toolbar{align-items:center;gap:10px;margin-bottom:2px;display:flex}.bulk-toolbar .bulk-hint{flex:1;margin:0}.tm-bulk-grid{border-collapse:collapse;table-layout:fixed;width:100%}.tm-bulk-grid th{position:sticky}.col-resize{cursor:col-resize;-webkit-user-select:none;user-select:none;width:7px;height:100%;position:absolute;top:0;right:-3px}.col-resize:hover{background:var(--primary);opacity:.4}.tm-bulk-grid td input.dup{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.dup-warn{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--warning)}.tm-bulk-grid th,.tm-bulk-grid td{border:1px solid var(--hairline);padding:0}.tm-bulk-grid th{background:var(--surface-2);z-index:1;padding:7px 8px;position:sticky;top:0}.tm-bulk-grid th.no{text-align:center;width:34px}.tm-bulk-grid td.no{text-align:center;background:var(--surface-2);width:34px;color:var(--ink-muted)}.tm-bulk-grid td.center{text-align:center;background:var(--surface-2);width:34px}.tm-bulk-grid td input{width:100%;font:var(--t-caption);letter-spacing:var(--t-caption-track);background:0 0;border:none;border-radius:0;padding:6px 8px}.tm-bulk-grid td input:focus{outline:2px solid var(--primary);outline-offset:-2px;box-shadow:none}.tm-bulk-grid tr:hover td{background:0 0}.tm-bulk-grid tr:hover td.no,.tm-bulk-grid tr:hover td.center{background:var(--surface-2)}.tm-bulk-grid td.center .b-ibtn{color:var(--ink-muted)}.tm-toasts>.b-toast{animation:tm-toast-in var(--dur-base) var(--ease-out)}.tm-toasts .b-toast-title{word-break:break-word;font-weight:500}@keyframes tm-toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.crash-page{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.crash-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-float);width:100%;max-width:460px;box-shadow:var(--shadow-float);flex-direction:column;gap:14px;padding:28px;display:flex}.crash-card h1{font:var(--t-h4);letter-spacing:var(--t-h4-track);color:var(--ink)}.crash-detail{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--danger);background:var(--surface-2);border:1px solid var(--hairline);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:160px;padding:10px 12px;overflow:auto}.crash-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.wiz-steps{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.wiz-step{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--ink-muted);align-items:center;gap:7px;display:flex}.wiz-step+.wiz-step:before{content:"";background:var(--hairline);width:18px;height:1px;margin-right:7px}.wiz-step-num{border-radius:var(--radius-full);background:var(--surface-2);border:1px solid var(--hairline);width:20px;height:20px;font:var(--t-mono-sm);letter-spacing:var(--t-mono-sm-track);justify-content:center;align-items:center;display:inline-flex}.wiz-step.active{color:var(--ink);font-weight:600}.wiz-step.active .wiz-step-num{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.wiz-step.done .wiz-step-num{background:color-mix(in srgb, var(--success) 20%, transparent);border-color:var(--success);color:var(--success)}.wiz-pane{flex-direction:column;gap:12px;display:flex}.wiz-label{font:var(--t-body);letter-spacing:var(--t-body-track)}.wiz-hint{font:var(--t-caption);letter-spacing:var(--t-caption-track);line-height:1.6}.wiz-warn-text{font:var(--t-caption);letter-spacing:var(--t-caption-track);color:var(--warning);margin:0}.wiz-summary{font:var(--t-caption);letter-spacing:var(--t-caption-track);grid-column:1/-1;margin:0}.wiz-drill{grid-template-columns:180px 220px minmax(300px,1fr);gap:12px;display:grid}.wiz-drill-col{border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface-1);flex-direction:column;display:flex;overflow:hidden}.wiz-drill-head{font:var(--t-eyebrow);letter-spacing:var(--t-eyebrow-track);color:var(--ink-muted);background:var(--surface-2);border-bottom:1px solid var(--hairline);white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.wiz-drill-head .link-btn{margin-left:auto}.wiz-selectall{cursor:pointer;color:var(--ink);align-items:center;gap:6px;font-weight:600;display:flex}.wiz-selectall input{cursor:pointer}.wiz-head-label{text-overflow:ellipsis;overflow:hidden}.wiz-head-count{font-variant-numeric:tabular-nums;margin-left:auto}.wiz-filter{border-bottom:1px solid var(--hairline);color:var(--ink-muted);align-items:center;gap:6px;padding:5px 10px;display:flex}.wiz-filter input{color:var(--ink);font:var(--t-caption);letter-spacing:var(--t-caption-track);background:0 0;border:none;width:100%;padding:0}.wiz-filter input:focus{outline:none}.wiz-head-note{text-transform:none;letter-spacing:0;margin-left:8px}.wiz-drill-list{align-content:start;height:300px;overflow-y:auto}.b-sidenav.wiz-drill-list{padding:var(--space-1);grid-template-columns:minmax(0,1fr);overflow-x:hidden}.wiz-empty{font:var(--t-caption);letter-spacing:var(--t-caption-track);padding:12px}.wiz-drill-list:not(.b-sidenav){flex-direction:column;display:flex}.wiz-col-item{border-bottom:1px solid var(--hairline);font:var(--t-caption);letter-spacing:var(--t-caption-track);cursor:pointer;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:6px 12px;display:grid}.wiz-col-item:hover{background:var(--surface-2)}.wiz-tabs{border-bottom:1px solid var(--hairline);gap:4px;display:flex;overflow-x:auto}.wiz-tabs>button{white-space:nowrap;color:var(--ink-muted);font:var(--t-caption);letter-spacing:var(--t-caption-track);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 12px;display:flex}.wiz-tabs>button:hover{color:var(--ink)}.wiz-tabs>button.active{color:var(--primary-text);border-bottom-color:var(--primary)}.wiz-meta{font:var(--t-caption);letter-spacing:var(--t-caption-track);grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:6px 10px;display:grid}.wiz-keys{flex-wrap:wrap;gap:4px;display:flex}.wiz-badge-gap{white-space:nowrap;margin-left:6px}.wiz-ref{font:var(--t-caption);letter-spacing:var(--t-caption-track)}.wiz-apply-bar{margin-bottom:0}.wiz-alert{border-radius:var(--radius-card);font:var(--t-caption);letter-spacing:var(--t-caption-track);align-items:flex-start;gap:10px;padding:10px 12px;line-height:1.6;display:flex}.wiz-alert.warn{background:color-mix(in srgb, var(--warning) 12%, transparent);color:var(--warning);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent)}.wiz-alert.ok{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 30%, transparent)}.wiz-alert svg{flex:none;margin-top:1px}@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/assets/PretendardVariable-CJuje-Rk.woff2)format("woff2-variations")}html,body,#root{height:100%}
