:root{--bg:#0f1419;--panel:#1a2129;--line:#2a323d;--fg:#d7dee8;--muted:#7d8794;--accent:#4ea1ff;--ok:#3ec46d;--err:#ff6b6b;--warn:#f0b429}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,sans-serif}.app{max-width:1200px;margin:0 auto;padding:1.5rem}header{align-items:baseline;gap:.75rem;display:flex}header h1{color:var(--accent);margin:0;font-size:1.5rem}.tagline{color:var(--muted)}.tabs{border-bottom:1px solid var(--line);gap:.25rem;margin:1rem 0;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.95rem}.tab.active{color:var(--fg);border-bottom-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem}.qr{border-radius:4px;align-self:flex-start;width:232px;height:auto}.panel.bench{border-style:dashed;border-color:var(--warn);background:0 0;margin-top:1rem}.bench-absent{border-left:2px solid var(--line);margin-top:1rem;padding-left:.75rem;font-size:.85rem}.bench-head-actions{align-items:center;gap:.4rem;display:flex}.bench-unused{border-left:2px solid var(--line);margin-top:.5rem;padding-left:.75rem;font-size:.85rem}.bench-points{flex-direction:column;gap:.4rem;margin-top:.75rem;display:flex}.bench-point{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.bench-point:last-child{border-bottom:none}.bench-point-id{flex-direction:column;min-width:11rem;display:flex}.bench-point-id code{font-size:.75rem}.bench-foreign{font-size:.7rem;font-style:italic}.bench-pill{border:1px solid var(--line);color:var(--muted);text-align:center;border-radius:999px;min-width:2.6rem;padding:.1rem .5rem;font-size:.75rem}.bench-pill.on{color:var(--warn);border-color:var(--warn);font-weight:600}.bench-actions{gap:.4rem;margin-left:auto;display:flex}.panel.split{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.col{flex-direction:column;gap:.5rem;min-width:0;display:flex}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.chat-log{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.chat-turn{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem}.chat-turn.user{background:var(--panel)}.chat-turn.assistant{background:var(--bg)}.chat-turn>strong{color:var(--muted);margin-bottom:.25rem;font-size:.75rem;display:block}.chat-turn p{white-space:pre-wrap;margin:0}textarea.code,pre.code{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.75rem;font:13px/1.5 ui-monospace,SF Mono,Menlo,monospace}textarea.code{resize:vertical;width:100%;min-height:420px}pre.code.output{white-space:pre;max-height:480px;overflow:auto}pre.resolved-ir{white-space:pre;border:1px solid var(--line);background:var(--bg);max-height:260px;color:var(--fg);border-radius:6px;margin:.5rem 0 0;padding:.6rem;font:12px ui-monospace,monospace;overflow:auto}button{background:var(--accent);color:#06121f;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600}button:disabled{opacity:.5;cursor:default}.controls{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.controls label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.controls input,.controls select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;min-width:8rem;padding:.4rem .5rem}.banner{border-radius:6px;margin:.5rem 0;padding:.5rem .75rem}.banner.ok{color:var(--ok);background:#3ec46d1f}.banner.error{color:var(--err);background:#ff6b6b1f}.diags{margin:0;padding:0;list-style:none}.diag{border-left:3px solid var(--line);margin-bottom:.3rem;padding:.4rem .5rem}.diag.error{border-left-color:var(--err)}.diag.warning{border-left-color:var(--warn)}.diag code{color:var(--accent)}.gaps-block{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:.75rem}.diag.gap{border-left-color:var(--accent)}.diag.gap .muted{margin-top:.15rem;font-size:.85rem}.diag.proposal{border-left-color:var(--warn);border-left-style:dashed}.diag.proposal .muted{margin:.15rem 0;font-size:.85rem}.proposal-head{cursor:pointer;align-items:center;gap:.5rem;display:flex}.proposal-head input{cursor:pointer}.patch{background:var(--bg);border:1px solid var(--line);white-space:pre;color:var(--fg);border-radius:4px;margin:.35rem 0 0;padding:.4rem .6rem;font-size:.8rem;overflow-x:auto}.muted{color:var(--muted)}.trace-wrap{border:1px solid var(--line);border-radius:6px;max-height:540px;overflow:auto}table.trace{border-collapse:collapse;width:100%;font:12px ui-monospace,monospace}table.trace th,table.trace td{text-align:right;border-bottom:1px solid var(--line);padding:.3rem .6rem}table.trace th{background:var(--panel);color:var(--muted);position:sticky;top:0}table.trace td.state{text-align:left;color:var(--accent)}.output-head{justify-content:space-between;align-items:center;display:flex}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:1.5rem;padding:1.25rem 1rem;display:flex}.brand h1{color:var(--accent);margin:0;font-size:1.3rem}.brand .tagline{color:var(--muted);font-size:.8rem}.nav{flex-direction:column;gap:.25rem;display:flex}.nav-item{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.55rem .75rem;font-weight:500}.nav-item:hover{color:var(--fg);background:#ffffff08}.nav-item.active{color:var(--fg);background:#4ea1ff1f}.content{min-width:0;max-width:1100px;padding:1.5rem}.section-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section h2{margin:0 0 .5rem}.new-project{gap:.5rem;display:flex}.new-project input{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;min-width:14rem;padding:.45rem .6rem}.project-list,.history-list{margin:1rem 0 0;padding:0;list-style:none}.project-list li{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.project-list .meta,.history-list .meta{color:var(--muted);font-size:.8rem}.spacer,.project-list .link{flex:1}button.link{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:1rem;font-weight:600}button.ghost{border:1px solid var(--line);color:var(--muted);background:0 0;font-weight:500}button.ghost:hover{color:var(--fg)}button.ghost.danger:hover{color:var(--err);border-color:var(--err)}button.link.danger{color:var(--muted);font-weight:500}button.link.danger:hover{color:var(--err)}.check-row{cursor:pointer;align-items:flex-start;gap:.5rem;margin:.75rem 0;font-size:.9rem;display:flex}.check-row input{flex:none;margin-top:.2rem}button.ghost.id-chip{letter-spacing:.02em;padding:.1rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.workspace{flex-direction:column;gap:.75rem;display:flex}.toolbar{align-items:center;gap:.75rem;display:flex}.toolbar .ws-title{font-size:1.1rem}.toolbar .spacer{flex:1}.err{color:var(--err)}.drawer{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-top:1rem;padding:1rem}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.history-list li{border-bottom:1px solid var(--line);grid-template-columns:5rem 1fr auto auto;align-items:center;gap:.75rem;padding:.4rem 0;display:grid}.history-list .msg{color:var(--fg)}.history-list .actions{gap:.4rem;display:flex}pre.code.diff .diff-line{white-space:pre}.diff-line.add{color:var(--ok)}.diff-line.del{color:var(--err)}.diff-line.hunk{color:var(--accent)}.backend-picker{flex-wrap:wrap;align-items:center;gap:1rem;margin:.5rem 0;display:flex}.backend-picker label{color:var(--fg);cursor:pointer;align-items:center;gap:.35rem;display:flex}.compare-grid{gap:.75rem;margin-top:.75rem;display:grid}.compare-col{min-width:0}.compare-col pre.code{max-height:360px}.diff-section{margin-top:1rem}.diff-section select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;margin-bottom:.5rem;padding:.4rem .5rem}.fleet-layout{grid-template-columns:280px 1fr;gap:1.5rem;margin-top:1rem;display:grid}.fleet-layout .project-list{margin-top:0}.fleet-layout .project-list li.selected{background:#4ea1ff0f;border-radius:4px}.project-list li.device-row{padding:.5rem .4rem;display:block}.device-row-head{align-items:center;gap:.5rem;display:flex}.device-row-head .link{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.device-row-head .ghost.danger{flex:none;padding:.15rem .4rem;font-size:.85rem;line-height:1}.device-row-meta{flex-wrap:wrap;gap:.15rem .6rem;margin-top:.2rem;display:flex}.device-row-meta .meta{white-space:nowrap}.device-detail{min-width:0}.device-detail h3{margin:0 0 .75rem}.device-detail h4{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem;font-size:.85rem}.kv-table{border-collapse:collapse;width:100%;margin-bottom:.5rem}.kv-table td{border-bottom:1px solid var(--line);padding:.3rem .5rem;font-size:.9rem}.kv-table td:first-child{color:var(--muted);width:8rem}.ok{color:var(--ok)}.drift-badge{border-radius:4px;padding:.2rem .5rem;font-size:.8rem;font-weight:600}.drift-badge.ok{background:#3ec46d1f}.drift-badge.err{background:#ff6b6b1f}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:.75rem;width:320px;padding:2rem;display:flex}.auth-card h1{color:var(--accent);margin:0;font-size:1.4rem}.auth-card label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.auth-card input{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.5rem}.sidebar-user{border-top:1px solid var(--line);flex-direction:column;margin-top:auto;padding:.75rem;display:flex}.user-name{color:var(--fg);font-weight:600}.user-role{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.section{flex-direction:column;gap:1rem;padding:1rem 1.5rem;display:flex}.section-head{justify-content:space-between;align-items:center;display:flex}.section-head h2{margin:0}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row input,.row select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.4rem .5rem}.users-table{border-collapse:collapse;width:100%}.users-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:.4rem;font-size:.75rem}.users-table td{border-top:1px solid var(--line);vertical-align:top;padding:.5rem .4rem}.users-table select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.25rem}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .45rem;font-size:.8rem;display:inline-flex}.chip.on{color:var(--accent);border-color:var(--accent)}.tag{color:var(--accent);font-size:.7rem}button.danger{color:var(--err);border:1px solid var(--err);background:0 0}button.danger:disabled{opacity:.4}.copyable{align-items:flex-start;gap:.5rem;display:flex}.copyable input{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;flex:1;padding:.5rem;font-family:monospace}.code-block{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;flex:1;margin:0;padding:.75rem;font-size:.8rem;overflow-x:auto}.pw-form{flex-direction:column;gap:.6rem;max-width:360px;margin:.5rem 0;display:flex}.pw-form label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.pw-form input,.pw-form select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.5rem}.token-table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.85rem}.token-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:.4rem .6rem .4rem 0;font-size:.75rem;font-weight:500}.token-table td{border-top:1px solid var(--line);vertical-align:middle;padding:.45rem .6rem .45rem 0}.token-table td:last-child,.token-table th:last-child{text-align:right;padding-right:0}.token-form{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-top:.75rem;padding-top:.75rem;display:flex}.token-form label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.token-form input,.token-form select{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.5rem}.token-form input{width:11rem}.banner.ok .copyable{margin:.5rem 0}.prompt-export{border-top:1px solid var(--line);margin-top:.75rem;padding-top:.75rem}.prompt-export>summary{cursor:pointer;color:var(--muted);font-size:.85rem}.prompt-export>summary:hover{color:var(--fg)}.prompt-export .controls{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0}.prompt-export input[type=text],.prompt-export input:not([type]){color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:6px;padding:.35rem .5rem}.banner.warn{color:var(--warn);background:#f0b4291f}.banner.warn button.ghost{margin-left:.4rem}.sim-inputs{margin-top:.5rem}.sim-input-row{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.sim-toggle{border:1px solid var(--line);cursor:pointer;background:#0b0f14;border-radius:6px;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.85rem;display:flex}.sim-toggle input[type=number]{color:var(--fg);border:1px solid var(--line);background:0 0;border-radius:4px;padding:.1rem .3rem}.bands{margin-top:.75rem}.band-strip{border:1px solid var(--line);border-radius:6px;width:100%;height:2.2rem;display:flex;overflow:hidden}.band{border-right:1px solid;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.band:last-child{border-right:none}.band-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;padding:0 .3rem;font-size:.75rem;overflow:hidden}.band-axis{justify-content:space-between;margin-top:.2rem;font-size:.75rem;display:flex}.band-list{margin:.6rem 0 0;padding:0;font-size:.85rem;list-style:none}.band-list li{align-items:center;gap:.5rem;padding:.15rem 0;display:flex}.band-swatch{border-radius:3px;flex:none;width:.8rem;height:.8rem}.ladder pre.code.ladder-frame{resize:vertical;max-height:60vh}.ladder.expanded{z-index:50;background:var(--bg);flex-direction:column;gap:.5rem;padding:1rem;display:flex;position:fixed;inset:0;overflow:auto}.ladder.expanded>.controls{flex:none;margin-bottom:0}.ladder.expanded pre.code.ladder-frame{resize:none;flex:auto;max-height:none;margin:0}.ladder.expanded>p.muted{flex:none;margin:0}.grid-wrap{margin:.5rem 0;overflow-x:auto}table.states-grid{border-collapse:collapse;font-size:.9rem}table.states-grid th,table.states-grid td{border:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle;padding:.3rem .5rem}table.states-grid thead th{color:var(--fg);background:#0b0f14;font-weight:600;position:sticky;top:0}table.states-grid thead th .col-type{color:var(--muted);font-size:.7rem;font-weight:400;display:block}table.states-grid tbody th{background:#0b0f14}table.states-grid td.mark{text-align:center}table.states-grid select,table.states-grid input[type=number]{color:var(--fg);border:1px solid var(--line);background:#0b0f14;border-radius:4px;padding:.15rem .3rem;font-size:.85rem}table.states-grid input[type=number]{width:5.5rem}input.state-name{color:var(--fg);background:0 0;border:1px solid #0000;border-radius:4px;width:9rem;padding:.15rem .3rem;font-family:monospace;font-size:.85rem}input.state-name:hover,input.state-name:focus{border-color:var(--line);background:#0b0f14}.num-cell,.when-cell{align-items:center;gap:.25rem;display:inline-flex}table.states-grid td.when-none{background:#0b0f14}table.states-grid select.cond-op{font-family:monospace}.cond-more{color:var(--muted);cursor:help;font-size:.75rem}table.states-grid td.out-cell{background:#ffffff05}input.state-name.transition-name{width:7rem}.state-head{align-items:center;gap:.25rem;display:inline-flex}table.states-grid tbody.state-block+tbody.state-block th,table.states-grid tbody.state-block+tbody.state-block td{border-top:2px solid var(--line)}table.states-grid thead tr.group-row th[scope=colgroup]{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem}table.states-grid thead tr:nth-child(2) th{top:1.75rem}button.ghost.tiny{padding:.1rem .4rem;font-size:.8rem;line-height:1.4}.logic-section{margin-bottom:1.75rem}.logic-section+.logic-section{border-top:1px solid var(--line);padding-top:1.25rem}h3.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-self:center;margin:0;font-size:.8rem;font-weight:600}.transition-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.transition{border:1px solid var(--line);background:#0b0f14;border-radius:6px;gap:.45rem;padding:.6rem .75rem;display:grid}.transition-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.transition-head .arrow{color:var(--muted)}.transition-guard{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.guard-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:.3rem;font-size:.8rem}.transition select,.transition input[type=number]{background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:.2rem .35rem;font-size:.85rem}.transition input[type=number]{width:6rem}.cond-rows{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.cond-line{align-items:center;gap:.5rem;display:flex}.cond-and{color:var(--muted);letter-spacing:.08em;width:2.2rem;font-size:.72rem}.cond-row{align-items:center;gap:.35rem;display:flex}.cond-row .cond-op{text-align:center;width:4rem}.cond-always{font-size:.85rem;font-style:italic}.guard-group{border-left:2px solid var(--border,#c8c8c8);border-radius:4px;align-items:flex-start;gap:.4rem;padding:.3rem .45rem;display:flex}.guard-kind{text-transform:uppercase;color:var(--muted);white-space:nowrap;padding-top:.35rem;font-size:.72rem;font-weight:600}.guard-not>.guard-kind{color:var(--danger,#b44)}.guard-edge>.guard-kind{color:var(--accent,#4a9)}.guard-readonly{color:var(--muted);padding-top:.3rem;font-size:.82rem}.guard-add{gap:.35rem;display:flex}.row-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.row-item{border:1px solid var(--line);background:#0b0f14;border-radius:6px;gap:.4rem;padding:.6rem .75rem;display:grid}.row-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row-fields{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.row-note{font-size:.8rem}.row-note code{margin-right:.25rem}.inline-field{align-items:center;gap:.35rem;font-size:.85rem;display:flex}.inline-field>span{color:var(--muted)}.row-item select,.row-item input[type=number]{background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:.2rem .35rem;font-size:.85rem}.row-item input[type=number]{width:6rem}ul.diags.findings{margin:0 0 1.25rem}
