:root{--font-sans: "Inter var", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, monospace;--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 19px;--fs-2xl: 24px;--fs-3xl: 30px;--fw-normal: 400;--fw-medium: 500;--fw-semi: 600;--lh-tight: 1.2;--lh-normal: 1.45;--lh-relaxed: 1.6;--tracking-wide: .09em;--tracking-caps: .14em;--sp-1: 4px;--sp-2: 6px;--sp-3: 8px;--sp-4: 12px;--sp-5: 16px;--sp-6: 20px;--sp-7: 24px;--sp-8: 32px;--sp-9: 44px;--r-xs: 4px;--r-sm: 6px;--r-md: 9px;--r-lg: 13px;--r-xl: 18px;--r-full: 999px;--ease: cubic-bezier(.32, .72, .28, 1);--dur-fast: .11s;--dur: .18s;--dur-slow: .32s;--z-canvas: 1;--z-panel: 10;--z-sticky: 20;--z-float: 40;--z-modal: 60;--z-tooltip: 80;--wolf-navy: #0a1220;--wolf-navy-deep: #060a12}:root,[data-theme=dark]{color-scheme:dark;--bg-base: #070b12;--bg-sunken: #04070c;--bg-surface: #0c121b;--bg-raised: #111925;--bg-hover: #16202e;--bg-active: #1b2736;--bg-inset: #090e16;--bg-glass: rgba(14, 21, 32, .78);--bg-scrim: rgba(4, 7, 12, .68);--border-subtle: rgba(148, 176, 214, .08);--border: rgba(148, 176, 214, .14);--border-strong: rgba(148, 176, 214, .24);--border-focus: rgba(93, 165, 232, .65);--text: #e8eef7;--text-secondary: #b3c2d5;--text-muted: #8496ac;--text-dim: #61738a;--text-inverse: #0a0f18;--accent: #4c9ce4;--accent-hover: #62aaeb;--accent-press: #3d8ad0;--accent-soft: rgba(76, 156, 228, .14);--accent-line: rgba(76, 156, 228, .4);--accent-text: #8cc2f2;--ok: #3fae7a;--ok-soft: rgba(63, 174, 122, .14);--warn: #d9a13f;--warn-soft: rgba(217, 161, 63, .15);--danger: #de5f55;--danger-soft: rgba(222, 95, 85, .15);--info: #4c9ce4;--info-soft: rgba(76, 156, 228, .13);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 6px rgba(0, 0, 0, .34), 0 8px 24px rgba(0, 0, 0, .28);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .04);--canvas-bg: #070a10;--canvas-grid: rgba(140, 170, 205, .055);--canvas-grid-major: rgba(140, 170, 205, .11);--canvas-roof: #1b2839;--canvas-roof-edge: #6f9dcb;--canvas-guide: rgba(120, 180, 240, .5);--canvas-dim: #8aa4c0}[data-theme=light]{color-scheme:light;--bg-base: #eceff4;--bg-sunken: #e2e7ee;--bg-surface: #ffffff;--bg-raised: #f7f9fc;--bg-hover: #eff3f8;--bg-active: #e5ecf5;--bg-inset: #f2f5f9;--bg-glass: rgba(255, 255, 255, .82);--bg-scrim: rgba(23, 33, 48, .34);--border-subtle: rgba(20, 40, 70, .07);--border: rgba(20, 40, 70, .13);--border-strong: rgba(20, 40, 70, .22);--border-focus: rgba(26, 111, 181, .6);--text: #101725;--text-secondary: #3b4a5f;--text-muted: #5b6b81;--text-dim: #7e8da2;--text-inverse: #ffffff;--accent: #1a6fb5;--accent-hover: #1a7cc9;--accent-press: #145d99;--accent-soft: rgba(26, 111, 181, .09);--accent-line: rgba(26, 111, 181, .32);--accent-text: #145d99;--ok: #2c8f5f;--ok-soft: rgba(44, 143, 95, .11);--warn: #b07620;--warn-soft: rgba(176, 118, 32, .12);--danger: #c4453b;--danger-soft: rgba(196, 69, 59, .1);--info: #1a6fb5;--info-soft: rgba(26, 111, 181, .09);--shadow-sm: 0 1px 2px rgba(16, 30, 50, .07);--shadow: 0 1px 2px rgba(16, 30, 50, .06), 0 6px 20px rgba(16, 30, 50, .08);--shadow-lg: 0 16px 44px rgba(16, 30, 50, .16), 0 2px 8px rgba(16, 30, 50, .07);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .7);--canvas-bg: #0d1219;--canvas-grid: rgba(150, 180, 215, .06);--canvas-grid-major: rgba(150, 180, 215, .12);--canvas-roof: #22314a;--canvas-roof-edge: #85b0d8;--canvas-guide: rgba(130, 190, 245, .55);--canvas-dim: #93aac4}.tone-neutral{--tone: var(--text-muted);--tone-soft: var(--bg-active)}.tone-info{--tone: var(--info);--tone-soft: var(--info-soft)}.tone-ok{--tone: var(--ok);--tone-soft: var(--ok-soft)}.tone-warn{--tone: var(--warn);--tone-soft: var(--warn-soft)}.tone-danger{--tone: var(--danger);--tone-soft: var(--danger-soft)}[data-theme=planning]{color-scheme:dark;--bg-base: #0b0e12;--bg-sunken: #07090c;--bg-surface: #101419;--bg-raised: #151a21;--bg-hover: #1a2029;--bg-active: #202834;--bg-inset: #0d1116;--bg-glass: rgba(16, 20, 25, .86);--bg-scrim: rgba(4, 6, 9, .66);--border-subtle: rgba(150, 170, 195, .09);--border: rgba(150, 170, 195, .16);--border-strong: rgba(150, 170, 195, .28);--border-focus: rgba(122, 178, 226, .55);--text: #e6ebf1;--text-secondary: #b9c3cf;--text-muted: #8b97a6;--text-dim: #6a7684;--text-inverse: #0b0e12;--accent: #5b93c4;--accent-hover: #6ba3d4;--accent-press: #4a7ea9;--accent-soft: rgba(91, 147, 196, .14);--accent-line: rgba(91, 147, 196, .4);--accent-text: #a9c9e6}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text);background:var(--bg-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-synthesis-weight:none;overscroll-behavior:none}h1,h2,h3,h4{margin:0;font-weight:var(--fw-semi);line-height:var(--lh-tight);letter-spacing:-.012em}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}a{color:var(--accent-text);text-decoration:none}svg{display:block;flex:none}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--r-xs)}::selection{background:var(--accent-soft);color:var(--text)}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.eyebrow{font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-dim)}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.secondary{color:var(--text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;background-clip:padding-box;border-radius:var(--r-full)}*::-webkit-scrollbar-thumb:hover{background:var(--text-dim);background-clip:padding-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}[data-reduce-motion=true] *,[data-reduce-motion=true] *:before,[data-reduce-motion=true] *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:32px;padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid transparent;font-size:var(--fs-base);font-weight:var(--fw-medium);white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.42}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-secondary{background:var(--bg-raised);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-danger{background:transparent;border-color:var(--border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-sm{height:26px;padding:0 var(--sp-3);font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn-lg{height:38px;padding:0 var(--sp-6);font-size:var(--fs-md)}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-md);color:var(--text-muted);border:1px solid transparent;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.icon-btn.is-active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-line)}.icon-btn:disabled{opacity:.35}.icon-btn-sm{width:24px;height:24px;border-radius:var(--r-sm)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-6)}.card-interactive{transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),background var(--dur) var(--ease)}.card-interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:linear-gradient(to bottom,var(--bg-raised),transparent)}.panel-title{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-md);font-weight:var(--fw-medium)}.panel-title svg{color:var(--text-dim)}.panel-body{padding:var(--sp-5)}.collapsible{border-bottom:1px solid var(--border-subtle)}.collapsible:last-child{border-bottom:0}.collapsible-trigger{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-4) var(--sp-5);text-align:left;color:var(--text-secondary);transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.collapsible-trigger:hover{color:var(--text);background:var(--bg-hover)}.collapsible-trigger .chev{transition:transform var(--dur) var(--ease);color:var(--text-dim)}.collapsible.is-open .collapsible-trigger .chev{transform:rotate(90deg)}.collapsible-label{flex:1;font-size:var(--fs-sm);font-weight:var(--fw-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase}.collapsible-content{padding:0 var(--sp-5) var(--sp-5);display:grid;gap:var(--sp-4);animation:fade-slide var(--dur) var(--ease)}@keyframes fade-slide{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);height:20px;padding:0 var(--sp-2);border-radius:var(--r-sm);background:var(--tone-soft, var(--bg-active));color:var(--tone, var(--text-muted));border:1px solid transparent;font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge-outline{background:transparent;border-color:color-mix(in srgb,var(--tone, var(--border)) 40%,transparent)}.badge-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);height:24px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-raised);font-size:var(--fs-sm);color:var(--text-secondary)}.prov{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.03em;color:var(--tone, var(--text-dim));text-transform:uppercase}.prov:before{content:"";width:5px;height:5px;border-radius:1px;background:currentColor;transform:rotate(45deg)}.field{display:grid;gap:var(--sp-2)}.field-label{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted)}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.field-hint{font-size:var(--fs-xs);color:var(--text-dim);line-height:var(--lh-normal)}.input,.select,.textarea{width:100%;height:30px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-inset);color:var(--text);font-size:var(--fs-base);font-variant-numeric:tabular-nums;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.textarea{height:auto;min-height:66px;padding:var(--sp-3);resize:vertical;line-height:var(--lh-normal)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.input[type=number]{text-align:right}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--sp-7);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:right 13px center,right 8px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.input-unit{position:relative}.input-unit .input{padding-right:34px}.input-unit-suffix{position:absolute;right:var(--sp-3);top:50%;transform:translateY(-50%);font-size:var(--fs-xs);color:var(--text-dim);pointer-events:none}.range{width:100%;height:18px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.range::-webkit-slider-runnable-track{height:3px;border-radius:var(--r-full);background:var(--border-strong)}.range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;margin-top:-5px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-surface);box-shadow:var(--shadow-sm)}.range::-moz-range-track{height:3px;border-radius:var(--r-full);background:var(--border-strong)}.range::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-surface)}.switch{display:inline-flex;align-items:center;gap:var(--sp-3);cursor:pointer}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:32px;height:18px;border-radius:var(--r-full);background:var(--border-strong);padding:2px;transition:background var(--dur) var(--ease)}.switch-thumb{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease)}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(14px)}.segmented{display:inline-flex;padding:2px;gap:2px;border-radius:var(--r-md);background:var(--bg-inset);border:1px solid var(--border-subtle)}.segmented button{display:inline-flex;align-items:center;gap:var(--sp-2);height:26px;padding:0 var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.segmented button:hover:not(:disabled){color:var(--text)}.segmented button.is-active{background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-sm)}.segmented.is-block{display:flex}.segmented.is-block button{flex:1;justify-content:center}.tabs{display:flex;gap:1px;padding:0 var(--sp-2);border-bottom:1px solid var(--border-subtle);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.tabs button:after{content:"";position:absolute;left:var(--sp-2);right:var(--sp-2);bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:transparent;transition:background var(--dur) var(--ease)}.tabs button:hover{color:var(--text-secondary)}.tabs button.is-active{color:var(--text)}.tabs button.is-active:after{background:var(--accent)}.tab-count{min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-full);background:var(--bg-active);color:var(--text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semi);display:inline-flex;align-items:center;justify-content:center}.tt{position:relative;display:inline-flex}.tt-bubble{position:absolute;z-index:var(--z-tooltip);min-width:max-content;max-width:250px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--bg-glass);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text);font-size:var(--fs-xs);font-weight:var(--fw-normal);line-height:var(--lh-normal);text-transform:none;letter-spacing:0;pointer-events:none;animation:tt-in var(--dur-fast) var(--ease);white-space:normal}.tt-bubble .tt-title{display:block;font-weight:var(--fw-semi);margin-bottom:2px}.tt-top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tt-bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tt-left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}.tt-right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}@keyframes tt-in{0%{opacity:0}to{opacity:1}}.menu{position:absolute;z-index:var(--z-float);min-width:190px;padding:var(--sp-1);border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:menu-in var(--dur-fast) var(--ease)}@keyframes menu-in{0%{opacity:0;transform:scale(.98) translateY(-2px)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;height:30px;padding:0 var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-base);color:var(--text-secondary);text-align:left;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.menu-item:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.menu-item.is-danger{color:var(--danger)}.menu-item.is-danger:hover{background:var(--danger-soft)}.menu-item .shortcut{margin-left:auto;font-size:var(--fs-2xs);color:var(--text-dim)}.menu-sep{height:1px;margin:var(--sp-1) 0;background:var(--border-subtle)}.menu-label{padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-dim)}.skeleton{border-radius:var(--r-md);background:linear-gradient(100deg,var(--bg-raised) 30%,var(--bg-hover) 48%,var(--bg-raised) 66%);background-size:220% 100%;animation:shimmer 1.5s var(--ease) infinite}@keyframes shimmer{0%{background-position:180% 0}to{background-position:-60% 0}}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{height:4px;border-radius:var(--r-full);background:var(--bg-active);overflow:hidden}.progress-bar{height:100%;border-radius:var(--r-full);background:var(--accent);transition:width var(--dur-slow) var(--ease),background var(--dur) var(--ease)}.notice{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--tone, var(--border)) 34%,transparent);background:var(--tone-soft, var(--bg-raised));font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-secondary)}.notice svg{color:var(--tone, var(--text-muted));margin-top:1px}.notice strong{display:block;color:var(--text);font-weight:var(--fw-medium);margin-bottom:2px}.stat-grid{display:grid;gap:var(--sp-3)}.stat{padding:var(--sp-4);border-radius:var(--r-md);background:var(--bg-inset);border:1px solid var(--border-subtle)}.stat-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.stat-value{margin-top:var(--sp-2);font-size:var(--fs-xl);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;letter-spacing:-.015em}.stat-value small{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-normal);margin-left:3px}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-base)}.kv:last-child{border-bottom:0}.kv dt{color:var(--text-muted);font-size:var(--fs-sm)}.kv dd{margin:0;font-variant-numeric:tabular-nums;font-weight:var(--fw-medium)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--bg-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:var(--sp-6);animation:fade-in var(--dur) var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dialog{width:min(100%,760px);max-height:min(88vh,900px);display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:dialog-in var(--dur) var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-6) var(--sp-7) var(--sp-4)}.dialog-body{flex:1;min-height:0;overflow:auto;padding:0 var(--sp-7) var(--sp-6)}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-7);border-top:1px solid var(--border-subtle);background:var(--bg-raised)}.steps{display:flex;gap:var(--sp-2);flex-wrap:wrap}.step{display:flex;align-items:center;gap:var(--sp-2);height:24px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border-subtle);background:var(--bg-inset);font-size:var(--fs-xs);color:var(--text-dim)}.step.is-current{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-text)}.step.is-done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent);background:var(--ok-soft)}.step-index{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:currentColor;color:var(--bg-surface);font-size:9px;font-weight:var(--fw-semi)}.toast-stack{position:fixed;bottom:var(--sp-6);left:50%;transform:translate(-50%);z-index:var(--z-tooltip);display:grid;gap:var(--sp-2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-full);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);animation:toast-in var(--dur) var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-9) var(--sp-6);text-align:center;color:var(--text-muted)}.empty-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--r-lg);background:var(--bg-inset);border:1px solid var(--border-subtle);color:var(--text-dim)}.table-scroll{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:640px}.data-table th{text-align:left;font-weight:var(--fw-medium);color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-raised);position:sticky;top:0;z-index:1}.data-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);vertical-align:top}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--bg-hover, rgba(127, 127, 127, .06))}.data-table .num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table .dim{color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.data-table{min-width:560px}}.link-button{background:none;border:0;padding:0;color:var(--text-muted);cursor:pointer;font:inherit;text-align:left}.link-button:hover{color:var(--text);text-decoration:underline}.dropzone.is-compact{padding:var(--sp-4);font-size:var(--fs-xs)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4)}.image-grid.is-compact{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--sp-3)}.image-card{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-raised);overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.image-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.image-card-visual{position:relative;aspect-ratio:4 / 3;background:var(--bg-inset);overflow:hidden}.image-card-visual img{width:100%;height:100%;object-fit:cover;display:block}.image-card-badges{position:absolute;inset:auto var(--sp-2) var(--sp-2) var(--sp-2);display:flex;flex-wrap:wrap;gap:4px}.image-card-body{display:grid;gap:var(--sp-2);padding:var(--sp-3);flex:1}.image-card-roles{display:flex;flex-wrap:wrap;gap:4px}.image-card-actions{display:flex;flex-wrap:wrap;gap:2px;padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);background:var(--bg-surface)}.chip{border:1px solid var(--border-subtle);border-radius:var(--r-full);padding:2px var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);background:transparent;cursor:pointer;transition:all var(--dur-fast) var(--ease)}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.icon-btn.is-danger:hover{color:var(--danger);border-color:var(--danger)}.image-editor-stage{display:grid;place-items:center;padding:var(--sp-4);background:var(--bg-inset);border-radius:var(--r-md);min-height:220px;overflow:hidden}.image-editor-stage img{max-width:100%;max-height:320px;display:block;transition:filter var(--dur) var(--ease)}.crop-overlay{position:absolute;border:2px dashed var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}.pdf-page{display:grid;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-raised);cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);transition:border-color var(--dur-fast) var(--ease)}.pdf-page:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.pdf-page:disabled{opacity:.5;cursor:progress}.pdf-page img{width:100%;border-radius:var(--r-sm);background:#fff}.pdf-page span{display:inline-flex;align-items:center;gap:4px;justify-content:center}.shape-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-3)}.shape-card{display:grid;justify-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-raised);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.shape-card:hover{border-color:var(--border-strong);color:var(--text)}.shape-card.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.edition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}.edition-card{display:grid;gap:var(--sp-2);padding:var(--sp-4);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-raised);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.edition-card:hover{border-color:var(--border-strong)}.edition-card.is-active{border-color:var(--accent);background:var(--accent-soft)}.edition-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-base);color:var(--text)}.edition-card-text{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.45}.edition-card-meta{font-size:var(--fs-xs);color:var(--text-dim)}.feature-list{display:grid;gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden}.feature-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--bg-raised);font-size:var(--fs-sm)}.feature-row.is-off{opacity:.55}.feature-row span{display:grid;min-width:0}.feature-row em{font-style:normal;font-size:var(--fs-xs);color:var(--text-muted)}.tile-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--border-strong)}.tile-swatch.is-large{width:42px;height:42px;border-radius:var(--r-sm);flex:none}.dialog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--sp-4)}.variant-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset)}.variant-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-2)}.variant-chip{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-raised);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;min-width:0;transition:all var(--dur-fast) var(--ease)}.variant-chip:hover{border-color:var(--border-strong);color:var(--text)}.variant-chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.tile-preview{border:1px solid var(--border-subtle);border-radius:var(--r-md);background:#101418;overflow:hidden}.tile-preview svg{display:block;width:100%;height:auto;max-height:320px}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}.comparison-item{margin:0;display:grid;gap:var(--sp-2)}.comparison-item figcaption{display:grid;gap:2px;font-size:var(--fs-xs);color:var(--text-muted)}.command-hint{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.command-hint:hover{border-color:var(--border-strong);color:var(--text)}.command-hint kbd,.palette kbd{font-family:var(--font-mono);font-size:var(--fs-2xs);padding:1px 4px;border:1px solid var(--border-subtle);border-radius:var(--r-xs);background:var(--bg-raised)}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--bg-scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;justify-items:center;align-content:start;padding-top:12vh;animation:fade-in var(--dur) var(--ease)}.palette{width:min(620px,92vw);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--shadow-lg);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;max-height:66vh}.palette-input{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);color:var(--text-muted)}.palette-input input{flex:1;border:0;background:transparent;color:var(--text);font-size:var(--fs-md);outline:none}.palette-list{overflow-y:auto;padding:var(--sp-2)}.palette-group{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-dim)}.palette-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--text-secondary);text-align:left;cursor:pointer}.palette-item.is-active{background:var(--accent-soft);color:var(--accent-text)}.palette-label{display:grid;min-width:0}.palette-label strong{font-weight:var(--fw-medium);font-size:var(--fs-base)}.palette-label em{font-style:normal;font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.palette-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border-subtle);color:var(--text-dim);font-size:var(--fs-2xs)}.tracked-input{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-raised)}.tracked-input.is-disabled{opacity:.55}.tracked-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.tracked-label{font-size:var(--fs-sm);color:var(--text-secondary);min-width:0}.tracked-tags{display:inline-flex;align-items:center;gap:2px;flex:none}.tracked-controls{display:flex;align-items:center;gap:var(--sp-3)}.tracked-controls input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.tracked-number{width:106px;flex:none}.tracked-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.unit-switch{display:inline-flex;border:1px solid var(--border-subtle);border-radius:var(--r-sm);overflow:hidden}.unit-switch button{padding:2px var(--sp-2);font-size:var(--fs-2xs);background:transparent;border:0;color:var(--text-muted);cursor:pointer}.unit-switch button.is-active{background:var(--accent-soft);color:var(--accent-text)}.edge-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset)}.edge-colour{width:6px;align-self:stretch;border-radius:3px;flex:none}.conflict-row{display:flex;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--r-md);background:var(--bg-raised);font-size:var(--fs-sm)}.conflict-row.is-blocker{border-left-color:var(--danger, #e05c5c)}.conflict-row.is-warning{border-left-color:var(--warn, #f0b429)}.conflict-row.is-hint{border-left-color:var(--border-strong)}.conflict-row[role=button]{cursor:pointer}.conflict-row[role=button]:hover{border-color:var(--accent)}.conflict-row strong{font-weight:var(--fw-medium);display:block}.conflict-row p{margin:2px 0 0;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.45}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3);align-items:end}.module-card-tools{position:absolute;top:var(--sp-2);right:var(--sp-2);display:flex;gap:4px}.module-card-visual{position:relative}.module-facts{display:grid;gap:2px;margin:0;font-size:var(--fs-xs)}.module-facts>div{display:flex;justify-content:space-between;gap:var(--sp-3);padding:2px 0;border-bottom:1px solid var(--border-subtle)}.module-facts>div:last-child{border-bottom:0}.module-facts dt{color:var(--text-muted)}.module-facts dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.module-completeness{display:grid;gap:3px}.workflow-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.workflow-step{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--bg-raised);border:1px solid transparent}.workflow-step.is-done{background:transparent;border-color:var(--border-subtle)}.workflow-mark{display:grid;place-items:center;width:20px;height:20px;border-radius:var(--r-full);border:1px solid var(--border-strong);color:var(--text-muted);flex:none}.workflow-step.is-done .workflow-mark{border-color:var(--ok, #4a9);color:var(--ok, #4a9)}.workflow-body{display:grid;min-width:0;flex:1}.workflow-body strong{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.workflow-body span{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell{display:grid;grid-template-columns:auto 1fr;height:100%;background:var(--bg-base)}.app-shell.is-focus{grid-template-columns:1fr}.sidebar{width:216px;display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5) var(--sp-4);background:var(--wolf-navy);border-right:1px solid rgba(148,176,214,.09);transition:width var(--dur) var(--ease);overflow:hidden}.sidebar.is-collapsed{width:58px;padding-inline:var(--sp-2)}.brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-2);min-height:34px}.brand-mark{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:linear-gradient(150deg,#2b74b8,#10406f);color:#fff;box-shadow:0 3px 10px #0006,inset 0 1px #ffffff26}.brand-text{min-width:0}.brand-text strong{display:block;font-size:var(--fs-base);font-weight:var(--fw-semi);letter-spacing:var(--tracking-wide);color:#f2f6fb}.brand-text span{display:block;font-size:var(--fs-2xs);letter-spacing:.04em;color:#7f93ac}.sidebar-nav{display:grid;gap:1px}.sidebar-nav a{display:flex;align-items:center;gap:var(--sp-3);height:32px;padding:0 var(--sp-3);border-radius:var(--r-md);color:#92a5bb;font-size:var(--fs-base);font-weight:var(--fw-medium);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.sidebar-nav a:hover{background:#94b0d612;color:#dce6f1}.sidebar-nav a.active{background:#4c9ce429;color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.sidebar-nav a svg{color:currentColor;opacity:.85}.sidebar.is-collapsed .sidebar-nav a{justify-content:center;padding:0}.sidebar-section{padding:0 var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:#5f7188;margin-bottom:var(--sp-2)}.sidebar-foot{margin-top:auto;display:grid;gap:var(--sp-2)}.sidebar-meta{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:#94b0d60f;border:1px solid rgba(148,176,214,.09)}.sidebar-meta strong{display:block;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:#dbe5f0}.sidebar-meta span{display:block;font-size:var(--fs-2xs);color:#7c8fa6}.main{min-width:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.topbar{height:46px;flex:none;display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--bg-glass);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);z-index:var(--z-sticky)}.topbar-title{display:flex;align-items:baseline;gap:var(--sp-3);min-width:0}.topbar-title strong{font-size:var(--fs-md);font-weight:var(--fw-medium)}.topbar-spacer{flex:1}.topbar-tools{display:flex;align-items:center;gap:var(--sp-2)}.save-indicator{display:flex;align-items:center;gap:var(--sp-2);height:24px;padding:0 var(--sp-3);border-radius:var(--r-full);background:var(--bg-inset);border:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-muted)}.dot{width:6px;height:6px;border-radius:50%;background:var(--tone, var(--text-dim));box-shadow:0 0 0 3px color-mix(in srgb,var(--tone, var(--text-dim)) 18%,transparent)}.page{flex:1;min-height:0;overflow:auto}.page-inner{max-width:1400px;margin:0 auto;padding:var(--sp-7);display:grid;gap:var(--sp-6)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}.page-head h1{margin-top:var(--sp-2);font-size:var(--fs-2xl)}.page-head p{margin-top:var(--sp-2);color:var(--text-muted);max-width:62ch}.hero{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid var(--border-subtle);background:linear-gradient(135deg,#0a1524,#102237 52%,#0c1a2b);color:#e8eef7;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:224px;box-shadow:var(--shadow)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 88% 12%,rgba(76,156,228,.22),transparent 62%);pointer-events:none}.hero-copy{position:relative;padding:var(--sp-8);display:grid;align-content:center;gap:var(--sp-4)}.hero-copy h1{font-size:clamp(22px,2.4vw,32px);font-weight:var(--fw-semi);letter-spacing:-.02em;max-width:20ch}.hero-copy p{color:#a9bdd4;max-width:52ch;line-height:var(--lh-relaxed)}.hero-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-2)}.hero-visual{position:relative;display:grid;place-items:center;padding:var(--sp-6);min-height:0}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4)}.metric{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.metric-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:var(--tone-soft, var(--accent-soft));color:var(--tone, var(--accent))}.metric-body{min-width:0}.metric-body span{display:block;font-size:var(--fs-xs);color:var(--text-muted)}.metric-body strong{display:block;margin-top:3px;font-size:var(--fs-xl);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;letter-spacing:-.015em}.dash-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:var(--sp-5);align-items:start}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}.quick-tile{display:grid;gap:var(--sp-2);padding:var(--sp-4);text-align:left;border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-inset);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)}.quick-tile:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translateY(-1px)}.quick-tile svg{color:var(--accent)}.quick-tile strong{font-size:var(--fs-base);font-weight:var(--fw-medium)}.quick-tile span{font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-normal)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:var(--sp-5)}.project-card{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.project-thumb{position:relative;aspect-ratio:16 / 9;background:var(--canvas-bg);overflow:hidden;border-bottom:1px solid var(--border-subtle)}.project-thumb img,.project-thumb svg{width:100%;height:100%;object-fit:cover;display:block}.project-thumb-actions{position:absolute;top:var(--sp-2);right:var(--sp-2);display:flex;gap:var(--sp-1);opacity:0;transition:opacity var(--dur) var(--ease)}.project-card:hover .project-thumb-actions,.project-thumb-actions:focus-within{opacity:1}.project-thumb-actions .icon-btn{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--border);color:var(--text-secondary)}.project-thumb-badge{position:absolute;left:var(--sp-3);bottom:var(--sp-3);display:flex;gap:var(--sp-2)}.project-fav{position:absolute;top:var(--sp-2);left:var(--sp-2);color:var(--warn)}.project-card-body{display:grid;gap:var(--sp-1);padding:var(--sp-4) var(--sp-5) var(--sp-3)}.project-card-body h3{font-size:var(--fs-md);font-weight:var(--fw-medium)}.project-card-body p{font-size:var(--fs-sm);color:var(--text-muted)}.project-card-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border-subtle);margin-top:auto}.project-card-stats div{padding:var(--sp-3) var(--sp-4);border-right:1px solid var(--border-subtle)}.project-card-stats div:last-child{border-right:0}.project-card-stats strong{display:block;font-size:var(--fs-base);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.project-card-stats span{display:block;font-size:var(--fs-2xs);color:var(--text-dim);margin-top:1px}.project-card-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);background:var(--bg-raised)}.project-rows{display:grid}.project-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto auto;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);text-align:left;transition:background var(--dur-fast) var(--ease)}.project-row:hover{background:var(--bg-hover)}.project-avatar{width:30px;height:30px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);font-weight:var(--fw-semi);overflow:hidden}.project-avatar img{width:100%;height:100%;object-fit:cover}.project-row-copy strong{display:block;font-size:var(--fs-base);font-weight:var(--fw-medium)}.project-row-copy span{display:block;font-size:var(--fs-xs);color:var(--text-muted)}.project-row-value{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-5)}.module-card{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--border-subtle);background:var(--bg-surface);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.module-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.module-card.is-active{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line)}.module-card-visual{padding:var(--sp-5);background:radial-gradient(120% 100% at 50% 0%,#131b26,#080b11);display:grid;place-items:center}.module-card-body{display:grid;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5)}.module-card-body h3{font-size:var(--fs-md);font-weight:var(--fw-medium)}.module-card-foot{margin-top:auto;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);background:var(--bg-raised);display:flex;align-items:center;gap:var(--sp-3)}.toolbar-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.search{position:relative;flex:1;min-width:180px;max-width:340px}.search svg{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--text-dim)}.search .input{padding-left:30px}@media(max-width:1180px){.dash-grid,.hero{grid-template-columns:1fr}.hero-visual{display:none}}@media(max-width:1240px){.app-shell.is-planner .sidebar{width:58px;padding-inline:var(--sp-2)}.app-shell.is-planner .brand-text,.app-shell.is-planner .sidebar-meta>div,.app-shell.is-planner .sidebar-nav a span{display:none}.app-shell.is-planner .sidebar-nav a,.app-shell.is-planner .sidebar-meta{justify-content:center;padding:0}.app-shell.is-planner .sidebar-meta{height:32px}.app-shell.is-planner .sidebar .btn-label{display:none}}@media(max-width:820px){.sidebar{width:58px;padding-inline:var(--sp-2)}.sidebar .brand-text,.sidebar .sidebar-section,.sidebar .sidebar-meta span,.sidebar .sidebar-meta strong{display:none}.sidebar-nav a{justify-content:center;padding:0}.sidebar-nav a span{display:none}.page-inner{padding:var(--sp-5)}}.sidebar-edition{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);border-radius:var(--r-md);background:var(--bg-inset);font-size:var(--fs-xs);color:var(--text-muted);min-width:0}.planner{display:grid;grid-template-rows:auto 1fr auto;height:100%;min-height:0;background:var(--bg-base)}.planner-top{display:flex;align-items:center;gap:var(--sp-4);height:46px;padding:0 var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.planner-top .divider{width:1px;height:20px;background:var(--border-subtle)}.planner-identity{display:grid;gap:1px;min-width:0;max-width:300px}.planner-name{border:0;background:transparent;padding:0;height:auto;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text);width:100%}.planner-name:hover{color:var(--accent-text)}.planner-name:focus{outline:none;color:var(--text)}.planner-sub{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-dim)}.planner-body{display:grid;grid-template-columns:52px minmax(0,1fr) var(--right-panel, 316px);min-height:0}.planner.is-fullscreen .planner-body{grid-template-columns:52px minmax(0,1fr)}.planner.is-presentation .planner-body{grid-template-columns:minmax(0,1fr)}.tool-rail{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-2);background:var(--bg-surface);border-right:1px solid var(--border-subtle);overflow-y:auto}.tool-rail .rail-sep{height:1px;margin:var(--sp-2) var(--sp-2);background:var(--border-subtle)}.tool-btn{position:relative;width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-md);color:var(--text-muted);border:1px solid transparent;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.tool-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.tool-btn.is-active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.tool-btn:disabled{opacity:.32}.tool-btn .kbd{position:absolute;right:2px;bottom:1px;font-size:8px;color:var(--text-dim);font-variant-numeric:tabular-nums}.stage{position:relative;min-width:0;min-height:0;display:grid;background:var(--canvas-bg)}.stage.is-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stage-pane{position:relative;min-width:0;min-height:0;overflow:hidden}.stage-pane+.stage-pane{border-left:1px solid var(--border)}.stage-toolbar{position:absolute;top:var(--sp-3);left:var(--sp-3);right:var(--sp-3);z-index:var(--z-panel);display:flex;align-items:center;gap:var(--sp-2);pointer-events:none}.stage-toolbar>*{pointer-events:auto}.stage-toolbar .spacer{flex:1}.floating-group{display:flex;align-items:center;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow)}.floating-label{display:flex;align-items:center;gap:var(--sp-2);height:24px;padding:0 var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.plan-canvas{width:100%;height:100%;display:block;touch-action:none}.plan-canvas.tool-draw{cursor:crosshair}.plan-canvas.tool-select{cursor:default}.plan-canvas.is-panning{cursor:grabbing}.stage-hint{position:absolute;bottom:var(--sp-4);left:50%;transform:translate(-50%);z-index:var(--z-panel);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-full);background:var(--bg-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:var(--shadow);font-size:var(--fs-xs);color:var(--text-secondary);max-width:90%}.kbd-key{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-xs);border:1px solid var(--border);background:var(--bg-inset);font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.viewport-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:var(--sp-4);background:var(--canvas-bg);color:var(--text-muted);font-size:var(--fs-sm)}.viewport-loading-inner{display:grid;justify-items:center;gap:var(--sp-4)}.side-panel{display:grid;grid-template-rows:auto 1fr;min-height:0;min-width:0;overflow:hidden;background:var(--bg-surface);border-left:1px solid var(--border-subtle)}.side-panel>.tabs{min-width:0}.side-panel-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain}.side-section{border-bottom:1px solid var(--border-subtle);padding:var(--sp-5);display:grid;gap:var(--sp-4)}.side-section:last-child{border-bottom:0}.side-title{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-dim)}.status-bar{display:flex;align-items:center;gap:var(--sp-4);height:26px;padding:0 var(--sp-4);border-top:1px solid var(--border-subtle);background:var(--bg-raised);font-size:var(--fs-xs);color:var(--text-muted);overflow-x:auto;scrollbar-width:none}.status-bar::-webkit-scrollbar{display:none}.status-item{display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap;font-variant-numeric:tabular-nums}.status-item strong{font-weight:var(--fw-medium);color:var(--text-secondary)}.status-sep{width:1px;height:12px;background:var(--border-subtle);flex:none}.status-spacer{flex:1}.assist{display:grid;gap:var(--sp-4)}.assist-head{display:flex;align-items:center;gap:var(--sp-3)}.assist-mark{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:linear-gradient(150deg,#4c9ce447,#4c9ce414);border:1px solid var(--accent-line);color:var(--accent-text)}.assist-head strong{display:block;font-size:var(--fs-base);font-weight:var(--fw-medium)}.assist-head span{display:block;font-size:var(--fs-2xs);color:var(--text-dim)}.assist-score{display:grid;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-md);background:var(--bg-inset);border:1px solid var(--border-subtle)}.assist-score-top{display:flex;align-items:baseline;justify-content:space-between}.assist-score-top strong{font-size:var(--fs-2xl);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.assist-next{display:grid;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);border:1px solid var(--accent-line);background:var(--accent-soft)}.assist-next .eyebrow{color:var(--accent-text)}.assist-list{display:grid;gap:var(--sp-2)}.assist-item{display:grid;grid-template-columns:16px minmax(0,1fr);gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-inset);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.assist-item:hover{border-color:var(--border);background:var(--bg-raised)}.assist-item>svg{margin-top:1px;color:var(--tone, var(--text-dim))}.assist-item-title{font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:var(--lh-normal)}.assist-item-detail{margin-top:2px;font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-normal)}.assist-item-foot{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2)}.assist-float{position:absolute;top:54px;right:var(--sp-4);width:300px;max-height:calc(100% - 80px);overflow:auto;z-index:var(--z-float);padding:var(--sp-5);border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:assist-in var(--dur) var(--ease)}@keyframes assist-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.list-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid transparent;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);width:100%;text-align:left}.list-row:hover{background:var(--bg-hover)}.list-row.is-active{background:var(--accent-soft);border-color:var(--accent-line)}.list-row-main{min-width:0;flex:1}.list-row-main strong{display:block;font-size:var(--fs-base);font-weight:var(--fw-normal)}.list-row-main span{display:block;font-size:var(--fs-2xs);color:var(--text-dim)}.swatch{width:18px;height:18px;border-radius:var(--r-xs);border:1px solid var(--border-strong);flex:none}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--sp-2)}.asset-tile{position:relative;aspect-ratio:4 / 3;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-inset)}.asset-tile img{width:100%;height:100%;object-fit:cover}.asset-tile.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-tile-label{position:absolute;inset:auto 0 0 0;padding:3px 5px;font-size:9px;background:linear-gradient(to top,rgba(0,0,0,.75),transparent);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone{display:grid;place-items:center;gap:var(--sp-2);padding:var(--sp-6);border-radius:var(--r-md);border:1px dashed var(--border-strong);background:var(--bg-inset);color:var(--text-muted);font-size:var(--fs-sm);text-align:center;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);cursor:pointer}.dropzone:hover,.dropzone.is-over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.presentation-bar{position:absolute;bottom:var(--sp-5);left:50%;transform:translate(-50%);z-index:var(--z-float);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-full);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.presentation-overlay{position:absolute;top:var(--sp-5);left:50%;transform:translate(-50%);z-index:var(--z-float);display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow-lg);max-width:min(92vw,900px);animation:presentation-in .32s var(--ease-out) both}@keyframes presentation-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.presentation-figures{display:flex;align-items:stretch;gap:var(--sp-4);flex-wrap:wrap}.presentation-figure{display:grid;gap:1px;padding-right:var(--sp-4);border-right:1px solid var(--border)}.presentation-figure:last-child{border-right:none;padding-right:0}.presentation-figure strong{font-size:var(--fs-lg);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;line-height:1.2}.presentation-figure-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.presentation-figure-hint{font-size:var(--fs-2xs);color:var(--text-muted)}@media(max-width:900px){.presentation-overlay{flex-direction:column;align-items:stretch;gap:var(--sp-3)}.presentation-figure{border-right:none;padding-right:0}.presentation-figures{justify-content:space-between;gap:var(--sp-3)}}@media(max-width:1400px){.planner-body{--right-panel: 292px}.planner-identity{max-width:200px}}@media(max-width:1240px){.planner-body{--right-panel: 272px}.planner-top .segmented .seg-label{display:none}.planner-top .segmented button{padding:0 var(--sp-2)}.planner-identity{max-width:150px}.planner-top .badge{max-width:92px;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:20px}}@media(max-width:1080px){.planner-top{gap:var(--sp-2);padding:0 var(--sp-3)}.planner-top .divider,.planner-top .badge,.planner-sub{display:none}}@media(max-width:1000px){.planner-body{grid-template-columns:46px minmax(0,1fr)}.side-panel{position:absolute;top:46px;right:0;bottom:26px;width:min(340px,88vw);z-index:var(--z-float);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform var(--dur) var(--ease)}.side-panel.is-open{transform:none}.stage.is-split{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.stage.is-split .stage-pane+.stage-pane{border-left:0;border-top:1px solid var(--border)}}.rail-level{display:grid;gap:3px;padding:3px;border-radius:var(--r-md);background:var(--bg-inset)}.rail-level-btn{width:26px;height:22px;display:grid;place-items:center;border:0;border-radius:var(--r-xs);background:none;color:var(--text-dim);font:inherit;font-size:var(--fs-2xs);font-weight:var(--fw-semi);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.rail-level-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.rail-level-btn.is-active{background:var(--accent);color:var(--text-inverse)}.map-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0d131c;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.map-view:active{cursor:grabbing}.map-tiles{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.map-tiles img{pointer-events:none;image-rendering:auto}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-6);color:var(--text-muted);font-size:var(--fs-sm)}.map-empty strong{color:var(--text);font-weight:var(--fw-medium)}.map-scale{position:absolute;left:var(--sp-4);bottom:var(--sp-6);display:flex;align-items:center;gap:var(--sp-2);padding:3px var(--sp-2);border-radius:var(--r-sm);background:#0a0f16b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#dbe6f2;font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;pointer-events:none}.map-scale-bar{height:4px;border:1px solid rgba(226,236,246,.85);border-top:0}.map-attribution{position:absolute;right:0;bottom:0;max-width:70%;padding:2px var(--sp-2);background:#0a0f16b8;color:#c8d6e6;font-size:9px;border-top-left-radius:var(--r-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-fullscreen{position:fixed!important;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--bg-base)}.map-compass{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--bg-glass);border:1px solid var(--border);color:var(--text-secondary);transition:transform var(--dur) var(--ease)}.address-search{position:relative}.address-results{position:absolute;z-index:var(--z-float);top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow:auto;padding:var(--sp-1);border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.address-result{display:grid;gap:2px;width:100%;padding:var(--sp-3);border-radius:var(--r-md);text-align:left;transition:background var(--dur-fast) var(--ease)}.address-result:hover,.address-result.is-active{background:var(--bg-hover)}.address-result strong{font-size:var(--fs-base);font-weight:var(--fw-medium)}.address-result span{font-size:var(--fs-xs);color:var(--text-muted)}.address-result-meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:2px}.assistant{display:flex;flex-direction:column;gap:var(--sp-6);padding-bottom:var(--sp-8)}.assistant-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap}.assistant-head-main h1{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-2xl);font-weight:var(--fw-semi);letter-spacing:-.015em}.assistant-head-main p{margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.assistant-head-actions{display:flex;gap:var(--sp-2);align-items:center}.assistant-resume{max-width:640px;margin:var(--sp-8) auto}.assistant-rail{display:flex;align-items:stretch;gap:0;margin:0;padding:0;list-style:none;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface);overflow:hidden}.assistant-rail-step{flex:1 1 0;min-width:0;position:relative}.assistant-rail-step+.assistant-rail-step:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:1px;background:var(--border-subtle)}.assistant-rail-step button{width:100%;height:100%;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-3);background:none;border:0;color:var(--text-muted);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.assistant-rail-step button:disabled{cursor:default;opacity:.55}.assistant-rail-step button:not(:disabled):hover{background:var(--bg-hover);color:var(--text-secondary)}.assistant-rail-mark{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:var(--r-full);border:1px solid var(--border);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.assistant-rail-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assistant-rail-step.is-active button{color:var(--text);background:var(--accent-soft)}.assistant-rail-step.is-active .assistant-rail-mark{border-color:var(--accent-line);background:var(--accent);color:var(--text-inverse);font-weight:var(--fw-semi)}.assistant-rail-step.is-done .assistant-rail-mark{border-color:var(--ok);color:var(--ok)}.assistant-body{min-height:380px}.assistant-section{display:flex;flex-direction:column;gap:var(--sp-6);animation:assistant-in var(--dur-slow) var(--ease)}@keyframes assistant-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.assistant-section{animation:none}}.assistant-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}.assistant-section-head strong{font-size:var(--fs-md)}.assistant-section-head p{margin:var(--sp-1) 0 0;max-width:62ch;color:var(--text-muted);font-size:var(--fs-sm)}.assistant-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-5)}.assistant-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-6);text-align:left;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}.assistant-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow)}.assistant-card.is-active{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 60%),var(--bg-surface);box-shadow:var(--shadow)}.assistant-card-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-text)}.assistant-card strong{font-size:var(--fs-lg);font-weight:var(--fw-semi)}.assistant-card p{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-normal)}.assistant-card ul{margin:var(--sp-2) 0 0;padding:0;list-style:none;display:grid;gap:var(--sp-2)}.assistant-card li{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary);font-size:var(--fs-xs)}.assistant-card li svg{color:var(--ok);flex:none}.assistant-card-flag{position:absolute;top:var(--sp-4);right:var(--sp-4);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);background:var(--accent);color:var(--text-inverse);font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase}.assistant-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-5)}.assistant-search{max-width:720px}.assistant-result{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--ok);border-radius:var(--r-lg);background:var(--ok-soft)}.assistant-result-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--bg-surface);color:var(--ok)}.assistant-result div{display:grid;gap:2px;flex:1;min-width:0}.assistant-result span{color:var(--text-muted);font-size:var(--fs-xs)}.assistant-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-4)}.assistant-source{padding:var(--sp-5);border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--r-md);background:var(--bg-surface)}.assistant-source.is-ok{border-left-color:var(--ok)}.assistant-source.is-warn{border-left-color:var(--warn)}.assistant-source.is-danger{border-left-color:var(--danger)}.assistant-source.is-neutral{border-left-color:var(--border-strong)}.assistant-source-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.assistant-source p{margin:0;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-source-provider{display:inline-block;margin-top:var(--sp-2);color:var(--text-dim);font-size:var(--fs-2xs);font-family:var(--font-mono)}.assistant-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--sp-4)}.assistant-image{margin:0;border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-surface);overflow:hidden}.assistant-image img{display:block;width:100%;height:116px;object-fit:cover;background:var(--bg-inset)}.assistant-image-fallback{display:grid;place-items:center;height:116px;background:var(--bg-inset);color:var(--text-dim)}.assistant-image figcaption{display:grid;gap:var(--sp-2);padding:var(--sp-3)}.assistant-image figcaption strong{font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assistant-image figcaption span{color:var(--text-dim);font-size:var(--fs-2xs)}.assistant-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-5);align-items:stretch}@media(max-width:1100px){.assistant-split{grid-template-columns:1fr}}.assistant-map,.assistant-pane{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface);overflow:hidden;min-height:380px}.assistant-map-frame{position:relative;flex:1;min-height:340px}.assistant-map-note{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);color:var(--text-dim);font-size:var(--fs-2xs)}.assistant-pane-head,.assistant-pane-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.assistant-pane-head{border-bottom:1px solid var(--border-subtle)}.assistant-pane-foot{border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:var(--fs-2xs)}.assistant-canvas{flex:1;min-height:320px;position:relative;background:var(--bg-inset)}.assistant-canvas svg{width:100%;height:100%;display:block}.assistant-canvas.is-3d>*{position:absolute;top:0;right:0;bottom:0;left:0}.assistant-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);height:100%;color:var(--text-muted);font-size:var(--fs-sm)}.assistant-outline{fill:#4c9ce429;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}.assistant-handle{fill:var(--bg-surface);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;cursor:grab}.assistant-handle:hover{fill:var(--accent)}.assistant-progress{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface);overflow:hidden}.assistant-progress-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4);border-bottom:1px solid var(--border-subtle)}.assistant-steps{flex:1;margin:0;padding:var(--sp-3);list-style:none;display:grid;gap:2px;align-content:start;overflow-y:auto;max-height:420px}.assistant-step{display:flex;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);transition:background var(--dur) var(--ease)}.assistant-step>div{display:grid;gap:2px;min-width:0}.assistant-step strong{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.assistant-step span{color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-step-mark{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:var(--r-full);border:1px solid var(--border);color:var(--text-dim)}.assistant-step-dot{width:5px;height:5px;border-radius:var(--r-full);background:var(--text-dim)}.assistant-step.is-active{background:var(--accent-soft)}.assistant-step.is-active strong{color:var(--text)}.assistant-step.is-active .assistant-step-mark{border-color:var(--accent-line);color:var(--accent-text)}.assistant-step.is-done strong{color:var(--text)}.assistant-step.is-done .assistant-step-mark{border-color:var(--ok);color:var(--ok)}.assistant-step.is-skipped .assistant-step-mark{border-color:var(--warn);color:var(--warn)}.assistant-step.is-failed .assistant-step-mark{border-color:var(--danger);color:var(--danger)}.assistant-progress-foot{display:flex;gap:var(--sp-3);padding:var(--sp-4);border-top:1px solid var(--border-subtle)}.spin{animation:assistant-spin .9s linear infinite}@keyframes assistant-spin{to{transform:rotate(360deg)}}.assistant-decisions{display:grid;gap:var(--sp-3)}.assistant-decision{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-surface);flex-wrap:wrap}.assistant-decision.is-accepted{border-color:var(--ok);background:linear-gradient(90deg,var(--ok-soft),transparent 40%),var(--bg-surface)}.assistant-decision.is-rejected{opacity:.72}.assistant-decision-main{display:grid;gap:var(--sp-2);min-width:260px;flex:1}.assistant-decision-main strong{font-size:var(--fs-sm)}.assistant-decision-main span{color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-decision-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.assistant-shape-options{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-1)}.assistant-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-raised);color:var(--text-secondary);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.assistant-chip span{color:var(--text-dim);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.assistant-chip:hover,.assistant-chip.is-active{border-color:var(--accent-line);color:var(--text)}.assistant-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4)}.assistant-module{position:relative;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.assistant-module:hover{border-color:var(--border-strong);transform:translateY(-1px)}.assistant-module.is-active{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 70%),var(--bg-surface)}.assistant-module-body{display:grid;gap:3px;min-width:0}.assistant-module-body strong{font-size:var(--fs-sm)}.assistant-module-body span{color:var(--text-muted);font-size:var(--fs-xs)}.assistant-module-meta{color:var(--text-dim)!important;font-size:var(--fs-2xs)!important}.assistant-module-flag{position:absolute;top:var(--sp-3);right:var(--sp-3);display:inline-flex;align-items:center;gap:3px;color:var(--ok);font-size:var(--fs-2xs);font-weight:var(--fw-semi)}.assistant-strategies{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--sp-4)}.assistant-strategy{position:relative;display:grid;gap:var(--sp-2);padding:var(--sp-5);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.assistant-strategy:hover{border-color:var(--border-strong);transform:translateY(-1px)}.assistant-strategy.is-active{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 70%),var(--bg-surface)}.assistant-strategy-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}.assistant-strategy strong{font-size:var(--fs-sm)}.assistant-strategy p{margin:0;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-4)}.assistant-variant{position:relative;display:grid;gap:var(--sp-4);padding:var(--sp-5);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.assistant-variant:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow)}.assistant-variant.is-active{border-color:var(--accent-line);box-shadow:var(--shadow)}.assistant-variant-head{display:flex;gap:var(--sp-4);align-items:flex-start}.assistant-variant-letter{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-md);font-weight:var(--fw-semi)}.assistant-variant-head strong{font-size:var(--fs-md)}.assistant-variant-head p{margin:2px 0 0;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-variant-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-3)}.assistant-variant-note{color:var(--text-dim);font-size:var(--fs-2xs)}.assistant-finish{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.assistant-foot{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);z-index:var(--z-sticky)}.assistant-foot-hint{color:var(--text-muted);font-size:var(--fs-xs)}@media(max-width:720px){.assistant-rail{overflow-x:auto}.assistant-rail-step{min-width:132px}}.twin-list{display:grid;gap:2px}.twin-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);border-left:2px solid transparent;background:var(--bg-inset)}.twin-row.is-set{border-left-color:var(--ok)}.twin-row.is-partial{border-left-color:var(--warn)}.twin-row.is-empty{border-left-color:var(--border-strong)}.twin-icon{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--bg-raised);color:var(--text-muted)}.twin-body{display:grid;gap:1px;min-width:0;flex:1}.twin-body strong{font-size:var(--fs-xs);font-weight:var(--fw-medium)}.twin-body span{color:var(--text-dim);font-size:var(--fs-2xs);line-height:var(--lh-normal)}.twin-value{flex:none;color:var(--text-secondary);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;text-align:right;max-width:42%}.cockpit{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-6);border:1px solid var(--border-subtle);border-radius:var(--r-xl);background:radial-gradient(120% 140% at 0% 0%,var(--accent-soft),transparent 55%),var(--bg-surface);box-shadow:var(--shadow-sm);animation:assistant-in var(--dur-slow) var(--ease)}.cockpit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap}.cockpit-title h2{margin:var(--sp-1) 0 var(--sp-2);font-size:var(--fs-xl);font-weight:var(--fw-semi);letter-spacing:-.01em}.cockpit-title p{display:flex;align-items:center;gap:var(--sp-2);margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.cockpit-head-meta{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.cockpit-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.9fr);gap:var(--sp-5);align-items:start}@media(max-width:1080px){.cockpit-grid{grid-template-columns:1fr}}.cockpit-main,.cockpit-side{display:grid;gap:var(--sp-4);min-width:0}.cockpit-next{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--accent-line);border-radius:var(--r-lg);background:linear-gradient(120deg,var(--accent-soft),transparent 70%),var(--bg-raised);flex-wrap:wrap}.cockpit-next.is-gap{border-color:var(--warn);background:linear-gradient(120deg,var(--warn-soft),transparent 70%),var(--bg-raised)}.cockpit-next>div{flex:1;min-width:220px;display:grid;gap:3px}.cockpit-next-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:var(--bg-surface);color:var(--accent-text)}.cockpit-next-label{color:var(--text-dim);font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase}.cockpit-next strong{font-size:var(--fs-md)}.cockpit-next p{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-normal)}.cockpit-gain{justify-self:start;padding:2px 8px;border-radius:var(--r-full);background:var(--ok-soft);color:var(--ok);font-size:var(--fs-2xs);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;white-space:nowrap}.cockpit-block{padding:var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-raised)}.cockpit-block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);color:var(--text-secondary);font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase}.cockpit-block-head strong{font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:var(--tracking-caps)}.cockpit-advice{display:grid;gap:var(--sp-2)}.cockpit-advice-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset);transition:background var(--dur) var(--ease);flex-wrap:wrap}.cockpit-advice-row:hover{background:var(--bg-hover)}.cockpit-advice-row>div:first-child{display:grid;gap:2px;min-width:220px;flex:1}.cockpit-advice-row strong{font-size:var(--fs-sm)}.cockpit-advice-row span{color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.cockpit-advice-meta{display:flex;align-items:center;gap:var(--sp-3)}.cockpit-timeline{display:grid;gap:2px;margin:0;padding:0;list-style:none}.cockpit-milestone{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);position:relative}.cockpit-milestone>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex:1;min-width:0}.cockpit-milestone strong{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted)}.cockpit-milestone span{color:var(--text-dim);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;text-align:right}.cockpit-milestone.is-done strong{color:var(--text)}.cockpit-milestone-mark{flex:none;width:18px;height:18px;display:grid;place-items:center;border-radius:var(--r-full);border:1px solid var(--border);color:var(--text-dim)}.cockpit-milestone.is-done .cockpit-milestone-mark{border-color:var(--ok);color:var(--ok)}.cockpit-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.cockpit-fact{display:grid;gap:2px}.cockpit-fact span{color:var(--text-dim);font-size:var(--fs-2xs)}.cockpit-fact strong{font-size:var(--fs-md);font-variant-numeric:tabular-nums}.cockpit-gaps,.cockpit-activity{display:grid;gap:var(--sp-3);margin:0;padding:0;list-style:none}.cockpit-gaps li,.cockpit-activity li{display:grid;gap:2px;padding-left:var(--sp-3);border-left:2px solid var(--border-strong)}.cockpit-gaps li{border-left-color:var(--warn)}.cockpit-gaps strong,.cockpit-activity strong{font-size:var(--fs-xs)}.cockpit-gaps span,.cockpit-activity span{color:var(--text-dim);font-size:var(--fs-2xs);line-height:var(--lh-normal)}.cockpit-recent{display:grid;gap:var(--sp-4);margin-bottom:var(--sp-3)}.cockpit-recent>div{display:grid;gap:3px}.cockpit-recent-label{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-dim);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.cockpit-recent-item{color:var(--text-secondary);font-size:var(--fs-xs)}.cockpit-recent-item.is-empty{color:var(--text-dim);font-style:italic}.assistant-image.is-open{border-color:var(--warn)}.assistant-image figcaption .field-label{margin-top:var(--sp-2);color:var(--text-muted);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.assistant-image-ok{display:flex;align-items:center;gap:4px;color:var(--ok)!important;font-size:var(--fs-2xs)!important;line-height:var(--lh-normal)}.assistant-source.is-open{border-left-style:dashed}.cockpit-repair{display:grid;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--warn);border-radius:var(--r-lg);background:linear-gradient(120deg,var(--warn-soft),transparent 70%),var(--bg-raised)}.cockpit-repair.is-blocking{border-color:var(--danger);background:linear-gradient(120deg,var(--danger-soft),transparent 70%),var(--bg-raised)}.cockpit-repair-head{display:flex;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap}.cockpit-repair-head>span{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--bg-surface);color:var(--warn)}.cockpit-repair.is-blocking .cockpit-repair-head>span{color:var(--danger)}.cockpit-repair-head>div{flex:1;min-width:240px}.cockpit-repair-head p{margin:3px 0 0;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.picker{display:grid;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-raised)}.picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.picker-head p{margin:3px 0 0;color:var(--text-muted);font-size:var(--fs-xs);max-width:60ch}.picker-list{display:grid;gap:2px;max-height:260px;overflow-y:auto}.picker-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid transparent;border-radius:var(--r-sm);background:var(--bg-inset);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.picker-row:hover{background:var(--bg-hover)}.picker-row.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.picker-icon{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--bg-surface);color:var(--text-muted)}.picker-body{display:grid;gap:2px;flex:1;min-width:0}.picker-body strong{font-size:var(--fs-sm)}.picker-body span{color:var(--text-muted);font-size:var(--fs-2xs)}.picker-flag{color:var(--accent-text)}.picker-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.picker-foot>span{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim);font-size:var(--fs-2xs)}.assistant-manual{display:grid;gap:var(--sp-4);padding:var(--sp-5);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--bg-inset)}.assistant-manual-head p{margin:3px 0 0;max-width:66ch;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.assistant-manual-fields{display:flex;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap}.assistant-manual-fields .field{min-width:130px}.ext-sources{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.ext-source{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-sm);background:var(--bg-inset);color:var(--text-muted);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.ext-source.is-active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}.ext-source span{display:grid;min-width:0}.ext-source strong{font-size:var(--fs-xs)}.ext-source em{color:var(--text-dim);font-size:var(--fs-2xs);font-style:normal}.ext-list{display:grid;gap:2px;max-height:220px;overflow-y:auto}.ext-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid transparent;border-radius:var(--r-sm);background:var(--bg-inset);color:var(--text);font:inherit;text-align:left;cursor:pointer}.ext-row:hover{background:var(--bg-hover)}.ext-row.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.ext-row>div{display:grid;gap:1px;flex:1;min-width:0}.ext-row strong{font-size:var(--fs-xs)}.ext-row span{color:var(--text-dim);font-size:var(--fs-2xs)}.ext-actions{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}.ext-action{display:grid;gap:1px;padding-left:var(--sp-3);border-left:2px solid var(--accent-line)}.ext-action strong{font-size:var(--fs-xs)}.ext-action em{color:var(--text-dim);font-size:var(--fs-2xs);font-style:normal}.ext-box,.ext-reference,.ext-local{display:grid;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset)}.ext-box-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.ext-selection{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--text-muted)}.ext-selection-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ext-origins{display:grid;gap:var(--sp-2)}.ext-origin{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-dim)}.ext-origin strong{font-size:var(--fs-xs);color:var(--text)}.ext-open{margin:var(--sp-2) 0 0;padding-left:var(--sp-5);display:grid;gap:2px;font-size:var(--fs-2xs)}.ext-fallback{display:inline-flex;align-items:center;gap:var(--sp-2)}.data-table tr.is-warn td{color:var(--warn)}.raster-list{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}.raster-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-sm);background:var(--bg-inset);flex-wrap:wrap}.raster-main{display:grid;gap:1px;flex:1;min-width:200px}.raster-main strong{font-size:var(--fs-sm)}.raster-main span{color:var(--text-muted);font-size:var(--fs-2xs)}.raster-attribution{color:var(--text-dim)!important;font-style:italic}.raster-form{display:grid;gap:var(--sp-4);padding:var(--sp-5);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--bg-inset)}.raster-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}.raster-layers{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}.raster-layer{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-sm);background:var(--bg-surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.raster-layer:hover{border-color:var(--accent-line)}.raster-layer.is-imagery{border-left:2px solid var(--ok)}.raster-layer strong{font-size:var(--fs-xs);flex:1}.raster-layer span{color:var(--text-dim);font-size:var(--fs-2xs);font-family:var(--font-mono)}.field-error{color:var(--danger);font-size:var(--fs-2xs)}.tileset{display:grid;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-inset)}.tileset-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.tileset-head>div:first-child{display:grid;gap:2px}.tileset-head strong{font-size:var(--fs-sm)}.tileset-head span{color:var(--text-muted);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.tileset-head-actions{display:flex;gap:var(--sp-2)}.tileset-progress{display:grid;gap:var(--sp-2)}.tileset-progress span{color:var(--text-muted);font-size:var(--fs-2xs)}.tileset-stage{position:relative;height:340px;border-radius:var(--r-md);overflow:hidden;background:var(--bg-sunken)}.tileset-stage>*{position:absolute;top:0;right:0;bottom:0;left:0}.tileset-tooltip{position:absolute;left:var(--sp-3);bottom:var(--sp-3);right:auto;top:auto;display:grid;gap:2px;padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);pointer-events:none;max-width:80%}.tileset-tooltip strong{font-size:var(--fs-xs)}.tileset-tooltip span{color:var(--text-muted);font-size:var(--fs-2xs)}.tileset-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.tileset-display{display:flex;gap:var(--sp-2);flex-wrap:wrap}.tileset-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-raised);color:var(--text-muted);font:inherit;font-size:var(--fs-2xs);cursor:pointer}.tileset-chip.is-active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}.tileset-box summary{cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-3)}.tileset-selection,.tileset-planes{display:grid;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-surface)}.tileset-selection-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.tileset-list{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}.tileset-list li{display:grid;gap:1px;padding-left:var(--sp-3);border-left:2px solid var(--accent-line)}.tileset-list strong{font-size:var(--fs-xs)}.tileset-list span{color:var(--text-dim);font-size:var(--fs-2xs)}.tileset-stage.is-large{height:560px}.quality-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset);margin-bottom:var(--sp-2)}.quality-score{display:flex;align-items:baseline;gap:var(--sp-2)}.quality-score strong{font-size:var(--fs-xl);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.quality-score span{font-size:var(--fs-2xs);color:var(--text-muted)}.quality-area-score{font-variant-numeric:tabular-nums}.quality-list{margin:0;padding-left:var(--sp-4);display:grid;gap:3px;font-size:var(--fs-2xs);color:var(--text-muted)}.quality-list li{line-height:1.45}.assign-list{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-3)}.assign-row{border:1px solid var(--border);border-left-width:2px;border-radius:var(--r-sm);background:var(--bg-inset);overflow:hidden}.assign-row.is-confirmed{border-left-color:var(--ok)}.assign-row.is-open{border-left-color:var(--warn)}.assign-row.is-documentation{border-left-color:var(--border-strong)}.assign-head{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3);background:none;border:none;color:inherit;text-align:left;cursor:pointer}.assign-head:hover{background:var(--bg-raised)}.assign-thumb{flex:none;width:42px;height:32px;object-fit:cover;border-radius:var(--r-xs);background:var(--bg-raised)}.assign-thumb.is-placeholder{display:grid;place-items:center;color:var(--text-muted)}.assign-info{display:grid;gap:1px;min-width:0;flex:1}.assign-info strong{font-size:var(--fs-xs);font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-info span{font-size:var(--fs-2xs);color:var(--text-muted)}.assign-body{display:grid;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-3);border-top:1px solid var(--border);padding-top:var(--sp-3)}.assign-field{display:grid;gap:3px}.assign-field>span{font-size:var(--fs-2xs);color:var(--text-muted)}.assign-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.assign-summary{display:grid;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset)}.fusion-basis{display:grid;gap:4px;padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset);margin-bottom:var(--sp-2)}.fusion-list{display:grid;gap:2px;margin:var(--sp-2) 0}.fusion-row{display:grid;gap:2px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset)}.fusion-main{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.fusion-main strong{font-size:var(--fs-xs);font-weight:var(--fw-medium)}.fusion-value{font-variant-numeric:tabular-nums;font-size:var(--fs-xs)}.fusion-source,.fusion-alt{font-size:var(--fs-2xs);color:var(--text-muted);line-height:1.4}.fusion-conflicts{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}.fusion-conflict{display:grid;gap:3px;padding:var(--sp-3);border:1px solid var(--warn);border-radius:var(--r-sm);background:var(--bg-inset)}.fusion-conflict strong{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs)}.fusion-conflict>span{font-size:var(--fs-2xs);line-height:1.45}.fusion-conflict-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:4px}.workbench-block{display:grid;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset);margin-bottom:var(--sp-3)}.workbench-block>strong{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium)}.ocr-list,.vector-list,.deviation-list,.planset-list,.planset-issues{display:grid;gap:2px}.ocr-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--sp-2);padding:4px var(--sp-2);border-radius:var(--r-xs);border-left:2px solid var(--border-strong);background:var(--bg-raised)}.ocr-row.is-confirmed{border-left-color:var(--ok)}.ocr-meta{font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.vector-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-xs);border-left:2px solid var(--warn);background:var(--bg-raised)}.vector-row.is-confirmed{border-left-color:var(--ok)}.vector-main{display:grid;gap:1px;min-width:0}.vector-main strong{font-size:var(--fs-xs)}.vector-main span,.vector-reason{font-size:var(--fs-2xs);color:var(--text-muted);line-height:1.4}.vector-actions{display:flex;flex-direction:column;gap:3px;flex:none}.facade-objects{container-type:inline-size}.facade-stage{height:280px;margin-bottom:var(--sp-2)}.facade-preview{margin:var(--sp-2) 0}.facade-svg{width:100%;height:130px;background:var(--bg-inset);border-radius:var(--r-sm)}.official-geo{container-type:inline-size}.geo-stage{height:320px;margin-bottom:var(--sp-2)}.segment-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:3px var(--sp-2);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;border-left:2px solid var(--border-strong);background:var(--bg-raised);border-radius:var(--r-xs);margin:2px 0}.building-parts{container-type:inline-size}.parts-stages{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-2)}.parts-stage{height:300px}.part-row{display:grid;gap:4px;padding:var(--sp-2);border-radius:var(--r-sm);border-left:2px solid var(--border-strong);background:var(--bg-inset);margin-bottom:3px}.part-row.is-active{border-left-color:var(--accent)}.part-row.is-ready{border-left-color:var(--ok)}.part-head{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:4px}.part-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.part-actions,.part-measure{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.part-measure .assign-field{flex:1 1 110px;min-width:0}.legacy-list{margin:4px 0;padding-left:var(--sp-3);font-size:var(--fs-2xs);line-height:1.5}.advice-list{display:grid;gap:3px;margin:4px 0 0;padding:0;list-style:none}.advice-row{padding:4px var(--sp-2);border-radius:var(--r-xs);border-left:2px solid var(--border-strong);background:var(--bg-raised);font-size:var(--fs-2xs);line-height:1.5}.advice-row.is-warn{border-left-color:var(--warn)}.advice-row.is-ok{border-left-color:var(--ok)}.advice-row.is-info{border-left-color:var(--accent)}.linklike{border:none;background:none;padding:0;color:var(--accent);font-size:inherit;cursor:pointer;text-decoration:underline}.tab-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:4px;vertical-align:middle}.tab-dot.is-done{background:var(--ok)}.tab-dot.is-open{background:var(--warn)}.layer-transform{font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.stage-readout{position:absolute;left:var(--sp-2);bottom:var(--sp-2);display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:4px var(--sp-2);border-radius:var(--r-xs);background:color-mix(in srgb,var(--bg-inset) 88%,transparent);border:1px solid var(--border-strong);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;pointer-events:none;max-width:calc(100% - var(--sp-4))}.vector-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0}.vector-tools .assign-field{flex:1 1 120px;min-width:0}.vector-meta{font-size:var(--fs-2xs);color:var(--text-muted);margin-left:auto;font-variant-numeric:tabular-nums}.vector-stage{height:260px;margin-bottom:var(--sp-2)}.planset-row{display:grid;gap:4px;padding:var(--sp-2);border-radius:var(--r-sm);border-left:2px solid var(--border-strong);background:var(--bg-inset)}.planset-row.is-active{border-left-color:var(--accent)}.planset-head{display:grid;gap:1px;text-align:left;background:none;border:none;color:inherit;cursor:pointer;padding:0}.planset-head strong{font-size:var(--fs-xs);font-weight:var(--fw-medium)}.planset-head span{font-size:var(--fs-2xs);color:var(--text-muted)}.planset-issue{display:grid;gap:2px;padding:var(--sp-2);border-radius:var(--r-xs);background:var(--bg-inset);border-left:2px solid var(--warn)}.planset-issue.is-blocker{border-left-color:var(--danger)}.planset-issue.is-hint{border-left-color:var(--border-strong)}.planset-issue strong{display:flex;align-items:center;gap:5px;font-size:var(--fs-2xs)}.planset-issue span{font-size:var(--fs-2xs);color:var(--text-muted)}.reference-row{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));align-items:center;gap:4px}.reference-row>span{font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap}.deviation-row{display:grid;gap:2px;padding:var(--sp-2);border-radius:var(--r-xs);background:var(--bg-raised);border-left:2px solid var(--border-strong)}.deviation-row.is-hoch{border-left-color:var(--danger)}.deviation-row.is-mittel{border-left-color:var(--warn)}.deviation-row strong{font-size:var(--fs-2xs)}.deviation-row span{font-size:var(--fs-2xs);color:var(--text-muted);line-height:1.4}.workshop{container-type:inline-size}.workshop-tabs{display:flex;gap:2px;padding:2px;border-radius:var(--r-sm);background:var(--bg-inset);margin-bottom:var(--sp-2)}.workshop-tab{flex:1;padding:5px var(--sp-2);border:none;border-radius:var(--r-xs);background:none;color:var(--text-muted);font-size:var(--fs-2xs);cursor:pointer}.workshop-tab.is-active{background:var(--bg-raised);color:var(--text);font-weight:var(--fw-medium)}.workshop-picker{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-2)}.workshop-stages{display:grid;gap:var(--sp-2)}.workshop-stages.is-dual{grid-template-columns:1fr}@container (min-width: 620px){.workshop-stages.is-dual{grid-template-columns:1fr 1fr}}@supports not (container-type: inline-size){@media(min-width:1700px){.workshop-stages.is-dual{grid-template-columns:1fr 1fr}}}.plan-stage{position:relative;height:300px;overflow:hidden;border-radius:var(--r-sm);background:var(--bg-inset);border:1px solid var(--border);touch-action:none;cursor:grab}.plan-stage.is-picking{cursor:crosshair}.plan-stage.is-drawing{cursor:cell}.plan-stage-content{position:absolute;top:0;left:0;transform-origin:0 0}.plan-stage-image{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.plan-stage-svg{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.workshop-actions{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0}.workshop-block{display:grid;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-inset)}.workshop-modes{display:flex;flex-wrap:wrap;gap:3px}.layer-row{display:flex;align-items:center;gap:var(--sp-2);padding:4px var(--sp-2);border-radius:var(--r-xs);background:var(--bg-raised);flex-wrap:wrap}.layer-dot{width:14px;height:14px;border-radius:4px;border:1px solid var(--border-strong);cursor:pointer;flex:none}.layer-dot.is-off{opacity:.25}.layer-name{display:flex;align-items:center;gap:5px;font-size:var(--fs-2xs);min-width:90px;flex:1}.layer-row input[type=range],.slider-row input[type=range]{flex:1;min-width:70px;accent-color:var(--accent)}.slider-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-muted)}.slider-row>span:first-child{display:flex;align-items:center;gap:4px;min-width:66px}.slider-row>span:last-child{min-width:42px;text-align:right;font-variant-numeric:tabular-nums}.pair-row{display:flex;align-items:center;gap:var(--sp-2);padding:4px var(--sp-2);border-radius:var(--r-xs);background:var(--bg-raised);border-left:2px solid transparent;font-size:var(--fs-2xs);flex-wrap:wrap}.pair-row.is-outlier{border-left-color:var(--warn)}.pair-row strong{min-width:16px}.pair-residual{color:var(--text-muted);font-variant-numeric:tabular-nums}@media(max-width:1400px){.workshop-stages.is-dual{grid-template-columns:1fr}.plan-stage{height:240px}}.side-panel-scroll{padding-bottom:var(--sp-8, 48px)}.owner-page{min-height:100vh;padding:clamp(16px,4vw,40px);background:var(--bg-app, #12171d);color:var(--text, #e8eef7);font-size:15px;line-height:1.6}.owner-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--sp-3, 16px);max-width:1100px;margin:0 auto var(--sp-4, 24px)}.owner-header h1{margin:0;font-size:clamp(20px,3vw,28px)}.owner-header p{margin:4px 0 0;color:var(--text-muted, #9fb2c8)}.owner-grid{display:grid;gap:var(--sp-3, 16px);max-width:1100px;margin:0 auto;grid-template-columns:1fr}@media(min-width:900px){.owner-grid{grid-template-columns:1.4fr 1fr}.owner-plan{grid-row:span 2}}.owner-card{background:var(--bg-raised, #1a212a);border:1px solid var(--border-strong, #2b3644);border-radius:var(--r-md, 12px);padding:clamp(14px,2.5vw,22px)}.owner-card h1{margin:0 0 var(--sp-2, 12px);font-size:20px}.owner-card h2{margin:0 0 var(--sp-2, 12px);font-size:17px}.owner-card h3{margin:var(--sp-3, 16px) 0 4px;font-size:14px;color:var(--text-muted, #9fb2c8)}.owner-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2, 12px);margin-bottom:var(--sp-2, 12px)}.owner-layers{display:flex;flex-wrap:wrap;gap:4px}.owner-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;border:1px solid var(--border-strong, #2b3644);background:var(--bg-inset, #141a22);color:var(--text-muted, #9fb2c8);font-size:13px;cursor:pointer}.owner-chip.is-active{border-color:var(--accent, #5ea9ff);color:var(--text, #e8eef7)}.owner-svg{width:100%;height:clamp(220px,42vh,420px);background:var(--bg-inset, #141a22);border-radius:var(--r-sm, 8px)}.owner-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-2, 12px);margin:0}.owner-facts div{background:var(--bg-inset, #141a22);border-radius:var(--r-sm, 8px);padding:10px 12px}.owner-facts dt{font-size:13px;color:var(--text-muted, #9fb2c8)}.owner-facts dd{margin:2px 0 0;font-size:20px;font-variant-numeric:tabular-nums}.owner-list{margin:0;padding-left:18px;font-size:14px}.owner-list ul{padding-left:16px;color:var(--text-muted, #9fb2c8)}.owner-list li{margin:3px 0}.owner-field{display:grid;gap:4px;margin-bottom:var(--sp-2, 12px)}.owner-field span{font-size:13px;color:var(--text-muted, #9fb2c8)}.owner-textarea{width:100%;border-radius:var(--r-sm, 8px);border:1px solid var(--border-strong, #2b3644);background:var(--bg-inset, #141a22);color:inherit;padding:10px 12px;font:inherit;resize:vertical}.owner-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2, 12px);margin-top:var(--sp-2, 12px)}.owner-hint{font-size:13px;color:var(--text-muted, #9fb2c8);margin:var(--sp-2, 12px) 0 0}.owner-footer{max-width:1100px;margin:var(--sp-4, 24px) auto 0;padding-top:var(--sp-3, 16px);border-top:1px solid var(--border-strong, #2b3644);font-size:13px;color:var(--text-muted, #9fb2c8)}.owner-footer p{margin:4px 0}.share-token{display:block;word-break:break-all;padding:var(--sp-2);margin:4px 0;border-radius:var(--r-xs);background:var(--bg-inset);font-family:ui-monospace,monospace;font-size:var(--fs-2xs);line-height:1.5}.vector-row.is-inactive{opacity:.55;border-left-color:var(--border-strong)}.side-panel{transition:width var(--dur-slow) var(--ease),opacity var(--dur) var(--ease),transform var(--dur-slow) var(--ease)}.side-section{animation:panel-section-in .24s var(--ease) both}@keyframes panel-section-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.panel-body>.side-section:nth-child(1){animation-delay:0ms}.panel-body>.side-section:nth-child(2){animation-delay:30ms}.panel-body>.side-section:nth-child(3){animation-delay:60ms}.panel-body>.side-section:nth-child(n+4){animation-delay:80ms}.tool-rail>div{animation:tool-in .22s var(--ease) both}.tool-rail>div:nth-child(1){animation-delay:0ms}.tool-rail>div:nth-child(2){animation-delay:20ms}.tool-rail>div:nth-child(3){animation-delay:40ms}.tool-rail>div:nth-child(4){animation-delay:60ms}.tool-rail>div:nth-child(5){animation-delay:80ms}.tool-rail>div:nth-child(6){animation-delay:.1s}.tool-rail>div:nth-child(n+7){animation-delay:.12s}@keyframes tool-in{0%{opacity:0;transform:translate(-6px) scale(.96)}to{opacity:1;transform:none}}.tool-btn{transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur-fast) var(--ease)}.tool-btn:active{transform:scale(.94)}.tool-btn.is-active{box-shadow:inset 0 0 0 1px var(--accent-line)}.layer-row,.list-row,.twin-row{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),opacity var(--dur) var(--ease)}.layer-row.is-off{opacity:.55}.btn{transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),transform 90ms var(--ease)}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{box-shadow:0 1px #ffffff14 inset,var(--shadow-sm)}.btn-primary:hover:not(:disabled){box-shadow:0 1px #ffffff1f inset,var(--shadow)}.data-table tbody tr,.table tbody tr{transition:background var(--dur-fast) var(--ease)}.data-table tbody tr:hover,.table tbody tr:hover{background:var(--bg-hover)}.data-table td,.table td{font-variant-numeric:tabular-nums}.dialog{animation:dialog-in .2s var(--ease) both}.dialog-backdrop{animation:scrim-in .16s var(--ease) both}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.tt-bubble{animation:tooltip-in .12s var(--ease) both}@keyframes tooltip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.stat-value,.metric-value,.cockpit-fact strong{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.statusbar{transition:background var(--dur) var(--ease)}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--r-xs)}.plan-canvas,.map-view,.stage-pane canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a,.list-row,.asset-tile,.project-card{-webkit-tap-highlight-color:transparent}@media(pointer:coarse){.btn{height:40px;padding:0 var(--sp-5)}.btn-sm{height:34px;padding:0 var(--sp-4)}.icon-btn{width:40px;height:40px}.icon-btn-sm{width:34px;height:34px}.tool-btn{width:44px;height:44px}.tool-rail{padding:var(--sp-3)}.planner-body{grid-template-columns:60px minmax(0,1fr) var(--right-panel, 316px)}.planner.is-fullscreen .planner-body,.planner-body:has(>.side-panel[hidden]){grid-template-columns:60px minmax(0,1fr)}.input,.select{height:40px;font-size:var(--fs-md)}.textarea{min-height:88px}.segmented button{height:34px;padding:0 var(--sp-4)}.tabs button{height:44px;padding:0 var(--sp-4)}.menu-item{height:40px}.list-row{padding:var(--sp-3) var(--sp-4);min-height:44px}.switch-track{width:40px;height:24px}.switch-thumb{width:20px;height:20px}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.range{height:30px}.range::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px}.range::-moz-range-thumb{width:22px;height:22px}.tt-bubble{display:none}.status-bar{height:34px}}@media(pointer:fine)and (any-pointer:coarse){.tt-bubble{display:block}}@media(max-width:1000px){.side-panel{box-shadow:-18px 0 40px #00000059}.side-panel:before{content:"";position:absolute;left:-14px;top:0;bottom:0;width:14px}.drawer-scrim{position:absolute;top:46px;right:0;bottom:26px;left:0;z-index:calc(var(--z-float) - 1);background:#04070c73;animation:fade-in var(--dur) var(--ease)}}@supports (padding: env(safe-area-inset-left)){.app-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.status-bar{padding-bottom:env(safe-area-inset-bottom);height:auto;min-height:26px}}@media(min-width:1900px){.planner-body{--right-panel: 360px}.page-inner{max-width:1640px}}
