:root{--primary: #4f46e5;--primary-hover: #4338ca;--primary-active: #3730a3;--primary-soft: #eef2ff;--primary-soft-2: #e0e7ff;--primary-ring: rgba(79, 70, 229, .16);--accent: #059669;--accent-hover: #047857;--accent-soft: #ecfdf5;--accent-ring: rgba(5, 150, 105, .16);--danger: #dc2626;--danger-hover: #b91c1c;--danger-soft: #fef2f2;--warn: #d97706;--warn-soft: #fffbeb;--info: #2563eb;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #fbfcfd;--border: #e6e8ee;--border-2: #dfe2e9;--ink: #0f172a;--ink-2: #334155;--ink-3: #64748b;--ink-4: #94a3b8;--con-bg: #0f1729;--con-bg-2: #121b30;--con-border: rgba(148, 163, 184, .14);--con-ink: #cbd5e1;--con-ink-2: #94a3b8;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14), 0 4px 8px rgba(15, 23, 42, .06);--shadow-focus: 0 0 0 3px var(--primary-ring);--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-pill: 9999px;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "SF Mono", "Consolas", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--bg);color:var(--ink-2);font-size:14px;line-height:1.5;letter-spacing:-.006em;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 28px;height:60px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-xs);position:relative;z-index:20}.app-header h1{font-size:1rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;display:flex;align-items:center;gap:9px}.app-header h1:before{content:"";width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--primary) 0%,#6366f1 50%,#818cf8 100%);box-shadow:0 2px 6px #4f46e559,inset 0 1px #ffffff40;flex-shrink:0}.app-header .subtitle{font-size:.72rem;color:var(--ink-3);margin-top:2px;font-weight:450;letter-spacing:0}.app-body{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:0;height:calc(100vh - 60px);overflow:hidden}.left-panel{overflow-y:auto;padding:22px 28px 40px;background:var(--bg)}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);height:calc(100vh - 60px);overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;overflow-y:auto}.sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:4px}.sidebar-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-2);font-family:var(--font);font-size:.86rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.sidebar-item:hover{background:var(--surface-2);color:var(--ink)}.sidebar-item.active{background:var(--primary-soft);color:var(--primary-active);border-color:var(--primary-soft-2)}.sidebar-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}.sidebar-label{letter-spacing:-.01em}.sidebar-foot{margin-top:auto;padding:12px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.main-panel{overflow-y:auto;background:var(--bg);min-width:0}.section-panel{padding:24px 32px 48px;max-width:1400px}.section-panel.exec-panel,.section-panel.runs-panel{max-width:none}.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-eyebrow{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);margin-bottom:5px}.panel-title{font-size:1.25rem;font-weight:750;color:var(--ink);letter-spacing:-.02em}.panel-sub{font-size:.8rem;color:var(--ink-3);margin-top:4px}.exec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,520px);gap:18px;align-items:start}.exec-grid .right-panel{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;height:560px}@media (max-width: 1180px){.exec-grid{grid-template-columns:1fr}}.runs-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}@media (max-width: 1180px){.runs-layout{grid-template-columns:1fr}}.runs-results{min-width:0}button.run-row{cursor:pointer;text-align:left;font-family:var(--font);width:100%}button.run-row:disabled{opacity:.55;cursor:default}button.run-row.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary)}.profile-flag{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--ink-4)}.profile-flag.good{background:var(--accent)}.profile-flag.warn{background:var(--warn)}.profile-flag.bad{background:var(--danger)}.profile-flag.pending{background:var(--ink-4)}.profile-status{font-size:.7rem;font-weight:600;white-space:nowrap}.profile-status.good{color:var(--accent-hover)}.profile-status.warn{color:var(--warn)}.profile-status.bad{color:var(--danger-hover)}.profile-status.pending{color:var(--ink-4)}.config-json{font-family:var(--mono);font-size:.72rem;line-height:1.55;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;max-height:560px;overflow:auto;white-space:pre;-moz-tab-size:2;tab-size:2}.config-json .j-key{color:var(--primary-hover);font-weight:600}.config-json .j-str{color:var(--accent-hover)}.config-json .j-num{color:#b45309}.config-json .j-bool{color:var(--info);font-weight:600}.panel-head-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.dirty-badge{font-size:.7rem;font-weight:700;color:var(--warn);background:var(--warn-soft);border:1px solid #f5d9a8;border-radius:var(--r-pill);padding:4px 11px;white-space:nowrap}.cfg-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px 18px}.cfg-fields+.cfg-subblock{margin-top:16px}.cfg-subblock{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);padding:14px;margin-bottom:12px}.cfg-subblock:last-child{margin-bottom:0}.cfg-subblock-title{font-size:.72rem;font-weight:700;color:var(--ink-2);letter-spacing:.01em;margin-bottom:12px;font-family:var(--mono)}.cfg-subblock .cfg-subblock{background:var(--surface)}.cfg-field label{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.72rem;word-break:break-word}.cfg-field-inline .cfg-input-wrap{padding-top:2px}.cfg-input-wrap{display:flex;align-items:center;gap:8px}.cfg-input-wrap input[type=text],.cfg-input-wrap input[type=number]{flex:1;min-width:0}.cfg-unit{font-size:.72rem;font-weight:600;color:var(--ink-3);white-space:nowrap}.cfg-check{display:inline-flex!important;align-items:center;gap:8px;font-family:var(--mono)!important;font-size:.78rem!important;color:var(--ink-2);cursor:pointer}.cfg-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.cfg-dirty{border-color:var(--warn)!important;background:var(--warn-soft)!important}.cfg-dirty-label{color:var(--warn)!important}.cfg-dirty-dot{color:var(--warn);font-size:.6rem;line-height:1}.placeholder-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:64px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:var(--shadow-sm)}.placeholder-icon{font-size:2rem}.placeholder-title{font-size:1rem;font-weight:700;color:var(--ink)}.placeholder-sub{font-size:.82rem;color:var(--ink-3);max-width:420px;line-height:1.5}.right-panel{display:flex;flex-direction:column;overflow:hidden;background:var(--con-bg);border-left:1px solid var(--border)}.section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:12px}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.case-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 13px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s,transform .05s;color:var(--ink-2);box-shadow:var(--shadow-xs);position:relative}.case-btn:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.case-btn:active{transform:translateY(0)}.case-btn.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary),var(--shadow-sm)}.case-btn .case-label{font-size:.82rem;font-weight:650;color:var(--ink);letter-spacing:-.01em}.case-btn .case-desc{font-size:.7rem;color:var(--ink-3);margin-top:4px;line-height:1.4;font-weight:450}.case-btn.active .case-label{color:var(--primary-active)}.case-btn.active .case-desc{color:#5b54c9}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.form-section-title{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:16px;display:flex;align-items:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.form-row:last-child{margin-bottom:0}.form-row.three{grid-template-columns:1fr 1fr 1fr}.form-row.full{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:.74rem;color:var(--ink-2);font-weight:600;letter-spacing:0}.field input,.field select{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:8px 10px;color:var(--ink);font-family:var(--font);font-size:.82rem;font-weight:500;width:100%;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:28px;cursor:pointer}.field input::placeholder{color:var(--ink-4)}.field input:hover,.field select:hover{border-color:#c7cdd9}.field input:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.hint,.field .hint{font-size:.68rem;color:var(--ink-4);font-weight:450;line-height:1.4}.action-bar{display:flex;align-items:center;gap:10px;margin:4px 0 18px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm)}.btn{padding:8px 16px;border-radius:var(--r-sm);border:1px solid transparent;font-family:var(--font);font-size:.8rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .05s;white-space:nowrap;line-height:1.2}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-xs),inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary-active)}.btn-success{background:var(--accent);color:#fff;box-shadow:var(--shadow-xs),inset 0 1px #ffffff1f}.btn-success:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{background:var(--surface);border:1px solid var(--border-2);color:var(--ink-2);font-weight:600;box-shadow:var(--shadow-xs)}.btn-ghost:hover:not(:disabled){border-color:#c7cdd9;background:var(--surface-2);color:var(--ink)}.btn-xs{padding:4px 11px;font-size:.72rem}.btn-ghost-danger{color:var(--danger)}.btn-ghost-danger:hover:not(:disabled){color:var(--danger-hover);border-color:#f4c0c0;background:var(--danger-soft)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;padding:5px 11px;border-radius:var(--r-pill);border:1px solid transparent;letter-spacing:0}.status-badge.idle{background:#f1f3f6;color:var(--ink-3);border-color:var(--border)}.status-badge.running{background:var(--accent-soft);color:var(--accent-hover);border-color:#b7ebd4}.status-badge.done{background:var(--primary-soft);color:var(--primary-hover);border-color:var(--primary-soft-2)}.status-badge.error{background:var(--danger-soft);color:var(--danger-hover);border-color:#fad1d1}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.dot.pulse{animation:pulse 1.3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.run-header{padding:14px 18px;border-bottom:1px solid var(--con-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--con-bg-2)}.run-header h2{font-size:.78rem;font-weight:600;color:#e2e8f0;letter-spacing:.01em;display:flex;align-items:center;gap:8px}.run-header h2:before{content:"";width:8px;height:8px;border-radius:50%;background:#475569;box-shadow:14px 0 #475569,28px 0 #475569;margin-right:30px}.run-header .run-meta{font-size:.7rem;color:var(--con-ink-2)}.right-panel .btn-ghost{background:#94a3b814;border-color:var(--con-border);color:var(--con-ink);box-shadow:none}.right-panel .btn-ghost:hover:not(:disabled){background:#94a3b829;border-color:#94a3b84d;color:#f1f5f9}.log-container{flex:1;overflow-y:auto;padding:14px 18px;font-family:var(--mono);font-size:.72rem;line-height:1.65}.log-line{white-space:pre-wrap;word-break:break-word}.log-line.info{color:var(--con-ink)}.log-line.success{color:#34d399}.log-line.warn{color:#fbbf24}.log-line.err{color:#f87171}.log-line.step{color:#818cf8;font-weight:600}.log-line.system{color:#c4b5fd;font-style:italic}.log-empty{color:var(--con-ink-2);font-style:italic}.run-footer{padding:11px 18px;border-top:1px solid var(--con-border);display:flex;gap:8px;flex-shrink:0;color:var(--con-ink-2);font-size:.68rem;background:var(--con-bg-2)}.results-card{background:var(--con-bg-2);border:1px solid var(--con-border);border-radius:var(--r);padding:14px 16px;margin:12px 18px 0}.results-card .rc-head{display:flex;justify-content:space-between;align-items:baseline}.results-card .rc-title{font-size:.8rem;font-weight:650;color:#e2e8f0}.results-card .rc-delivered{font-size:.68rem;color:var(--con-ink-2)}.results-card .rc-figure{display:flex;gap:12px;align-items:baseline;margin:8px 0;flex-wrap:wrap}.results-card .rc-lcoe{font-size:1.7rem;font-weight:750;color:#818cf8;letter-spacing:-.02em}.results-card .rc-unit{font-size:.72rem;color:var(--con-ink-2)}.results-card .rc-vs{font-size:.76rem;margin-left:auto;font-weight:600}.results-card .rc-vs.good{color:#34d399}.results-card .rc-vs.bad{color:#f87171}.results-card .rc-components{font-size:.7rem;color:var(--con-ink-2)}.results-card .rc-components span{margin-right:14px}.btn-stop{background:var(--danger);color:#fff;border:none;border-radius:var(--r-sm);padding:6px 14px;font-family:var(--font);font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-stop:hover{background:var(--danger-hover)}.elapsed-timer{font-size:.72rem;color:var(--accent);font-family:var(--mono);font-weight:600;margin-right:2px}.right-panel .elapsed-timer{color:#34d399}.solver-banner{margin:12px 18px 0;padding:12px 14px;border-radius:var(--r-sm);font-size:.76rem;line-height:1.5;flex-shrink:0}.solver-banner.red{background:#f871711a;border:1px solid rgba(248,113,113,.3);border-left:3px solid #f87171;color:#fecaca}.solver-banner.amber{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-left:3px solid #fbbf24;color:#fde68a}.solver-banner strong{display:block;margin-bottom:4px;color:#fff}.feasibility-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;animation:overlayIn .15s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.feasibility-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);max-width:640px;width:100%;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:panelIn .18s cubic-bezier(.16,1,.3,1)}@keyframes panelIn{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.feasibility-header{display:flex;align-items:center;gap:11px;padding:16px 20px;background:var(--warn-soft);border-bottom:1px solid #fde9c8;color:#92400e;font-weight:700;font-size:.9rem;flex-shrink:0}.feasibility-icon{font-size:1.1rem;line-height:1}.feasibility-list{overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}.feasibility-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow-xs)}.feasibility-title{font-weight:650;font-size:.84rem;color:var(--ink);margin-bottom:6px}.feasibility-reason{font-size:.78rem;color:var(--ink-2);line-height:1.55;margin-bottom:12px}.feasibility-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-fix{background:var(--warn);border:1px solid transparent;color:#fff;border-radius:var(--r-sm);padding:6px 13px;font-family:var(--font);font-size:.76rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-fix:hover{background:#b45309}.btn-ghost-small{background:var(--surface);border:1px solid var(--border-2);color:var(--ink-3);border-radius:var(--r-sm);padding:6px 12px;font-family:var(--font);font-size:.76rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-ghost-small:hover{border-color:#c7cdd9;color:var(--ink-2);background:var(--surface-2)}.feasibility-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--surface)}.feasibility-footer-note{font-size:.72rem;color:var(--ink-4)}.btn-run-anyway{background:var(--ink);border:1px solid var(--ink);color:#fff;border-radius:var(--r-sm);padding:8px 16px;font-family:var(--font);font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-run-anyway:hover{background:#1e293b}.live-warn-badge{display:inline-flex;align-items:center;gap:5px;background:var(--warn-soft);border:1px solid #fcd9a3;color:#b45309;border-radius:var(--r-pill);padding:5px 12px;font-size:.74rem;font-weight:600;cursor:pointer;margin-left:auto;transition:background .15s,border-color .15s}.live-warn-badge:hover{background:#fef3c7;border-color:#fbbf24}.demand-toggle{display:flex;gap:4px;margin-bottom:16px;padding:3px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.demand-toggle-btn{flex:1;padding:7px 0;border:none;border-radius:5px;background:transparent;color:var(--ink-3);font-family:var(--font);font-size:.76rem;font-weight:600;cursor:pointer;transition:all .15s}.demand-toggle-btn.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-xs)}.demand-toggle-btn:hover:not(.active){color:var(--ink-2)}.demand-note{font-size:.8rem;color:var(--ink-2);padding:4px 0;font-weight:450}.demand-note strong{color:var(--ink);font-weight:650}.demand-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.demand-tab{padding:8px 12px;border:none;background:none;color:var(--ink-3);font-family:var(--font);font-size:.76rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.demand-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.demand-tab:hover:not(.active){color:var(--ink-2)}.block-table table{width:100%;border-collapse:collapse;font-size:.78rem}.block-table th{text-align:left;color:var(--ink-3);padding:6px 8px;border-bottom:1px solid var(--border);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.block-table td{padding:7px 8px;color:var(--ink-2);font-weight:500;border-bottom:1px solid var(--border)}.block-table tbody tr:last-child td{border-bottom:none}.block-table .bt-time{color:var(--ink-3);font-family:var(--mono);font-size:.72rem;font-weight:500}.block-table input[type=number]{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:5px 8px;color:var(--ink);font-family:var(--font);font-size:.78rem;font-weight:500;width:88px;transition:border-color .15s,box-shadow .15s}.block-table input[type=number]:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.dist-preview{margin-top:16px;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r)}.dist-bars{display:flex;gap:8px;align-items:flex-end;height:104px;margin-bottom:10px}.dist-col{flex:1;display:flex;flex-direction:column;align-items:center}.dist-bar-wrap{width:100%;height:80px;display:flex;align-items:flex-end;gap:2px;justify-content:center}.dist-bar{width:46%;border-radius:3px 3px 0 0;min-height:2px;transition:height .25s ease}.dist-bar.yr1{background:linear-gradient(180deg,#818cf8,var(--primary))}.dist-bar.yr25{background:#c7d2fe}.dist-label{font-size:.64rem;color:var(--ink-3);margin-top:6px;white-space:nowrap;font-weight:500}.dist-val{font-size:.68rem;color:var(--ink);font-weight:650}.dist-legend{display:flex;gap:16px;font-size:.66rem;color:var(--ink-3);margin-bottom:6px;font-weight:500}.dot-yr1,.dot-yr25{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:middle}.dot-yr1{background:var(--primary)}.dot-yr25{background:#c7d2fe}.dist-summary{font-size:.72rem;color:var(--ink-2);font-weight:450}.dist-warn{margin-top:8px;padding:8px 12px;background:var(--warn-soft);border:1px solid #fcd9a3;border-left:3px solid var(--warn);color:#92400e;font-size:.72rem;line-height:1.45;border-radius:var(--r-sm)}.csv-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 20px;border:1.5px dashed var(--border-2);border-radius:var(--r);cursor:pointer;transition:border-color .15s,background .15s;color:var(--ink-3);font-size:.8rem;font-weight:500;background:var(--surface-2);text-align:center}.csv-drop:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-hover)}.csv-info{margin-top:12px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:.78rem;color:var(--ink-2)}.csv-info strong{color:var(--ink);font-weight:650}.csv-confirmed{color:var(--accent-hover);margin-top:8px;font-size:.76rem;font-weight:600}.hour-picker{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.hour-btn{width:34px;height:30px;border:1px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-3);font-family:var(--font);font-size:.7rem;font-weight:600;cursor:pointer;transition:all .12s}.hour-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.hour-btn:hover:not(.active){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.section-head{display:flex;justify-content:space-between;align-items:center}.list-stack{display:flex;flex-direction:column;gap:8px}.list-stack.scroll{max-height:280px;overflow-y:auto;padding-right:2px}.list-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);transition:border-color .15s,box-shadow .15s}.list-row:hover{border-color:var(--border-2);box-shadow:var(--shadow-xs)}.list-row-main{flex:1;min-width:0}.list-row-title{font-size:.8rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row-sub{font-size:.68rem;color:var(--ink-3);margin-top:2px}.job-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.job-status{font-size:.68rem;font-weight:600;margin-top:2px}.empty-hint{font-size:.74rem;color:var(--ink-4);line-height:1.5}.queue-summary{font-size:.72rem;color:var(--ink-3);margin-bottom:10px}.queue-batch-note{font-size:.72rem;color:var(--warn);margin-bottom:8px;line-height:1.45}.toast{position:fixed;bottom:24px;right:24px;padding:12px 16px;border-radius:var(--r);font-size:.8rem;font-weight:550;z-index:999;box-shadow:var(--shadow-lg);border:1px solid transparent;display:flex;align-items:center;gap:9px;max-width:380px;animation:slideIn .22s cubic-bezier(.16,1,.3,1)}.toast:before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0}.toast.success{background:var(--surface);color:var(--ink);border-color:#b7ebd4}.toast.success:before{background:var(--accent)}.toast.error{background:var(--surface);color:var(--ink);border-color:#fad1d1}.toast.error:before{background:var(--danger)}@keyframes slideIn{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#64748b47;border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#64748b73;background-clip:padding-box}.right-panel ::-webkit-scrollbar-thumb,.log-container::-webkit-scrollbar-thumb{background:#94a3b840;background-clip:padding-box}.right-panel ::-webkit-scrollbar-thumb:hover,.log-container::-webkit-scrollbar-thumb:hover{background:#94a3b866;background-clip:padding-box}
