:root{color-scheme:light;--bg: oklch(.975 .003 240);--surface: oklch(1 0 0);--surface-2: oklch(.955 .004 240);--border: oklch(.885 .006 240);--border-strong: oklch(.79 .009 240);--ink: oklch(.17 .01 240);--muted: oklch(.43 .01 240);--primary: oklch(.52 .16 246);--primary-hover: oklch(.44 .14 246);--primary-soft: oklch(.95 .022 246);--accent: oklch(.65 .18 220);--accent-soft: oklch(.94 .03 220);--success: oklch(.46 .13 160);--success-soft: oklch(.95 .035 160);--warning: oklch(.5 .13 62);--warning-soft: oklch(.965 .04 78);--danger: oklch(.5 .21 27);--danger-soft: oklch(.957 .028 27);--font-sans: "Malgun Gothic", "맑은 고딕", "Apple SD Gothic Neo", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "D2Coding", Consolas, monospace;--fs-xs: .75rem;--fs-base: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-title: 1.5rem;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--z-sticky: 10;--z-dropdown: 20;--z-drawer-dim: 28;--z-drawer: 30;--z-toast: 40;--dur: .18s;--ease: cubic-bezier(.16, 1, .3, 1);--shadow-sm: 0 1px 3px oklch(0 0 0 / .1), 0 1px 2px -1px oklch(0 0 0 / .1);--shadow-md: 0 8px 24px oklch(0 0 0 / .12);--shadow-lg: 0 6px 24px oklch(0 0 0 / .18);--on-primary: oklch(1 0 0);--shadow-xs: 0 1px 2px oklch(0 0 0 / .05);--surface-hover: oklch(.93 .006 240);--input-border: var(--border);--ring: var(--primary);--ring-soft: oklch(.55 .16 246 / .5);--row-head-bg: oklch(.955 .004 240 / .6);--row-hover-bg: oklch(.955 .004 240 / .45);--row-border: oklch(.885 .006 240 / .7);--row-selected-bg: oklch(.55 .16 246 / .05);--row-selected-hover-bg: oklch(.55 .16 246 / .1);--badge-bg: oklch(1 0 0);--tone-neutral-text: oklch(.43 .01 240);--tone-neutral-border: oklch(.9 .006 240);--tone-neutral-bg: oklch(.965 .003 240);--tone-info-text: oklch(.45 .12 246);--tone-info-border: oklch(.88 .04 246);--tone-info-bg: oklch(.97 .012 246);--tone-accent-text: oklch(.45 .12 246);--tone-accent-border: oklch(.88 .04 246);--tone-accent-bg: oklch(.97 .012 246);--tone-success-text: oklch(.508 .105 165.6);--tone-success-border: oklch(.905 .089 164.2);--tone-success-bg: oklch(.979 .021 166.1);--tone-warning-text: oklch(.5 .13 62);--tone-warning-border: oklch(.86 .09 72);--tone-warning-bg: oklch(.975 .03 78);--tone-danger-text: oklch(.505 .19 27.5);--tone-danger-border: oklch(.885 .059 18.3);--tone-danger-bg: oklch(.971 .013 17.4);--tone-special-text: oklch(.45 .08 290);--tone-special-border: oklch(.89 .025 290);--tone-special-bg: oklch(.972 .008 290);--tone-terminal-text: oklch(1 0 0);--tone-terminal-bg: oklch(.4 .012 240);--tone-terminal-border: oklch(.4 .012 240);--attn-bg: oklch(.978 .018 80);--attn-mark: oklch(.62 .15 65);--write-ink: oklch(.5 .19 27);--write-border: oklch(.7 .12 27);--data-base: oklch(.72 .01 240);--data-scenario: var(--primary);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--on-accent: oklch(1 0 0);--on-danger: oklch(1 0 0);--on-success: oklch(1 0 0);--accent-ink: oklch(.42 .12 220);--primary-ink: oklch(.43 .13 246)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: oklch(.19 .008 240);--surface: oklch(.232 .009 240);--surface-2: oklch(.272 .01 240);--border: oklch(.34 .011 240);--border-strong: oklch(.45 .014 240);--ink: oklch(.95 .004 240);--muted: oklch(.76 .01 240);--primary: oklch(.72 .12 246);--primary-hover: oklch(.79 .1 246);--primary-soft: oklch(.28 .035 246);--accent: oklch(.79 .12 220);--accent-soft: oklch(.27 .045 220);--success: oklch(.8 .13 160);--success-soft: oklch(.26 .045 160);--warning: oklch(.83 .13 72);--warning-soft: oklch(.27 .035 70);--danger: oklch(.75 .16 27);--danger-soft: oklch(.27 .06 27);--shadow-sm: 0 1px 2px oklch(0 0 0 / .4);--shadow-md: 0 8px 24px oklch(0 0 0 / .55);--shadow-lg: 0 6px 24px oklch(0 0 0 / .6);--on-primary: oklch(.16 .03 240);--on-accent: oklch(.16 .03 240);--on-danger: oklch(.16 .03 27);--on-success: oklch(.16 .03 160);--accent-ink: oklch(.86 .1 220);--primary-ink: oklch(.85 .07 246);--input-border: oklch(.36 .04 240 / .8);--ring: oklch(.64 .14 246);--surface-hover: oklch(.3 .011 240);--row-head-bg: oklch(.272 .01 240 / .6);--row-hover-bg: oklch(.272 .01 240 / .45);--row-border: oklch(.34 .011 240 / .7);--badge-bg: transparent;--tone-neutral-text: oklch(.76 .01 240);--tone-neutral-border: oklch(.55 .012 240 / .35);--tone-neutral-bg: oklch(.55 .012 240 / .14);--tone-info-text: oklch(.82 .08 246);--tone-info-border: oklch(.62 .12 246 / .3);--tone-info-bg: oklch(.62 .12 246 / .1);--tone-accent-text: oklch(.82 .08 246);--tone-accent-border: oklch(.62 .12 246 / .3);--tone-accent-bg: oklch(.62 .12 246 / .1);--tone-success-text: oklch(.845 .13 165);--tone-success-border: oklch(.696 .149 162.5 / .3);--tone-success-bg: oklch(.696 .149 162.5 / .1);--tone-warning-text: oklch(.83 .13 72);--tone-warning-border: oklch(.77 .15 70 / .35);--tone-warning-bg: oklch(.77 .15 70 / .1);--tone-danger-text: oklch(.808 .103 19.6);--tone-danger-border: oklch(.637 .208 25.3 / .3);--tone-danger-bg: oklch(.637 .208 25.3 / .1);--tone-special-text: oklch(.8 .06 290);--tone-special-border: oklch(.6 .08 290 / .3);--tone-special-bg: oklch(.6 .08 290 / .1);--tone-terminal-text: oklch(.15 .01 240);--tone-terminal-bg: oklch(.8 .01 240);--tone-terminal-border: oklch(.8 .01 240);--attn-bg: oklch(.77 .15 70 / .08);--attn-mark: oklch(.8 .14 70);--write-ink: oklch(.8 .12 27);--write-border: oklch(.62 .15 27);--data-base: oklch(.5 .01 240)}}:root[data-theme=dark]{color-scheme:dark;--bg: oklch(.19 .008 240);--surface: oklch(.232 .009 240);--surface-2: oklch(.272 .01 240);--border: oklch(.34 .011 240);--border-strong: oklch(.45 .014 240);--ink: oklch(.95 .004 240);--muted: oklch(.76 .01 240);--primary: oklch(.72 .12 246);--primary-hover: oklch(.79 .1 246);--primary-soft: oklch(.28 .035 246);--accent: oklch(.79 .12 220);--accent-soft: oklch(.27 .045 220);--success: oklch(.8 .13 160);--success-soft: oklch(.26 .045 160);--warning: oklch(.83 .13 72);--warning-soft: oklch(.27 .035 70);--danger: oklch(.75 .16 27);--danger-soft: oklch(.27 .06 27);--shadow-sm: 0 1px 2px oklch(0 0 0 / .4);--shadow-md: 0 8px 24px oklch(0 0 0 / .55);--shadow-lg: 0 6px 24px oklch(0 0 0 / .6);--on-primary: oklch(.16 .03 240);--on-accent: oklch(.16 .03 240);--on-danger: oklch(.16 .03 27);--on-success: oklch(.16 .03 160);--accent-ink: oklch(.86 .1 220);--primary-ink: oklch(.85 .07 246);--input-border: oklch(.36 .04 240 / .8);--ring: oklch(.64 .14 246);--surface-hover: oklch(.3 .011 240);--row-head-bg: oklch(.272 .01 240 / .6);--row-hover-bg: oklch(.272 .01 240 / .45);--row-border: oklch(.34 .011 240 / .7);--badge-bg: transparent;--tone-neutral-text: oklch(.76 .01 240);--tone-neutral-border: oklch(.55 .012 240 / .35);--tone-neutral-bg: oklch(.55 .012 240 / .14);--tone-info-text: oklch(.82 .08 246);--tone-info-border: oklch(.62 .12 246 / .3);--tone-info-bg: oklch(.62 .12 246 / .1);--tone-accent-text: oklch(.82 .08 246);--tone-accent-border: oklch(.62 .12 246 / .3);--tone-accent-bg: oklch(.62 .12 246 / .1);--tone-success-text: oklch(.845 .13 165);--tone-success-border: oklch(.696 .149 162.5 / .3);--tone-success-bg: oklch(.696 .149 162.5 / .1);--tone-warning-text: oklch(.83 .13 72);--tone-warning-border: oklch(.77 .15 70 / .35);--tone-warning-bg: oklch(.77 .15 70 / .1);--tone-danger-text: oklch(.808 .103 19.6);--tone-danger-border: oklch(.637 .208 25.3 / .3);--tone-danger-bg: oklch(.637 .208 25.3 / .1);--tone-special-text: oklch(.8 .06 290);--tone-special-border: oklch(.6 .08 290 / .3);--tone-special-bg: oklch(.6 .08 290 / .1);--tone-terminal-text: oklch(.15 .01 240);--tone-terminal-bg: oklch(.8 .01 240);--tone-terminal-border: oklch(.8 .01 240);--attn-bg: oklch(.77 .15 70 / .08);--attn-mark: oklch(.8 .14 70);--write-ink: oklch(.8 .12 27);--write-border: oklch(.62 .15 27);--data-base: oklch(.5 .01 240)}:root{--sb-bg: oklch(.2 .06 240);--sb-fg: oklch(.92 .015 240);--sb-idle: oklch(.75 .06 240);--sb-idle-bg: oklch(.38 .1 240 / .5);--sb-group-label: oklch(.64 .08 240);--sb-group-icon: oklch(.62 .08 240);--sb-active-bg: oklch(.6 .22 240 / .3);--sb-active-ring: oklch(.65 .2 240 / .4);--sb-active-accent: oklch(.75 .18 220);--sb-active-icon: oklch(.82 .15 220);--sb-border: oklch(.38 .1 240 / .6);--sb-focus-ring: oklch(.84 .06 230)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--sb-bg: oklch(.27 .06 240);--sb-fg: oklch(.985 .015 240);--sb-idle: oklch(.81 .06 240);--sb-idle-bg: oklch(.45 .1 240 / .5);--sb-group-label: oklch(.7 .08 240);--sb-group-icon: oklch(.68 .08 240);--sb-active-bg: oklch(.63 .22 240 / .3);--sb-active-ring: oklch(.71 .2 240 / .4);--sb-active-accent: oklch(.83 .18 220);--sb-active-icon: oklch(.9 .15 220);--sb-border: oklch(.45 .1 240 / .6);--sb-focus-ring: oklch(.9 .06 230)}}:root[data-theme=dark]{--sb-bg: oklch(.27 .06 240);--sb-fg: oklch(.985 .015 240);--sb-idle: oklch(.81 .06 240);--sb-idle-bg: oklch(.45 .1 240 / .5);--sb-group-label: oklch(.7 .08 240);--sb-group-icon: oklch(.68 .08 240);--sb-active-bg: oklch(.63 .22 240 / .3);--sb-active-ring: oklch(.71 .2 240 / .4);--sb-active-accent: oklch(.83 .18 220);--sb-active-icon: oklch(.9 .15 220);--sb-border: oklch(.45 .1 240 / .6);--sb-focus-ring: oklch(.9 .06 230)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--fs-base)/1.55 var(--font-sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary-ink)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.mono{font-family:var(--font-mono);font-size:.92em}.small{font-size:var(--fs-xs)}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;width:240px;flex:none;transition:width .2s;overflow-x:hidden;background:var(--sb-bg);color:var(--sb-fg);display:flex;flex-direction:column;border-right:1px solid var(--sb-border)}.sb-brand-row{display:flex;align-items:center;gap:8px;padding:14px 12px 14px 16px;border-bottom:1px solid var(--sb-border);flex-shrink:0}.sb-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:#fff;text-decoration:none}.sb-brand:hover{text-decoration:none}.sb-brand:focus-visible{outline:2px solid var(--sb-focus-ring);outline-offset:2px;border-radius:4px}.sb-brand-logo{width:28px;height:28px;display:block;flex-shrink:0}.sb-brand-text{display:flex;flex-direction:column;min-width:0}.sb-brand-name,.sb-brand-sub{color:#fff;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-brand-name{font-size:var(--fs-base)}.sb-brand-sub{font-size:var(--fs-xs)}.sb-rail-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border:0;border-radius:6px;background:transparent;color:var(--sb-idle);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.sb-rail-toggle:hover{background:var(--sb-idle-bg);color:#fff}.sb-rail-toggle:focus-visible{outline:2px solid var(--sb-focus-ring);outline-offset:-2px}.sidebar.collapsed{width:56px}.sidebar.collapsed .sb-brand-row{flex-direction:column;gap:8px;padding:14px 0}.sidebar.collapsed .sb-brand{flex:0 0 auto}.sidebar.collapsed .sb-brand-text,.sidebar.collapsed .sb-label,.sidebar.collapsed .sb-group-label{display:none}.sidebar.collapsed .sb-nav{padding:10px 6px}.sidebar.collapsed .sb-item{justify-content:center;padding:8px 0}.sidebar.collapsed .sb-item.active:before{height:16px}.sidebar.collapsed .sb-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;line-height:16px;padding:0 4px;margin:0}.sb-nav{flex:1;overflow:auto;padding:12px 8px;display:flex;flex-direction:column;gap:12px}.sb-group+.sb-group{border-top:1px solid var(--sb-idle-bg);padding-top:12px}.sb-group-label{width:100%;display:flex;align-items:center;gap:6px;padding:4px 8px;min-height:24px;margin-bottom:8px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;color:var(--sb-group-label)}.sb-group-label svg{color:var(--sb-group-icon);flex-shrink:0}.sb-group-label span{flex:1;text-align:left}.sb-group-label:focus-visible{outline:2px solid var(--sb-focus-ring);outline-offset:-2px;border-radius:4px}.sb-item{position:relative;display:flex;align-items:center;gap:10px;padding:7px 11px;margin-bottom:2px;border-radius:6px;color:var(--sb-idle);text-decoration:none;font-size:var(--fs-xs);font-weight:400;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.sb-item svg{width:16px;height:16px;flex:none;color:var(--sb-group-icon);transition:color var(--dur) var(--ease)}.sb-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--primary);color:var(--on-primary);font-size:var(--fs-xs);font-weight:700;line-height:18px;text-align:center}.followups{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.followups button{min-height:28px;padding:3px 11px;border-radius:14px;border:1px solid var(--primary-soft, var(--border));background:var(--surface);color:var(--primary-ink);font-size:var(--fs-xs);line-height:1.35;text-align:left;cursor:pointer}.followups button:hover{background:var(--primary-soft, var(--surface-2))}.sb-item:hover{background:var(--sb-idle-bg);color:#fff;text-decoration:none}.sb-item:hover svg{color:#fff}.sb-item.active{background:var(--sb-active-bg);box-shadow:inset 0 0 0 1px var(--sb-active-ring);color:#fff;font-weight:600}.sb-item.active svg{color:var(--sb-active-icon)}.sb-item.active:before{content:"";position:absolute;left:0;top:50%;width:3px;height:20px;transform:translateY(-50%);background:var(--sb-active-accent);border-radius:0 2px 2px 0}.sb-item:focus-visible{outline:2px solid var(--sb-focus-ring);outline-offset:-2px}.sb-foot{flex-shrink:0;padding:8px;border-top:1px solid var(--sb-idle-bg)}button.sb-item{width:100%;border:0;background:transparent;font:inherit;font-size:var(--fs-xs);text-align:left;cursor:pointer}.sb-signout:hover{background:var(--sb-idle-bg);color:#ffa098;color:oklch(.8 .14 25)}.sb-signout:hover svg{color:#ffa098;color:oklch(.8 .14 25)}.sidebar.collapsed .sb-foot{padding:8px 6px}.sb-stage{margin-left:auto;font-size:var(--fs-xs);color:var(--sb-group-label)}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-sticky);height:48px;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.topbar .badge{white-space:nowrap;flex:none}.tb-menu-btn{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0}.tb-menu-btn:hover{background:var(--surface-2);color:var(--ink)}.tb-crumb{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font-size:var(--fs-xs)}.tb-crumb-root{color:var(--muted);white-space:nowrap}.tb-crumb-sep{color:var(--muted);opacity:.6;flex-shrink:0}.tb-crumb-page{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-right{display:flex;align-items:center;gap:12px}.tb-version{font-size:var(--fs-xs);font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.tb-theme{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.tb-theme:hover{color:var(--ink);background:var(--surface-2)}.tb-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.tb-bell:hover{color:var(--ink);border-color:var(--border-strong)}.tb-bell.has-unread{color:var(--ink)}.tb-bell-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:var(--on-danger, white);font-size:var(--fs-xs);font-weight:700;line-height:16px;text-align:center;font-variant-numeric:tabular-nums}.tb-theme:focus-visible,.tb-bell:focus-visible,.tb-menu-btn:focus-visible,.tb-user-chip:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.tb-user-chip{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 12px;border:0;border-left:1px solid var(--border);border-radius:0;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.tb-user-avatar{width:24px;height:24px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0}.tb-user-lines{display:flex;flex-direction:column;line-height:1.25;min-width:0}.tb-user-name{font-size:var(--fs-xs);font-weight:600;color:var(--ink);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-user-sub{font-size:var(--fs-xs);color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-user-role{font-size:var(--fs-xs);font-weight:500;padding:2px 6px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary-ink);border:1px solid color-mix(in oklab,var(--primary-ink) 30%,transparent);white-space:nowrap}.tb-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-dropdown, 30);min-width:220px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px;box-shadow:var(--shadow-md)}.tb-menu-label{padding:6px 8px 2px;font-size:var(--fs-xs);color:var(--muted)}.tb-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;min-height:32px;border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:var(--fs-xs);color:var(--ink);text-align:left;text-decoration:none;white-space:nowrap}.tb-menu-item:hover{background:var(--surface-2);text-decoration:none}.tb-menu-item.active{color:var(--primary);font-weight:600}.tb-menu-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.tb-menu-dot.on{background:var(--primary)}.tb-menu-sep{height:1px;margin:4px 0;background:var(--border)}@media(max-width:640px){.tb-user-lines,.tb-version{display:none}.tb-user-role{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tb-right{gap:6px}.tb-user-chip{padding:4px 4px 4px 8px}}.sidebar .sb-close{display:none;margin-left:auto;color:var(--sb-fg)}.page{padding:20px 24px 40px;max-width:1480px;width:100%}.page-head{display:flex;align-items:flex-end;gap:12px;padding-bottom:var(--space-3);margin-bottom:var(--space-6);border-bottom:1px solid var(--border)}.page-title{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-title);font-weight:700;letter-spacing:-.025em}.page-title svg{width:20px;height:20px;color:var(--primary)}.page-sub{margin:4px 0 0;color:var(--muted);font-size:var(--fs-base)}.page-head .actions{margin-left:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stack>*+*{margin-top:var(--space-6)}.grid>*{margin-top:0;min-width:0}.card-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:var(--fs-md);font-weight:700;line-height:1.35}.card-head svg{width:16px;height:16px;color:var(--primary)}.card-head .count{margin-left:auto;font-size:var(--fs-xs);font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}.card-body{padding:16px}.card>.tbl-wrap{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.grid{display:grid;gap:var(--space-4);align-items:start}.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))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--input-border);background:var(--surface);color:var(--ink);font-size:var(--fs-base);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-xs);transition:background var(--dur) var(--ease);text-decoration:none}.btn svg{width:15px;height:15px}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn-sm{height:32px;padding:0 12px;font-size:var(--fs-base)}.btn-xs{height:28px;padding:0 10px;font-size:var(--fs-xs)}.btn-ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--primary-ink)}.btn-ghost.btn-ghost-danger{color:var(--danger)}.btn-write{border-color:var(--write-border);color:var(--write-ink);font-weight:600}.btn-write:hover{background:var(--danger-soft)}.btn:disabled,.btn:disabled:hover{background:var(--surface-2);border-color:var(--border);color:var(--muted);box-shadow:none;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.input,.select,textarea.input{min-height:32px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--input-border);background:var(--surface);font-size:var(--fs-xs);transition:border-color .15s,box-shadow .15s}.select{font-size:var(--fs-base);padding-right:26px}.input:focus,.select:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:var(--fs-xs);color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:var(--fs-xs);line-height:1.4;border:1px solid var(--tone-neutral-border);color:var(--tone-neutral-text);background:var(--badge-bg);white-space:nowrap}.badge[data-tone=info]{color:var(--tone-info-text);border-color:var(--tone-info-border);background:var(--tone-info-bg)}.badge[data-tone=success]{color:var(--tone-success-text);border-color:var(--tone-success-border);background:var(--tone-success-bg)}.badge[data-tone=warning]{color:var(--tone-warning-text);border-color:var(--tone-warning-border);background:var(--tone-warning-bg)}.badge[data-tone=danger]{color:var(--tone-danger-text);border-color:var(--tone-danger-border);background:var(--tone-danger-bg)}.badge[data-tone=accent]{color:var(--tone-accent-text);border-color:var(--tone-accent-border);background:var(--tone-accent-bg)}.badge[data-tone=special]{color:var(--tone-special-text);border-color:var(--tone-special-border);background:var(--tone-special-bg)}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-base);font-variant-numeric:tabular-nums}.tbl th{font-size:var(--fs-xs)}.tbl th{text-align:left;font-weight:600;color:var(--muted);background:var(--row-head-bg);padding:9px 16px;border-bottom:1px solid var(--row-border);white-space:nowrap}.tbl td{padding:10px 16px;border-bottom:1px solid var(--row-border);vertical-align:top}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--row-hover-bg)}.tbl .r{text-align:right}.tbl tr[data-tone=warning] td{background:var(--attn-bg)}.tbl tr[data-tone=danger] td{background:var(--danger-soft)}.tbl td.wrap{white-space:normal;min-width:240px}.tbl th.sticky-end,.tbl td.sticky-end{position:sticky;right:0;z-index:1;background:var(--surface);box-shadow:-6px 0 6px -6px #0000002e}.tbl thead th.sticky-end{background:linear-gradient(var(--row-head-bg),var(--row-head-bg)),var(--surface)}.tbl tbody tr:hover td.sticky-end{background:linear-gradient(var(--row-hover-bg),var(--row-hover-bg)),var(--surface)}.tbl tr[data-tone=warning] td.sticky-end{background:linear-gradient(var(--attn-bg),var(--attn-bg)),var(--surface)}.tbl tr[data-tone=danger] td.sticky-end{background:linear-gradient(var(--danger-soft),var(--danger-soft)),var(--surface)}@media(max-width:700px){.tbl td.sticky-end{max-width:48vw;white-space:normal;padding-left:10px;padding-right:10px}.tbl td.sticky-end .btn-row{gap:4px;min-width:0;max-width:100%}.tbl td.sticky-end .btn-row>*{min-width:0;max-width:100%}.tbl td.sticky-end .select{max-width:100%;min-width:0}}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{height:32px;padding:6px 12px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--muted);font-size:var(--fs-xs);font-weight:500;cursor:pointer}.chip[aria-pressed=true]{background:var(--primary-soft);color:var(--primary-ink);border-color:color-mix(in oklab,var(--primary-ink) 30%,transparent);font-weight:600}.view-tabs{flex-wrap:nowrap;gap:2px}@media(max-width:767px){.card-head>span:has(>.view-tabs){flex-basis:100%;margin-left:0!important;overflow-x:auto}.view-tabs .chip{padding:6px 10px}}.row-head{display:block;font-weight:600;line-height:1.4;word-break:keep-all}.day-group+.day-group{border-top:1px solid var(--border)}.day-head{margin:0;padding:12px 14px 4px;font-size:var(--fs-base);font-weight:700}.confirm-strip{background:var(--warning-soft);border-radius:var(--radius-lg);padding:10px 14px;font-size:var(--fs-base)}.notice{border-radius:var(--radius-lg);padding:10px 14px;font-size:var(--fs-base);border:1px solid var(--border);background:var(--surface)}.notice[data-tone=info]{background:var(--primary-soft);border-color:transparent;color:var(--primary-ink)}.notice[data-tone=success]{background:var(--success-soft);border-color:transparent}.notice[data-tone=warning]{background:var(--warning-soft);border-color:transparent}.notice[data-tone=danger]{background:var(--danger-soft);border-color:transparent}.notice-title{font-weight:700;margin-bottom:2px}.state-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.rail-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 16px}.rail-label{font-size:var(--fs-xs);color:var(--muted);word-break:keep-all}.rail-value{margin-top:2px;font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums}.rail-value small{font-size:var(--fs-xs);font-weight:400;color:var(--muted);margin-left:3px}.rail-meta{margin-top:2px;font-size:var(--fs-xs);color:var(--muted)}.state-strip{gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.state-strip .rail-cell{border:0;border-radius:0;border-left:1px solid var(--border);border-top:1px solid var(--border);margin:-1px 0 0 -1px;background:transparent}.state-strip .rail-value{font-size:var(--fs-md)}.state-strip .rail-cell[data-attn]{background:var(--attn-bg)}.state-strip .rail-cell[data-attn] .rail-value{color:var(--tone-warning-text)}.reg{margin:0}.reg-row{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:12px;padding:8px 0}.reg-row+.reg-row{border-top:1px solid var(--border)}.reg-row dt{font-size:var(--fs-xs);color:var(--muted)}.reg-row dd{margin:0;font-weight:500;overflow-wrap:anywhere;word-break:keep-all}.workspace{display:grid;grid-template-columns:minmax(340px,400px) minmax(0,1fr);gap:16px;align-items:start}.workspace>*{min-width:0}.chat{display:flex;flex-direction:column;height:calc(100vh - 92px);position:sticky;top:72px}.chat-log{flex:1;overflow:auto;padding:14px 14px 4px;display:flex;flex-direction:column;gap:10px}.msg{max-width:94%;padding:9px 12px;border-radius:var(--radius);font-size:var(--fs-base);white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}.msg-user{align-self:flex-end;background:var(--primary-soft);color:var(--primary-ink)}.msg-bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border)}.msg-bot[data-tone=danger]{border-color:var(--tone-danger-border);background:var(--danger-soft)}.msg-bot[data-tone=warning]{border-color:var(--tone-warning-border);background:var(--warning-soft)}.msg-meta{display:flex;gap:4px 10px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}.msg-meta button{height:auto;padding:0;border:0;background:none;color:var(--primary-ink);cursor:pointer;font-size:var(--fs-xs);text-decoration:underline;text-underline-offset:2px}.chat-samples{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-top:1px solid var(--border)}.chat-samples button{min-height:28px;padding:3px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--primary-ink);font-size:var(--fs-xs);line-height:1.35;text-align:left;cursor:pointer}.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border);align-items:stretch}.chat-input>.btn{height:auto;min-width:48px;align-self:stretch;justify-content:center}.chat-input textarea{flex:1;resize:none;min-height:52px;font-size:var(--fs-base)}.progress{padding:6px 14px;font-size:var(--fs-xs);color:var(--muted);min-height:26px;display:flex;gap:6px;align-items:center}.pulse{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:pulse 1s infinite alternate}@keyframes pulse{0%{opacity:.3}to{opacity:1}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}.canvas-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:40px 24px;color:var(--muted);text-align:center}.canvas-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:thin}.canvas-tab{height:36px;padding:0 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);cursor:pointer;font-weight:500;white-space:nowrap;flex:none}.canvas-tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--primary)}@media(min-width:1101px){.page:has(>.workspace){height:calc(100dvh - 52px);display:flex;flex-direction:column;padding-bottom:20px}.workspace{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}.workspace>.chat{position:static;height:auto;min-height:0}.canvas-pane{min-height:0;overflow:auto;overscroll-behavior:contain}.canvas-pane .canvas-tabs{position:sticky;top:0;z-index:1;background:var(--bg)}}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.kpi-delta{font-size:var(--fs-xs);margin-left:6px;font-weight:500}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:minmax(64px,220px) minmax(96px,1fr) 90px;gap:10px;align-items:center;font-size:var(--fs-xs)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{position:relative;height:18px;background:var(--surface-2);border-radius:4px}.bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--data-scenario);border-radius:4px}.bar-fill[data-base]{background:var(--data-base)}.bar-ci{position:absolute;top:50%;height:2px;background:var(--ink);opacity:.55;transform:translateY(-50%)}.bar-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.alt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.alt-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px;background:var(--surface)}.alt-card[data-recommended=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.alt-card h4{margin:0 0 6px;font-size:var(--fs-base);display:flex;gap:6px;align-items:center}.alt-card ul{margin:0;padding-left:16px;font-size:var(--fs-xs);color:var(--muted)}ol.steps{margin:0;padding-left:20px;font-size:var(--fs-base)}ol.steps li+li{margin-top:4px}.tl{list-style:none;margin:0;padding:0}.tl li{display:grid;grid-template-columns:64px 14px minmax(0,1fr);gap:8px;padding:6px 0;font-size:var(--fs-xs)}.tl-t{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.tl-dot{width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tl li[data-tone=danger] .tl-dot{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.tl-label{font-weight:600}.tl-detail{color:var(--muted);overflow-wrap:anywhere}.log{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.eq-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:14px}.eq-card[data-alarm=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.eq-card h3{margin:0;font-size:var(--fs-md);display:flex;justify-content:space-between;align-items:center}.sheet-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:var(--z-drawer-dim)}.sheet{position:fixed;top:0;right:0;bottom:0;width:min(672px,100vw);background:var(--surface);z-index:var(--z-drawer);box-shadow:-10px 0 30px #00000024;padding:20px;overflow:auto}.empty{color:var(--muted);padding:24px;text-align:center;font-size:var(--fs-xs)}.decision-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 16px}.decision-bar .rec{flex:1;min-width:240px;font-weight:600}.decision-bar .rec small{display:block;font-weight:400;color:var(--muted);font-size:var(--fs-xs)}.axis{position:relative;height:16px;margin-top:4px;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;container-type:inline-size}.axis span{position:absolute;transform:translate(-50%)}@container (max-width: 159px){.axis>span:nth-child(2n){visibility:hidden}}.bar-ref{position:absolute;top:-3px;bottom:-3px;width:0;border-left:1px dashed var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.log-row td{font-size:var(--fs-xs)}.log-row .mono{white-space:nowrap}.empty-guide{padding:28px 24px;text-align:center;color:var(--muted);font-size:var(--fs-base)}.empty-guide strong{display:block;color:var(--ink);font-size:var(--fs-base);margin-bottom:4px}.empty-guide .btn{margin-top:12px}.persona-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.persona{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:14px 16px;box-shadow:var(--shadow-xs)}.persona:hover{border-color:var(--primary)}.persona b{display:block;margin-bottom:4px}.persona span{font-size:var(--fs-xs);color:var(--muted)}.input::placeholder{color:var(--muted);opacity:1}details.samples summary{cursor:pointer;padding:8px 14px;font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--border)}details.samples[open] summary{padding-bottom:0}details.samples .chat-samples{border-top:0}.gantt{font-size:var(--fs-xs)}.gantt-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:center;min-height:26px}.gantt-row[data-tone=warning] .gantt-label{font-weight:600}.gantt-head{margin-bottom:4px}.gantt-axis{position:relative;height:16px;color:var(--muted);font-size:var(--fs-xs)}.gantt-tick{position:absolute;transform:translate(-50%)}.gantt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-track{position:relative;height:22px;border-radius:4px;background:var(--surface-2)}.gantt-grid{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--border)}.gantt-due{position:absolute;top:2px;bottom:2px;width:0;border-left:2px solid var(--ink)}.gantt-shift{position:absolute;top:8px;height:6px;background:var(--primary-soft);border-radius:3px}.gantt-shift[data-late="1"]{background:var(--danger-soft)}.gantt-dot{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%)}.gantt-dot.base{background:var(--muted);opacity:.6}.gantt-dot.change{background:var(--primary);box-shadow:0 0 0 2px var(--surface)}.gantt-dot.change[data-late="1"]{background:var(--danger)}.line-layout{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:stretch}.line-group{position:relative;flex:1 1 150px;min-width:150px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px;background:var(--surface)}.line-group[data-bottleneck=true]{border-color:var(--warning);box-shadow:inset 0 0 0 1px var(--warning)}.line-group[data-down=true]{border-color:var(--danger)}.line-group-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:var(--fs-base);margin-bottom:8px}.line-machines{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.machine{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 5px;border-radius:4px;font-size:var(--fs-xs);font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border)}.machine[data-down="1"]{background:var(--danger-soft);border-color:var(--danger);text-decoration:line-through}.machine[data-added="1"]{background:var(--primary-soft);border:1px dashed var(--primary)}.machine[data-removed="1"]{opacity:.35;text-decoration:line-through}.line-util{display:grid;grid-template-columns:auto auto;gap:2px 8px;font-size:var(--fs-xs);align-items:center}.line-util .bar-track{grid-column:1 / -1;height:6px}.line-arrow{position:absolute;right:-18px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:var(--fs-base)}@media(max-width:1100px){.topbar .hide-md{display:none}.workspace{grid-template-columns:1fr}.chat{position:static;height:70vh}.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.sidebar{position:fixed;left:0;z-index:var(--z-drawer);transform:translate(-100%);transition:transform var(--dur) var(--ease)}.sidebar[data-open=true]{transform:none;box-shadow:var(--shadow-lg)}.tb-menu-btn,.sidebar .sb-close{display:inline-flex}.sb-rail-toggle,.tb-crumb-root,.tb-crumb-sep{display:none}.sidebar.collapsed{width:240px}.sidebar.collapsed .sb-brand-row{flex-direction:row;padding:14px 12px 14px 16px}.sidebar.collapsed .sb-brand{flex:1}.sidebar.collapsed .sb-brand-text{display:flex}.sidebar.collapsed .sb-label{display:inline}.sidebar.collapsed .sb-group-label{display:flex}.sidebar.collapsed .sb-item{justify-content:flex-start;padding:7px 11px}.sidebar.collapsed .sb-badge{position:static;margin-left:auto}.page{padding:16px}.topbar{padding:0 10px;gap:8px}.topbar .badge,.topbar .hide-sm{display:none}.page-head{flex-direction:column;align-items:stretch}.page-head .actions{margin-left:0}.page-title{font-size:var(--fs-xl)}.card-head{flex-wrap:wrap}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.bar-row{grid-template-columns:100px minmax(0,1fr) 70px}.gantt-row{grid-template-columns:84px minmax(0,1fr)}.line-arrow{display:none}.reg-row{grid-template-columns:1fr;gap:2px}.tbl td.wrap{min-width:200px}.tbl td.wrap .cell-wrap{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tbl th,.tbl td{padding-left:12px;padding-right:12px}.msg{max-width:100%}.chat-samples button,.followups button{min-height:36px;font-size:var(--fs-xs)}.msg-meta button{min-height:32px;padding:0 6px;font-size:var(--fs-xs)}.chat-samples{max-height:30vh;overflow:auto}}.field-mode{color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}.field-mode .page-head .actions{display:flex;flex-wrap:wrap;gap:8px}.fm-status{margin:-8px 0 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.fm-asof{margin:2px 0 0;font-size:var(--fs-xs);color:var(--muted)}.fm-stale{font-size:var(--fs-base);flex:1 1 100%;display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 16px;border:1px solid var(--tone-warning-border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font-weight:400;box-shadow:var(--shadow-sm)}.fm-stale svg{width:22px;height:22px;flex:none;color:var(--warning);margin-top:1px}.fm-stale b{color:var(--warning)}.fm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;min-width:48px;padding:0 16px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:var(--fs-base);font-weight:500;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-sm)}.fm-btn svg{width:20px;height:20px;flex:none;color:var(--primary)}.fm-btn-primary svg{color:inherit}.fm-btn:hover{background:var(--surface-hover)}.fm-btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.fm-btn-primary:hover{background:var(--primary-hover)}.fm-seg{display:inline-flex;gap:0}.fm-seg .fm-btn{border-radius:0}.fm-seg .fm-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.fm-seg .fm-btn:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.fm-seg .fm-btn{box-shadow:none}.fm-seg .fm-btn[aria-pressed=true]{position:relative;z-index:1;background:var(--primary-soft);border-color:var(--primary);color:var(--primary-ink);font-weight:600}.fm-main{padding-bottom:16px}.fm-attn{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;align-items:start}.fm-card{display:flex;flex-direction:column;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.fm-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:-18px -18px 0;padding:14px 18px;border-bottom:1px solid var(--border)}.fm-card[data-state=alarm]{border-color:var(--tone-danger-border)}.fm-card[data-state=anomaly]{border-color:var(--tone-warning-border)}.fm-eq{margin:0;font-size:var(--fs-base);font-weight:700;line-height:1.3}.fm-sub{margin-top:2px;font-size:var(--fs-xs);color:var(--muted)}.fm-state{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:18px;flex:none;font-size:var(--fs-base);font-weight:700;white-space:nowrap}.fm-state svg{width:18px;height:18px}.fm-state{border:1px solid transparent}.fm-state[data-state=alarm]{background:var(--tone-danger-bg);border-color:var(--tone-danger-border);color:var(--tone-danger-text)}.fm-state[data-state=anomaly]{background:var(--tone-warning-bg);border-color:var(--tone-warning-border);color:var(--tone-warning-text)}.fm-state[data-state=forecast]{background:var(--tone-info-bg);border-color:var(--tone-info-border);color:var(--tone-info-text)}.fm-state[data-state=normal]{background:var(--tone-success-bg);border-color:var(--tone-success-border);color:var(--tone-success-text)}.fm-alerts ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.fm-alert{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:var(--fs-base);border:1px solid transparent}.fm-alert>svg{width:20px;height:20px;color:var(--muted)}.fm-alert[data-sev=critical]>svg{color:var(--danger)}.fm-alert[data-sev=warning]>svg{color:var(--warning)}.fm-alert{background:var(--surface);border-color:var(--border)}.fm-alert[data-sev=critical]{border-color:var(--tone-danger-border)}.fm-alert[data-sev=warning]{border-color:var(--tone-warning-border)}.fm-sev{display:inline-block;margin-right:6px;padding:1px 8px;border-radius:4px;font-size:var(--fs-base);font-weight:700;line-height:1.5;vertical-align:1px;background:var(--surface);border:1px solid var(--border-strong);color:var(--ink)}.fm-sev[data-sev=critical]{background:var(--tone-danger-bg);border-color:var(--tone-danger-border);color:var(--tone-danger-text)}.fm-sev[data-sev=warning]{background:var(--tone-warning-bg);border-color:var(--tone-warning-border);color:var(--tone-warning-text)}.fm-alert-meta{margin-top:2px;color:var(--muted);font-size:var(--fs-xs)}.fm-alert-err{margin:6px 0 0;color:var(--danger);font-size:var(--fs-base)}.fm-tags{margin:0;display:grid;gap:10px}.fm-tag{display:grid;grid-template-columns:minmax(84px,auto) 1fr;gap:12px;align-items:baseline}.fm-tag dt{font-size:var(--fs-base);color:var(--muted)}.fm-tag dd{margin:0;display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:6px;align-items:baseline}.fm-val{font-size:var(--fs-base);font-weight:700;line-height:1.3}.fm-val small{margin-left:3px;font-size:var(--fs-xs);font-weight:400;color:var(--muted)}.fm-tag[data-state=alarm] .fm-val{color:var(--danger)}.fm-limit{font-size:var(--fs-xs);color:var(--muted);justify-self:end}.fm-limit[data-over=true]{color:var(--danger);font-weight:700}.fm-meter{grid-column:1 / -1;position:relative;height:8px;border-radius:4px;background:var(--surface-2)}.fm-meter-ok{position:absolute;top:0;bottom:0;background:color-mix(in oklch,var(--success) 28%,var(--surface-2))}.fm-meter-dot{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:var(--ink);box-shadow:0 0 0 2px var(--surface)}.fm-meter-dot[data-state=alarm]{background:var(--danger);border-radius:2px}.fm-tag-note{grid-column:1 / -1;font-size:var(--fs-base);font-weight:600}.fm-tag-note[data-state=anomaly]{color:var(--warning)}.fm-tag-note[data-state=forecast]{color:var(--primary-ink)}.fm-refresh{margin:2px 0 0;font-size:var(--fs-xs);color:var(--muted)}.fm-refresh[data-failed=true]{color:var(--danger);font-weight:600}.fm-action{display:grid;gap:10px}.fm-steps{padding:14px 16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.fm-steps-title{font-weight:700;font-size:var(--fs-base);margin-bottom:6px}.fm-steps ol{margin:0;padding-left:1.4em;font-size:var(--fs-base);line-height:1.6}.fm-notice,.fm-allclear{padding:20px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:var(--fs-base);line-height:1.6}.fm-notice-p{margin:0 0 12px}.fm-allclear{display:flex;align-items:center;gap:10px}.fm-allclear svg{width:24px;height:24px;color:var(--success);flex:none}.fm-section{margin:24px 0 8px;font-size:var(--fs-base);font-weight:700}.fm-rows{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.fm-row{display:grid;grid-template-columns:minmax(120px,.6fr) 1fr auto;gap:12px;align-items:center;min-height:56px;padding:8px 16px}.fm-row+.fm-row{border-top:1px solid var(--row-border)}.fm-row-id{font-size:var(--fs-base);font-weight:700;display:grid}.fm-row-id small{font-family:var(--font-sans);font-weight:400;font-size:var(--fs-xs);color:var(--muted)}.fm-row-vals{font-size:var(--fs-xs);color:var(--muted)}.fm-more{margin-top:16px;width:100%}@media(max-width:600px){.fm-hide-sm{display:none}.fm-tag{grid-template-columns:1fr;gap:2px}.fm-limit{white-space:nowrap}.field-mode .page-head .actions{flex-wrap:nowrap}.fm-seg{flex:1;min-width:0}.fm-seg .fm-btn{flex:1}.fm-row{grid-template-columns:1fr auto}.fm-row-vals{grid-column:1 / -1;grid-row:2}}.set-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:8px}.set-tools .input{flex:1 1 240px;max-width:420px}.set-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-base);cursor:pointer;min-height:32px}.set-check input{width:16px;height:16px;accent-color:var(--primary)}.set-tabs{position:relative;margin-bottom:0;overflow-x:auto;scrollbar-width:thin}.set-tabs .canvas-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto}.set-count{font-size:var(--fs-xs);font-weight:600;min-width:18px;padding:0 5px;border-radius:9px;background:var(--tone-success-bg);color:var(--tone-success-text);font-variant-numeric:tabular-nums}.set-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.set-desc{margin:0 0 4px;font-size:var(--fs-base);color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}.set-row{display:grid;grid-template-columns:minmax(13rem,2fr) minmax(0,3fr);gap:8px 24px;padding:14px 0}.set-row+.set-row{border-top:1px solid var(--border)}.set-row[data-dirty]{background:var(--primary-soft);padding-left:12px;padding-right:12px;margin:0 -12px;border-radius:var(--radius)}.set-label{display:block;font-weight:600;font-size:var(--fs-base);color:var(--ink);word-break:keep-all}.set-help{margin:2px 0 0;font-size:var(--fs-xs);color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}.set-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px}.set-env{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.set-ctl{min-width:0}.set-inputs{flex-wrap:wrap}.set-inputs .input,.set-inputs .select{flex:1 1 200px;min-width:0;max-width:380px}.set-value{font-weight:500;overflow-wrap:anywhere}.set-err{margin:6px 0 0;font-size:var(--fs-xs);color:var(--tone-danger-text);font-weight:500}.set-warn{margin:6px 0 0;padding:6px 10px;border-radius:var(--radius);font-size:var(--fs-xs);background:var(--warning-soft);color:var(--ink);word-break:keep-all}.set-note{margin:6px 0 0;font-size:var(--fs-xs);color:var(--muted);word-break:keep-all}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.set-pending{position:sticky;bottom:16px;z-index:var(--z-sticky);margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;justify-content:space-between;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);font-size:var(--fs-base)}.set-pending>span{min-width:0;overflow-wrap:anywhere;word-break:keep-all}.set-pending-bad{color:var(--tone-danger-text)}.dialog.set-review{width:min(640px,calc(100vw - 32px))}.set-review-tbl td:first-child{width:38%}.set-review-tbl tr[data-skip] td{color:var(--muted)}.set-old{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in oklab,var(--muted) 60%,transparent)}.set-review-tbl .set-err,.set-review-tbl .set-warn{margin:4px 0 0}@media(max-width:720px){.set-row{grid-template-columns:1fr}.set-inputs .input,.set-inputs .select{max-width:none;flex-basis:100%}}.cn-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border-bottom:1px solid var(--border)}.cn-tools .input{flex:1 1 220px;max-width:360px}.cn-tools .select{width:auto}.cn-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all;overflow-wrap:anywhere}.cn-foot{border-top:1px solid var(--border)}.cn-kv{display:grid;gap:10px;margin:0}.cn-kv>div{display:grid;grid-template-columns:minmax(9rem,12rem) minmax(0,1fr);gap:4px 16px;align-items:baseline}.cn-kv dt{font-size:var(--fs-base);color:var(--muted);word-break:keep-all}.cn-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.cn-tags{display:inline-flex;flex-wrap:wrap;gap:4px}.cn-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,12rem) minmax(0,2fr) auto;gap:8px 12px;align-items:start;border-top:1px solid var(--border)}.cn-form>div:last-of-type{padding-top:20px}@media(max-width:720px){.cn-kv>div{grid-template-columns:1fr}.cn-form{grid-template-columns:1fr}.cn-form>div:last-of-type{padding-top:0}}.cn-act{flex-wrap:nowrap;gap:6px}.cn-act .btn{white-space:nowrap;flex:0 0 auto}.callout-lead{margin:2px 0 0;font-weight:600;word-break:keep-all;overflow-wrap:anywhere}.callout-rest{margin:6px 0 0;padding-left:18px;display:grid;gap:3px;word-break:keep-all;overflow-wrap:anywhere}.callout-rest li::marker{color:var(--muted)}@media(max-width:767px){.tbl-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tbl-stack,.tbl-stack tbody,.tbl-stack tr,.tbl-stack td{display:block;width:100%}.tbl-stack tr{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--row-border)}.tbl-stack tr:last-child{border-bottom:0}.tbl-stack td,.tbl-stack td.wrap{padding:0;border:0;min-width:0;max-width:none}.tbl-stack td+td{margin-top:var(--space-2)}.tbl-stack td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:var(--fs-xs);font-weight:600;color:var(--muted)}.tbl-stack td.sticky-end,.tbl-stack tbody tr:hover td.sticky-end{position:static;box-shadow:none;background:transparent}.tbl-stack tr[data-tone=warning]{background:var(--attn-bg)}.tbl-stack tr[data-tone=danger]{background:var(--danger-soft)}.tbl-stack tr[data-tone] td,.tbl-stack tr[data-tone] td.sticky-end,.tbl-stack tbody tr:hover td{background:transparent}.tbl-stack td.sticky-end{margin-top:var(--space-3)}.tbl-stack td.sticky-end:before{display:none}.tbl-stack td.sticky-end .btn-row{flex-wrap:wrap}.tbl-stack td.sticky-end .btn{min-height:44px;flex:1 1 auto}.tbl-stack td.sticky-end .confirm-strip{flex-basis:100%}.tbl-stack .cell-wrap{display:block;-webkit-line-clamp:unset}}.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.clamp-toggle{margin-top:2px;padding:0;border:0;background:none;color:var(--primary-ink);font-size:var(--fs-xs);text-decoration:underline;text-underline-offset:2px;cursor:pointer}@media(pointer:coarse){.btn-sm,.btn-xs,.chip{min-height:44px}}.quiet-ok{display:flex;align-items:center;gap:8px;margin:0 0 var(--space-3);font-size:var(--fs-base);color:var(--muted)}.ok-dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none}.pol-group+.pol-group{margin-top:var(--space-6)}.pol-group-title{margin:var(--space-4) 0 0;font-size:var(--fs-base);font-weight:700;color:var(--ink)}.pol-num{width:160px;max-width:100%;font-variant-numeric:tabular-nums}.pol-terms{width:100%;min-height:72px;resize:vertical;line-height:1.5;font-size:var(--fs-base)}.tbl .mono{white-space:nowrap}.nowrap-list{display:inline-flex;flex-wrap:wrap;gap:0 6px}.nowrap-list>span{white-space:nowrap}.nowrap-list>span:not(:last-child):after{content:","}.dialog{width:min(440px,calc(100vw - 32px));padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:0 18px 48px #00000038,0 2px 6px #00000014;overflow:hidden}.dialog[open]{animation:dlg-in .16s var(--ease)}.dialog::backdrop{background:#080c0f73}.dialog[open]::backdrop{animation:dlg-fade .16s var(--ease)}@keyframes dlg-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}@keyframes dlg-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.dialog[open],.dialog[open]::backdrop{animation:none}}.dialog-inner{margin:0}.dialog-head{display:flex;align-items:flex-start;gap:12px;padding:var(--space-6) var(--space-6) 0}.dialog-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--tone-info-bg);color:var(--tone-info-text);border:1px solid var(--tone-info-border)}.dialog-icon svg{width:18px;height:18px}.dialog-icon[data-tone=danger]{background:var(--tone-danger-bg);color:var(--tone-danger-text);border-color:var(--tone-danger-border)}.dialog-title{margin:7px 0 0;font-size:var(--fs-md);font-weight:700;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere}.dialog-body{padding:var(--space-2) var(--space-6) 0 calc(var(--space-6) + 48px);font-size:var(--fs-base);color:var(--muted);line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}.dialog-body p{margin:0}.dialog-body p+p{margin-top:var(--space-2)}.dialog-field{padding:var(--space-4) var(--space-6) 0 calc(var(--space-6) + 48px)}.dialog-field .input{width:100%}.dialog-field textarea.input{min-height:72px;resize:vertical;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6);padding:var(--space-3) var(--space-6);background:var(--surface-2);border-top:1px solid var(--border)}.dialog-actions .btn{min-width:76px}.dialog.l3-review{width:min(680px,calc(100vw - 32px))}.l3r-lead{margin:6px 0 0;font-size:var(--fs-base);color:var(--muted);line-height:1.6;word-break:keep-all}.l3r-lead b{color:var(--ink)}.l3r-facts{margin:var(--space-4) var(--space-6) 0;display:grid;gap:6px;font-size:var(--fs-base)}.l3r-facts>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--space-3)}.l3r-facts dt{color:var(--muted)}.l3r-facts dd{margin:0;overflow-wrap:anywhere}.l3r-urgent{color:var(--tone-warning-text);font-weight:600}.l3r-actions-wrap{margin:var(--space-4) var(--space-6) 0;border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:40vh}.l3r-actions{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.l3r-actions th{text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--surface-2);padding:8px 12px;border-bottom:1px solid var(--border)}.l3r-actions td{padding:10px 12px;vertical-align:top;border-top:1px solid var(--border)}.l3r-actions tr:first-child td{border-top:0}.l3r-actions td:first-child{width:36%}.l3r-raw{margin-top:4px;font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.l3r-check{display:flex;align-items:center;gap:8px;margin:var(--space-4) var(--space-6) 0;font-size:var(--fs-base);cursor:pointer}.l3r-check input{width:18px;height:18px;accent-color:var(--primary)}.l3-receipt{border:1px solid var(--tone-success-border, var(--border));background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6)}.l3-receipt.fail{border-color:var(--tone-danger-border)}.l3-receipt-head{display:flex;align-items:center;gap:var(--space-3)}.l3-receipt-head h2{flex:1;margin:0;font-size:var(--fs-md)}.l3-receipt p{margin:4px 0 0}.l3-receipt ul{margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:var(--fs-base)}@media(max-width:480px){.l3r-facts,.l3r-actions-wrap,.l3r-check{margin-left:var(--space-4);margin-right:var(--space-4)}.l3r-facts>div{grid-template-columns:1fr;gap:0}.l3r-actions thead{display:none}.l3r-actions tr,.l3r-actions td{display:block;width:auto}.l3r-actions td:first-child{padding-bottom:2px;width:auto}.l3r-actions td+td{border-top:0;padding-top:0}.dialog-head{padding:var(--space-4) var(--space-4) 0}.dialog-body,.dialog-field{padding-left:var(--space-4);padding-right:var(--space-4)}.dialog-actions{flex-direction:column-reverse;padding:var(--space-3) var(--space-4)}.dialog-actions .btn{width:100%;min-height:44px}}.toast{position:fixed;right:24px;bottom:24px;z-index:var(--z-toast);display:flex;align-items:flex-start;gap:10px;max-width:min(420px,calc(100vw - 32px));padding:12px 12px 12px 14px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 32px #00000029;font-size:var(--fs-base);line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;animation:dlg-in .16s var(--ease)}.toast>svg{flex:none;width:18px;height:18px;margin-top:2px}.toast[data-tone=success]{border-color:var(--tone-success-border)}.toast[data-tone=success]>svg{color:var(--success)}.toast[data-tone=danger]{border-color:var(--tone-danger-border)}.toast[data-tone=danger]>svg{color:var(--danger)}.toast[data-tone=info]>svg{color:var(--primary)}.toast-msg{flex:1;min-width:0}.toast-close{flex:none;display:grid;place-items:center;width:28px;height:28px;margin:-4px -4px -4px 0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.toast-close:hover{background:var(--surface-2);color:var(--ink)}.toast-close svg{width:16px;height:16px}@media(max-width:480px){.toast{left:16px;right:16px;bottom:16px;max-width:none}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.au-filters{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);align-items:flex-end;padding:var(--space-4);margin-bottom:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.au-filters>.field{flex:0 1 auto}.au-filters>.field:nth-child(1),.au-filters>.field:nth-child(2){flex:1 1 180px;max-width:240px}.au-filters .chips{flex-wrap:nowrap}.au-filters .chip{white-space:nowrap}.au-label{font-size:var(--fs-xs);color:var(--muted)}.au-reg{min-height:36px}.au-actions{margin-left:auto}@media(max-width:600px){.au-filters>.field:nth-child(1),.au-filters>.field:nth-child(2){max-width:none;flex-basis:100%}.au-filters .chips{flex-wrap:wrap}.au-actions{margin-left:0}}.link-btn{padding:0;border:0;background:none;color:var(--primary-ink);cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.link-btn:hover{color:var(--primary)}.side-sheet{position:fixed;inset:0 0 0 auto;width:min(760px,100vw);max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-left:1px solid var(--border);background:var(--bg);color:var(--ink);box-shadow:-18px 0 48px #0000002e}.side-sheet[open]{animation:sheet-in .2s var(--ease)}.side-sheet::backdrop{background:#080c0f59}@keyframes sheet-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.side-sheet[open]{animation:none}}.side-sheet-inner{display:flex;flex-direction:column;height:100%}.side-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:var(--space-4) var(--space-6);background:var(--surface);border-bottom:1px solid var(--border)}.side-sheet-body{flex:1;overflow:auto;padding:var(--space-6)}.ev-list{list-style:none;margin:0;padding:0}.ev-list li{display:grid;grid-template-columns:7.5em auto minmax(0,1fr);gap:4px 10px;align-items:baseline;padding:8px 16px;border-top:1px solid var(--row-border);font-size:var(--fs-xs)}.ev-list li:first-child{border-top:0}.ev-kv{display:flex;flex-wrap:wrap;gap:2px 12px;overflow-wrap:anywhere}@media(max-width:600px){.side-sheet-body{padding:var(--space-4)}.ev-list li{grid-template-columns:auto 1fr}.ev-kv{grid-column:1 / -1}}@media(max-width:767px){.tbl-stack td.r{text-align:left}}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-wrap{width:100%;max-width:440px}.login-brand{text-align:center;margin-bottom:24px}.login-seal{width:64px;height:64px;display:block;margin:0 auto 14px}.login-brand h1{font-size:26px;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin:0}.login-brand p{font-size:var(--fs-base);color:var(--muted);margin:6px 0 0}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 28px 24px;box-shadow:var(--shadow-sm)}.login-card h2{font-size:var(--fs-lg);font-weight:700;margin:0 0 16px}.login-error,.login-devwarn{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius);font-size:13px;line-height:1.45;margin-bottom:16px}.login-error{background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger)}.login-devwarn{background:var(--warning-soft);border:1px solid var(--warning);color:var(--tone-warning-text)}.login-error svg,.login-devwarn svg{flex-shrink:0;margin-top:1px}.login-oidc{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px;background:var(--primary);color:var(--on-primary);border:0;border-radius:var(--radius);font:inherit;font-size:var(--fs-base);font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease)}.login-oidc:hover{background:var(--primary-hover)}.login-form{display:flex;flex-direction:column;gap:14px;margin-top:12px;padding-top:14px;border-top:1px solid var(--border)}.login-form-first{margin-top:0;padding-top:0;border-top:0}.login-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.login-field textarea.input{width:100%;min-height:88px;resize:vertical}.login-input{position:relative}.login-input svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.login-input input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-base);padding:11px 12px 11px 36px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--ink)}.login-input input:focus{outline:none;background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.login-hint{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:6px;line-height:1.45}.login-center{text-align:center;margin:10px 0 0}.login-submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:2px;border:0;border-radius:var(--radius);background:var(--primary);color:var(--on-primary);font:inherit;font-size:var(--fs-base);font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease)}.login-submit:hover:not(:disabled){background:var(--primary-hover)}.login-submit:disabled,.login-oidc:disabled{opacity:.55;cursor:not-allowed}.login-submit:focus-visible,.login-oidc:focus-visible,.login-manual-toggle:focus-visible,.login-demo-grid button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.login-manual-toggle{display:flex;align-items:center;gap:6px;margin:16px 0 0;padding:4px 0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--muted)}.login-manual-toggle:hover{color:var(--ink)}.login-manual-toggle svg{transition:transform var(--dur) var(--ease)}.login-manual-toggle svg.open{transform:rotate(180deg)}.login-dev{margin-top:12px;padding-top:14px;border-top:1px solid var(--border)}.login-demo-title{font-size:13px;font-weight:600;color:var(--muted);margin:0 0 8px}.login-demo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.login-demo-grid button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;text-align:center;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.login-demo-grid button:hover{border-color:var(--primary);background:var(--primary-soft)}.login-demo-grid button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.login-demo-label{font-size:var(--fs-base);font-weight:600;color:var(--ink)}.login-demo-id{font-size:var(--fs-xs);color:var(--muted)}.login-foot{text-align:center;font-size:var(--fs-xs);color:var(--muted);margin:20px 0 0}@media(max-width:420px){.login-card{padding:22px 18px 20px}.login-demo-grid{grid-template-columns:1fr}}
