:root{--bg: #0f1114;--bg-panel: #15181c;--bg-panel-alt: #191d22;--bg-inset: #0b0d0f;--border: #262b32;--border-strong: #333a43;--text: #d7dce2;--text-dim: #8a929d;--text-faint: #5c646e;--cyan: #3fc1d8;--cyan-dim: #2a8ea1;--amber: #d9a13c;--red: #d9584a;--green: #4fae6d;--gray: #6b7480;--radius: 3px;--font-ui: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}::selection{background:#3fc1d840}.app{display:grid;grid-template-columns:250px 1fr;height:100vh;overflow:hidden}.main{overflow-y:auto;background:var(--bg)}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{padding:14px 16px 12px;border-bottom:1px solid var(--border)}.sidebar-brand .name{font-family:var(--font-mono);font-size:15px;font-weight:700;letter-spacing:.12em;color:var(--text)}.sidebar-brand .name span{color:var(--cyan)}.sidebar-brand .tag{margin-top:2px;font-size:10.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em}.sidebar-section{padding:12px 16px;border-bottom:1px solid var(--border)}.sidebar-section h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);margin-bottom:8px}.mode-list{display:flex;flex-direction:column;gap:2px}.mode-btn{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-dim);font-size:12.5px;font-family:var(--font-ui);text-align:left;cursor:pointer}.mode-btn:hover{background:var(--bg-panel-alt);color:var(--text)}.mode-btn.active{background:var(--bg-panel-alt);border-color:var(--border-strong);color:var(--text)}.mode-dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint);flex:none}.mode-btn.active .mode-dot.scripted{background:var(--cyan)}.mode-btn.active .mode-dot.mock{background:var(--amber)}.mode-btn.active .mode-dot.live{background:var(--green)}.sidebar select{width:100%;background:var(--bg-inset);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:5px 6px;font-size:12px;font-family:var(--font-ui)}.sidebar select:focus{outline:1px solid var(--cyan-dim)}.sidebar-meta{margin-top:6px;font-size:11px;color:var(--text-faint)}.nav-list{display:flex;flex-direction:column;gap:2px}.nav-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-dim);font-size:12.5px;font-family:var(--font-ui);cursor:pointer;text-align:left}.nav-btn:hover{background:var(--bg-panel-alt);color:var(--text)}.nav-btn.active{background:var(--bg-panel-alt);border-color:var(--border-strong);color:var(--cyan)}.nav-btn .kbd{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);border:1px solid var(--border);border-radius:2px;padding:0 4px}.sidebar-footer{margin-top:auto;padding:12px 16px;font-size:11px;color:var(--text-faint);border-top:1px solid var(--border)}.ai-status{display:flex;align-items:center;gap:6px}.ai-status .dot{width:7px;height:7px;border-radius:50%;flex:none}.ai-status .dot.ok{background:var(--green)}.ai-status .dot.bad{background:var(--red)}.screen{padding:0;height:100%}.screen-header{display:flex;align-items:baseline;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel);position:sticky;top:0;z-index:5}.screen-header h1{font-size:14px;font-weight:600;letter-spacing:.02em}.screen-header .sub{font-size:12px;color:var(--text-dim)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.panel-body{padding:12px}.forge-grid{display:grid;grid-template-columns:340px minmax(0,1fr) 360px;gap:12px;padding:12px 16px 24px;align-items:start}textarea,input[type=text]{width:100%;background:var(--bg-inset);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px;font-size:12.5px;font-family:var(--font-ui);resize:vertical}textarea:focus,input[type=text]:focus{outline:1px solid var(--cyan-dim)}textarea.intake{min-height:180px;line-height:1.5}.hint{font-size:11px;color:var(--text-faint);margin-top:6px}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-panel-alt);color:var(--text);font-size:12.5px;font-family:var(--font-ui);font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--text-faint)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:#3fc1d81f;border-color:var(--cyan-dim);color:var(--cyan)}.btn.primary:hover:not(:disabled){background:#3fc1d833}.btn.ghost{background:transparent;border-color:var(--border);color:var(--text-dim)}.btn.ghost:hover{color:var(--text)}.btn.small{padding:3px 8px;font-size:11.5px}.btn.danger{border-color:#d9584a80;color:var(--red);background:transparent}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.progress-steps{display:flex;flex-direction:column;gap:8px;padding:8px 0}.progress-step{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-faint);font-family:var(--font-mono)}.progress-step.active{color:var(--cyan)}.progress-step.done{color:var(--text-dim)}.progress-step .marker{width:14px;height:14px;border:1px solid var(--border-strong);border-radius:2px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;flex:none}.progress-step.done .marker{border-color:var(--green);color:var(--green)}.progress-step.active .marker{border-color:var(--cyan);animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.ticket-head{padding:12px;border-bottom:1px solid var(--border)}.ticket-title{font-size:14px;font-weight:600;line-height:1.35}.ticket-summary{margin-top:6px;font-size:12.5px;color:var(--text-dim)}.ticket-meta-row{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.field-row{border-bottom:1px solid var(--border);padding:10px 12px}.field-row:last-child{border-bottom:none}.field-row.changed{animation:flash 1.8s ease-out 1}@keyframes flash{0%{background:#3fc1d829}to{background:transparent}}.field-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.field-label{font-size:12px;font-weight:600}.field-label .req{color:var(--red);margin-left:2px}.field-head .spacer{flex:1}.field-reason{margin-top:5px;font-size:11px;color:var(--text-faint)}.field-value textarea{min-height:40px;font-size:12.5px}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;border-radius:2px;border:1px solid;white-space:nowrap}.badge.red{color:var(--red);border-color:#d9584a80;background:#d9584a14}.badge.amber{color:var(--amber);border-color:#d9a13c80;background:#d9a13c14}.badge.green{color:var(--green);border-color:#4fae6d80;background:#4fae6d14}.badge.gray{color:var(--gray);border-color:#6b748080;background:#6b748014}.badge.cyan{color:var(--cyan);border-color:#3fc1d880;background:#3fc1d814}.source-tag{font-family:var(--font-mono);font-size:10px;color:var(--text-faint)}.conf-bar{display:inline-block;width:64px;height:4px;background:var(--bg-inset);border:1px solid var(--border);border-radius:2px;overflow:hidden;flex:none}.conf-bar .fill{display:block;height:100%}.conf-bar .fill.red{background:var(--red)}.conf-bar .fill.amber{background:var(--amber)}.conf-bar .fill.green{background:var(--green)}.conf-bar .fill.gray{background:var(--gray)}.score-block{display:flex;align-items:center;gap:14px}.score-num{font-family:var(--font-mono);font-size:30px;font-weight:700;line-height:1}.score-num.red{color:var(--red)}.score-num.amber{color:var(--amber)}.score-num.green{color:var(--green)}.score-track{display:block;flex:1;height:8px;background:var(--bg-inset);border:1px solid var(--border);border-radius:2px;overflow:hidden}.score-track .fill{display:block;height:100%;transition:width .6s ease}.score-track .fill.red{background:var(--red)}.score-track .fill.amber{background:var(--amber)}.score-track .fill.green{background:var(--green)}.score-delta{font-family:var(--font-mono);font-size:11px;color:var(--green)}.mini-list{list-style:none;display:flex;flex-direction:column;gap:6px}.mini-list li{font-size:12px;color:var(--text-dim);padding-left:12px;position:relative}.mini-list li:before{content:"▸";position:absolute;left:0;color:var(--text-faint);font-size:10px}.mini-list.blockers li:before{content:"■";color:var(--red);font-size:8px;top:3px}.mini-list.improved li:before{content:"↑";color:var(--green)}.question-block{margin-bottom:10px}.question-block .q{font-size:12px;margin-bottom:4px;color:var(--text)}.question-block input{font-size:12px}.match-item{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;margin-bottom:6px;background:var(--bg-inset)}.match-item .term{font-family:var(--font-mono);font-size:11px;color:var(--cyan)}.match-item .target{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.match-item .note{font-size:11px;color:var(--text-faint);margin-top:2px}.chip{display:inline-block;font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--border-strong);border-radius:2px;padding:1px 6px;color:var(--text-dim);margin:0 4px 4px 0}.file-list{list-style:none}.file-list li{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);padding:2px 0}.empty-state{padding:36px 20px;text-align:center;color:var(--text-faint)}.empty-state .icon{font-size:20px;margin-bottom:8px;font-family:var(--font-mono);color:var(--border-strong)}.empty-state p{font-size:12.5px;max-width:380px;margin:0 auto}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 16px 0;padding:8px 12px;border-radius:var(--radius);font-size:12.5px;border:1px solid}.banner.error{border-color:#d9584a80;background:#d9584a14;color:var(--red)}.banner.warn{border-color:#d9a13c80;background:#d9a13c14;color:var(--amber)}.banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:14px}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 16px 24px;align-items:start}pre.code-block{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius);padding:12px;font-family:var(--font-mono);font-size:11.5px;line-height:1.55;color:var(--text-dim);white-space:pre-wrap;word-break:break-word;max-height:480px;overflow-y:auto}.kv-grid{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:12px}.kv-grid dt{color:var(--text-faint)}.kv-grid dd{color:var(--text-dim)}.brief-section{margin-bottom:12px}.brief-section h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:4px}.template-field-row{border:1px solid var(--border);border-radius:var(--radius);padding:10px;margin-bottom:8px;background:var(--bg-panel-alt)}.template-field-row .row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.template-field-row .row:last-child{margin-bottom:0}.template-field-row label.check{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-dim);white-space:nowrap;cursor:pointer}.template-list{display:flex;flex-direction:column;gap:4px}.template-list .item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--bg-panel)}.template-list .item:hover{border-color:var(--border-strong)}.template-list .item.active{border-color:var(--cyan-dim);background:var(--bg-panel-alt)}.template-list .item .name{font-size:12.5px;font-weight:600}.template-list .item .desc{font-size:11px;color:var(--text-faint);margin-top:2px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 12px}.tab{padding:8px 12px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:12px;font-family:var(--font-ui);cursor:pointer}.tab:hover{color:var(--text)}.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}.copy-feedback{color:var(--green);font-size:11.5px;font-family:var(--font-mono)}.section-gap{margin-top:12px}.side-h4{margin-bottom:6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-weight:600}.mono{font-family:var(--font-mono)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}
