.rt-t8{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#1a2036;--bg-card-hover:#1f2847;--border:#6382ff1f;--border-active:#6382ff59;--text-primary:#e8ecf4;--text-secondary:#8892a8;--text-muted:#5a6478;--accent-blue:#4f7cff;--accent-blue-glow:#4f7cff40;--accent-cyan:#22d3ee;--accent-green:#34d399;--accent-amber:#fbbf24;--accent-red:#f87171;--accent-purple:#a78bfa;--radius:12px;--radius-sm:8px;background:var(--bg-primary);color:var(--text-primary);min-height:calc(100vh - 4rem);margin:-1.5rem;padding:28px 32px;font-family:Noto Sans KR,Plus Jakarta Sans,sans-serif}.rt-t8 .page-header{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px}.rt-t8 .page-eyebrow{color:var(--accent-cyan);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700}.rt-t8 .page-title{margin:0 0 8px;font-size:24px;font-weight:700}.rt-t8 .page-subtitle{color:var(--text-secondary);margin:0;font-size:13px}.rt-t8 .tab-bar{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border);gap:4px;width:fit-content;margin-bottom:24px;padding:4px;display:flex}.rt-t8 .tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:10px 22px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .25s;display:flex}.rt-t8 .tab:hover{color:var(--text-primary)}.rt-t8 .tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 12px var(--accent-blue-glow)}.rt-t8 .panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:20px 22px}.rt-t8 .panel-title{align-items:center;gap:8px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.rt-t8 .panel-title .hint{color:var(--text-muted);margin-left:auto;font-size:11.5px;font-weight:400}.rt-t8 .intro-text{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.7}.rt-t8 .intro-text b{color:var(--text-primary)}.rt-t8 .intro-text code{color:var(--accent-cyan);font-family:Fira Code,JetBrains Mono,ui-monospace,monospace;font-size:12px}.rt-t8 .pipeline{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:stretch;gap:10px;margin-top:4px;display:grid}.rt-t8 .pipe-step{border:1px solid var(--border);border-radius:var(--radius-sm);border-left:3px solid var(--accent-blue);background:#00000040;padding:14px 14px 14px 16px;position:relative}.rt-t8 .pipe-step.s2{border-left-color:var(--accent-purple)}.rt-t8 .pipe-step.s3{border-left-color:var(--accent-cyan)}.rt-t8 .pipe-step.s4{border-left-color:var(--accent-amber)}.rt-t8 .pipe-step.s5{border-left-color:var(--accent-green)}.rt-t8 .pipe-num{color:var(--text-muted);letter-spacing:.08em;margin-bottom:4px;font-family:Fira Code,ui-monospace,monospace;font-size:10.5px;font-weight:700}.rt-t8 .pipe-title{color:var(--text-primary);margin-bottom:6px;font-family:Fira Code,ui-monospace,monospace;font-size:13px;font-weight:700}.rt-t8 .pipe-desc{color:var(--text-secondary);margin:0;font-size:11.5px;line-height:1.55}.rt-t8 .pipe-desc code{color:var(--accent-cyan);font-family:Fira Code,ui-monospace,monospace;font-size:11px}.rt-t8 .code-block{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);white-space:pre;background:#0006;margin:0;padding:16px 18px;font-family:Fira Code,JetBrains Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.75;overflow-x:auto}.rt-t8 .code-block .kw{color:#ff79c6;font-weight:600}.rt-t8 .code-block .fn{color:var(--accent-cyan)}.rt-t8 .code-block .str{color:var(--accent-green)}.rt-t8 .code-block .com{color:var(--text-muted);font-style:italic}.rt-t8 .code-block .num{color:var(--accent-amber)}.rt-t8 .formula-card{border:1px solid var(--border-active);border-radius:var(--radius);background:linear-gradient(135deg,#a78bfa14,#22d3ee0a);padding:22px 24px}.rt-t8 .formula-eq{border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;letter-spacing:.02em;background:#0000004d;margin-bottom:10px;padding:14px 18px;font-family:Fira Code,JetBrains Mono,ui-monospace,monospace;font-size:14px;line-height:1.9}.rt-t8 .formula-eq:last-child{margin-bottom:0}.rt-t8 .formula-eq code{color:var(--accent-cyan);font-family:inherit}.rt-t8 .formula-eq .term-detour{color:var(--accent-amber);font-weight:700}.rt-t8 .formula-eq .term-score{color:var(--accent-green);font-weight:700}.rt-t8 .formula-eq .term-revenue{color:var(--accent-cyan);font-weight:700}.rt-t8 .formula-eq .term-cost{color:var(--accent-red);font-weight:700}.rt-t8 .formula-note{color:var(--text-muted);text-align:center;margin-top:10px;font-family:Fira Code,ui-monospace,monospace;font-size:11.5px}.rt-t8 .formula-legend{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:14px;display:grid}.rt-t8 .formula-legend-item{color:var(--text-secondary);background:#0003;border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.55}.rt-t8 .formula-legend-item .pill{border-radius:4px;margin-right:6px;padding:1px 8px;font-family:Fira Code,ui-monospace,monospace;font-size:11px;font-weight:700;display:inline-block}.rt-t8 .pill.detour{color:var(--accent-amber);background:#fbbf242e}.rt-t8 .pill.score{color:var(--accent-green);background:#34d39926}.rt-t8 .pill.revenue{color:var(--accent-cyan);background:#22d3ee26}.rt-t8 .pill.cost{color:var(--accent-red);background:#f871712e}.rt-t8 .formula-legend-item code{color:var(--accent-cyan);font-family:Fira Code,ui-monospace,monospace;font-size:11.5px}.rt-t8 .refs{border-radius:var(--radius-sm);border-left:2px solid var(--accent-cyan);color:var(--text-muted);background:#0003;margin-top:20px;padding:12px 14px;font-size:11.5px;line-height:1.7}.rt-t8 .refs b{color:var(--text-secondary)}.rt-t8 .toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rt-t8 .btn{cursor:pointer;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .2s}.rt-t8 .btn:hover:not(:disabled){border-color:var(--border-active);color:var(--text-primary)}.rt-t8 .btn:disabled{opacity:.5;cursor:not-allowed}.rt-t8 .btn.primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.rt-t8 .btn.primary:hover:not(:disabled){color:#fff}.rt-t8 .scenario-btns{flex-wrap:wrap;gap:6px;display:flex}.rt-t8 .scenario-btn{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:11.5px;transition:all .2s}.rt-t8 .scenario-btn:hover{border-color:var(--accent-blue);color:var(--text-primary)}.rt-t8 .scenario-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#4f7cff26}.rt-t8 .scenario-desc{color:var(--text-muted);margin-top:8px;font-size:11.5px;font-style:italic;line-height:1.5}.rt-t8 .pipeline-grid{grid-template-columns:1.25fr 1fr;gap:18px;display:grid}@media (max-width:1100px){.rt-t8 .pipeline-grid{grid-template-columns:1fr}}.rt-t8 .dag-stage-list{flex-direction:column;gap:8px;display:flex}.rt-t8 .dag-stage{border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#00000040;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:12px 14px;transition:all .3s;display:grid}.rt-t8 .dag-stage.st-selected{border-left-color:var(--accent-blue);background:#4f7cff14;box-shadow:0 0 12px #4f7cff33}.rt-t8 .dag-stage.st-scanning{border-left-color:var(--accent-cyan);background:#22d3ee14;animation:1.2s infinite rtT8Pulse;box-shadow:0 0 16px #22d3ee40}.rt-t8 .dag-stage.st-accept{border-left-color:var(--accent-green);background:#34d39914}.rt-t8 .dag-stage.st-reject{border-left-color:var(--accent-red);opacity:.65;background:#f871710d}.rt-t8 .dag-stage.st-best{border-left-color:var(--accent-green);background:#34d39924;box-shadow:0 0 18px #34d39959}@keyframes rtT8Pulse{0%,to{box-shadow:0 0 16px #22d3ee40}50%{box-shadow:0 0 24px #22d3ee8c}}.rt-t8 .dag-stage-num{color:var(--accent-cyan);text-align:center;letter-spacing:.05em;font-family:Fira Code,ui-monospace,monospace;font-size:12.5px;font-weight:700}.rt-t8 .dag-stage.st-accept .dag-stage-num,.rt-t8 .dag-stage.st-best .dag-stage-num{color:var(--accent-green)}.rt-t8 .dag-stage.st-reject .dag-stage-num{color:var(--accent-red)}.rt-t8 .dag-stage.st-selected .dag-stage-num{color:var(--accent-blue)}.rt-t8 .dag-stage-label{color:var(--text-primary);margin-bottom:2px;font-family:Fira Code,ui-monospace,monospace;font-size:13.5px;font-weight:700}.rt-t8 .dag-stage-sub{color:var(--text-muted);font-size:11px}.rt-t8 .dag-stage-meta{text-align:right;font-family:Fira Code,ui-monospace,monospace}.rt-t8 .status-tag{letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-block}.rt-t8 .status-tag.st-pending{color:var(--text-muted);background:#8a92a81f}.rt-t8 .status-tag.st-scanning{color:var(--accent-cyan);background:#22d3ee33}.rt-t8 .status-tag.st-accept{color:var(--accent-green);background:#34d39926}.rt-t8 .status-tag.st-reject{color:var(--accent-red);background:#f8717126}.rt-t8 .status-tag.st-best{color:var(--accent-green);background:#34d39940}.rt-t8 .status-tag.st-selected{color:var(--accent-blue);background:#4f7cff38}.rt-t8 .dag-stage-dur{color:var(--text-muted);margin-top:3px;font-size:10.5px}.rt-t8 .sim-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin:14px 0 8px;font-family:Fira Code,ui-monospace,monospace;font-size:12px;font-weight:700}.rt-t8 .sim-section-title:first-child{margin-top:0}.rt-t8 .final-banner{border-radius:var(--radius-sm);text-align:center;letter-spacing:.04em;margin-top:14px;padding:12px 16px;font-family:Fira Code,ui-monospace,monospace;font-size:13px;font-weight:700}.rt-t8 .final-banner.tone-ok{color:var(--accent-green);background:#34d3991f;border:1px solid #34d39966}.rt-t8 .final-banner.tone-warn{color:var(--accent-amber);background:#fbbf241a;border:1px solid #fbbf2459}.rt-t8 .final-banner.tone-fail{color:var(--accent-red);background:#f871711a;border:1px solid #f8717159}.rt-t8 .log-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0006;max-height:500px;padding:12px 14px;font-family:Fira Code,ui-monospace,monospace;font-size:11.5px;line-height:1.7;overflow-y:auto}.rt-t8 .log-empty{text-align:center;color:var(--text-muted);padding:28px 8px;font-style:italic}.rt-t8 .log-line{white-space:pre-wrap;padding:2px 0;animation:.2s rtT8SlideIn}@keyframes rtT8SlideIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.rt-t8 .log-info{color:var(--text-secondary)}.rt-t8 .log-ok{color:var(--accent-green)}.rt-t8 .log-skip{color:var(--accent-purple)}.rt-t8 .log-warn{color:var(--accent-amber)}.rt-t8 .log-fail{color:var(--accent-red)}.rt-t8 .log-best{color:var(--accent-green);font-weight:700}.rt-t8 .route-card-list{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.rt-t8 .route-card{border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--text-secondary);background:#0000004d;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 12px;font-family:Fira Code,ui-monospace,monospace;transition:all .2s;display:grid}.rt-t8 .route-card:hover:not(:disabled){border-color:var(--accent-blue);color:var(--text-primary)}.rt-t8 .route-card.active{border-color:var(--accent-blue);border-left-color:var(--accent-blue);color:var(--text-primary);background:#4f7cff1f;box-shadow:0 0 14px #4f7cff33}.rt-t8 .route-card:disabled{cursor:not-allowed;opacity:.6}.rt-t8 .route-card-main{font-size:12.5px;font-weight:700}.rt-t8 .route-card-sub{color:var(--text-muted);margin-top:2px;font-size:10.5px}.rt-t8 .route-card-right{color:var(--accent-cyan);font-family:Fira Code,ui-monospace,monospace;font-size:11.5px;font-weight:700}.rt-t8 .load-grid{grid-template-columns:420px 1fr;gap:18px;display:grid}@media (max-width:1100px){.rt-t8 .load-grid{grid-template-columns:1fr}}.rt-t8 .slider-row{margin-bottom:16px}.rt-t8 .slider-row-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.rt-t8 .slider-label{color:var(--text-secondary);font-size:12.5px;font-weight:500}.rt-t8 .slider-label code{color:var(--accent-cyan);font-family:Fira Code,ui-monospace,monospace;font-size:12px}.rt-t8 .slider-value{color:var(--accent-cyan);text-align:right;min-width:60px;font-family:Fira Code,ui-monospace,monospace;font-size:14px;font-weight:700}.rt-t8 .slider{appearance:none;cursor:pointer;border-radius:999px;outline:none;width:100%;height:6px}.rt-t8 .slider.blue{background:linear-gradient(90deg, #4f7cff4d, var(--accent-blue))}.rt-t8 .slider.amber{background:linear-gradient(90deg, #fbbf244d, var(--accent-amber))}.rt-t8 .slider.green{background:linear-gradient(90deg, #34d3994d, var(--accent-green))}.rt-t8 .slider.purple{background:linear-gradient(90deg, #a78bfa4d, var(--accent-purple))}.rt-t8 .slider.red{background:linear-gradient(90deg, #f871714d, var(--accent-red))}.rt-t8 .slider::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--accent-blue);cursor:pointer;background:#fff;border-radius:50%;width:18px;height:18px}.rt-t8 .slider::-moz-range-thumb{border:3px solid var(--accent-blue);cursor:pointer;background:#fff;border-radius:50%;width:18px;height:18px}.rt-t8 .slider-help{color:var(--text-muted);margin-top:6px;font-size:11px;line-height:1.5}.rt-t8 .metric-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}@media (max-width:820px){.rt-t8 .metric-grid{grid-template-columns:repeat(2,1fr)}}.rt-t8 .metric-cell{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000040;padding:12px 14px}.rt-t8 .metric-label{color:var(--text-muted);letter-spacing:.06em;margin-bottom:4px;font-family:Fira Code,ui-monospace,monospace;font-size:10.5px}.rt-t8 .metric-value{font-family:Fira Code,ui-monospace,monospace;font-size:26px;font-weight:700;line-height:1.1;transition:color .2s}.rt-t8 .metric-unit{color:var(--text-muted);margin-left:3px;font-size:12px;font-weight:500}.rt-t8 .metric-sub{color:var(--text-muted);margin-top:3px;font-family:Fira Code,ui-monospace,monospace;font-size:10.5px}.rt-t8 .metric-sub b{color:var(--text-secondary)}.rt-t8 .verdict-badge{border-radius:var(--radius-sm);text-align:center;letter-spacing:.02em;margin-top:2px;margin-bottom:12px;padding:12px 16px;font-size:14px;font-weight:700}.rt-t8 .verdict-badge.promote{color:var(--accent-green);background:linear-gradient(135deg,#34d3992e,#22d3ee14);border:1px solid #34d39966;box-shadow:0 0 16px #34d39933}.rt-t8 .verdict-badge.reject{color:var(--accent-red);background:#f871711a;border:1px solid #f8717159}.rt-t8 .capacity-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000040;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.rt-t8 .capacity-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.rt-t8 .capacity-label{color:var(--text-secondary)}.rt-t8 .capacity-val{color:var(--accent-cyan);font-family:Fira Code,ui-monospace,monospace;font-weight:700}.rt-t8 .exp-chart-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0003;padding:18px 16px 10px}.rt-t8 .exp-legend{color:var(--text-secondary);flex-wrap:wrap;gap:14px;margin-bottom:8px;font-size:11.5px;display:flex}.rt-t8 .exp-legend .sw{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.rt-t8 .exp-table{border-collapse:collapse;width:100%;margin-top:14px;font-family:Fira Code,ui-monospace,monospace;font-size:12px}.rt-t8 .exp-table th,.rt-t8 .exp-table td{text-align:center;border:1px solid var(--border);padding:8px 10px}.rt-t8 .exp-table th{color:var(--accent-cyan);background:#4f7cff1a;font-size:11px;font-weight:700}.rt-t8 .exp-table td.stage{text-align:left;color:var(--text-primary);font-family:Noto Sans KR,sans-serif;font-weight:600}.rt-t8 .exp-table td.recall{color:var(--accent-amber);font-weight:700}.rt-t8 .exp-table td.otif{color:var(--accent-green);font-weight:700}.rt-t8 .exp-table td.mod{color:var(--accent-cyan);font-weight:700}.rt-t8 .exp-table tr.highlight td.recall,.rt-t8 .exp-table tr.highlight td.otif,.rt-t8 .exp-table tr.highlight td.mod{color:var(--accent-green)}
