@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2")}:root{--text:#625b6c;--text-h:#17131d;--bg:#fff;--bg-surface:#faf9fb;--border:#e4e1e7;--code-bg:#f4f3ec;--accent:#7c3aed;--accent-strong:#6d28d9;--accent-bg:#7c3aed1a;--accent-border:#7c3aed61;--social-bg:#f4f3ec80;--shadow:#17131d1a 0 12px 28px -8px, #17131d0d 0 2px 8px -2px;--metabar-h:64px;--nav-w:240px;--color-bg:var(--bg);--color-surface:var(--bg-surface);--color-surface-muted:#f2f0f4;--color-text:var(--text-h);--color-text-muted:var(--text);--color-text-subtle:#756e7e;--color-border:var(--border);--color-accent:var(--accent);--color-accent-strong:var(--accent-strong);--color-success:#067647;--color-warning:#b54708;--color-warning-bg:#fffaeb;--color-error:#b42318;--color-state-warning:var(--color-warning);--color-state-error:var(--color-error);--bg-hover:var(--color-surface-muted);--bg-secondary:var(--color-surface-muted);--text-secondary:var(--color-text-muted);--text-light:var(--color-text-subtle);--text-muted:var(--color-text-muted);--font-sans:"Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--sans:var(--font-sans);--heading:var(--font-sans);--mono:var(--font-mono);--font-family:var(--font-sans);--text-display-size:30px;--text-display-line:38px;--text-page-size:20px;--text-page-line:28px;--text-section-size:16px;--text-section-line:24px;--text-subsection-size:14px;--text-subsection-line:20px;--text-body-size:14px;--text-body-line:20px;--text-data-size:13px;--text-data-line:18px;--text-meta-size:12px;--text-meta-line:16px;--text-overline-size:11px;--text-overline-line:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--control-h-compact:32px;--control-h:36px;--control-h-large:40px;--row-h-compact:32px;--row-h:40px;--radius-xs:4px;--radius-sm:8px;--radius-md:8px;--radius-lg:12px;font:400 var(--text-body-size) / var(--text-body-line) var(--font-sans);letter-spacing:normal;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#aaa4b3;--text-h:#f5f2f7;--bg:#15141a;--bg-surface:#1c1a22;--border:#34313b;--code-bg:#1f2028;--accent:#c4b5fd;--accent-strong:#7c3aed;--accent-bg:#c4b5fd21;--accent-border:#c4b5fd61;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--color-surface-muted:#26232d;--color-text-subtle:#8d8697;--color-success:#75e0a7;--color-warning:#fec84b;--color-warning-bg:#fec84b1f;--color-error:#fda29b}}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body,button,input,select,textarea{font-family:var(--font-sans)}button,input,select,textarea{font-size:inherit}h1,h2,h3,h4,h5,h6,p{margin:0}h1,h2,h3,h4,h5,h6{color:var(--text-h);font-family:var(--font-sans)}button{font-weight:500}code{font-family:var(--font-mono);font-size:var(--text-data-size);line-height:var(--text-data-line);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);color:var(--text-h);background:var(--code-bg)}.mxRubberband{pointer-events:none;background:#2563eb29;border:1px dashed #2563eb;position:absolute;overflow:hidden}.metabar{height:var(--metabar-h);z-index:2000;padding:0 var(--space-4);background:var(--bg);border-bottom:1px solid var(--border);box-sizing:border-box;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.metabar-left{align-items:center;gap:var(--space-2);display:flex}.metabar-logo{width:32px;height:32px;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-md);flex-shrink:0;place-items:center;display:grid}.product-mark{width:20px;height:20px;display:block}.metabar-brand{font-family:var(--heading);font-size:var(--text-subsection-size);line-height:var(--text-subsection-line);letter-spacing:-.01em;color:var(--text-h);font-weight:600}.metabar-right,.metabar-center{align-items:center;gap:var(--space-1);display:flex}.metabar-icon-button{width:auto;min-width:52px;height:48px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--text);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:background .15s,color .15s;display:flex}.metabar-icon-button svg{flex-shrink:0}.metabar-icon-text{font-size:var(--text-overline-size);line-height:var(--text-meta-line);white-space:nowrap;font-weight:500}.metabar-icon-button:hover{background:var(--accent-bg);color:var(--text-h)}.metabar-icon-button:disabled{opacity:.45;cursor:not-allowed}.metabar-icon-button:disabled:hover{color:var(--text);background:0 0}.metabar-icon-button-active{background:var(--accent-bg);color:var(--accent)}.metabar-save-group{align-items:center;display:flex;position:relative}.metabar-save-chevron{width:24px;min-width:24px;padding:0 var(--space-1)}.metabar-save-menu{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-1);z-index:12000;min-width:208px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 16px #00000026}.metabar-save-menu-item{width:100%;min-height:var(--control-h-compact);padding:0 var(--space-3);text-align:left;color:var(--text-h);border-radius:var(--radius-xs);font-size:var(--text-data-size);line-height:var(--text-data-line);cursor:pointer;white-space:nowrap;background:0 0;border:none;display:block}.metabar-save-menu-item:hover{background:var(--accent-bg)}.metabar-save-menu-item:disabled{opacity:.45;cursor:not-allowed}.metabar-save-menu-item:disabled:hover{background:0 0}.metabar-settings-group{align-items:center;display:flex;position:relative}.metabar-settings-menu{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);z-index:12000;min-width:220px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #00000026}.metabar-settings-row{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text-h);font-size:var(--text-data-size);line-height:var(--text-data-line);display:flex}.metabar-settings-label{white-space:nowrap;font-weight:500}.metabar-settings-select{min-width:112px;height:var(--control-h-compact);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-h);font:inherit;padding:0 var(--space-2)}.metabar-settings-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-save-toast{right:18px;top:calc(var(--metabar-h) + var(--space-2));z-index:22000;max-width:min(420px,100vw - 36px);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text-h);font-size:var(--text-data-size);line-height:var(--text-data-line);opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;position:fixed;transform:translateY(-6px);box-shadow:0 10px 32px #0f172a2e}.project-save-toast-success{border-color:color-mix(in srgb, var(--accent) 42%, var(--border))}.project-save-toast-error{border-color:#ef4444}.project-save-toast-visible{opacity:1;transform:translateY(0)}.context-menu{z-index:20000;background:var(--bg);border:1px solid var(--border);border-radius:6px;min-width:136px;padding:4px;position:fixed;box-shadow:0 8px 24px #0000002e}.context-menu-item{width:100%;min-height:30px;color:var(--text-h);font-family:var(--sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;padding:6px 10px;font-size:13px;line-height:1.2;display:flex}.context-menu-item:hover:not(:disabled),.context-menu-item:focus-visible:not(:disabled){background:var(--accent-bg);outline:none}.context-menu-item-danger{color:#b42318}.context-menu-item-danger:hover:not(:disabled),.context-menu-item-danger:focus-visible:not(:disabled){color:#912018;background:#fee4e2}.context-menu-item:disabled{color:var(--text-muted);cursor:default;opacity:.55}.traction-delete-modal-overlay{z-index:21000;background:#0f121659;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.traction-delete-modal{background:var(--bg);border:1px solid var(--border);width:min(760px,100%);max-height:calc(100vh - 32px);color:var(--text-h);border-radius:12px;gap:12px;padding:18px;display:grid;box-shadow:0 18px 48px #151b2638}.traction-delete-modal-title{margin:0;font-size:18px;font-weight:700}.traction-delete-modal-subtitle{color:var(--text);margin:0;font-size:13px}.traction-delete-modal-list-wrap{border:1px solid var(--border);background:var(--bg-surface);border-radius:8px;max-height:min(46vh,380px);overflow:auto}.traction-delete-modal-list{gap:6px;margin:0;padding:8px;list-style:none;display:grid}.traction-delete-modal-item{background:var(--bg);border:1px solid var(--border);border-radius:6px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.traction-delete-modal-item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-h);font-size:13px;overflow:hidden}.traction-delete-modal-item-meta{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.traction-delete-modal-badge{border:1px solid #0000;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.traction-delete-modal-badge-selected{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text-h)}.traction-delete-modal-badge-dependent{color:#b42318;background:#b423181a;border-color:#b4231859}.traction-delete-modal-actions{justify-content:flex-end;gap:10px;display:flex}.traction-delete-modal-btn{border:1px solid var(--border);background:var(--bg);min-height:36px;color:var(--text-h);cursor:pointer;border-radius:7px;padding:0 14px;font-size:14px;font-weight:600}.traction-delete-modal-btn-cancel:hover,.traction-delete-modal-btn-cancel:focus-visible{background:var(--accent-bg);outline:none}.traction-delete-modal-btn-delete{color:#fff;background:#b42318;border-color:#b42318}.traction-delete-modal-btn-delete:hover,.traction-delete-modal-btn-delete:focus-visible{background:#912018;border-color:#912018;outline:none}@media (width<=720px){.traction-delete-modal-item{grid-template-columns:minmax(0,1fr)}.traction-delete-modal-item-meta,.traction-delete-modal-badge{justify-self:start}}.project-preprocess-modal-overlay{z-index:21000;background:#0f121659;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.project-preprocess-modal{background:var(--bg);border:1px solid var(--border);width:min(680px,100%);max-height:calc(100vh - 32px);color:var(--text-h);border-radius:12px;gap:12px;padding:18px;display:grid;box-shadow:0 18px 48px #151b2638}.project-preprocess-modal-title{margin:0;font-size:18px;font-weight:700}.project-preprocess-modal-subtitle,.project-preprocess-modal-detail{color:var(--text);margin:0;font-size:13px;line-height:1.45}.project-preprocess-modal-detail{color:var(--text-h)}.project-preprocess-modal-list-wrap{border:1px solid var(--border);background:var(--bg-surface);border-radius:8px;max-height:min(36vh,280px);overflow:auto}.project-preprocess-modal-list{gap:6px;margin:0;padding:8px;list-style:none;display:grid}.project-preprocess-modal-item{background:var(--bg);border:1px solid var(--border);border-radius:6px;grid-template-columns:92px minmax(0,1fr);align-items:start;gap:10px;padding:8px 10px;display:grid}.project-preprocess-modal-item-label{color:var(--text-h);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.project-preprocess-modal-item-meta{min-width:0;color:var(--text);font-size:12px;line-height:1.35}.project-preprocess-modal-actions{justify-content:flex-end;gap:10px;display:flex}.project-preprocess-modal-btn{border:1px solid var(--border);background:var(--bg);min-height:36px;color:var(--text-h);cursor:pointer;border-radius:7px;padding:0 14px;font-size:14px;font-weight:600}.project-preprocess-modal-btn-secondary:hover,.project-preprocess-modal-btn-secondary:focus-visible{background:var(--accent-bg);outline:none}.project-preprocess-modal-btn-primary{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.project-preprocess-modal-btn-primary:hover,.project-preprocess-modal-btn-primary:focus-visible{background:color-mix(in srgb, var(--accent-strong) 88%, #000);border-color:color-mix(in srgb, var(--accent-strong) 88%, #000);outline:none}.project-import-modal{width:min(540px,100%)}.project-import-modal-form{gap:12px;display:grid}.project-import-modal-field{gap:6px;display:grid}.project-import-modal-label{color:var(--text-h);font-size:12px;font-weight:700}.project-import-modal-input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;min-height:36px;color:var(--text-h);font:14px/1.2 var(--sans);border-radius:7px;outline:none;padding:0 10px}.project-import-modal-input:focus{border-color:var(--accent)}.project-import-modal-textarea{resize:vertical;min-height:84px;padding:10px}.project-import-modal-readonly{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-surface);width:100%;min-width:0;min-height:36px;color:var(--text);font:13px/1.25 var(--sans);word-break:break-all;border-radius:7px;padding:9px 10px}.project-import-modal-file-input{display:none}.project-import-modal-file-row{align-items:center;gap:10px;min-width:0;display:flex}.project-import-modal-file-button{flex-shrink:0}.project-import-modal-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:13px;overflow:hidden}.project-import-modal-error{background:color-mix(in srgb, #ef4444 10%, var(--bg));color:#b91c1c;border:1px solid #ef4444;border-radius:7px;margin:0;padding:8px 10px;font-size:13px}.timetable-format-cards{gap:8px;display:grid}.timetable-format-card{border:1px solid var(--border);cursor:pointer;background:var(--bg);border-radius:8px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:2px 10px;padding:12px 14px;transition:border-color .12s;display:grid}.timetable-format-card:hover{border-color:var(--accent)}.timetable-format-card-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--bg))}.timetable-format-radio{accent-color:var(--accent);grid-row:1/3;align-self:center;margin:0}.timetable-format-card-label{color:var(--text-h);align-self:end;font-size:14px;font-weight:600}.timetable-format-card-desc{color:var(--text);align-self:start;font-size:12px}.timetable-track-list{gap:8px;display:grid}.timetable-track-entry{border:1px solid var(--border);background:var(--bg);border-radius:7px;gap:6px;padding:10px 12px;display:grid}.timetable-track-entry-header{justify-content:space-between;align-items:center;display:flex}.timetable-track-remove-btn{width:24px;height:24px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:flex}.timetable-track-remove-btn:hover{background:color-mix(in srgb, #ef4444 12%, var(--bg));color:#ef4444}.timetable-add-track-btn{align-self:start;align-items:center;gap:6px;display:flex}.project-timetable-delete-btn{color:#fff;background:#dc2626;border-color:#dc2626}.project-timetable-delete-btn:hover,.project-timetable-delete-btn:focus-visible{background:#b91c1c;border-color:#b91c1c;outline:none}@media (width<=640px){.project-preprocess-modal-item{grid-template-columns:minmax(0,1fr)}}.nav-panel{top:var(--metabar-h);width:var(--nav-w);background:var(--bg-surface);border-right:1px solid var(--border);z-index:1000;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;overflow:hidden}.nav-panel-hidden{display:none}.nav-panel-resize-handle{cursor:col-resize;z-index:1001;width:6px;position:absolute;top:0;bottom:0;right:-3px}.nav-panel-resize-handle:hover,.nav-panel-resize-handle:active{background:var(--accent,#007acc);opacity:.5}.nav-panel-header{min-height:64px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);gap:var(--space-1);flex-direction:column;display:flex}.nav-panel-section-label{font-size:var(--text-overline-size);line-height:var(--text-overline-line);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary,#888);font-weight:600}.nav-panel-header-label{font-size:var(--text-data-size);line-height:var(--text-data-line);color:var(--text);cursor:default;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.nav-panel-name-input{min-height:28px;font-size:var(--text-data-size);line-height:var(--text-data-line);color:var(--text);background:var(--bg-secondary,#2a2a2a);border:1px solid var(--accent,#007acc);border-radius:var(--radius-xs);padding:var(--space-1) var(--space-2);box-sizing:border-box;outline:none;width:100%;font-weight:600}.nav-panel-tree{padding:var(--space-2) 0;flex:1;overflow-y:auto}.nav-tree-item{position:relative}.nav-tree-row{min-height:var(--row-h-compact);align-items:center;gap:var(--space-2);width:100%;padding:0 var(--space-3);color:var(--text);font-family:var(--sans);font-size:var(--text-data-size);line-height:var(--text-data-line);cursor:pointer;text-align:left;box-sizing:border-box;background:0 0;border:none;border-radius:0;transition:background .1s,color .1s;display:flex}.nav-tree-row:hover{background:var(--accent-bg);color:var(--text-h)}.nav-tree-row-active{background:var(--accent-bg);color:var(--accent);font-weight:600}.nav-tree-chevron{flex-shrink:0;place-items:center;width:14px;height:14px;transition:transform .15s;display:grid}.nav-tree-chevron-collapsed{transform:rotate(-90deg)}.nav-tree-icon{width:16px;height:16px;color:var(--text);flex-shrink:0;place-items:center;display:grid}.nav-tree-row-active .nav-tree-icon{color:var(--accent)}.nav-tree-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav-tree-row-has-action{padding-right:36px}.nav-tree-row-action{top:var(--space-1);right:var(--space-2);z-index:1;border-radius:var(--radius-xs);width:24px;height:24px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid;position:absolute}.nav-tree-row-action:hover,.nav-tree-row-action:focus-visible{background:var(--accent-bg);color:var(--accent);outline:none}.nav-tree-children{display:none}.nav-tree-item-expanded>.nav-tree-children{display:block}.nav-tree-row.nav-tree-row-draggable{cursor:grab}.nav-tree-row.nav-tree-row-draggable:active,.nav-tree-row.nav-tree-row-dragging{cursor:grabbing;opacity:.7}.nav-tree-row.nav-tree-row-not-in-diagram{opacity:.4}.nav-tree-row.nav-tree-row-not-in-diagram:hover{opacity:.75}.view-container{top:var(--metabar-h);left:var(--nav-w);background:var(--bg);flex-direction:column;display:flex;position:fixed;bottom:0;right:0;overflow:hidden}.view-container-docs{left:0}.view-toolbar{border-bottom:1px solid var(--border);flex-shrink:0}.view-hidden{display:none}.view-diagram-area{flex:1;display:flex;position:relative;overflow:hidden}.docs-view{background:var(--bg);z-index:10;position:absolute;inset:0;overflow:hidden}.docs-view-hidden{display:none}.docs-frame{background:var(--bg);border:0;width:100%;height:100%}.view-canvas{background:var(--bg);-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.view-canvas *{-webkit-user-select:none;user-select:none}.view-content{flex:1;display:none;position:relative;overflow:hidden}.view-content.view-content-active{display:flex}.diagram-toolbar{align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-2) var(--space-3);background:var(--bg);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.diagram-toolbar-separator{width:1px;height:24px;margin:0 var(--space-1);background:var(--border);flex:0 0 1px}.toolbar-button{min-height:32px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-h);font:500 var(--text-data-size) / var(--text-data-line) var(--font-sans);white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.toolbar-button:hover:not(:disabled){background:var(--color-surface-muted);border-color:color-mix(in srgb, var(--text) 32%, var(--border))}.toolbar-button-active,.toolbar-button-active:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.toolbar-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar-size-label{color:var(--text);font-size:var(--text-meta-size);line-height:var(--text-meta-line);-webkit-user-select:none;user-select:none}.toolbar-size-input{width:54px;height:var(--control-h-compact);padding:0 var(--space-2);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-h);font-size:var(--text-meta-size);text-align:right;-moz-appearance:textfield;outline:none}.toolbar-size-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.toolbar-size-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.toolbar-size-input:focus{border-color:var(--accent,#007acc)}.toolbar-size-input:disabled{opacity:.35;cursor:default}.explore-assistant-layer{z-index:9500;pointer-events:none;color:#2563eb;position:fixed;inset:0}.explore-assistant-header{right:18px;top:calc(var(--metabar-h) + 14px);color:#0f172a;pointer-events:auto;background:#fffffff0;border:1px solid #2563eb3d;border-radius:8px;align-items:center;gap:10px;padding:8px 10px 8px 12px;display:flex;position:fixed;box-shadow:0 12px 30px #0f172a29}.explore-assistant-title{letter-spacing:.02em;font-size:12px;font-weight:700}.explore-assistant-close{color:#fff;height:28px;font:600 12px var(--sans);cursor:pointer;background:#2563eb;border:1px solid #2563eb47;border-radius:6px;padding:0 10px}.explore-assistant-close:hover,.explore-assistant-close:focus-visible{background:#1d4ed8;outline:none}.explore-assistant-arrows{pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0;overflow:visible}.explore-assistant-arrows line{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-dasharray:5 5;opacity:.82}.explore-assistant-highlight{pointer-events:none;border:2px solid #2563ebd1;border-radius:10px;position:fixed;box-shadow:0 0 0 4px #2563eb1a,0 10px 24px #2563eb1a}.explore-assistant-callout{box-sizing:border-box;color:#0f172a;pointer-events:auto;background:#fffffff5;border:1px solid #2563eb38;border-radius:8px;width:286px;padding:12px 14px;position:fixed;box-shadow:0 14px 34px #0f172a2e}.explore-assistant-callout h3{color:#1d4ed8;letter-spacing:0;margin:0 0 5px;font-size:13px;font-weight:700}.explore-assistant-callout p{color:#334155;margin:0;font-size:12px;line-height:1.45}@media (prefers-color-scheme:dark){.explore-assistant-header,.explore-assistant-callout{color:#f8fafc;background:#0f172af0;border-color:#60a5fa52}.explore-assistant-callout h3{color:#93c5fd}.explore-assistant-callout p{color:#cbd5e1}}.diagram-palette{box-sizing:border-box;color:var(--text-h);background:var(--bg);border-left:1px solid var(--border);align-content:start;gap:18px;padding:14px;display:grid;overflow-y:auto}.diagram-palette-section{gap:8px;display:grid}.diagram-palette-title{color:var(--text);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.diagram-palette-grid{grid-template-columns:repeat(3,34px);gap:8px;display:grid}.diagram-palette-button{box-sizing:border-box;place-items:center;width:34px;height:34px;display:grid;border-radius:6px!important;padding:4px!important}.diagram-palette-button svg{width:24px;height:24px}.diagram-palette-button:hover:not(:disabled){background:var(--bg-surface)!important;border-color:var(--text-light)!important}.diagram-palette-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.diagram-palette-button:disabled{opacity:.35;cursor:not-allowed!important}.diagram-label-mode{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.diagram-label-mode-button{min-width:38px;height:28px;color:var(--text);background:var(--bg);border:0;border-right:1px solid var(--border);font:600 11px/1 var(--sans);cursor:pointer;padding:0 8px}.diagram-label-mode-button:last-child{border-right:0}.diagram-label-mode-button:hover{color:var(--text-h);background:var(--bg-surface)}.diagram-label-mode-button-active{color:var(--accent);background:var(--accent-bg)}.diagram-label-mode-button:focus-visible{z-index:1;outline:2px solid var(--accent);outline-offset:-2px;position:relative}.power-flow-unit-control{border-left:1px solid var(--border);align-items:center;gap:6px;margin-left:6px;padding-left:10px;display:inline-flex}.power-flow-unit-control[hidden]{display:none}.power-flow-unit-label{color:var(--text-light);font:500 11px/1 var(--sans)}.diagram-topology-label{color:#334155;text-shadow:0 0 2px #fff,0 0 4px #fff,0 0 6px #fff}.login-overlay{z-index:10000;background:var(--bg);opacity:0;place-items:center;transition:opacity .4s;display:grid;position:fixed;inset:0}.login-overlay.login-visible{opacity:1}.login-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:360px;max-width:calc(100% - 40px);box-shadow:var(--shadow);padding:var(--space-10) var(--space-8) var(--space-8);box-sizing:border-box;transition:transform .4s;position:relative;transform:translateY(12px)}@media (width<=480px){.login-card{padding:var(--space-10) var(--space-6) var(--space-8)}}.login-visible .login-card{transform:translateY(0)}.login-lang-bar{top:var(--space-4);right:var(--space-4);position:absolute}.login-lang-select{font-family:var(--sans);min-height:28px;font-size:var(--text-meta-size);line-height:var(--text-meta-line);color:var(--text);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-2);cursor:pointer;outline:none}.login-lang-select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.login-header{text-align:center;margin-bottom:var(--space-6)}.login-logo-mark{width:48px;height:48px;margin:0 auto var(--space-4);color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-lg);place-items:center;display:grid}.login-logo-mark .product-mark{width:26px;height:26px}.login-title{font-family:var(--heading);font-size:var(--text-page-size);line-height:var(--text-page-line);letter-spacing:-.015em;color:var(--text-h);margin:0 0 var(--space-2);font-weight:600}.login-subtitle{font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--text);margin:0}.login-health{border:1px solid var(--border);border-radius:999px;width:fit-content;max-width:100%;margin:16px auto 0;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.3}.login-health-pending{color:var(--text);background:var(--bg-surface)}.login-health-ok{color:#166534;background:#22c55e24;border-color:#22c55e47}.login-health-error{color:#b91c1c;background:#ef444424;border-color:#ef444447}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-field{flex-direction:column;display:flex}.login-label{gap:var(--space-2);font-size:var(--text-data-size);line-height:var(--text-data-line);color:var(--text-h);letter-spacing:0;flex-direction:column;font-weight:500;display:flex}.login-input{font-family:var(--sans);min-height:var(--control-h-large);font-size:var(--text-body-size);line-height:var(--text-body-line);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-h);outline:none;transition:border-color .2s,box-shadow .2s}.login-input::placeholder{color:var(--text);opacity:.5}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.login-submit{font-family:var(--sans);min-height:var(--control-h-large);font-size:var(--text-body-size);line-height:var(--text-body-line);padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);background:var(--accent-strong);color:#fff;cursor:pointer;border:none;margin-top:4px;font-weight:600;transition:opacity .15s,transform .1s}.login-submit:disabled{opacity:.7;cursor:progress}.login-submit:hover{opacity:.9}.login-submit:active{transform:scale(.98)}.login-submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-footer{font-size:var(--text-meta-size);line-height:var(--text-meta-line);text-align:right;color:var(--text);letter-spacing:0;margin-top:6px}.login-feedback{min-height:20px;font-size:var(--text-data-size);line-height:var(--text-data-line);color:var(--text);margin:-8px 0 0}.login-feedback-error{color:#b91c1c}.login-link{color:var(--accent);font-weight:500;text-decoration:none}.login-link:hover{text-decoration:underline}@keyframes login-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.login-shake{animation:.4s login-shake}.project-picker-overlay{z-index:10000;background:radial-gradient(ellipse 80% 60% at 50% -20%, var(--accent-bg) 0%, transparent 70%), var(--bg);opacity:0;box-sizing:border-box;place-items:center;padding:24px;transition:opacity .35s;display:grid;position:fixed;inset:0;overflow-y:auto}.project-picker-overlay.project-picker-visible{opacity:1}.project-picker-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:520px;max-width:100%;box-shadow:var(--shadow);padding:var(--space-10) var(--space-10) var(--space-8);box-sizing:border-box;gap:var(--space-6);flex-direction:column;transition:transform .35s;display:flex;transform:translateY(12px)}@media (width<=600px){.project-picker-card{padding:var(--space-8) var(--space-5) var(--space-6)}}.project-picker-visible .project-picker-card{transform:translateY(0)}.project-picker-header{text-align:center}.project-picker-title{font-family:var(--heading);font-size:var(--text-page-size);line-height:var(--text-page-line);letter-spacing:-.015em;color:var(--text-h);margin:var(--space-3) 0 var(--space-1);font-weight:600}.project-picker-subtitle{font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--text);margin:0}.project-picker-list-section{gap:var(--space-2);flex-direction:column;display:flex}.project-picker-list-label{font-size:var(--text-overline-size);line-height:var(--text-overline-line);text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0;font-weight:600}.project-picker-list{gap:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);max-height:260px;padding:var(--space-1);background:var(--bg-surface);flex-direction:column;display:flex;overflow-y:auto}.project-picker-item{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background .12s;display:flex}.project-picker-item:hover{background:var(--bg-hover)}.project-picker-item-info{flex-direction:column;gap:2px;min-width:0;display:flex}.project-picker-item-name{font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.project-picker-item-meta{font-size:var(--text-meta-size);line-height:var(--text-meta-line);color:var(--text)}.project-picker-open-button{font-family:var(--sans);min-height:var(--control-h-compact);font-size:var(--text-data-size);line-height:var(--text-data-line);padding:0 var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;font-weight:500;transition:background .12s,color .12s}.project-picker-open-button:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.project-picker-status{font-size:var(--text-data-size);line-height:var(--text-data-line);color:var(--text);margin:6px 8px}.project-picker-status-error{color:#b91c1c}.project-picker-actions{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.project-picker-upload-button{font-family:var(--sans);min-height:var(--control-h-large);font-size:var(--text-body-size);line-height:var(--text-body-line);padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);background:var(--accent-strong);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:opacity .15s,transform .1s;display:flex}.project-picker-upload-button:hover{opacity:.9}.project-picker-upload-button:active{transform:scale(.98)}.project-picker-skip-button{font-family:var(--sans);min-height:var(--control-h);font-size:var(--text-data-size);line-height:var(--text-data-line);padding:var(--space-2) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;font-weight:500;transition:background .12s,color .12s}.project-picker-skip-button:hover{background:var(--bg-surface);color:var(--text-h)}.project-loading-overlay{z-index:11000;box-sizing:border-box;background:radial-gradient(ellipse 80% 60% at 50% -20%, var(--accent-bg) 0%, transparent 70%), var(--bg);opacity:0;pointer-events:all;place-items:center;padding:24px;transition:opacity .2s;display:grid;position:fixed;inset:0}.project-loading-overlay.project-loading-visible{opacity:1}.project-loading-panel{background:var(--bg);border:1px solid var(--border);width:420px;max-width:100%;box-shadow:var(--shadow);box-sizing:border-box;border-radius:12px;padding:28px 30px;transition:transform .2s;transform:translateY(8px)}.project-loading-visible .project-loading-panel{transform:translateY(0)}.project-loading-title{font-family:var(--heading);letter-spacing:0;color:var(--text-h);margin:0 0 6px;font-size:18px;font-weight:600}.project-loading-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:14px;font-weight:600;overflow:hidden}.project-loading-detail{color:var(--text);margin:0 0 18px;font-size:13px;line-height:1.45}.project-loading-track{background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;width:100%;height:8px;overflow:hidden}.project-loading-bar{border-radius:inherit;background:var(--accent-strong);width:8%;height:100%;transition:width .45s}.agentic-sidebar{z-index:5000;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);width:min(360px,100vw - 32px);max-height:calc(100vh - 112px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;flex-direction:column;display:flex;position:fixed;top:86px;right:16px;overflow:hidden}.agentic-sidebar[hidden]{display:none}.agentic-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.agentic-sidebar-title{font-family:var(--heading);color:var(--text-h);margin:0;font-size:15px;font-weight:600}.agentic-sidebar-close{border:1px solid var(--border);background:var(--bg-surface);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:6px}.agentic-sidebar-body{color:var(--text);padding:16px;font-size:13px;line-height:1.45}.type-display{font-size:var(--text-display-size);line-height:var(--text-display-line);letter-spacing:-.025em;font-weight:600}.type-page-title{font-size:var(--text-page-size);line-height:var(--text-page-line);letter-spacing:-.015em;font-weight:600}.type-section-title{font-size:var(--text-section-size);line-height:var(--text-section-line);letter-spacing:-.01em;font-weight:600}.type-subsection-title{font-size:var(--text-subsection-size);line-height:var(--text-subsection-line);font-weight:600}.type-body{font-size:var(--text-body-size);line-height:var(--text-body-line);font-weight:400}.type-data{font-size:var(--text-data-size);line-height:var(--text-data-line)}.type-meta{font-size:var(--text-meta-size);line-height:var(--text-meta-line)}.type-overline{font-size:var(--text-overline-size);line-height:var(--text-overline-line);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.numeric{font-variant-numeric:tabular-nums lining-nums}.view-page-header{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.view-page-meta{color:var(--text);font-size:var(--text-data-size);line-height:var(--text-data-line)}.overview-container{width:100%;max-width:1200px;height:100%;padding:var(--space-8);color:var(--color-text);margin:0 auto;overflow-y:auto}.overview-header{padding-bottom:var(--space-6);margin-bottom:var(--space-8);border-bottom:1px solid var(--color-border)}.overview-last-modified,.overview-metric-label,.overview-workflow-description{color:var(--color-text-muted);font-size:var(--text-meta-size);line-height:var(--text-meta-line)}.overview-last-modified{margin-top:var(--space-1)}.overview-description{max-width:72ch;margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-body-size);line-height:var(--text-body-line)}.overview-metadata{align-items:center;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.overview-chip,.overview-language-select{min-height:var(--control-h-compact);align-items:center;gap:var(--space-1);padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:var(--text-data-size);line-height:var(--text-data-line);border:1px solid #0000;display:inline-flex}.overview-language-select{border-color:var(--color-border);background:var(--color-surface);cursor:pointer}.overview-status-ready{color:var(--color-success)}.overview-status-pending{color:var(--color-warning)}.overview-summary-grid{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.overview-card{min-height:224px;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.overview-readiness-card{background:var(--color-surface-muted)}.overview-card-title{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-section-size);line-height:var(--text-section-line);letter-spacing:-.01em;font-weight:600;display:flex}.overview-icon{width:20px;height:20px;color:var(--color-accent);flex:0 0 20px}.overview-readiness-list{gap:var(--space-3);font-size:var(--text-body-size);line-height:var(--text-body-line);margin:0;padding:0;list-style:none;display:grid}.overview-readiness-list li{align-items:center;gap:var(--space-3);display:flex}.overview-readiness-dot{border-radius:999px;flex:0 0 10px;width:10px;height:10px}.overview-readiness-dot-ready{background:var(--color-success)}.overview-readiness-dot-pending{background:var(--color-warning)}.overview-readiness-dot-error{background:var(--color-error)}.overview-inventory-grid{gap:var(--space-5) var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.overview-metric{color:var(--color-accent);letter-spacing:-.02em;font-size:28px;font-weight:500;line-height:32px}.overview-workflows{margin-top:var(--space-8)}.overview-workflow-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.overview-workflow-card{align-items:flex-start;gap:var(--space-2);min-height:144px;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;flex-direction:column;transition:border-color .15s,background .15s,transform .15s;display:flex}.overview-workflow-card:hover:not(:disabled){border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 4%, var(--color-surface));transform:translateY(-1px)}.overview-workflow-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.overview-workflow-card:disabled{opacity:.46;cursor:not-allowed}.overview-workflow-title{margin-top:var(--space-1);font-size:var(--text-subsection-size);line-height:var(--text-subsection-line);font-weight:600}.demand-view{--demand-forward:var(--color-accent-strong);--demand-reverse:#c4512d;background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;display:flex;overflow:hidden}.demand-page-header{justify-content:space-between;gap:var(--space-6)}.demand-page-heading{align-items:baseline;gap:var(--space-3);min-width:0;display:flex}.demand-interval-heading{text-align:right;flex-shrink:0}.demand-interval-heading strong,.demand-interval-heading span{display:block}.demand-interval-heading strong{color:var(--color-text);font:600 var(--text-subsection-size) / var(--text-subsection-line) var(--font-mono)}.demand-interval-heading span{color:var(--color-text-muted);font-size:var(--text-overline-size);line-height:var(--text-overline-line)}.demand-scroll-area{flex:1;min-height:0;overflow:auto}.demand-flow-section{padding:var(--space-5) var(--space-6) var(--space-4)}.demand-section-heading{gap:var(--space-8);padding-bottom:var(--space-4);grid-template-columns:minmax(220px,1fr) minmax(280px,520px);align-items:end;display:grid}.demand-section-heading .type-overline,.demand-analysis-heading .type-overline{margin-bottom:var(--space-1);color:var(--color-text-subtle)}.demand-section-heading p,.demand-analysis-description{color:var(--color-text-muted);font-size:var(--text-data-size);line-height:var(--text-data-line)}.demand-lens-stage{border-top:1px solid var(--color-text);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.demand-corridor-scroll{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;width:100%;overflow:auto hidden}.demand-corridor{width:100%;height:auto;font-family:var(--font-sans);display:block}.demand-station-grid{stroke:var(--color-border);stroke-width:1px;opacity:.72}.demand-flow-ribbon{opacity:.84;transition:d .24s cubic-bezier(.22,1,.36,1)}.demand-flow-ribbon-forward,.demand-timeline-area-forward{fill:var(--demand-forward)}.demand-flow-ribbon-reverse,.demand-timeline-area-reverse{fill:var(--demand-reverse)}.demand-ribbon-tracer{stroke:#ffffffa8;stroke-width:1.5px;stroke-dasharray:3 14}.demand-section-selection{fill:var(--color-text);opacity:.045;pointer-events:none}.demand-section-hit{fill:#0000;cursor:crosshair}.demand-section-hit:focus-visible{fill:color-mix(in srgb, var(--color-accent) 10%, transparent);stroke:var(--color-accent);stroke-width:2px;outline:none}.demand-pair-arc{fill:none;stroke-linecap:round;pointer-events:none}.demand-pair-arc-forward{stroke:var(--demand-forward)}.demand-pair-arc-reverse{stroke:var(--demand-reverse)}.demand-corridor-line{stroke:var(--color-text);stroke-width:2px}.demand-station-node{cursor:pointer;outline:none}.demand-station-hit{fill:#0000;pointer-events:all}.demand-station-activity{fill:var(--color-text);opacity:.075;transition:r .24s cubic-bezier(.22,1,.36,1)}.demand-station-dot{fill:var(--color-bg);stroke:var(--color-text);stroke-width:2px}.demand-station-node:hover .demand-station-dot,.demand-station-node:focus-visible .demand-station-dot{stroke:var(--color-accent);stroke-width:3px}.demand-station-dot-origin{fill:var(--demand-forward);stroke:var(--demand-forward)}.demand-station-dot-destination{fill:var(--demand-reverse);stroke:var(--demand-reverse)}.demand-station-marker{fill:#fff;text-anchor:middle;pointer-events:none;font-size:9px;font-weight:700}.demand-station-label{fill:var(--color-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:500}.demand-station-label-selected{fill:var(--color-text);font-weight:650}.demand-direction-label{letter-spacing:.035em;text-transform:uppercase;font-size:11px;font-weight:650}.demand-direction-label-forward{fill:var(--demand-forward)}.demand-direction-label-reverse{fill:var(--demand-reverse)}.demand-time-controls{grid-template-columns:var(--control-h-compact) minmax(160px, 1fr) 108px;gap:var(--space-3);padding:var(--space-3) 0 var(--space-1);align-items:center;display:grid}.demand-play-button{width:var(--control-h-compact);height:var(--control-h-compact);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-bg);color:var(--color-text);cursor:pointer;padding:0}.demand-play-button:hover,.demand-clear-pair:hover{border-color:var(--color-text-muted);background:var(--color-surface-muted)}.demand-play-button:focus-visible,.demand-clear-pair:focus-visible,.demand-pair-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.demand-time-controls input[type=range]{width:100%;accent-color:var(--color-accent-strong);cursor:pointer}.demand-time-readout{color:var(--color-text-muted);font:500 var(--text-meta-size) / var(--text-meta-line) var(--font-mono);text-align:right}.demand-timeline{width:100%;height:auto;max-height:92px;display:block;overflow:visible}.demand-timeline-axis{stroke:var(--color-border);stroke-width:1px}.demand-timeline-area{opacity:.64}.demand-timeline-lens{fill:var(--color-text);opacity:.07;pointer-events:none}.demand-timeline-cursor{stroke:var(--color-text);stroke-width:1.5px;pointer-events:none}.demand-timeline-hit{fill:#0000;cursor:pointer}.demand-timeline-label{fill:var(--color-text-subtle);font:500 10px / 1 var(--font-mono)}.demand-flow-footer{gap:var(--space-6);padding-top:var(--space-2);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.demand-flow-legend{gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-overline-size);line-height:var(--text-overline-line);flex-wrap:wrap;display:flex}.demand-flow-legend>span{align-items:center;gap:var(--space-2);display:inline-flex}.demand-legend-rule{width:24px;height:5px;display:inline-block}.demand-legend-forward{background:var(--demand-forward)}.demand-legend-reverse{background:var(--demand-reverse)}.demand-legend-node{background:color-mix(in srgb, var(--color-text) 16%, transparent);border:1px solid var(--color-text);border-radius:50%;width:9px;height:9px;display:inline-block}.demand-section-readout{text-align:right;min-width:270px}.demand-section-readout strong,.demand-section-readout span{display:block}.demand-section-readout strong{color:var(--color-text);font-size:var(--text-data-size);line-height:var(--text-data-line);font-weight:650}.demand-section-readout span{color:var(--color-text-muted);font-size:var(--text-overline-size);line-height:var(--text-overline-line)}.demand-analysis-grid{border-top:1px solid var(--color-border);grid-template-columns:minmax(340px,.84fr) minmax(480px,1.16fr);display:grid}.demand-analysis-panel{min-width:0;padding:var(--space-5) var(--space-6) var(--space-6)}.demand-analysis-panel+.demand-analysis-panel{border-left:1px solid var(--color-border)}.demand-analysis-heading{min-height:var(--control-h-compact);justify-content:space-between;align-items:start;gap:var(--space-4);display:flex}.demand-analysis-meta{max-width:48%;color:var(--color-text-muted);font-size:var(--text-meta-size);line-height:var(--text-meta-line);text-align:right}.demand-analysis-description{max-width:62ch;margin-top:var(--space-2)}.demand-pair-list{margin-top:var(--space-4);border-top:1px solid var(--color-border)}.demand-pair-row{gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-2) 0;border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border-radius:0;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;display:grid}.demand-pair-row:hover{background:var(--color-surface-muted)}.demand-pair-rank{color:var(--color-text-subtle);font:500 var(--text-overline-size) / var(--text-overline-line) var(--font-mono);text-align:center}.demand-pair-route{align-items:center;column-gap:var(--space-1);min-width:0;font-size:var(--text-data-size);line-height:var(--text-data-line);grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);display:grid}.demand-pair-route>span:not(.demand-pair-arrow):not(.demand-pair-meter){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.demand-pair-arrow{color:var(--color-text-subtle);text-align:center}.demand-pair-meter{height:2px;margin-top:var(--space-1);background:var(--color-border);grid-column:1/-1}.demand-pair-meter>span{background:var(--demand-forward);height:100%;display:block}.demand-pair-value{color:var(--color-text);font:600 var(--text-data-size) / var(--text-data-line) var(--font-mono);white-space:nowrap}.demand-pair-value small{color:var(--color-text-muted);font:500 var(--text-overline-size) / var(--text-overline-line) var(--font-sans)}.demand-clear-pair{min-height:var(--control-h-compact);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-bg);color:var(--color-text);font-size:var(--text-meta-size);cursor:pointer}.demand-od-selection{min-height:40px;padding-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-data-size);line-height:var(--text-data-line);align-items:center;display:flex}.demand-origin{color:var(--demand-forward)}.demand-destination{color:var(--demand-reverse)}.demand-total{margin-left:var(--space-3)}.demand-histogram{height:224px;margin-top:var(--space-2)}.demand-panel-empty{width:100%;height:100%;min-height:112px;padding:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-data-size);line-height:var(--text-data-line);text-align:center;justify-content:center;align-items:center;display:flex}.demand-empty-state{min-height:0;padding:var(--space-6);color:var(--color-text-muted);font-size:var(--text-body-size);line-height:var(--text-body-line);text-align:center;flex:1;justify-content:center;align-items:center;display:flex}@media (prefers-color-scheme:dark){.demand-view{--demand-forward:#a78bfa;--demand-reverse:#fb923c}}@media (width<=1100px){.demand-analysis-grid{grid-template-columns:1fr}.demand-analysis-panel+.demand-analysis-panel{border-top:1px solid var(--color-border);border-left:0}}@media (width<=760px){.demand-page-header{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.demand-page-heading{flex-wrap:wrap}.demand-interval-heading,.demand-section-readout{text-align:left;min-width:0}.demand-flow-section,.demand-analysis-panel{padding-right:var(--space-4);padding-left:var(--space-4)}.demand-section-heading{gap:var(--space-2);grid-template-columns:1fr}.demand-time-controls{grid-template-columns:var(--control-h-compact) minmax(100px, 1fr)}.demand-time-readout{text-align:left;grid-column:1/-1}.demand-flow-footer{gap:var(--space-3);grid-template-columns:1fr}}.data-view-empty-state{width:100%;height:100%;padding:var(--space-6);background:var(--color-bg);color:var(--color-text-muted);font-size:var(--text-body-size);line-height:var(--text-body-line);text-align:center;justify-content:center;align-items:center;display:flex}.timetable-view{background:var(--color-bg);width:100%;height:100%;display:flex}.timetable-view-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.timetable-chart-section{padding:var(--space-2) var(--space-6) 0}.train-service-plan-view{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;display:flex;overflow:hidden}.rolling-stock-view{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;display:flex}.rolling-stock-selector{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-data-size);line-height:var(--text-data-line);font-weight:500;display:flex}.rolling-stock-content{gap:var(--space-8);min-width:0;padding:var(--space-6) var(--space-8);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sim-cockpit-header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-4) var(--space-6) var(--space-3);display:flex}.sim-cockpit-header .view-page-meta{margin-top:var(--space-1)}.report-page-header,.report-document-header{padding-bottom:var(--space-4);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.report-page-header p,.report-page-message,.report-document-meta{color:var(--color-text-muted);font-size:var(--text-body-size);line-height:var(--text-body-line)}.report-page-header p,.report-page-message{margin-top:var(--space-2)}.report-document-meta{gap:var(--space-2) var(--space-6);font-size:var(--text-data-size);line-height:var(--text-data-line);flex-wrap:wrap;display:flex}@media (width<=1040px){.overview-workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.overview-container{padding:var(--space-6)}.overview-summary-grid,.overview-workflow-grid{grid-template-columns:minmax(0,1fr)}.overview-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.context-menu{padding:var(--space-1);border-radius:var(--radius-md)}.context-menu-item{min-height:var(--row-h-compact);padding:0 var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-data-size);line-height:var(--text-data-line)}.traction-delete-modal,.project-preprocess-modal{gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-lg)}.traction-delete-modal-title,.project-preprocess-modal-title{font-size:var(--text-page-size);line-height:var(--text-page-line);letter-spacing:-.015em;font-weight:600}.traction-delete-modal-subtitle,.project-preprocess-modal-subtitle,.project-preprocess-modal-detail{font-size:var(--text-data-size);line-height:var(--text-data-line)}.traction-delete-modal-actions,.project-preprocess-modal-actions{gap:var(--space-2)}.traction-delete-modal-btn,.project-preprocess-modal-btn{min-height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-data-size);line-height:var(--text-data-line);font-weight:600}.project-preprocess-modal-btn-primary{background:var(--accent-strong);border-color:var(--accent-strong)}.project-import-modal-label,.diagram-palette-title{font-size:var(--text-overline-size);line-height:var(--text-overline-line);letter-spacing:.06em}.project-import-modal-input{min-height:var(--control-h);border-radius:var(--radius-sm);font-size:var(--text-data-size);line-height:var(--text-data-line)}.project-loading-panel{padding:var(--space-6);border-radius:var(--radius-lg)}.project-loading-title,.agentic-sidebar-title{font-size:var(--text-section-size);line-height:var(--text-section-line);letter-spacing:-.01em;font-weight:600}.project-loading-detail,.agentic-sidebar-body{font-size:var(--text-data-size);line-height:var(--text-data-line)}
