:root{--font-ui: "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "Cascadia Code", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-stack-sm: .5rem;--space-stack-md: .875rem;--space-stack-lg: 1.25rem;--text-xs: .74rem;--text-sm: .82rem;--text-md: .9rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--surface-app: #e8ebf2;--surface-sidebar: #f4f6fb;--surface-panel: #ffffff;--surface-elevated: #ffffff;--surface-canvas: #fbfbfe;--border-subtle: #c8d0e0;--border-strong: #9aacbf;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent: #0c5d8f;--accent-hover: #0a4d75;--accent-muted: rgba(12, 93, 143, .12);--focus-ring: #0c5d8f;--focus-ring-offset: #f8fbff;--text-on-accent: #ffffff;--surface-overlay: rgba(15, 23, 42, .45);--toolbar-bg: linear-gradient(180deg, #0d3b66 0%, #0a3054 100%);--toolbar-fg: #f1f5f9;--danger: #b42318;--success: #0d7a52;--warning: #ad6800;--info: #1253a4;--state-danger-bg: color-mix(in srgb, var(--danger) 12%, var(--surface-panel));--state-danger-border: color-mix(in srgb, var(--danger) 35%, transparent);--state-success-bg: color-mix(in srgb, var(--success) 12%, var(--surface-panel));--state-success-border: color-mix(in srgb, var(--success) 38%, transparent);--state-warning-bg: color-mix(in srgb, var(--warning) 15%, var(--surface-panel));--state-warning-border: color-mix(in srgb, var(--warning) 40%, transparent);--state-info-bg: color-mix(in srgb, var(--info) 14%, var(--surface-panel));--state-info-border: color-mix(in srgb, var(--info) 38%, transparent);--btn-primary-bg: var(--accent);--btn-primary-bg-hover: var(--accent-hover);--btn-primary-bg-active: color-mix(in srgb, var(--accent-hover) 86%, black);--btn-primary-border: var(--accent);--btn-ghost-bg-hover: var(--accent-muted);--btn-ghost-bg-active: color-mix(in srgb, var(--accent-muted) 80%, black);--btn-disabled-bg: color-mix(in srgb, var(--surface-elevated) 88%, var(--surface-panel));--btn-disabled-text: color-mix(in srgb, var(--text-muted) 85%, var(--surface-panel));--btn-disabled-border: color-mix(in srgb, var(--border-subtle) 75%, transparent);--three-bg: #e8ecf4;--three-grid-major: #b0b8c8;--three-grid-minor: #c8ccd8}[data-theme=dark]{--surface-app: #12151c;--surface-sidebar: #1a1e28;--surface-panel: #222731;--surface-elevated: #2a303c;--surface-canvas: #1e222b;--border-subtle: #3d4556;--border-strong: #5c677a;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--accent: #5eb8e8;--accent-hover: #7ec8f0;--accent-muted: rgba(94, 184, 232, .15);--focus-ring: #7ec8f0;--focus-ring-offset: #1d222b;--surface-overlay: rgba(2, 6, 23, .62);--toolbar-bg: linear-gradient(180deg, #0a1628 0%, #070f18 100%);--toolbar-fg: #e2e8f0;--warning: #f7b955;--info: #7fb6ff;--state-danger-bg: color-mix(in srgb, var(--danger) 22%, var(--surface-panel));--state-danger-border: color-mix(in srgb, var(--danger) 48%, transparent);--state-success-bg: color-mix(in srgb, var(--success) 25%, var(--surface-panel));--state-success-border: color-mix(in srgb, var(--success) 44%, transparent);--state-warning-bg: color-mix(in srgb, var(--warning) 16%, var(--surface-panel));--state-warning-border: color-mix(in srgb, var(--warning) 44%, transparent);--state-info-bg: color-mix(in srgb, var(--info) 14%, var(--surface-panel));--state-info-border: color-mix(in srgb, var(--info) 44%, transparent);--btn-primary-bg-active: color-mix(in srgb, var(--accent-hover) 82%, black);--btn-ghost-bg-active: color-mix(in srgb, var(--accent-muted) 75%, black);--three-bg: #1a1f28;--three-grid-major: #4a5568;--three-grid-minor: #3d4556}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-ui);line-height:1.45;color:var(--text-primary);background:var(--surface-app)}body{margin:0;min-height:100vh;min-height:100dvh;cursor:default}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;box-shadow:0 0 0 3px var(--focus-ring-offset)}button:focus:not(:focus-visible),select:focus:not(:focus-visible){box-shadow:none}.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(200px,260px) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"toolbar toolbar" "sidebar workspace"}.app-toolbar{grid-area:toolbar;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--toolbar-bg);color:var(--toolbar-fg);box-shadow:var(--shadow-md);z-index:20}.app-toolbar__quick-help{color:var(--toolbar-fg);border-color:#fff3;background:#ffffff14;font-weight:700}.app-toolbar__brand{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.app-toolbar__logo{border-radius:var(--radius-sm);flex-shrink:0}.app-toolbar__name{font-weight:700;font-size:1.05rem;letter-spacing:.02em}.menubar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);flex:1;min-width:0}.menu{position:relative}.menu__trigger{list-style:none;cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.9rem;color:var(--toolbar-fg);border:1px solid transparent;background:transparent}.menu__trigger::-webkit-details-marker{display:none}.menu__trigger:hover{background:#ffffff1a}.menu[open]>.menu__trigger{background:#ffffff24;border-color:#fff3}.menu__list{position:absolute;top:100%;left:0;margin:var(--space-1) 0 0;padding:var(--space-2);min-width:220px;list-style:none;background:var(--surface-panel);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50}.menu__item{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--space-4);padding:var(--space-2) var(--space-3);margin:0;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.menu__item:hover:not(:disabled){background:var(--accent-muted)}.menu__item:disabled{opacity:.45;cursor:not-allowed}.menu__kbd{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}.menu__sep{height:1px;margin:var(--space-2) 0;background:var(--border-subtle);list-style:none}.menu__label{padding:var(--space-1) var(--space-3);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);list-style:none}.menu__hint{padding:var(--space-2) var(--space-3);font-size:.8rem;color:var(--text-muted);list-style:none}.menu__item--recent{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-guided-banner{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem;padding:.65rem 1rem;margin-bottom:.5rem;background:var(--surface-elevated, #e8ecf4);border:1px solid var(--border-subtle, #c5cad6);border-radius:8px}.empty-guided-banner__text{display:flex;flex-direction:column;gap:.35rem;min-width:min(100%,28rem);font-size:.9rem;line-height:1.45}.empty-guided-banner__body{color:var(--text-muted, #444)}.empty-guided-banner__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn--sm{font-size:.8125rem;padding:.35rem .65rem}.app-toolbar__locale{margin-left:auto;flex-shrink:0}.select--toolbar{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.28);background:#ffffff1a;color:var(--toolbar-fg);font-size:.85rem;cursor:pointer}.select--toolbar option{color:var(--text-primary);background:var(--surface-panel)}.sidebar{grid-area:sidebar;background:var(--surface-sidebar);border-right:1px solid var(--border-subtle);padding:var(--space-4);font-size:.9rem;overflow-y:auto}.sidebar-section{border:1px solid color-mix(in srgb,var(--border-subtle) 75%,transparent);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:var(--surface-panel)}.sidebar-section__summary{list-style:none;cursor:pointer;padding:var(--space-3);font-weight:600;font-size:.9rem;color:var(--text-primary);border-radius:var(--radius-md)}.sidebar-section__summary::-webkit-details-marker{display:none}.sidebar-section__summary:before{content:"";display:inline-block;width:.35em;height:.35em;margin-right:var(--space-2);border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg);transition:transform .15s ease;vertical-align:middle}.sidebar-section[open]>.sidebar-section__summary:before{transform:rotate(45deg)}.sidebar-section__body{padding:0 var(--space-3) var(--space-3)}.sidebar-hint{margin:0 0 var(--space-3);font-size:var(--text-xs);line-height:1.5;color:var(--text-muted)}.sidebar-hint code{font-size:.72rem;padding:.1em .35em;border-radius:4px;background:var(--surface-canvas);border:1px solid var(--border-subtle)}.chk{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;cursor:pointer;font-size:.88rem}.chk input{width:1.05rem;height:1.05rem;accent-color:var(--accent);cursor:pointer}.sidebar select{width:100%;margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-size:.85rem;background:var(--surface-elevated);color:var(--text-primary)}.meta{margin:var(--space-4) 0 0;padding:var(--space-3);display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.meta dt{margin:0;color:var(--text-muted);font-size:.8rem}.meta dd{margin:0;font-weight:600;font-size:.88rem}.workspace{grid-area:workspace;display:flex;flex-direction:column;min-height:0;padding:var(--space-3);gap:var(--space-3);background:var(--surface-app)}.workspace-context{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-panel)}.context-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem .5rem;border:1px solid var(--border-subtle);border-radius:999px;font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface-elevated)}.context-chip strong{color:var(--text-primary)}.context-chip--active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-subtle));background:var(--accent-muted)}.workspace__main{flex:1;min-height:0;display:flex;flex-direction:column}.workspace-panels{flex:1;min-height:0}.workspace-panels__panel{min-height:0;display:flex;flex-direction:column}.resize-handle{height:6px;margin:2px 0;border-radius:4px;background:transparent;cursor:row-resize;flex-shrink:0;position:relative}.resize-handle:after{content:"";position:absolute;left:25%;right:25%;top:50%;transform:translateY(-50%);height:3px;border-radius:2px;background:var(--border-subtle)}.resize-handle:hover:after,.resize-handle[data-resize-handle-active=true]:after{background:var(--accent)}.panel{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--surface-panel);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow:hidden}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface-elevated);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.panel__header-main{min-width:0;flex:1}.panel__header-actions{display:inline-flex;gap:var(--space-1);align-items:center}.btn--panel-reset{flex-shrink:0;padding:.2rem .5rem;font-size:.74rem;font-weight:600;text-transform:none;letter-spacing:.01em;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-panel);color:var(--text-secondary)}.btn--panel-reset:hover{background:var(--surface-canvas);border-color:var(--border-strong);color:var(--text-primary)}.btn--panel-reset:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.panel__title{margin:0;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary)}.panel__hint{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.35;max-width:52ch}.panel__body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface-canvas)}.board-canvas,.section-canvas,.profile-canvas{display:block;width:100%;height:100%;min-height:100px;flex:1}.workspace-panels__panel--3d .panel__body{background:var(--three-bg)}.three-wrap{flex:1;min-height:200px;position:relative}.three-loading{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:.88rem;color:var(--text-muted);background:var(--three-bg)}.three-wrap canvas{display:block;width:100%!important;height:100%!important}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn:disabled{cursor:not-allowed;color:var(--btn-disabled-text);background:var(--btn-disabled-bg);border-color:var(--btn-disabled-border);opacity:1}.btn--primary{background:var(--btn-primary-bg);color:var(--text-on-accent);border-color:var(--btn-primary-border)}.btn--primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);border-color:var(--btn-primary-bg-hover)}.btn--primary:active:not(:disabled){background:var(--btn-primary-bg-active);border-color:var(--btn-primary-bg-active)}.btn--ghost{background:transparent;color:var(--text-primary);border-color:var(--border-subtle)}.btn--ghost:hover:not(:disabled){background:var(--btn-ghost-bg-hover)}.btn--ghost:active:not(:disabled){background:var(--btn-ghost-bg-active)}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.btn--subtle{background:color-mix(in srgb,var(--surface-elevated) 92%,transparent);color:var(--text-secondary);border-color:color-mix(in srgb,var(--border-subtle) 85%,transparent)}.btn--subtle:hover:not(:disabled){background:var(--surface-canvas);color:var(--text-primary);border-color:var(--border-strong)}.board-canvas--interactive{touch-action:manipulation;cursor:crosshair}.sidebar-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.sidebar-field__label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.sidebar-field__input,.sidebar-field__textarea{width:100%;box-sizing:border-box;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-panel);color:var(--text-primary);font:inherit}.sidebar-actions{display:flex;flex-wrap:wrap;gap:var(--space-stack-sm);margin-top:var(--space-2)}.shortcut-badge{font-family:var(--font-mono);font-size:.72rem;padding:.1rem .35rem;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-muted);background:var(--surface-canvas)}.app-alerts{grid-column:1 / -1;padding:0 var(--space-3);margin-top:var(--space-2)}.banner{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.banner--error{background:var(--state-danger-bg);border:1px solid var(--state-danger-border);color:var(--text-primary)}.banner--warning{background:var(--state-warning-bg);border:1px solid var(--state-warning-border);color:var(--text-primary)}.banner__title{display:block;font-size:.85rem;margin-bottom:var(--space-1)}.banner__text{margin:0;font-size:.88rem;color:var(--text-secondary)}.toast-stack{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:100;display:flex;flex-direction:column;gap:var(--space-2);max-width:min(420px,calc(100vw - 2rem));pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-subtle);background:var(--surface-panel);color:var(--text-primary);pointer-events:auto}.toast--success{border-color:var(--state-success-border);background:var(--state-success-bg)}.toast--error{border-color:var(--state-danger-border);background:var(--state-danger-bg)}.toast--info{border-color:var(--state-info-border);background:var(--state-info-bg)}.toast__close{font-size:1.25rem;line-height:1;padding:0}.modal-backdrop{position:fixed;inset:0;background:var(--surface-overlay);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.icon-btn{border:1px solid transparent;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);min-width:2.25rem;min-height:2.25rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn:hover{background:var(--accent-muted);color:var(--text-primary)}.modal-dialog{width:min(440px,100%);max-height:90vh;overflow:auto;background:var(--surface-panel);color:var(--text-primary);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}.modal-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.modal-dialog__title{margin:0;font-size:1.25rem}.modal-dialog__close{font-size:1.5rem;line-height:1;padding:0}.modal-dialog__body{padding:var(--space-4)}.modal-dialog__lede{margin:0 0 var(--space-3);line-height:1.5;color:var(--text-secondary)}.modal-dialog__meta,.modal-dialog__hint--strong{font-weight:600;margin-top:.85rem;margin-bottom:.35rem;color:var(--text-muted, #555)}.modal-dialog__hint{margin:0 0 var(--space-2);font-size:.88rem;color:var(--text-muted)}.modal-dialog__hint kbd{font-family:var(--font-mono);font-size:.8em;padding:.1em .35em;border-radius:4px;border:1px solid var(--border-subtle);background:var(--surface-canvas)}.modal-dialog__footer{padding:var(--space-3) var(--space-4) var(--space-4);display:flex;justify-content:flex-end}.modal-dialog__footer--split{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.modal-dialog--wide{width:min(480px,100%)}.export-fieldset{margin:0;padding:0;border:none}.export-format-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.export-format-row{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid transparent}.export-format-row:has(input:focus-visible){border-color:var(--accent)}.export-format-row:hover{background:var(--surface-canvas)}.export-format-row input{margin-top:.2rem}.export-format-row__text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.export-format-row__label{font-weight:600;font-size:.95rem}.export-format-row__hint{font-size:.82rem;color:var(--text-muted);line-height:1.35}kbd{font-family:var(--font-mono)}.shortcuts-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:var(--space-2)}.shortcuts-table th,.shortcuts-table td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--border-subtle)}.shortcuts-table th{color:var(--text-muted);font-weight:600;font-size:var(--text-sm)}.shortcuts-table__section{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);background:var(--surface-canvas)}.shortcuts-table__kbd{font-family:var(--font-mono);font-size:.85rem;padding:.15em .4em;border-radius:4px;border:1px solid var(--border-subtle);background:var(--surface-canvas)}.menu__item code{font-family:var(--font-mono);font-size:.85em}.help-list{margin:0 0 var(--space-3);padding-left:1.25rem;color:var(--text-secondary);line-height:1.5}.help-list li{margin-bottom:var(--space-2)}.error-boundary{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-4);padding:var(--space-6);max-width:36rem;margin:0 auto}@media(pointer:coarse){.btn,.menu__item,.icon-btn{min-height:2.75rem}}@media(max-width:960px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"toolbar" "sidebar" "workspace"}.sidebar{border-right:none;border-bottom:1px solid var(--border-subtle);max-height:42vh}.workspace{min-height:46vh}.panel__hint{max-width:none}}.error-boundary__title{margin:0;font-size:1.35rem}.error-boundary__text{margin:0;color:var(--text-secondary);line-height:1.5}.error-boundary__detail{margin:0;width:100%;padding:var(--space-3);font-family:var(--font-mono);font-size:.82rem;white-space:pre-wrap;word-break:break-word;background:var(--surface-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary)}
