:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color-scheme:light dark;--bg: #f6f7f9;--fg: #111;--muted: #6b7280;--border: #e5e7eb;--accent: #2563eb;--accent-bg: #2563eb;--accent-fg: #ffffff;--good: #16a34a;--bad: #dc2626;--rail-bg: #0f172a;--rail-fg: #e5e7eb;--rail-muted: #94a3b8;--rail-active: #2563eb;--bubble-user: #2563eb;--bubble-user-fg: #ffffff;--bubble-assist: #ffffff;--bubble-assist-fg: #0f172a}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg)}#root{min-height:100vh}.muted{color:var(--muted)}.error{color:var(--bad);white-space:pre-wrap;margin-top:.5rem}button{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font:inherit;font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(1.1)}input,select{font:inherit;padding:.55rem .75rem;border:1px solid var(--border);border-radius:6px;background:#fff;outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:100vh}.layout main{padding:2.5rem 3rem;min-width:0}.layout .right-rail{background:var(--rail-bg);color:var(--rail-fg);padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.layer-diagram h1{font-size:1rem;margin:0 0 1.25rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rail-muted)}.layer-diagram ol{list-style:none;padding:0;margin:0}.layer-diagram .layer{margin-bottom:.4rem;padding:.5rem .75rem;border-radius:6px;border:1px solid transparent;background:#ffffff08}.layer-diagram .layer.active{background:var(--rail-active);border-color:var(--rail-active)}.layer-diagram .layer-row{display:flex;align-items:baseline;gap:.6rem;font-size:.9rem}.layer-diagram .layer-num{font-weight:700;font-variant-numeric:tabular-nums;opacity:.7;min-width:1rem}.layer-diagram .layer-label{flex:1}.layer-diagram .sub-items{list-style:none;padding:.5rem 0 0 1.6rem;margin:0;font-size:.75rem;opacity:.85}.layer-diagram .sub-items li{padding:.15rem 0}.intake-checklist{border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:.9rem 1rem;background:#ffffff08}.checklist-header{display:flex;justify-content:space-between;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--rail-muted);margin-bottom:.75rem}.checklist-count{font-variant-numeric:tabular-nums}.intake-checklist ul{list-style:none;padding:0;margin:0}.intake-checklist li{padding:.45rem 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:.85rem}.intake-checklist li:last-child{border-bottom:none}.intake-checklist .check{display:flex;align-items:center;gap:.5rem}.intake-checklist .check-icon{width:1rem;display:inline-block;text-align:center;font-weight:700}.intake-checklist .filled .check-icon{color:var(--good)}.intake-checklist .empty .check-icon{color:var(--rail-muted)}.intake-checklist .check-label{flex:1}.intake-checklist .check-value{font-size:.72rem;color:var(--rail-muted);margin-left:1.5rem;margin-top:.15rem}.intake-checklist .filled .check-value{color:var(--rail-fg);font-weight:500}.checklist-done{margin-top:.75rem;text-align:center;font-size:.8rem;color:var(--good);font-weight:600}.path-options{border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:.9rem 1rem;background:#ffffff08}.path-options ul{list-style:none;padding:0;margin:0}.path-options .option{padding:.55rem 0;border-bottom:1px dashed rgba(255,255,255,.06);transition:opacity .2s}.path-options .option:last-child{border-bottom:none}.path-options .option-header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500}.path-options .option-icon{width:1rem;display:inline-block;text-align:center;font-weight:700}.path-options .option-desc{font-size:.72rem;color:var(--rail-muted);margin-left:1.5rem;margin-top:.15rem}.path-options .option.pending .option-icon{color:var(--rail-muted)}.path-options .option.chosen{background:#2563eb1f;border-radius:4px;padding-left:.4rem;padding-right:.4rem}.path-options .option.chosen .option-icon{color:var(--accent)}.path-options .option.chosen .option-title{color:#fff;font-weight:600}.path-options .option.rejected{opacity:.4}.path-options .option.rejected .option-icon{color:var(--rail-muted)}.cost-meter{margin-top:auto;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:.75rem 1rem;background:#ffffff08}.cost-meter-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--rail-muted)}.cost-meter-amount{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;margin:.25rem 0}.cost-meter-detail{display:flex;gap:.85rem;font-size:.7rem;color:var(--rail-muted);font-variant-numeric:tabular-nums}.chat-page{max-width:760px;margin:0 auto}.chat-heading{font-size:2rem;font-weight:600;margin:0 0 .25rem;letter-spacing:-.01em}.chat-subheading{color:var(--muted);margin:0 0 1.5rem}.chat-thread{display:flex;flex-direction:column;gap:1rem;padding:1rem 0;min-height:300px}.chat-thread.empty{min-height:200px;justify-content:center;align-items:center}.empty-hint{color:var(--muted);font-size:.9rem;max-width:480px;text-align:center;border:1px dashed var(--border);background:#fff;padding:1rem 1.25rem;border-radius:8px}.bubble-row{display:flex;gap:.6rem;align-items:flex-end}.bubble-row-user{flex-direction:row-reverse}.avatar{width:28px;height:28px;border-radius:50%;background:#e5e7eb;color:#111;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex-shrink:0}.bubble-row-user .avatar{background:var(--bubble-user);color:var(--bubble-user-fg)}.bubble{max-width:75%;padding:.65rem .9rem;border-radius:16px;white-space:pre-wrap;line-height:1.45;font-size:.95rem;box-shadow:0 1px 2px #0000000a}.bubble-user{background:var(--bubble-user);color:var(--bubble-user-fg);border-bottom-right-radius:4px}.bubble-assistant{background:var(--bubble-assist);color:var(--bubble-assist-fg);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.typing{display:inline-flex;gap:4px;align-items:center}.bubble.typing .dot{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:typing 1.2s infinite ease-in-out}.bubble.typing .dot:nth-child(2){animation-delay:.15s}.bubble.typing .dot:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-input{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.chat-input input{flex:1;padding:.7rem .9rem}.continue-btn-inline{margin-top:1rem;background:var(--good)}.criteria-cards{margin:.25rem 0 1.5rem}.criteria-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.5rem}.criteria-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem}.criteria-grid.path-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.criteria-card{border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem;background:#fff;display:flex;flex-direction:column;gap:.2rem;position:relative;transition:border-color .2s,background .2s,opacity .2s}.criteria-card.filled{border-color:var(--good);background:#f0fdf4}.criteria-card.empty{background:#fff}.criteria-status{position:absolute;top:.4rem;right:.55rem;font-size:.8rem;font-weight:700;color:var(--muted)}.criteria-card.filled .criteria-status{color:var(--good)}.criteria-label{font-size:.8rem;font-weight:600;padding-right:1rem}.criteria-hint{font-size:.7rem;color:var(--muted);line-height:1.4}.criteria-card.filled .criteria-hint{color:#166534;font-weight:500}.criteria-card.path-card.chosen{border-color:var(--accent);background:var(--accent-bg);color:#fff}.criteria-card.path-card.chosen .criteria-label{color:#fff}.criteria-card.path-card.chosen .criteria-hint{color:#ffffffd9}.criteria-card.path-card.chosen .criteria-status{color:#fff}.criteria-card.path-card.rejected{opacity:.4}.criteria-card.path-card.pending .criteria-status{color:var(--muted)}.sub-item-card{border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:1rem;background:#fff}.bom-table{width:100%;border-collapse:collapse}.bom-table th,.bom-table td{border-bottom:1px solid #eee;padding:.5rem;text-align:left}.chat-panel{border:1px solid var(--border);border-radius:6px;padding:1rem;background:#fff;min-height:200px;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}@media (max-width: 900px){.layout{grid-template-columns:1fr}.layout .right-rail{order:-1}.layout main{padding:1.5rem 1rem}.chat-heading{font-size:1.5rem}}
