@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: "Plus Jakarta Sans Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono Variable", "Cascadia Code", ui-monospace, Consolas, monospace;--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-md: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--line-height-tight: 1.2;--line-height-snug: 1.4;--line-height-normal: 1.55;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-tight: -.02em;--tracking-snug: -.01em;--tracking-caps: .06em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3.5rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--sidebar-width: 248px;--sidebar-collapsed-width: 64px;--topbar-height: 56px;--content-max: 1440px;--icon-stroke: 1.75;--duration-fast: .12s;--duration-normal: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1)}:root,[data-theme=light]{color-scheme:light;--color-bg: #f5f8fa;--color-surface: #ffffff;--color-surface-2: #f0f5f8;--color-surface-3: #e6eef2;--color-surface-hover: #eaf1f5;--color-sidebar: #12303c;--color-sidebar-text: #ffffff;--color-sidebar-muted: #d6e4ea;--color-sidebar-accent: #bdd7ee;--color-text: #000000;--color-text-secondary: #12303c;--color-muted: #4e626e;--color-faint: #7e94a0;--color-border: #d6e4ea;--color-border-subtle: #edf3f6;--color-border-strong: #bdd7ee;--color-primary: #12303c;--color-primary-hover: #0a1f28;--btn-primary-from: #194151;--btn-primary-to: #12303c;--btn-primary-hover-to: #0a1f28;--color-primary-edge: #0a1f28;--color-primary-soft: #e5eff3;--color-primary-border: #bdd7ee;--color-on-primary: #ffffff;--color-focus: rgb(18 48 60 / .25);--color-success: #047857;--color-warning: #b45309;--color-danger: #b91c1c;--color-info: #12303c;--color-neutral: #526571;--color-online: #10b981;--status-start: #047857;--status-step: #12303c;--status-decision: #b45309;--status-auto: #12303c;--status-exit: #b91c1c;--tint-strength: 10%;--tint-border: 28%;--highlight: inset 0 1px 0 rgb(255 255 255 / .9);--shadow-xs: 0 1px 2px rgb(18 48 60 / .05);--shadow-sm: 0 1px 2px rgb(18 48 60 / .04), 0 1px 3px rgb(18 48 60 / .06);--shadow-md: 0 4px 12px -2px rgb(18 48 60 / .08), 0 2px 4px -2px rgb(18 48 60 / .05);--shadow-lg: 0 24px 48px -12px rgb(18 48 60 / .18), 0 0 0 1px rgb(18 48 60 / .04);--overlay: rgb(18 48 60 / .35);--glass: rgb(255 255 255 / .85)}[data-theme=dark]{color-scheme:dark;--color-bg: #090d16;--color-surface: #0f1420;--color-surface-2: #0c111b;--color-surface-3: #151c2b;--color-surface-hover: #161e2e;--color-sidebar: #0b1019;--color-text: #e2e8f0;--color-text-secondary: #cbd5e1;--color-muted: #8b98ad;--color-faint: #5b6a82;--color-border: #1e293b;--color-border-subtle: #172133;--color-border-strong: #2c3a52;--color-primary: #7c7ff7;--color-primary-hover: #9496fa;--btn-primary-from: #6366f1;--btn-primary-to: #4f46e5;--btn-primary-hover-to: #4338ca;--color-primary-edge: #3730a3;--color-primary-soft: rgb(124 127 247 / .12);--color-primary-border: rgb(124 127 247 / .35);--color-on-primary: #ffffff;--color-focus: rgb(124 127 247 / .32);--color-success: #34d399;--color-warning: #fbbf24;--color-danger: #f87171;--color-info: #38bdf8;--color-neutral: #94a3b8;--color-online: #34d399;--status-start: #34d399;--status-step: #38bdf8;--status-decision: #fbbf24;--status-auto: #a78bfa;--status-exit: #f87171;--tint-strength: 10%;--tint-border: 32%;--highlight: inset 0 1px 0 rgb(255 255 255 / .04);--shadow-xs: 0 1px 2px rgb(0 0 0 / .4);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4), 0 1px 3px rgb(0 0 0 / .3);--shadow-md: 0 6px 16px -4px rgb(0 0 0 / .6);--shadow-lg: 0 24px 56px -12px rgb(0 0 0 / .75), 0 0 0 1px rgb(255 255 255 / .04);--overlay: rgb(2 6 15 / .6);--glass: rgb(15 20 32 / .72)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{zoom:1.25}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit}table{border-collapse:collapse}body{font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{color:var(--color-text);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);letter-spacing:-.015em}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-md);letter-spacing:var(--tracking-snug)}h4{font-size:var(--font-size-sm);letter-spacing:var(--tracking-snug)}p{color:var(--color-text-secondary)}code,pre,.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--color-muted)}.faint{color:var(--color-faint)}.small{font-size:var(--font-size-sm);line-height:var(--line-height-snug)}.xs{font-size:var(--font-size-xs);line-height:var(--line-height-snug)}.eyebrow{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-muted)}.strong{font-weight:var(--font-weight-semibold);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(4px) scale(.995)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{0%{transform:scale(1);opacity:.55}80%,to{transform:scale(2.4);opacity:0}}.anim-fade{animation:fade-in var(--duration-normal) var(--ease-standard)}.anim-rise{animation:rise-in .28s var(--ease-out)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}svg.lucide{stroke-width:var(--icon-stroke);flex-shrink:0}::selection{background:var(--color-primary-soft)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.stack-lg{display:flex;flex-direction:column;gap:var(--space-5)}.spacer{flex:1}.grid-2,.grid-3,.grid-4{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:var(--space-5);align-items:start}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-shell{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:100%}.app-main{display:flex;flex-direction:column;min-width:0}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-7) var(--space-7) var(--space-8);display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-header p{margin-top:var(--space-1);color:var(--color-muted);font-size:var(--font-size-sm)}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-muted);font-weight:var(--font-weight-medium)}.back-link:hover{color:var(--color-text);text-decoration:none}.sidebar{position:sticky;top:0;height:100vh;width:var(--sidebar-width);display:flex;flex-direction:column;background:var(--color-sidebar);border-right:1px solid var(--color-border);overflow:hidden;transition:width .24s cubic-bezier(.23,1,.32,1)}.sidebar[data-collapsed=true]{width:var(--sidebar-collapsed-width)}.sidebar-header{display:flex;align-items:center;gap:var(--space-1);height:64px;padding:0 var(--space-3);flex-shrink:0}.sidebar[data-collapsed=true] .sidebar-header{justify-content:center;padding:0}.brand{display:flex;align-items:center;gap:var(--space-3);height:40px;min-width:0;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;flex:1}.brand:hover{text-decoration:none}.brand-btn{flex:0 0 auto;width:40px;justify-content:center;padding:0;transition:background var(--duration-fast),transform .12s cubic-bezier(.23,1,.32,1)}.brand-btn:hover{background:var(--color-surface-hover)}.brand-btn:active{transform:scale(.96)}.brand-text{gap:2px;white-space:nowrap;min-width:0}.brand-logo-container{display:inline-flex;align-items:center}.public-wrap .brand-logo-container,.auth-head .brand-logo-container{background:#12303c;padding:8px 14px;border-radius:var(--radius-md);box-shadow:0 4px 12px #12303c40}.brand-mark{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--color-surface);background:#12303c;box-shadow:inset 0 1px #ffffff2e,0 0 0 1px color-mix(in srgb,var(--color-text) 80%,transparent),var(--shadow-xs);flex-shrink:0}.brand-mark.lg{width:40px;height:40px;border-radius:10px}.brand-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--tracking-tight);line-height:1.1}.brand-sub{font-size:var(--font-size-2xs);color:var(--color-muted);font-weight:var(--font-weight-medium)}.sidebar-toggle{width:28px;height:28px;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),transform .12s cubic-bezier(.23,1,.32,1)}.sidebar-toggle:active{transform:scale(.96)}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--space-3) var(--space-2);scrollbar-width:thin;scrollbar-color:transparent transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background-color:transparent;border-radius:var(--radius-full)}.sidebar-nav.is-scrolling{scrollbar-color:var(--color-border-strong) transparent}.sidebar-nav.is-scrolling::-webkit-scrollbar-thumb{background-color:var(--color-border-strong)}.nav-group{margin-bottom:2px}.nav-section{height:34px;display:flex;align-items:flex-end;padding:0 var(--space-2) var(--space-2);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-faint);white-space:nowrap}.nav-section{transition:height .24s cubic-bezier(.23,1,.32,1),padding .24s cubic-bezier(.23,1,.32,1)}.sidebar[data-collapsed=true] .nav-section{height:17px;padding:0;justify-content:center;align-items:center}.sidebar[data-collapsed=true] .nav-section:after{content:"";width:18px;height:1px;background:var(--color-border)}.sidebar[data-collapsed=true] .sidebar-nav>div:first-child .nav-section{height:4px}.sidebar[data-collapsed=true] .sidebar-nav>div:first-child .nav-section:after{display:none}.sidebar[data-collapsed=true] .sidebar-nav{padding:0 var(--space-2) var(--space-2)}.sidebar[data-collapsed=true] .nav-link{width:42px;height:40px;padding:0;margin:0 auto 3px;justify-content:center;border-radius:var(--radius-sm)}.sidebar[data-collapsed=true] .nav-link .nav-icon{margin:0;width:20px;height:20px;color:#bdd7ee}.sidebar[data-collapsed=true] .nav-link .nav-icon svg{width:20px;height:20px}.sidebar[data-collapsed=true] .nav-pill:before{left:2px;top:8px;bottom:8px;width:3px;border-radius:var(--radius-full);background:#bdd7ee;box-shadow:0 0 8px #bdd7ee}.sidebar[data-collapsed=true] .sidebar-footer{padding:var(--space-2) 0}.sidebar[data-collapsed=true] .sidebar-footer .nav-link{width:42px;height:40px;margin:0 auto 2px;padding:0;justify-content:center}.nav-section-btn{width:100%;height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2);margin-top:8px;margin-bottom:3px;background:transparent;border:none;border-radius:var(--radius-sm);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#d6e4ea;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--duration-fast),background var(--duration-fast);text-align:left}.nav-section-btn:hover{color:#fff;background:#d6e4ea14}.nav-section-btn.has-active{color:#fff}.nav-section-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-section-trailing{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.nav-section-dot{width:6px;height:6px;border-radius:var(--radius-full);background:#bdd7ee;box-shadow:0 0 8px #bdd7ee}.nav-section-chevron{color:#bdd7ee;transition:transform var(--duration-normal) var(--ease-standard),color var(--duration-fast);flex-shrink:0}.nav-section-chevron.collapsed{transform:rotate(-90deg)}.nav-section-btn:hover .nav-section-chevron{color:#fff}.nav-link{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:38px;margin-bottom:2px;padding:0 10px;border-radius:var(--radius-sm);font-size:14.5px;font-weight:500;color:#fff;text-decoration:none;white-space:nowrap;text-align:left;transition:background var(--duration-fast),color var(--duration-fast)}.nav-link:hover{color:#fff;background:#d6e4ea1a;text-decoration:none}.nav-link.active{color:#fff;font-weight:600}.nav-link.active:hover{background:transparent}.nav-link>:not(.nav-pill){position:relative;z-index:1}.nav-pill{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:var(--radius-sm);background:#ffffff1f;border:1px solid rgba(189,215,238,.3);box-shadow:0 2px 8px #00000047;pointer-events:none}[data-theme=dark] .nav-pill{background:#ffffff24;border-color:#bdd7ee59;box-shadow:0 2px 10px #00000073}.nav-pill:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3.5px;border-radius:0 3px 3px 0;background:#bdd7ee;box-shadow:0 0 8px #bdd7ee}.nav-link .nav-icon{width:18px;height:18px;color:#bdd7ee;display:grid;place-items:center;flex-shrink:0;transition:color var(--duration-fast)}.nav-link:hover .nav-icon,.nav-link.active .nav-icon{color:#fff}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-link .nav-trailing{margin-left:auto;display:grid;color:#d6e4ea}.sidebar-footer{flex-shrink:0;padding:var(--space-3);border-top:1px solid rgba(214,228,234,.15)}.sidebar-footer:empty{display:none}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-6);background:var(--glass);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--color-border)}.crumbs{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-muted);min-width:0}.crumbs .current{color:var(--color-text);font-weight:var(--font-weight-semibold)}.env-pill{display:inline-flex;align-items:center;gap:var(--space-2);height:26px;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.status-dot{position:relative;width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-online)}.status-dot.live:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:inherit;animation:ping 2.2s var(--ease-out) infinite}.status-dot.warn{background:var(--color-warning)}.segmented{display:inline-flex;padding:2px;gap:2px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-3)}.segmented button{width:28px;height:24px;border-radius:4px;display:grid;place-items:center;color:var(--color-muted);transition:background var(--duration-fast),color var(--duration-fast)}.segmented button:hover{color:var(--color-text)}.segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border),var(--shadow-xs)}.icon-btn{position:relative;width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--color-muted);transition:background var(--duration-fast),color var(--duration-fast)}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.icon-btn .count-dot{position:absolute;top:3px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);font-size:10px;font-weight:var(--font-weight-semibold);line-height:16px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--color-surface)}.divider-v{width:1px;height:20px;background:var(--color-border);margin:0 var(--space-1)}.user-chip{display:flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-2) 0 3px;border-radius:var(--radius-full);border:1px solid transparent;transition:background var(--duration-fast),border-color var(--duration-fast);text-align:left}.user-chip:hover,.user-chip[aria-expanded=true]{background:var(--color-surface);border-color:var(--color-border)}.user-chip .who{display:flex;flex-direction:column;line-height:1.2}.user-chip .who strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.user-chip .who span{font-size:var(--font-size-2xs);color:var(--color-muted)}.avatar{width:28px;height:28px;border-radius:var(--radius-xs);display:grid;place-items:center;font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.02em;color:#fff;background:#12303c;box-shadow:0 1px 2px #12303c33;flex-shrink:0}.avatar.sm{width:22px;height:22px;font-size:9px;border-radius:4px}.menu-wrap{position:relative}.popover{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:40;overflow:hidden;animation:pop-in .16s var(--ease-out)}.popover.wide{width:380px;max-height:480px;overflow-y:auto}.popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left;text-decoration:none}.menu-item:hover{background:var(--color-surface-hover);color:var(--color-text);text-decoration:none}.menu-item.danger{color:var(--color-danger)}.list-item{display:block;width:100%;text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);color:inherit;text-decoration:none;transition:background var(--duration-fast)}.list-item:last-child{border-bottom:none}.list-item:hover{background:var(--color-surface-hover);text-decoration:none}.list-item.unread{background:color-mix(in srgb,var(--color-primary) 4%,transparent)}.list-item .unread-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-primary);flex-shrink:0;margin-top:6px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border)}.card-header h3{display:flex;align-items:center;gap:var(--space-2)}.card-body{padding:var(--space-5)}.card-body.tight{padding:0}.card-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.stat{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);color:inherit;text-decoration:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}a.stat:hover{text-decoration:none;border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.stat-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted)}.stat-label svg{color:var(--color-faint)}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;color:var(--color-text)}.stat-foot{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-muted)}.meter{height:4px;border-radius:var(--radius-full);background:var(--color-surface-3);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:34px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-snug);line-height:1;white-space:nowrap;text-decoration:none;transition:background var(--duration-fast),box-shadow var(--duration-fast),color var(--duration-fast),transform var(--duration-fast)}.btn:hover{text-decoration:none}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg.lucide{width:15px;height:15px}.btn-primary{color:var(--color-on-primary);background:linear-gradient(180deg,var(--btn-primary-from),var(--btn-primary-to));box-shadow:inset 0 1px #ffffff29,0 0 0 1px var(--color-primary-edge),0 1px 2px #0f172a2e}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--btn-primary-to),var(--btn-primary-hover-to))}.btn-secondary{color:var(--color-text);background:linear-gradient(180deg,var(--color-surface),var(--color-surface-2));box-shadow:var(--highlight),0 0 0 1px var(--color-border),var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);box-shadow:var(--highlight),0 0 0 1px var(--color-border-strong),var(--shadow-xs)}.btn-ghost{color:var(--color-muted);background:transparent}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover)}.btn-danger{color:#fff;background:linear-gradient(180deg,#e04444,#c62828);box-shadow:inset 0 1px #ffffff29,0 0 0 1px #a61b1b,0 1px 2px #0f172a2e}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg,#d43b3b,#b71c1c)}.btn-sm{height:28px;padding:0 var(--space-3);font-size:var(--font-size-xs)}.btn-lg{height:40px;padding:0 var(--space-5);font-size:var(--font-size-md)}.btn-block{width:100%}.btn:focus-visible,.icon-btn:focus-visible,.nav-link:focus-visible,.role-btn:focus-visible,.user-chip:focus-visible,.segmented button:focus-visible,.tab:focus-visible,.list-item:focus-visible,.input:focus-visible{outline:none;box-shadow:0 0 0 1px var(--color-primary),0 0 0 4px var(--color-focus)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.field-hint{font-size:var(--font-size-xs);color:var(--color-muted)}.field-error{font-size:var(--font-size-xs);color:var(--color-danger)}.input{width:100%;height:34px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-sm);color:var(--color-text);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.input::placeholder{color:var(--color-faint)}.input:hover{border-color:var(--color-border-strong)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus)}.input[aria-invalid=true]{border-color:var(--color-danger)}textarea.input{height:auto;min-height:88px;padding:var(--space-2) var(--space-3);line-height:var(--line-height-normal);resize:vertical}select.input{padding-right:var(--space-7);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 15 5 5 5-5'/%3E%3Cpath d='m7 9 5-5 5 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}input[type=file].input{padding:5px var(--space-2)}input[type=file].input::file-selector-button{margin-right:var(--space-3);height:22px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface-3);color:var(--color-text);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.input-icon{position:relative}.input-icon svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-faint);pointer-events:none}.input-icon .input{padding-left:32px}.checkbox{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.checkbox input{margin-top:2px;width:15px;height:15px;accent-color:var(--color-primary);flex-shrink:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-grid .full{grid-column:1 / -1}.badge{--tone: var(--color-neutral);display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:var(--radius-full);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:.01em;line-height:1;white-space:nowrap;color:var(--tone);background:color-mix(in srgb,var(--tone) var(--tint-strength),transparent);border:1px solid color-mix(in srgb,var(--tone) var(--tint-border),transparent)}.badge svg.lucide{width:11px;height:11px;stroke-width:2}.badge-dot:before{content:"";width:5px;height:5px;border-radius:var(--radius-full);background:currentColor}.badge-start{--tone: var(--status-start)}.badge-step{--tone: var(--status-step)}.badge-decision{--tone: var(--status-decision)}.badge-auto{--tone: var(--status-auto)}.badge-exit{--tone: var(--status-exit)}.badge-primary{--tone: var(--color-primary)}.tag{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:var(--radius-xs);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-transform:capitalize}.kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-xs);border:1px solid var(--color-border);background:var(--color-surface-2);font-family:var(--font-mono);font-size:10px;color:var(--color-muted);font-variant-numeric:tabular-nums}.dot{width:7px;height:7px;border-radius:var(--radius-full);display:inline-block;flex-shrink:0}.alert{--tone: var(--color-info);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--tone) var(--tint-border),transparent);background:color-mix(in srgb,var(--tone) 6%,var(--color-surface));color:var(--color-text-secondary)}.alert>svg.lucide{color:var(--tone);width:16px;height:16px;margin-top:2px}.alert-warning{--tone: var(--color-warning)}.alert-danger{--tone: var(--color-danger)}.alert-info{--tone: var(--color-info)}.alert-success{--tone: var(--color-success)}.alert-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text)}.table-wrap{overflow-x:auto}.table{width:100%;font-size:var(--font-size-sm);border-collapse:separate;border-spacing:0}.table th{height:38px;padding:0 var(--space-4);text-align:left;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:#fff;background:#12303c;border-bottom:1px solid var(--color-border);white-space:nowrap}.table td{padding:10px var(--space-4);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;color:var(--color-text-secondary)}.table td.primary{color:var(--color-text);font-weight:var(--font-weight-medium)}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--color-surface-hover)}.table .align-right{text-align:right}.cell-person{display:flex;align-items:center;gap:var(--space-3);min-width:0}.cell-person .name{color:var(--color-text);font-weight:var(--font-weight-semibold)}.cell-person .sub{font-size:var(--font-size-xs);color:var(--color-muted)}.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.toolbar .input{width:auto}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(268px,1fr);gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-3);align-items:start}.kanban-col{display:flex;flex-direction:column;min-height:320px;max-height:calc(100vh - 250px);border-radius:var(--radius-lg);background:var(--color-surface-2);border:1px solid var(--color-border);transition:border-color var(--duration-fast),background var(--duration-fast),opacity var(--duration-normal)}[data-theme=light] .kanban-col{background:#f1f5f9}.kanban.is-dragging .kanban-col.no-drop{opacity:.45}.kanban-col.drop-ok{border-color:var(--color-primary);border-style:dashed;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface-2))}.kanban-col-header{display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-snug)}.kanban-col-header .count{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:var(--radius-xs);display:grid;place-items:center;font-family:var(--font-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border)}.kanban-col-body{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-2) var(--space-2);overflow-y:auto}.kanban-empty{display:grid;place-items:center;height:84px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-faint)}.kanban-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-xs);cursor:grab;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast),opacity var(--duration-fast)}.kanban-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.4;transform:scale(.98);border-style:dashed;box-shadow:none}.kanban-card .grip{color:var(--color-faint);opacity:0;transition:opacity var(--duration-fast)}.kanban-card:hover .grip{opacity:1}.kanban-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-snug)}.kanban-card-title:hover{color:var(--color-primary);text-decoration:none}.kanban-card .meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-muted)}.kanban-card .foot{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle);font-size:var(--font-size-2xs);color:var(--color-faint)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:var(--space-4);background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--duration-fast)}.modal{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in .2s var(--ease-out)}.modal-header{padding:var(--space-5) var(--space-5) var(--space-2)}.modal-header h3{font-size:var(--font-size-lg)}.modal-body{padding:var(--space-2) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.toasts{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:100;display:flex;flex-direction:column;gap:var(--space-2)}.toast{display:flex;align-items:flex-start;gap:var(--space-3);min-width:280px;max-width:420px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);color:var(--color-text);animation:pop-in .22s var(--ease-out)}.toast svg.lucide{width:16px;height:16px;margin-top:1px}.toast-success svg.lucide{color:var(--color-success)}.toast-error svg.lucide{color:var(--color-danger)}.toast-info svg.lucide{color:var(--color-info)}.tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin;padding-bottom:0;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{height:3px}.tabs::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.tab{height:40px;margin-bottom:-1px;border-bottom:2px solid transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-muted);white-space:nowrap;flex-shrink:0;padding:0 var(--space-3);display:inline-flex;align-items:center;background:transparent;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast)}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-text);border-bottom-color:var(--color-text);font-weight:var(--font-weight-semibold)}.spinner{width:14px;height:14px;border:1.75px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .65s linear infinite;opacity:.8}.center-page{min-height:100%;display:grid;place-items:center;padding:var(--space-7) var(--space-4)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);text-align:center;color:var(--color-muted)}.empty-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-faint);margin-bottom:var(--space-1)}.empty h4{color:var(--color-text)}.kv{display:grid;grid-template-columns:120px 1fr;gap:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.kv dt{color:var(--color-muted)}.kv dd{margin:0;color:var(--color-text);min-width:0}.timeline{list-style:none;padding:0;display:flex;flex-direction:column}.timeline li{position:relative;padding:0 0 var(--space-4) var(--space-5)}.timeline li:before{content:"";position:absolute;left:4px;top:6px;width:7px;height:7px;border-radius:var(--radius-full);background:var(--color-surface);border:1.5px solid var(--color-border-strong)}.timeline li:after{content:"";position:absolute;left:7px;top:16px;bottom:0;width:1px;background:var(--color-border)}.timeline li:last-child:after{display:none}.pre-wrap{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow-y:auto;background:var(--color-surface-2);border:1px solid var(--color-border);padding:var(--space-3);border-radius:var(--radius-sm)}.feedback-item{padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2)}.label-inline{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-muted);margin-right:var(--space-2)}.public-wrap{min-height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-4)}.public-card{width:min(680px,100%)}.result-icon{width:44px;height:44px;margin:0 auto;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-success);background:color-mix(in srgb,var(--color-success) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 30%,transparent)}.auth-page{position:relative;min-height:100%;display:grid;place-items:center;padding:var(--space-8) var(--space-4);overflow:hidden}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--color-border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--color-border-subtle) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 60% 50% at 50% 30%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 60% 50% at 50% 30%,#000 30%,transparent 75%);pointer-events:none}.auth-panel{position:relative;width:min(440px,100%);display:flex;flex-direction:column;gap:var(--space-5)}.auth-head{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.auth-head p{font-size:var(--font-size-sm);color:var(--color-muted)}.btn-ms{height:40px;color:var(--color-text);background:linear-gradient(180deg,var(--color-surface),var(--color-surface-2));box-shadow:var(--highlight),0 0 0 1px var(--color-border),var(--shadow-xs)}.btn-ms:hover:not(:disabled){box-shadow:var(--highlight),0 0 0 1px var(--color-border-strong),var(--shadow-sm)}.or-divider{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-faint)}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.dev-panel{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.dev-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-2)}.dev-panel-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;font:inherit;color:inherit}.dev-panel-toggle:hover{background:var(--color-surface-hover)!important}.role-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-subtle);transition:background var(--duration-fast)}.role-btn:last-child{border-bottom:none}.role-btn:hover:not(:disabled){background:var(--color-surface-hover)}.role-btn:disabled{cursor:progress}.role-btn:disabled:not(.busy){opacity:.55}.role-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-surface),var(--color-surface-3));box-shadow:var(--highlight);color:var(--color-text-secondary);flex-shrink:0}.role-btn .chev{color:var(--color-faint);transition:transform var(--duration-fast),color var(--duration-fast)}.role-btn:hover .chev{color:var(--color-text);transform:translate(2px)}.dev-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:var(--radius-full);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 28%,transparent)}@media (max-width: 1020px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 960px){.detail-layout,.grid-2{grid-template-columns:1fr}}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar,.sidebar[data-collapsed=true]{position:static;width:auto;height:auto;flex-direction:row;align-items:center;border-right:none;border-bottom:1px solid var(--color-border)}.sidebar-header{height:52px}.sidebar-nav,.sidebar-nav>div{display:flex;gap:var(--space-1);padding:0;overflow-x:auto}.nav-section,.brand-text,.sidebar-toggle,.sidebar-footer,.nav-pill:before{display:none}.nav-link{width:auto;flex-shrink:0}.nav-label{overflow:visible}.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.page{padding:var(--space-5) var(--space-4)}.topbar{padding:0 var(--space-4)}.user-chip .who,.crumbs{display:none}}.otp{display:flex;gap:var(--space-2);justify-content:center}.otp input{width:44px;height:52px;text-align:center;font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.otp input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus)}.otp input:disabled{opacity:.6}.otp[data-invalid=true] input{border-color:var(--color-danger)}.sig-pad{position:relative;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);touch-action:none}.sig-pad canvas{display:block;width:100%;height:160px;cursor:crosshair}.sig-pad .sig-baseline{position:absolute;left:24px;right:24px;bottom:36px;border-bottom:1px solid var(--color-border);pointer-events:none}.sig-pad .sig-hint{position:absolute;left:24px;bottom:12px;font-size:var(--font-size-xs);color:var(--color-faint);pointer-events:none}.sig-typed{font-family:Brush Script MT,Segoe Script,Lucida Handwriting,cursive;font-size:34px}.letter-view{background:#fff;color:#0f172a;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-7) var(--space-7);font-size:14px;line-height:1.6;max-height:70vh;overflow:auto;-webkit-user-select:none;user-select:none}.letter-view h1{font-size:20px;margin:12px 0 8px}.letter-view h2{font-size:16px;margin:16px 0 6px}.letter-view p{margin:0 0 10px}.letter-view table{width:100%;border-collapse:collapse;margin:6px 0 14px}.letter-view th,.letter-view td{border:1px solid #cbd5e1;padding:6px 8px;text-align:left;font-size:13px}.letter-view th{background:#f1f5f9}.letter-view .right{text-align:right;font-variant-numeric:tabular-nums}.letter-view .muted{color:#64748b;font-size:12px}.doc-viewer{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);overflow:hidden;min-height:420px;display:grid;place-items:center}.doc-viewer iframe{width:100%;height:70vh;border:0;background:#fff}.doc-viewer img{max-width:100%;max-height:70vh;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.diff-table td.before{color:var(--color-muted);text-decoration:line-through;text-decoration-color:var(--color-danger)}.diff-table td.after{color:var(--color-text);font-weight:var(--font-weight-semibold)}.diff-table tr.changed td:first-child{box-shadow:inset 2px 0 0 var(--color-warning)}.steps{display:flex;gap:var(--space-2);flex-wrap:wrap}.step{display:inline-flex;align-items:center;gap:var(--space-2);height:30px;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);background:var(--color-surface)}.step svg{width:14px;height:14px;stroke-width:var(--icon-stroke)}.step[data-state=current]{color:var(--color-text);border-color:var(--color-primary-border);background:var(--color-primary-soft)}.step[data-state=done]{color:var(--color-success)}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.choice{display:flex;gap:var(--space-3);align-items:flex-start;text-align:left;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.choice:hover{border-color:var(--color-border-strong)}.choice[aria-checked=true]{border-color:var(--color-primary);background:var(--color-primary-soft)}.choice svg{flex:none;width:18px;height:18px;stroke-width:var(--icon-stroke);color:var(--color-muted);margin-top:2px}.choice strong{display:block;font-size:var(--font-size-sm)}.choice span{font-size:var(--font-size-xs);color:var(--color-muted)}.policy{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.policy+.policy{margin-top:var(--space-3)}.policy-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-2)}.policy-body{max-height:220px;overflow:auto;padding:var(--space-4);font-size:var(--font-size-sm);border-top:1px solid var(--color-border)}.checklist-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle)}.checklist-row:last-child{border-bottom:0}.checklist-row svg{width:16px;height:16px;stroke-width:var(--icon-stroke);flex:none}.checklist-row[data-status=done] .checklist-title{color:var(--color-muted);text-decoration:line-through}.checklist-row[data-status=cancelled] .checklist-title{color:var(--color-faint)}.checklist-title{flex:1;font-size:var(--font-size-sm)}.countdown{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold)}.money{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.version-chip{font-family:var(--font-mono);font-size:var(--font-size-xs);padding:1px 6px;border-radius:var(--radius-xs);border:1px solid var(--color-border);color:var(--color-text-secondary)}.public-card.wide{width:min(980px,100%)}.grow{flex:1;min-width:0}.sum-row{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--font-size-sm)}.sum-row>:first-child{color:var(--color-text-secondary)}
