:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--shell:#313438;--panel:#2b2d30;--border:#383b40;--text:#d4d4d4;--text-dim:#8e939d;--accent:#4da3ff;--warn:#f59e0b;--danger:#e5534b;--surface:#222427;--input-bg:#1c1d1f;--hover:#2f3237;--press:#484d54;--head-bg:#35383d;--group-bg:#2a2d31;--sel-bg:#2d4c6f;--sel-text:#fff;--sel-edge:#4679b2;--border-hard:#1e1f21;--titlebar:linear-gradient(180deg, #4b5056 0%, #3a3e43 100%);--sky-top:#2a2d33;--sky-horizon:#151618;--grid:#34383d;--grid-cell:#272a2f;--font:"Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;--ctl-h:22px;--state-pending-fg:#9aa0a6;--state-pending-bg:#2f3237;--state-queued-fg:#8fc2e8;--state-queued-bg:#263b4e;--state-running-fg:#4da3ff;--state-running-bg:#1e3550;--state-done-fg:#6fca75;--state-done-bg:#1f3524;--state-failed-fg:#ef8079;--state-failed-bg:#3a2422;--resource-warn:#e5a50a;--resource-danger:#c62828}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--shell);font-size:13px}button,input{font:inherit;color:inherit}*{box-sizing:border-box}a,.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}a:hover,.link:hover{text-decoration:underline}[data-focus-visible]{outline:2px solid var(--accent);outline-offset:1px}.btn{height:var(--ctl-h);border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:2px;padding:0 10px}.btn:hover{background:var(--hover)}.btn[data-pressed]{background:var(--press)}.btn[data-selected],.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--sel-bg)}.btn[data-disabled]{opacity:.5;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:#68b2ff}.btn-group{gap:6px;display:flex}.field{flex-direction:column;gap:3px;display:flex}.field label{color:var(--text-dim)}.field input{height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);border-radius:2px;padding:0 6px}.fields{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.fields input{width:100%;min-width:0}.checks{flex-direction:column;gap:4px;margin-bottom:4px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;display:flex}.check .box{border:1px solid var(--border);background:var(--input-bg);flex:none;justify-content:center;align-items:center;width:12px;height:12px;font-size:10px;display:inline-flex}.check[data-selected] .box{border-color:var(--accent);color:var(--accent)}.check[data-focus-visible]{outline:2px solid var(--accent);outline-offset:1px}.check[data-disabled]{cursor:default;opacity:.7}.field .hint{font-size:11px}.alert .btn{margin-top:6px}.legend-bar{border:1px solid var(--border);height:10px}.legend-scale{color:var(--text-dim);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.swatch{vertical-align:-1px;border:1px solid var(--border);background:#6b7078;width:10px;height:10px;display:inline-block}.legend-binary .swatch{vertical-align:-1px;border:1px solid var(--line,#888);width:12px;height:12px;margin:0 4px 0 10px;display:inline-block}.form{flex-direction:column;gap:10px;width:280px;display:flex}.alert{border:1px solid var(--border);background:var(--panel);border-left-width:4px;max-width:420px;padding:8px 10px}.alert h3{margin:0 0 4px;font-size:12px}.alert p{color:var(--text-dim);margin:0}.alert-negative{border-left-color:var(--danger)}.alert-notice{border-left-color:var(--warn)}.center-page{flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;display:flex}.center-page h1{margin:0;font-size:16px;font-weight:600}.badge{border:1px solid var(--border);background:var(--panel);border-radius:2px;height:18px;padding:0 6px;font-size:11px;line-height:16px;display:inline-block}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hint{color:var(--text-dim)}.start-page{flex:1;grid-template-columns:1fr 320px;min-height:0;display:grid}.start-page>section{padding:24px}.start-page>section+section{border-left:1px solid var(--border-hard);background:var(--panel)}.start-page h2{margin:0 0 12px;font-size:13px}.card{border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex}.card+.card{margin-top:12px}.list{border-collapse:collapse;width:100%}.list th,.list td{text-align:left;border-bottom:1px solid var(--border);padding:4px 8px}.list th{color:var(--text-dim);font-weight:400}.bar{background:var(--shell);border:1px solid var(--border);height:6px}.bar>div{background:var(--accent);height:100%}.ws{flex-direction:column;height:100%;display:flex}.titlebar{border-bottom:1px solid var(--border-hard);background:var(--titlebar);color:#e6e6e6;align-items:center;gap:8px;height:26px;padding:0 8px;display:flex}.titlebar .title{font-weight:600}.titlebar .grow{flex:1}.titlebar .sep{background:#00000059;width:1px;height:14px;box-shadow:1px 0 #ffffff0f}.titlebar .brand{color:var(--accent);padding:0 4px;font-weight:700;text-decoration:none}.titlebar .title{color:#fff}.menubtn{height:var(--ctl-h);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:0 8px}.titlebar .menubtn{font-size:13px}.titlebar .doc{background:#00000038;border-radius:2px;align-items:center;gap:8px;min-width:0;height:20px;padding:0 10px;display:flex}.titlebar .doc .title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.titlebar .doc .dot{color:var(--accent)}.titlebar .doc .meta{color:var(--text-dim);white-space:nowrap;font-size:12px}.menubtn:hover,.menubtn[data-pressed]{background:var(--press);color:var(--sel-text)}.rail{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;width:40px;display:flex}.rail-btn{cursor:pointer;width:40px;height:40px;color:var(--text-dim);background:0 0;border:0;border-left:2px solid #0000;justify-content:center;align-items:center;display:flex}.rail-btn svg{width:20px;height:20px}.rail-btn:hover{color:#fff;background:var(--hover)}.rail-btn[aria-pressed=true]{color:var(--accent);border-left-color:var(--accent);background:var(--surface)}.rail-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.toolpanel{border-right:1px solid var(--border-hard);background:var(--panel);flex-direction:column;width:280px;min-width:200px;max-width:60vw;display:flex;position:relative}.panel-stack{display:flex;position:relative}.toolpanel-detail{width:300px;position:absolute;top:0;bottom:0;left:100%}.toolpanel-detail.min{min-width:0;width:24px!important}.toolpanel-detail.min .palette-head{writing-mode:vertical-rl;cursor:default;border-bottom:0;height:auto;padding:6px 0}.edge-handle{cursor:col-resize;z-index:1;width:6px;height:100%;position:absolute;top:0;right:-3px}.edge-handle.left{left:-3px;right:auto}.thumbs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.thumb-item{min-width:0;position:relative}.thumb-item .thumb{width:100%}.thumb-check{z-index:1;margin:0;position:absolute;top:4px;left:4px}.thumb{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;flex-direction:column;padding:0;display:flex;overflow:hidden}.thumb img{object-fit:contain;background:var(--surface);flex:1;width:100%;min-height:0}.thumb>span{margin-top:auto;padding:2px 4px;font-size:11px}.thumb>span>strong{overflow-wrap:anywhere;font-weight:600}.thumb>span>small{text-overflow:ellipsis;white-space:nowrap;font-size:10px;display:block;overflow:hidden}.thumb-more{z-index:1;background:var(--panel);position:absolute;top:2px;right:2px}.analysis-fields .sun-grid{grid-template-columns:30% minmax(0,1fr) 90px}.analysis-fields .sun-grid>span{text-align:right}.thumb[aria-pressed=true]{outline:2px solid var(--accent)}.thumb .thumb-solar{text-align:center;flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.results-actions{flex-wrap:wrap;align-items:center}.results-actions .btn{white-space:nowrap}.thumb .badge{background:var(--danger);color:#fff;border:0;height:auto;margin-left:4px;padding:0 4px;font-size:10px;line-height:normal}a.btn{color:inherit;align-items:center;display:inline-flex}.ws-body{flex:1;min-height:0;display:flex;position:relative}.viewport{z-index:0;background:linear-gradient(var(--sky-top), var(--sky-horizon) 70%);position:absolute;inset:0}.viewport.bright-sky{--sky-top:#b9cde4;--sky-horizon:#eef2f7}.rail,.toolpanel,.palette,.panel-stack{z-index:1}.palette{border-left:1px solid var(--border-hard);background:var(--panel);flex-direction:column;width:300px;min-width:200px;max-width:60vw;margin-left:auto;display:flex;position:relative}.palette.collapsed{min-width:0;width:24px!important}.palette-head{color:#a0a5ad;border-bottom:1px solid var(--border-hard);background:#2a2d31;align-items:center;height:26px;padding:0 8px;font-weight:600;display:flex}.palette-head .grow{flex:1}.palette-body{flex:1;padding:10px;overflow:auto}.palette-body h3{margin:10px 0 4px;font-size:12px}.palette-body h3:first-child{margin-top:0}.props{border-collapse:collapse;width:100%;font-size:11px}.props th{text-align:left;color:var(--text-dim);vertical-align:top;width:72px;padding:2px 0;font-weight:400}.props td{word-break:break-all;padding:2px 0}.swatches{flex-wrap:wrap;gap:3px;margin:4px 0;display:flex}.swatch{border:1px solid var(--border,#999);cursor:pointer;border-radius:2px;width:18px;height:18px;padding:0}.swatch.on{outline:2px solid var(--accent,#2a6cff);outline-offset:1px}.palette.collapsed .palette-head{writing-mode:vertical-rl;border-bottom:0;height:auto;padding:6px 0}.iconbtn{cursor:pointer;width:18px;height:18px;color:var(--text-dim);background:0 0;border:0;padding:0}.iconbtn:hover{color:var(--text)}.cmdlog{border-top:1px solid var(--border-hard);background:#18191b;flex-direction:column;font-size:11px;display:flex}.cmdlog-handle{cursor:row-resize;background:var(--border);height:4px}.cmdlog-body{min-height:0;color:var(--text-dim);flex:none;padding:2px 8px;font-family:Consolas,Malgun Gothic,monospace;overflow:auto}.cmdlog-body>div:not([class]){white-space:pre;line-height:18px}.cmdlog-body time{color:#6f747c;margin-right:8px}.dock-tabs{border-bottom:1px solid var(--border);gap:2px;padding:0 6px;display:flex}.dock-tabs>button{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;margin-bottom:-1px;padding:3px 8px}.dock-tabs>button:hover{color:var(--text)}.dock-tabs>button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.dock-tabs>button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dock-empty{line-height:18px}.dock-kv{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0 16px;margin:0;display:grid}.dock-kv>div{gap:8px;line-height:18px;display:flex}.dock-kv dt{flex:none;width:64px}.dock-kv dd{color:var(--text);margin:0}.cmdlog-body .dock-table{font-family:inherit}.cmdlog-body .dock-table td,.cmdlog-body .dock-table th{padding:1px 8px}.dock-row-pick{cursor:pointer;-webkit-user-select:none;user-select:none}.dock-table tr[aria-selected=true] td{color:var(--accent)}.dock-output{flex-direction:column;gap:4px;padding:2px 0;display:flex}.dock-output .btn-group{align-self:flex-start}.dock-output .dock-table:first-of-type{width:auto}.dock-fill{flex-direction:column;gap:2px;height:100%;display:flex}.dock-fill>div:last-child{white-space:nowrap;line-height:18px}.dock-scroll{flex:1;height:100%;min-height:0;overflow:auto}.dock-win tr{height:20px}.dock-win td{white-space:nowrap}.dock-sort{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.dock-grid-bar{gap:4px;display:flex}.dock-grid-bar .btn{height:20px;padding:0 6px}.dock-grid-bar .btn:last-child{margin-left:auto}.statusbar{border-top:1px solid var(--border-hard);height:22px;color:var(--text-dim);background:#1c1d1f;align-items:center;gap:14px;padding:0 10px;font-size:11px;display:flex}.statusbar .grow{flex:1}.statusbar-vcb{align-items:center;gap:6px;display:flex}.statusbar-vcb input{height:16px;padding:0 4px;font-size:11px}.statusbar-vcb input[aria-invalid=true]{outline:1px solid var(--danger)}.statusbar-err{color:var(--danger)}.vp-sep{background:var(--border);align-self:stretch;width:1px;margin:0 3px}.timeline-slot{z-index:1;flex:1;align-self:flex-end;min-width:0}.vp-timeline{background:var(--panel);border-top:1px solid var(--border-hard);align-items:center;gap:12px;padding:4px 20px 2px;display:flex}.vp-timeline .btn{justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:inline-flex}.vp-timeline-slider{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.vp-timeline-track{flex:1;min-width:0}.vp-timeline-time{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;order:1;font-size:11px}.vp-timeline-time small{color:var(--text-dim);font-size:10px}.vp-timeline-track{cursor:pointer;align-items:center;height:26px;display:flex;position:relative}.vp-timeline-track:before{content:"";background:var(--border);height:3px;position:absolute;left:0;right:0}.vp-timeline-ticks{pointer-events:none;position:absolute;inset:0}.vp-timeline-ticks span{background:var(--border);width:1px;height:4px;position:absolute;top:3px}.vp-timeline-ticks span.major{background:var(--text-dim);height:9px;top:0}.vp-timeline-ticks small{color:var(--text-dim);white-space:nowrap;font-size:10px;position:absolute;top:15px;transform:translate(-50%)}.vp-timeline-fill{background:var(--accent);height:3px;position:absolute;left:0}.vp-timeline-thumb{background:var(--accent);border-radius:50%;outline:0;width:11px;height:11px;top:50%}.vp-timeline-thumb[data-focus-visible]{box-shadow:0 0 0 2px var(--accent)}.vp-overlay{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.popover{border:1px solid var(--press);background:#25272a;min-width:140px;box-shadow:0 4px 12px #00000080}.menu{outline:0;padding:4px 0}.menu-item{cursor:pointer;outline:0;padding:6px 12px;font-size:13px}.menu-item[data-focused]{background:var(--sel-bg)}.menu-item[data-disabled]{opacity:.5;cursor:default}.menu-kbd{float:right;font:inherit;color:var(--text-dim);margin-left:24px;font-size:12px}.menu-item.danger,.menu-item.danger .menu-kbd{color:var(--state-failed-fg)}.menu-item[data-selection-mode]{padding-left:24px;position:relative}.menu-item[data-selected]:before{content:"✓";position:absolute;left:8px}.menu-header{color:var(--text-dim);padding:4px 12px;font-size:11px}.menu-item[data-has-submenu]{padding-right:24px;position:relative}.menu-item[data-has-submenu]:after{content:"▸";color:var(--text-dim);position:absolute;right:8px}.menu-sep{border:0;border-top:1px solid var(--border);height:0;margin:4px 0}.react-aria-ModalOverlay{z-index:10;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid #4c5056;border-radius:4px;max-width:92vw;max-height:86vh;overflow:auto;box-shadow:0 10px 30px #000c}.dialog{outline:0;flex-direction:column;gap:8px;min-width:320px;padding:16px;display:flex}.dialog h2,.dialog [slot=title]{color:#fff;border-bottom:1px solid var(--border-hard);background:#383b40;align-items:center;height:28px;margin:-16px -16px 8px;padding:0 10px;font-size:12px;font-weight:600;display:flex}.dialog-actions{border-top:1px solid var(--border-hard);background:#222426;justify-content:flex-end;margin:8px -16px -16px;padding:8px 12px}.rail{border-right:1px solid var(--border-hard);background:#232528;flex:0 0 40px;width:40px;padding:6px 0;overflow-y:auto}.rail-btn{color:#b5b9c0;justify-content:center;gap:0;width:100%;height:34px;padding:0;position:relative}.rail-badge{background:var(--accent);color:#fff;text-align:center;border-radius:7px;min-width:13px;height:13px;padding:0 3px;font-size:9px;font-weight:600;line-height:13px;position:absolute;top:3px;right:3px}.rail-sep{border:0;border-top:1px solid #4a4e55;flex:none;margin:5px 9px}.rail-dot{background:#4ade80;border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;right:5px}.ribbon{background:var(--panel);border-bottom:1px solid var(--border-hard);flex:none;align-items:center;gap:2px;height:30px;padding:0 6px;display:flex}.ribbon-group{align-items:center;gap:2px;display:flex}.ribbon-sep{background:#3f4248;width:1px;height:14px;margin:0 4px}.ribbon-sep-major{background:var(--border-hard);height:20px;margin:0 10px;box-shadow:1px 0 #3f4248}.ribbon .grow{flex:1}.ribbon-btn{color:#b5b9c0;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:4px;min-width:24px;height:24px;padding:0 4px;font-size:11px;display:inline-flex}.ribbon-btn svg{width:15px;height:15px}.ribbon-btn:hover{color:#fff;background:var(--hover)}.ribbon-btn[aria-pressed=true]{color:#fff;border-color:var(--sel-edge);background:#264566}.ribbon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ribbon-btn-wide{padding:0 7px}.ribbon-btn-primary:not(:disabled){color:#fff;background:var(--accent);border-color:var(--accent)}.ribbon-btn-primary:not(:disabled):hover{background:#68b2ff}.ribbon-fly{display:inline-flex;position:relative}.ribbon-fly-more{cursor:pointer;background:linear-gradient(135deg,#0000 55%,#8e939d 55%);border:0;width:9px;height:9px;padding:0;position:absolute;bottom:0;right:0}.ribbon-fly-more:hover:not(:disabled){background:linear-gradient(135deg,#0000 55%,#fff 55%)}.ribbon-fly-more:disabled{opacity:.4;cursor:default}.ribbon-menu .menu-item svg{vertical-align:-2px;width:14px;height:14px;margin-right:8px}.rail-btn svg{flex:none;width:16px;height:16px}.rail-btn small{white-space:nowrap;margin-left:auto;font-size:10px}.rail-btn[aria-pressed=true]{color:#fff;border-left-color:var(--sel-edge);background:#264566;font-weight:500}.toolpanel-analysis{flex-shrink:0;width:470px;min-width:300px}.toolpanel-analysis.toolpanel-narrow{width:280px}.toolpanel-analysis>.palette-body{min-height:0;padding:0;display:flex;overflow:hidden}.analysis-options,.queue-panel{flex-direction:column;width:100%;min-height:0;display:flex}.analysis-fields{flex:1;min-height:0;padding:12px;overflow:auto}.analysis-fields h3,.queue-detail h3{background:var(--group-bg);border:1px solid var(--border-hard);margin:14px 0 9px;padding:5px 7px;font-size:12px}.analysis-fields .list{border:1px solid var(--border);background:var(--surface)}.analysis-fields .btn-group{flex-wrap:wrap}.analysis-fields select{max-width:100%}.analysis-footer{border-top:1px solid var(--border);background:var(--shell);flex:none;padding:10px 12px}.analysis-footer p{overflow-wrap:anywhere;margin:0 0 7px;font-size:11px;line-height:1.5}.analysis-footer .btn-group{flex-wrap:wrap;justify-content:flex-end}.analysis-footer .btn{height:auto;min-height:28px}.btn:disabled{opacity:.5;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,[data-own-keys]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.queue-detail-text{overflow-wrap:anywhere;margin:0;font-size:11px;line-height:1.6}.queue-heading{justify-content:space-between;align-items:center;display:flex}.queue-heading h3{margin:0}.queue-heading span{color:var(--text-dim);font-size:11px}.queue-table-wrap{border:1px solid var(--border);background:var(--surface);flex:1;min-height:140px;overflow:auto}.queue-table{font-size:11px}.queue-table thead{background:var(--head-bg);position:sticky;top:0}.queue-table tbody tr:nth-child(2n){background:#1f2123}.queue-table td{vertical-align:middle;padding:5px}.queue-table th{white-space:nowrap}.queue-table tr[data-selected]{background:var(--sel-bg);color:var(--sel-text)}.queue-select{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;width:100%;padding:3px;display:flex}.queue-select strong{overflow-wrap:anywhere;font-weight:500}.queue-select span{color:var(--text-dim);font-size:10px}.queue-table .col-need{color:var(--text-dim);white-space:nowrap}.queue-table tr[draggable=true]{cursor:grab}.queue-table tr[aria-grabbed=true]{opacity:.5}.queue-table tr[data-dragover=before] td{border-top:2px solid var(--accent,#5aa9ff)}.queue-table tr[data-dragover=after] td{border-bottom:2px solid var(--accent,#5aa9ff)}.analysis-fields fieldset.field{border:0;min-width:0;margin:0;padding:0}.analysis-fields fieldset.field legend{color:var(--text-dim);margin-bottom:3px;padding:0}.result-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.kv td:first-child{color:var(--text-dim);white-space:nowrap;vertical-align:top;width:40%}.kv td:last-child{overflow-wrap:anywhere}.group-body .btn-group{flex-wrap:wrap}.history{table-layout:fixed;font-size:11px}.history td,.history th{text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;overflow:hidden}.history tr[data-selected]{background:var(--sel-bg);color:var(--sel-text)}.trash-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trash-list li{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.trash-list .trash-name{text-overflow:ellipsis;white-space:nowrap;flex:100%;overflow:hidden}.trash-list .grow{flex:1}.check-row{cursor:pointer;align-items:center;gap:5px;padding:4px 0;display:flex}.check-row input{height:auto}.settings-dialog{min-width:420px}.settings-page-body{flex-direction:column;gap:8px;max-height:52vh;padding:10px;display:flex;overflow:auto}.settings-page-body h4{color:var(--text-dim);margin:4px 0 0;font-weight:600}.dialog-actions .grow{flex:1}.state{white-space:nowrap;color:var(--state-pending-fg);background:var(--state-pending-bg);border-radius:2px;padding:0 6px;line-height:16px;display:inline-block}.state[data-state=queued]{color:var(--state-queued-fg);background:var(--state-queued-bg)}.state[data-state=running]{color:var(--state-running-fg);background:var(--state-running-bg)}.state[data-state=done]{color:var(--state-done-fg);background:var(--state-done-bg)}.state[data-state=failed]{color:var(--state-failed-fg);background:var(--state-failed-bg)}.queue-actions{flex-wrap:wrap;gap:5px;padding:9px 0;display:flex}.queue-detail{border-top:1px solid var(--border);padding-bottom:10px}.queue-detail p{overflow-wrap:anywhere;font-size:11px;line-height:1.6}.queue-rename{align-items:flex-end;gap:6px;display:flex}.queue-rename .field{flex:1;min-width:0}.queue-empty{text-align:center;color:var(--text-dim);padding:30px 12px}.viewport{min-width:0}input,select,textarea{height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:2px;min-width:0;padding:0 5px}input[type=file]{height:auto;padding:3px}input[type=range],input[type=checkbox],input[type=radio]{background:0 0;border:0;height:auto;padding:0}.toolpanel-analysis .btn{justify-content:center;min-width:76px}.group{border:1px solid var(--border);background:var(--shell);margin:0 0 8px}.group>summary{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--group-bg);align-items:center;gap:6px;padding:4px 8px;font-weight:600;list-style:none;display:flex}.group>summary h3{font:inherit;margin:0}.group>summary::-webkit-details-marker{display:none}.group>summary:before{content:"▶";color:var(--text-dim);font-size:8px;line-height:1}.group[open]>summary:before{content:"▼"}.group>summary:hover{background:var(--hover)}.group>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.group-body{flex-direction:column;gap:6px;padding:8px;display:flex}.group-body>:first-child{margin-top:0}.group-body>.btn,.group-body>button.btn{align-self:flex-start}.group-body .hint{font-size:11px;line-height:1.5}.analysis-fields .fields{grid-template-columns:1fr;gap:3px;margin:0}.analysis-fields .field{grid-template-columns:30% minmax(0,1fr);align-items:center;gap:0 8px;display:grid}.analysis-fields .field>label,.analysis-fields .field>.react-aria-Label,.analysis-fields label.field{color:var(--text-dim);text-align:right;overflow-wrap:anywhere;line-height:1.3}.analysis-fields .field input,.analysis-fields .field select,.analysis-fields .field .multi-select{text-align:left;color:var(--text);width:100%;min-width:0}.analysis-fields .field[data-disabled]>.react-aria-Label{opacity:.6}.analysis-fields .field:has(:disabled)>label{opacity:.6}.analysis-fields .group-body>.check-row,.analysis-fields .fields>.check-row{margin-left:calc(30% + 8px)}.num-unit{min-width:0;height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);border-radius:2px;align-items:center;display:flex}.num-unit input,.analysis-fields .num-unit input{background:0 0;border:0;flex:1;width:100%;min-width:0;height:100%}.num-unit .unit{color:var(--text-dim);white-space:nowrap;pointer-events:none;padding:0 6px;font-size:11px}.num-unit[data-disabled]{opacity:.6}.num-unit:has(input:disabled){opacity:.6}.show-errors .num-unit:has(input[aria-invalid=true]){border-color:var(--danger)}.field-pair{gap:4px;min-width:0;display:flex}.field-pair>*{flex:1;min-width:0}.multi-select{height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);color:var(--text);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font:inherit;border-radius:2px;padding:0 18px 0 5px;position:relative;overflow:hidden}.multi-select:after{content:"▾";color:var(--text-dim);position:absolute;right:5px}.multi-select[data-disabled]{opacity:.6;cursor:default}.group-body>.section-actions{flex-wrap:wrap;justify-content:flex-end;align-self:stretch}.group>summary .section-aside{color:var(--text-dim);margin-left:auto;font-size:11px;font-weight:400}.analysis-fields .kv-grid{grid-template-columns:30% 1fr;gap:3px 8px;margin:0;display:grid}.analysis-fields .kv-grid dt{color:var(--text-dim);text-align:right}.analysis-fields .kv-grid dd{margin:0}.group-body .group-sub{background:var(--group-bg);color:var(--text-dim);margin:4px 0 0;padding:2px 6px;font-size:11px;font-weight:600}.analysis-fields .field>.hint,.analysis-fields .field>[slot=description]{grid-column:2;margin:1px 0 3px}.analysis-fields .field>[slot=errorMessage],.analysis-fields .field>.field-error{color:var(--danger);grid-column:2;margin:1px 0 3px;font-size:11px;line-height:1.4}.show-errors .analysis-fields input[aria-invalid=true]{border-color:var(--danger)}.analysis-options:not(.show-errors) .analysis-fields .field>[slot=errorMessage],.analysis-options:not(.show-errors) .analysis-fields .field>.field-error,.analysis-options:not(.show-errors) [data-testid=date-error]{display:none}.list{border-collapse:separate;border-spacing:0;font-size:12px}.list th{z-index:1;background:var(--head-bg);border-bottom:1px solid var(--border-hard);border-right:1px solid var(--border);color:var(--text-dim);padding:4px 8px;font-weight:600;position:sticky;top:0}.list th:last-child{border-right:0}.list td{border-bottom:1px solid var(--border);padding:5px 8px}.list tbody tr:nth-child(2n){background:#26282b}.list tbody tr:hover td{background:var(--hover);color:var(--sel-text)}.list select{width:100%}.toolpanel-analysis .alert{max-width:none}.analysis-footer{border-top-color:var(--border-hard)}@media (height<=600px){.toolpanel-analysis>.palette-body{display:block;overflow:auto}.analysis-fields{overflow:visible}}@media (width<=1000px){.toolpanel-analysis{width:390px;min-width:280px}.ws-body>.palette{display:none}}@media (width<=640px){.toolpanel-analysis{width:calc(100vw - 40px);min-width:0;max-width:calc(100vw - 40px)}.ribbon-btn-wide span{display:none}}.share-dialog{width:560px;max-width:92vw}.share-invite{gap:6px;display:flex}.share-invite input{flex:1}.share-list td{vertical-align:middle}.share-list select{width:110px}.role-badge{background:var(--state-queued-bg);color:var(--state-queued-fg);white-space:nowrap;border-radius:2px;margin-left:6px;padding:0 5px;font-size:10px;line-height:15px}.readonly-banner{z-index:2;background:var(--state-pending-bg);color:var(--state-pending-fg);border:1px solid var(--border);pointer-events:none;border-radius:2px;padding:4px 10px;font-size:11px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.facade-bg{background:radial-gradient(120% 90% at 100% 0,#7d7f82 0%,#5a5c5f 28%,#3c3e4100 55%),radial-gradient(70% 120% at 108% 100%,#6f7174 0%,#46484b00 60%),repeating-radial-gradient(circle at 38% 130%,#0000 0 118px,#00000042 118px 120px),repeating-conic-gradient(from 200deg at 38% 130%,#0000 0deg 5.2deg,#0003 5.2deg 5.45deg),radial-gradient(circle,#ffffff12 1px,#0000 1.6px) 0 0/11px 11px,linear-gradient(160deg,#3a3c3f 0%,#232426 55%,#1a1b1d 100%)}.sun-grid{grid-template-columns:auto 1fr 100px;align-items:center;gap:6px 8px;margin-bottom:8px;display:grid}.sun-grid>span{color:var(--text-dim)}.sun-grid input:not([type=range]){width:100%;min-width:0;height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);border-radius:2px;padding:0 6px}.sun-range{appearance:none;border:1px solid var(--border);border-radius:2px;width:100%;height:12px}.sun-range::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#e6e6e6;border:1px solid #555;border-radius:1px;width:8px;height:16px}.sun-range::-moz-range-thumb{cursor:pointer;background:#e6e6e6;border:1px solid #555;border-radius:1px;width:8px;height:16px}.sun-range-time{background:linear-gradient(90deg,#0d1a3a 0% 22%,#7aa9e6 32%,#eaf2ff 50%,#7aa9e6 68%,#0d1a3a 78% 100%)!important}.sun-range-date{background:linear-gradient(90deg,#7aa9e6 0%,#f3e38a 30%,#e2553b 50%,#f3e38a 70%,#7aa9e6 100%)!important}.sun-range-grey{background:linear-gradient(90deg,#000,#fff)!important}.sun-months{color:var(--text-dim);justify-content:space-between;padding:0 2px;font-size:9px;display:flex}.solar-surfaces{max-height:220px;overflow:auto}.catalog-dialog{width:946px;max-width:92vw}.catalog-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.catalog-bar input{min-width:160px;height:var(--ctl-h);border:1px solid var(--border);background:var(--input-bg);border-radius:2px;flex:1;padding:0 6px}.catalog-bar .seg{flex:none}.catalog-bar .seg .btn{flex:none;min-width:auto;padding-inline:8px}.catalog-table{border:1px solid var(--border);max-height:50vh;overflow:auto}.catalog-table tr[aria-selected=true] td{color:var(--accent);background:var(--sel-bg)}.catalog-table td .link{margin-left:6px}.module-summary{align-items:center;gap:6px;margin-bottom:6px;display:flex}.module-summary>div{flex:1;min-width:0}.footer-row{align-items:center;gap:6px;display:flex}.footer-row>input{flex:1;min-width:0}.footer-row>label{color:var(--text-dim);white-space:nowrap}.solar-cards{grid-template-columns:1fr 1fr;gap:6px;margin:6px 0;display:grid}.solar-card{border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:2px;padding:6px 8px;display:flex}.solar-card strong{font-size:16px}.solar-card:last-child:nth-child(odd){grid-column:span 2}.solar-bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:2px;height:80px;margin:4px 0 16px;display:flex}.solar-bars>div{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.solar-bars>div>div{background:var(--accent);opacity:.45;width:100%;min-height:1px}.solar-bars>div.winter>div{opacity:1}.solar-bars small{text-align:center;color:var(--text-dim);font-size:10px;position:absolute;top:100%;left:0;right:0}.solar-curve{border:1px solid var(--border);background:var(--shell);width:100%;height:120px;display:block}.seg{gap:0}.seg>.btn{white-space:nowrap;flex:1;min-width:0;padding-inline:4px}.seg>.btn[aria-checked=true],.seg>.btn[aria-pressed=true]{background:var(--accent);color:#111}td.best{color:var(--ok,#6fca75);font-weight:600}.solar-more>summary{cursor:pointer;color:var(--text-dim)}.settings-dialog{width:640px}.prefs{border:1px solid var(--border);min-height:360px;display:flex}.prefs-nav{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:0 0 120px;padding:4px 0;display:flex}.prefs-tab{cursor:pointer;outline:0;padding:5px 10px}.prefs-tab:hover{background:var(--hover)}.prefs-tab[data-selected]{background:var(--sel-bg);color:var(--accent)}.prefs-tab[data-focus-visible]{outline:2px solid var(--accent);outline-offset:-2px}.prefs-pane{outline:0;flex:1;max-height:60vh}.prefs-keys td{vertical-align:middle}.prefs-keys kbd{border:1px solid var(--border);background:var(--input-bg);border-radius:2px;padding:1px 5px;font-family:inherit}.prefs-key-actions{white-space:nowrap;text-align:right}.prefs-key-actions .btn{margin-left:4px}.timeline-slot{position:relative}.solar-legend{background:var(--panel);border:1px solid var(--border);flex-direction:column;gap:6px;width:220px;padding:8px;font-size:11px;display:flex;position:absolute;bottom:calc(100% + 8px);right:8px;box-shadow:0 2px 8px #0006}.solar-legend .legend-scale{margin:0}.solar-legend-zones{flex-wrap:wrap;gap:4px 10px;display:flex}.solar-legend-zones .swatch{margin-right:4px}.solar-legend-step{align-items:center;gap:4px;display:flex}.solar-legend-step>span:first-child{color:var(--text-dim);flex:1}.solar-legend-step .btn{min-width:0;padding:0 6px}.vp-compass{pointer-events:none;z-index:1;width:36px;height:36px;position:absolute;top:52px}.vp-compass-needle{width:36px;height:36px}.vp-compass path{fill:#d84a4a;stroke:#fff;stroke-width:.8px}.vp-compass text{fill:#fff;font-weight:700}.result-combo{white-space:nowrap;text-overflow:ellipsis;padding:4px 0;font-weight:600;overflow:hidden}.list.slots td{vertical-align:middle}.list.slots select{max-width:140px}.slot-value .badge{margin-left:4px}.slot-legends{flex-direction:column;gap:4px;margin:6px 0;display:flex}.slot-legend{align-items:center;gap:6px;font-size:11px;display:flex}.slot-legend-name{width:36px;color:var(--text-dim);flex:none}.slot-swatch{align-items:center;gap:3px;margin-right:6px;display:inline-flex}.list.slots td:nth-child(2){white-space:nowrap}.list.slots select{min-width:72px}.points-table th,.points-table td{white-space:nowrap;padding:3px 2px;font-size:10px}.points-table .swatch{vertical-align:middle;width:10px;height:10px}.fields>*,.fields select{min-width:0}.fields select{width:100%}.slot-value .btn{white-space:nowrap;margin:4px 0 0;display:block}[data-testid=slot-recompute]{white-space:nowrap;width:100%}.zeb-panel .fields{grid-template-columns:1fr}.zeb-panel input::placeholder{color:var(--text-dim);opacity:.7}.zeb-panel .field-error-summary{color:var(--danger)}.zeb-panel .seg{margin-bottom:4px}.zeb-page .zeb-panel{border:1px solid var(--border);background:var(--panel)}.zeb-page{box-sizing:border-box;width:min(1140px,100%);margin:0 auto;padding:16px 24px;overflow:auto}.zeb-page h1{margin:12px 0;font-size:16px}.zeb-cols{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=820px){.zeb-cols{grid-template-columns:1fr}}.toolpanel-detail.zeb-detail{width:460px}.zeb-result{--zg:#00a978;--zgood:#70a042;--zcrit:#cd5f58;--zwarn:#cd8200;--zband:#00a97838;min-width:0}.zeb-headline{border-left:3px solid var(--zg);flex-direction:column;gap:2px;margin-bottom:6px;padding:2px 0 2px 8px;display:flex}.zeb-headline.none{border-left-color:var(--zcrit)}.zeb-vmain{color:var(--zg);font-size:16px}.zeb-headline.none .zeb-vmain{color:var(--zcrit)}.zeb-text{margin:0;line-height:1.6}.zeb-text b{color:var(--text)}.zeb-gauge{margin:0 14px 6px;padding-top:30px;position:relative}.zeb-gauge .track{background:var(--input-bg);height:8px;box-shadow:inset 0 0 0 1px var(--border);border-radius:4px;position:relative}.zeb-gauge .fill{background:linear-gradient(90deg,#00a97840,#00a97899);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.zeb-gauge .bandfill{background:var(--zband);border-radius:4px;position:absolute;top:0;bottom:0;box-shadow:inset 0 0 0 1px #00a97899}.zeb-gauge .medline{background:var(--zg);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-6px;bottom:-6px}.zeb-gauge .medtag{background:var(--zg);color:#0b1a14;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;bottom:calc(100% + 7px);transform:translate(-50%)}.zeb-gauge .medtag:after{content:"";border:4px solid #0000;border-top-color:var(--zg);margin-left:-4px;position:absolute;top:100%;left:50%}.zeb-gauge .tick{background:var(--zcrit);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.zeb-gauge .tick.met{background:var(--zgood)}.zeb-gauge .tlab{white-space:nowrap;text-align:center;font-size:10px;line-height:1.25;position:absolute;transform:translate(-50%)}.zeb-gauge .tlab.up{top:calc(100% + 8px)}.zeb-gauge .tlab.dn{top:calc(100% + 36px)}.zeb-gauge .tlab.dn:before{content:"";border-left:1px dotted var(--border);height:30px;position:absolute;bottom:100%;left:50%}.zeb-gauge .tlab.lft{text-align:left;transform:translate(-4px)}.zeb-gauge .tlab.lft:before{left:4px}.zeb-gauge .tlab.rgt{text-align:right;transform:translate(calc(4px - 100%))}.zeb-gauge .tlab.rgt:before{left:auto;right:4px}.zeb-gauge .tlab b{color:var(--text);font-weight:600;display:block}.zeb-gauge .tlab span{color:var(--text-dim);font-variant-numeric:tabular-nums}.zeb-gauge .axisrow{border-top:1px solid var(--border);color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:66px;padding-top:3px;font-size:10px;display:flex}.zeb-legend{color:var(--text-dim);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex}.zeb-legend i{vertical-align:-1px;width:10px;height:10px;margin-right:4px;display:inline-block}.zeb-legend .lg-band{background:var(--zband);border:1px solid var(--zg)}.zeb-legend .lg-fill{background:#00a97873}.zeb-legend .lg-med{background:var(--zg)}.zeb-legend .lg-good{background:var(--zgood)}.zeb-legend .lg-crit{background:var(--zcrit)}.zeb-ledger .r,.zeb-bases .r{text-align:right}.zeb-bases td{white-space:nowrap}.zeb-bases{margin-bottom:8px}.zeb-ledger td{white-space:nowrap}.zeb-bar{background:var(--input-bg);min-width:48px;height:6px;position:relative;overflow:hidden}.zeb-bar i{background:var(--zgood);position:absolute;inset:0 auto 0 0}.zeb-bar i.no{background:var(--zcrit)}.zeb-bar i.edge{background:var(--zwarn)}.zeb-pill{font-weight:600}.zeb-pill.ok{color:var(--zgood)}.zeb-pill.no{color:var(--zcrit)}.zeb-pill.edge{color:var(--zwarn)}.scenes-bar{background:var(--panel);border:1px solid var(--border);border-radius:4px;align-items:center;gap:2px;max-width:calc(100% - 16px);padding:2px;display:flex;position:absolute;bottom:calc(100% + 8px);right:8px;overflow-x:auto}.scenes-tab,.scenes-more{height:24px;font:inherit;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;padding:0 8px;font-size:12px}.scenes-tab:hover,.scenes-more:hover{background:var(--hover)}.scenes-tab[aria-selected=true]{border-color:var(--accent)}.landing{--land-blue:#06c;--land-blue-hover:#0056ad;--land-text:#151515;--land-dim:#4d4d4d;--land-line:#8a8d90;min-height:100vh;color:var(--land-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;word-break:keep-all;justify-content:center;align-items:center;gap:64px;padding:48px 24px;display:flex;position:relative;overflow:hidden}.landing:before{content:"";pointer-events:none;background:radial-gradient(75% 75% at 40%,#0000 40%,#00000073 100%);position:absolute;inset:0}.landing>*{position:relative}.landing-card{background:#fff;width:544px;max-width:100%;box-shadow:0 18px 50px #00000073}.landing-form{flex-direction:column;padding:44px 48px 30px;display:flex}.landing-form form{flex-direction:column;gap:18px;display:flex}.landing-field{flex-direction:column;gap:8px;display:flex}.landing-field label{color:var(--land-text);font-size:13px;font-weight:600}.landing-field input{border:1px solid #d2d2d2;border-bottom:1px solid var(--land-line);height:36px;color:var(--land-text);background:#fff;border-radius:0;outline:0;width:100%;min-width:0;padding:0 10px;font-size:14px}.landing-field input:hover{border-bottom-color:var(--land-blue)}.landing-field input[data-focused]{border-bottom:2px solid var(--land-blue);padding-bottom:1px}.landing-field input[data-focus-visible]{outline:0}.landing-pw{display:flex}.landing-pw input{border-right:0;flex:1}.landing-eye{cursor:pointer;border:1px solid #d2d2d2;border-bottom-color:var(--land-line);width:38px;color:var(--land-text);background:#fff;flex:none;place-items:center;padding:0;display:grid}.landing-eye svg{width:18px;height:18px}.landing-eye:hover{background:#f0f0f0}.landing-eye:focus-visible{outline:2px solid var(--land-blue);outline-offset:-2px}.landing-more{color:var(--land-blue);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:8px;margin-top:-4px;padding:2px 0;font-size:13px;display:flex}.landing-more:before{content:"";border:5px solid #0000;border-left:7px solid var(--land-blue);border-right:0;transition:transform .12s}.landing-more[aria-expanded=true]:before{transform:rotate(90deg)}.landing-more:hover{text-decoration:underline}.landing-menu{flex-wrap:wrap;gap:4px 18px;margin-top:-4px;display:flex}.landing-menu .landing-more{margin-top:0}.landing-more:disabled{opacity:.5;cursor:default}.landing-more:focus-visible{outline:2px solid var(--land-blue);outline-offset:2px}.landing-primary,.landing-secondary{cursor:pointer;border-radius:3px;width:100%;height:40px;font-size:14px}.landing-primary{background:var(--land-blue);color:#fff;border:0}.landing-primary[data-hovered]{background:var(--land-blue-hover)}.landing-secondary{color:var(--land-text);background:#fff;border:1px solid #c7c7c7}.landing-secondary[data-hovered]{background:#f3f3f3}.landing-primary[data-disabled],.landing-secondary[data-disabled]{opacity:.5;cursor:default}.landing-primary[data-focus-visible],.landing-secondary[data-focus-visible]{outline:2px solid var(--land-blue);outline-offset:2px}.landing-or{color:#8a8a8a;align-items:center;gap:12px;margin:18px 0 14px;font-size:12px;display:flex}.landing-or:before,.landing-or:after{content:"";border-top:1px solid #e0e0e0;flex:1}.landing-alert{color:#7d1007;background:#faeae8;border-left:3px solid #c9190b;margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.5}.landing-notice{border-left-color:var(--land-blue);color:#0b3d6e;background:#e8f1fb}.landing-alert strong{margin-right:6px}.landing-hint{color:var(--land-text);margin:0;font-size:13px;line-height:1.6}.landing-meter{align-items:center;gap:4px;font-size:12px;display:flex}.landing-meter i{background:#e0e0e0;flex:1;height:4px}.landing-meter span{flex:none;min-width:28px;margin-left:6px}.landing-meter[data-level="1"] i:nth-child(-n+1){background:#c9190b}.landing-meter[data-level="2"] i:nth-child(-n+2){background:#f0ab00}.landing-meter[data-level="3"] i:nth-child(-n+3){background:#3e8635}.landing-match{color:#3e8635;font-size:12px}.landing-mismatch{color:#c9190b}.landing-switch{color:var(--land-text);align-items:center;gap:6px;margin:16px 0 0;font-size:13px;display:flex}.landing-switch .landing-more{margin-top:0}.landing-consent{color:#555;font-size:12px}.landing-consent a,.landing-foot a{color:var(--land-blue)}.landing-foot{color:var(--land-text);background:#ececec;padding:26px 48px 30px;font-size:14px}.landing-foot p{margin:0;line-height:1.6}.landing-foot p+p{margin-top:8px}.landing-foot strong{font-size:13px;font-weight:600}.landing-brand{color:#fff;align-self:flex-start;max-width:360px;margin-top:max(0px,50vh - 280px)}.landing-logo{align-items:center;gap:12px;display:flex}.landing-mark{flex:none;width:52px;height:52px}.landing-logo span{letter-spacing:-.5px;font-size:46px;font-weight:300;line-height:1}.landing-logo em{color:#ffffffd1;margin-left:10px;font-style:normal;font-weight:300}@media (width<=1000px){.landing{flex-direction:column-reverse;justify-content:flex-start;gap:28px}.landing-brand{text-align:center;align-self:center;margin-top:0}.landing-logo{justify-content:center}}@media (width<=560px){.landing{padding:24px 0}.landing-form{padding:32px 22px 24px}.landing-foot{padding:20px 22px 24px}.landing-logo span{font-size:34px}.landing-mark{width:40px;height:40px}}.projects-container{background-color:var(--shell);flex:1;padding:16px 24px 48px;overflow-y:auto}.projects-inner{flex-direction:column;gap:16px;width:100%;max-width:1280px;margin:0 auto;display:flex}.projects-hero{border:1px solid var(--border);border-radius:2px;justify-content:space-between;align-items:center;padding:24px 32px;display:flex;position:relative}.hero-content{z-index:2;max-width:640px}.hero-greeting{color:var(--text);margin:0 0 6px;font-size:20px;font-weight:700;line-height:1.3}.hero-greeting span{color:var(--accent)}.hero-sub{color:var(--text-dim);margin:0 0 18px;font-size:12px;line-height:1.5}.hero-actions{align-items:center;gap:8px;display:flex}.btn-sl-upload{border:1px solid var(--border);background:var(--panel);height:26px;color:var(--text);cursor:pointer;border-radius:2px;align-items:center;gap:6px;padding:0 12px;font-size:12px;transition:background .1s;display:inline-flex}.btn-sl-upload:hover{background:var(--hover)}.projects-card-section{background:var(--panel);border:1px solid var(--border);border-radius:2px;padding:16px 20px}.projects-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.projects-tabs{gap:4px;display:flex}.projects-tab-btn{border:1px solid var(--border);background:var(--panel);cursor:pointer;height:24px;color:var(--text-dim);border-radius:2px;align-items:center;gap:5px;padding:0 10px;font-size:11px;transition:all .1s;display:inline-flex}.projects-tab-btn:hover{background:var(--hover);color:var(--text)}.projects-tab-btn.active{border-color:var(--accent);color:var(--accent);background:var(--sel-bg);font-weight:600}.tab-badge{background:var(--sel-edge);height:14px;color:var(--accent);border-radius:2px;padding:0 4px;font-size:10px;line-height:14px;display:inline-block}.projects-search-box{background:var(--panel);border:1px solid var(--border);border-radius:2px;align-items:center;width:220px;height:24px;padding:0 8px;display:flex}.projects-search-box:focus-within{border-color:var(--accent);outline:1px solid var(--accent)}.projects-search-box input{width:100%;color:var(--text);background:0 0;border:none;outline:none;margin-left:5px;font-size:11px}.projects-search-box input::placeholder{color:var(--text-dim)}.projects-sl-table{border-collapse:collapse;width:100%;font-size:12px}.projects-sl-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--panel);padding:6px 10px;font-size:11px;font-weight:400}.projects-sl-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 10px}.projects-sl-table tr.project-sl-row{cursor:pointer;transition:background .1s}.projects-sl-table tr.project-sl-row:hover{background-color:var(--hover)}.projects-sl-table tr.project-sl-row.is-fav{background-color:#2b2a24}.projects-sl-table tr.project-sl-row.is-fav:hover{background-color:#343127}.star-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:transform .1s,color .1s;display:inline-flex}.star-btn:hover{color:var(--warn);transform:scale(1.15)}.star-btn.starred{color:var(--warn)}.pin-badge{color:var(--warn);vertical-align:middle;background:#f59e0b1f;border:1px solid #f59e0b73;border-radius:2px;margin-left:6px;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;display:inline-block}.project-name-cell{align-items:center;gap:10px;display:flex}.project-icon{background:var(--sel-bg);border:1px solid var(--sel-edge);width:26px;height:26px;color:var(--accent);border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-title-link{color:var(--accent);font-weight:600;text-decoration:none}.project-title-link:hover{text-decoration:underline}.project-meta{color:var(--text-dim);gap:6px;margin-top:2px;font-size:11px;display:flex}.project-failed{color:var(--danger)}.empty-state{text-align:center;color:var(--text-dim);padding:36px 16px}.modal-overlay{z-index:200;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--panel);border:1px solid var(--border);border-radius:2px;outline:none;width:440px;max-width:90vw;overflow:hidden;box-shadow:0 10px 30px #000c}.modal-dialog-header{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.modal-dialog-header h3{margin:0;font-size:13px;font-weight:600}.modal-dialog-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:2px;padding:2px 6px;font-size:12px}.modal-dialog-close:hover{background:var(--press);color:var(--text)}.modal-dialog-body{flex-direction:column;gap:12px;padding:16px;display:flex}.modal-dropzone{border:1px dashed var(--border);background:var(--panel);text-align:center;cursor:pointer;border-radius:2px;padding:20px 14px;transition:all .1s}.modal-dropzone:hover{border-color:var(--accent);background:var(--sel-bg)}.modal-dialog-footer{background:var(--panel);border-top:1px solid var(--border);justify-content:flex-end;gap:6px;padding:8px 14px;display:flex}.menubtn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:2px;padding:2px 6px;font-size:16px;transition:all .1s}.menubtn:hover{background:var(--panel);color:var(--text)}.popover{background:var(--panel);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 12px #00000080}.menu{outline:0;margin:0;padding:4px 0;list-style:none}.menu-item{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;padding:6px 12px;font-size:12px;transition:background .1s}.menu-item:hover:not([disabled]),.menu-item[data-focused]:not([disabled]){background:var(--sel-bg);color:var(--sel-text)}.menu-item:focus,.menu-item:focus-visible{outline:0}.menu-item[disabled]{color:var(--text-dim);cursor:not-allowed}.legal{color:#333;min-height:100vh;font-family:var(--font);background:#fff;height:100vh;overflow-y:auto}.legal-nav,.legal-head,.legal-body,.legal-foot{max-width:800px;margin:0 auto;padding-left:24px;padding-right:24px}.legal-nav{border-bottom:1px solid #eee;align-items:center;height:56px;display:flex}.legal-nav a{color:#1f1f1f;font-weight:600;text-decoration:none}.legal-head{border-bottom:1px solid #eee;padding-top:40px;padding-bottom:24px}.legal-head h1{margin:0 0 10px;font-size:28px}.legal-head p{color:#666;margin:0;line-height:1.6}.legal-head .legal-date{color:#999;margin-top:12px;font-size:12px}.legal-body{padding-top:24px;padding-bottom:40px;font-size:14px;line-height:1.7}.legal-body h2{color:#1f1f1f;margin:32px 0 12px;font-size:18px}.legal-body h2:first-child{margin-top:0}.legal-body p{margin:0 0 12px}.legal-body ul{margin:0 0 12px;padding-left:22px}.legal-body li{margin-bottom:6px}.legal-body strong{color:#1f1f1f}.legal-body a{color:#06c}.legal-foot{color:#999;border-top:1px solid #eee;padding-top:24px;padding-bottom:32px;font-size:13px}
