:root{--bg:#f6f6f4;--surface:#fff;--text:#1d1d1b;--muted:#6b6b66;--border:#dcdcd6;--accent:#1f5f8b;--accent-text:#fff;--danger:#b3261e;--ok:#1e7b34;--sim:#8a5a00;--sim-bg:#fff3d6;--mock:#5b2a86;--mock-bg:#efe4fa;--changed:#fff1a8;--radius:6px;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{flex-direction:column;gap:8px;min-width:0;max-width:720px;margin:0 auto;padding:8px 10px 16px;display:flex}.app.center{justify-content:center;align-items:center;min-height:60vh}h1{flex:1;margin:0;font-size:16px}h2{margin:0 0 6px;font-size:15px}h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px;font-size:12px}p{margin:4px 0}.small{font-size:12px}.muted{color:var(--muted)}.error{color:var(--danger)}code{background:#eeeeea;border-radius:3px;padding:0 3px;font-family:Consolas,ui-monospace,monospace;font-size:11px}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;padding:5px 12px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{border-color:var(--danger);color:var(--danger)}button.link{color:var(--accent);background:0 0;border:none;padding:2px 4px}input,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:6px 8px}textarea{resize:vertical}.row{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.topbar{align-items:center;gap:8px;display:flex}.chip{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;background:#eeeeea;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.chip-pending{color:var(--accent);background:#e8eef5;border-color:#c4d5e6}.chip-applying{color:var(--sim);background:#fff7dc}.chip-applied{color:var(--ok);background:#e3f3e6;border-color:#b9dfc1}.chip-failed{color:var(--danger);background:#fbe5e3;border-color:#efbdb8}.chip-rejected{color:var(--muted);background:#eeeeea}.banner{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:4px 8px;padding:6px 10px;font-size:12px;display:flex}.banner strong{letter-spacing:.06em}.banner-sim{color:var(--sim);background:repeating-linear-gradient(-45deg, var(--sim-bg), var(--sim-bg) 10px, #ffeab8 10px, #ffeab8 20px);border:2px solid #e0a526}.banner-mock{color:var(--mock);background:var(--mock-bg);border:2px solid #b48ad8}.banner-error{color:var(--danger);background:#fbe5e3;border:1px solid #efbdb8}.banner-error button{margin-left:auto}.fatal h2{color:var(--danger)}.toggle{align-items:center;gap:6px;font-weight:600;display:flex}.toggle input{width:auto}.text-block{border-left:3px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#fafaf8;margin:4px 0;padding:6px 8px;font-size:13px}.text-block.current{border-left-color:#c9c9c2;text-decoration:none}.text-block.proposed{border-left-color:var(--accent);background:#eef4fa}.grid-wrap{max-width:100%;overflow-x:auto}.grid{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:12px}.grid th,.grid td{border:1px solid var(--border);text-overflow:ellipsis;white-space:pre;max-width:120px;padding:2px 6px;overflow:hidden}.grid th{color:var(--muted);background:#efefeb;font-weight:500}.grid td.num{text-align:right}.grid td.changed{background:var(--changed)}.grid td .tag{color:var(--muted);border:1px solid var(--border);border-radius:3px;margin-right:4px;padding:0 2px;font-size:9px}.sim-grid td{cursor:pointer;background:var(--surface);min-width:36px}.sim-grid td.sel{outline:1px solid var(--accent);background:#d7e7f5}.simulator summary{cursor:pointer;color:var(--sim);font-weight:600}.simulator>*+*{margin-top:6px}.sim-sheet-name{color:var(--muted);font-size:12px}.segmented{display:inline-flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.segmented button:last-child{border-radius:0 var(--radius) var(--radius) 0;border-left:none}.segmented button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.chat{flex-direction:column;gap:8px;display:flex}.messages{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.messages .empty{padding:8px 2px;font-size:13px}.msg .bubble{border-radius:var(--radius);word-break:break-word;padding:6px 10px}.msg .text{white-space:pre-wrap}.msg.user .bubble{background:#e8eef5;margin-left:24px}.msg.user .ctx{color:var(--muted)}.msg.assistant .bubble{background:var(--surface);border:1px solid var(--border)}.streaming{color:var(--muted);font-size:12px}.streaming .dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.2}}.error-box{border-radius:var(--radius);color:var(--danger);background:#fbe5e3;margin-top:4px;padding:6px 8px;font-size:13px}.proposal{border:1px solid #c4d5e6;border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);margin-top:6px;padding:8px 10px}.proposal-applied{border-left-color:var(--ok)}.proposal-failed{border-left-color:var(--danger)}.proposal-rejected{border-left-color:#b5b5ae}.proposal header{justify-content:space-between;align-items:center;display:flex}.proposal-title{font-weight:600}.proposal .summary{font-size:13px}.proposal .target{font-size:12px}.note.warn{color:var(--sim);font-size:12px}.reason{font-size:12px}.reason.failed{color:var(--danger)}.reason.applied{color:var(--ok)}.actions{gap:8px;margin-top:8px;display:flex}.composer{background:var(--bg);padding-top:4px;position:sticky;bottom:0}.signed-in{margin:0}
