:root{--slate: #1f2326;--orange: #cc5500;--white: #ffffff;--slate-raised: #2c3134;--slate-muted: #6b7376;--slate-subtle: #9aa1a4;--line: #d5d8d9;--surface: #edefef;--page: #f7f8f8;--orange-wash: #fdf0e6;--orange-ink: #8a3a00;--font-display: "Industry", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{margin:0;box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font-body);color:var(--slate)}.app{display:flex;flex-direction:column;height:100%}header{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.1rem;padding:.55rem 1rem;background:var(--slate);color:var(--white)}header h1{font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:.16em;white-space:nowrap}header h1 .light{font-weight:400;opacity:.65}header select{font-size:.85rem;padding:.25rem .4rem;border:1px solid var(--slate-muted);border-radius:3px;background:var(--slate-raised);color:var(--white)}.explode{display:flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--slate-subtle)}.explode input{accent-color:var(--orange)}.meta{margin-left:auto;min-width:0;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-subtle)}.undo{padding:.28rem .75rem;border:1px solid var(--slate-muted);border-radius:3px;background:transparent;color:var(--white);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}.undo:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}.undo:disabled{opacity:.3;cursor:default}.new,.signout{padding:.28rem .7rem;border:1px solid var(--slate-muted);border-radius:3px;background:transparent;color:var(--white);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.new:hover,.signout:hover{border-color:var(--orange);color:var(--orange)}.naming{display:flex;gap:.35rem}.naming input{width:12rem;padding:.28rem .5rem;border:1px solid var(--orange);border-radius:3px;background:var(--slate-raised);color:var(--white);font-family:inherit;font-size:.85rem}.naming button{padding:.28rem .7rem;border:1px solid var(--orange);border-radius:3px;background:var(--orange);color:var(--slate);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}.naming button:disabled{opacity:.4;cursor:default}.budget{padding:.55rem .7rem;border-left:2px solid var(--slate-subtle);background:#00000008;border-radius:2px;font-size:.8rem;line-height:1.5;color:var(--slate-muted)}.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.composer .flag{align-self:auto;padding:.35rem .5rem;border:none;border-radius:3px;background:transparent;color:var(--slate-subtle);font-family:inherit;font-size:.75rem;cursor:pointer}.composer .flag:hover{color:var(--orange);background:transparent}.flag-form label{text-transform:none;letter-spacing:0}.built{padding:.28rem .7rem;border:1px solid var(--orange);border-radius:3px;background:transparent;color:var(--orange);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.built:hover{background:var(--orange);color:var(--slate)}.sheet{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#1416188c}.debrief{width:min(38rem,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem;padding:1.75rem;border-radius:4px;background:var(--surface)}.debrief h2{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.02em;color:var(--slate)}.debrief>label{display:flex;flex-direction:column;gap:.3rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-muted)}.debrief textarea{padding:.5rem .6rem;border:1px solid var(--line);border-radius:3px;background:var(--white);color:var(--slate);font-family:inherit;font-size:.9rem;line-height:1.5;resize:vertical}.debrief textarea:focus{outline:none;border-color:var(--orange)}.consent{display:flex;flex-direction:column;gap:.4rem;padding:.85rem;border:1px solid var(--line);border-radius:3px}.consent legend{padding:0 .4rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-muted)}.consent label{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .5rem;border-radius:3px;cursor:pointer}.consent label:hover,.consent label.picked{background:#0000000a}.consent input{margin-top:.2rem;accent-color:var(--orange)}.consent strong{display:block;font-size:.9rem;font-weight:600;color:var(--slate)}.consent em{display:block;margin-top:.1rem;font-size:.78rem;font-style:normal;line-height:1.45;color:var(--slate-muted)}.sheet-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.3rem}.sheet-actions button{padding:.55rem 1.1rem;border:none;border-radius:3px;background:var(--orange);color:var(--slate);font-family:var(--font-display);font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.sheet-actions button:disabled{opacity:.35;cursor:default}.sheet-actions .quiet{background:transparent;border:1px solid var(--line);color:var(--slate-muted)}.signin{display:flex;align-items:center;justify-content:center;height:100%;background:var(--slate)}.signin form{width:min(26rem,90vw);display:flex;flex-direction:column;gap:.85rem;padding:2.25rem;border-radius:4px;background:var(--surface)}.signin h1{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.16em;color:var(--slate)}.signin h1 .light{font-weight:400;opacity:.55}.signin .tagline,.signin .hint{margin:0}.signin label{display:flex;flex-direction:column;gap:.3rem;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--slate-muted)}.signin .optional{text-transform:none;letter-spacing:0;opacity:.7}.signin input{padding:.5rem .6rem;border:1px solid var(--line);border-radius:3px;background:var(--white);color:var(--slate);font-family:inherit;font-size:.95rem}.signin input:focus{outline:none;border-color:var(--orange)}.signin button{margin-top:.4rem;padding:.6rem;border:none;border-radius:3px;background:var(--orange);color:var(--slate);font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.signin button:disabled{opacity:.4;cursor:default}.exports{display:flex;gap:.35rem}.exports button{padding:.28rem .6rem;border:1px solid var(--slate-muted);border-radius:3px;background:transparent;color:var(--white);cursor:pointer;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.units{display:flex;align-items:center;gap:.35rem;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--slate-subtle);white-space:nowrap}.units select,.naming select{padding:.28rem .4rem;border:1px solid var(--slate-muted);border-radius:3px;background:var(--slate-raised);color:var(--white);font-family:inherit;font-size:.7rem;cursor:pointer}.naming select{border-color:var(--orange);font-size:.85rem}.exports button:first-child{border-color:var(--orange);color:var(--orange)}.exports button:hover{background:var(--orange);border-color:var(--orange);color:var(--slate)}.body{display:flex;flex:1;min-height:0}.chat{width:370px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--surface);border-right:1px solid var(--line)}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.85rem}.hint{font-size:.85rem;line-height:1.55;color:var(--slate-muted)}.hint.quiet{margin-top:.7rem;font-size:.8rem;color:var(--slate-subtle)}.hint.quiet strong{color:var(--slate-muted);font-weight:600}.tagline{font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.19em;color:var(--slate-subtle);margin-bottom:.7rem}.message{display:flex;flex-direction:column;gap:.35rem;max-width:100%}.bubble{padding:.55rem .75rem;border-radius:4px;font-size:.88rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{align-items:flex-end}.message.user .bubble{background:var(--slate);color:var(--white);border-bottom-right-radius:1px}.message.assistant .bubble{background:var(--white);border:1px solid var(--line);border-bottom-left-radius:1px}.message.system .bubble,.message.system{font-size:.8rem;color:var(--slate-muted);font-style:italic}.question{padding:.5rem .75rem;background:var(--orange-wash);border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:3px;font-size:.86rem;font-weight:600;color:var(--orange-ink)}.review{padding:.6rem .75rem;border-left:3px solid var(--slate-subtle);background:#00000008;border-radius:3px;font-size:.86rem;line-height:1.55;color:var(--slate);white-space:pre-wrap}.review-label{display:block;margin-bottom:.3rem;font-family:var(--font-display);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-muted)}.warning{font-size:.78rem;line-height:1.45;color:var(--orange-ink);background:var(--orange-wash);border-left:2px solid var(--orange);padding:.35rem .55rem;border-radius:2px}.versions{display:flex;align-items:center;gap:.35rem;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-muted)}.chip{background:var(--slate);color:var(--white);padding:.08rem .4rem;border-radius:2px;font-family:var(--font-mono);letter-spacing:0}.thinking{display:flex;gap:4px;padding:.7rem .8rem}.activity{display:flex;align-items:center;gap:.5rem;padding:.15rem .1rem;font-size:.78rem;letter-spacing:.02em;color:var(--slate-subtle)}.activity .dots{display:flex;gap:3px}.activity .dots span,.thinking span{width:5px;height:6px;border-radius:50%;background:var(--slate-subtle);animation:bounce 1.2s infinite ease-in-out}.activity .dots span:nth-child(2),.thinking span:nth-child(2){animation-delay:.15s}.activity .dots span:nth-child(3),.thinking span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,70%,to{transform:translateY(0);opacity:.4}35%{transform:translateY(-5px);opacity:1}}.composer{border-top:1px solid var(--line);padding:.6rem;display:flex;flex-direction:column;gap:.5rem}.composer textarea{resize:none;border:1px solid var(--line);border-radius:3px;padding:.5rem;font:inherit;font-size:.88rem;background:var(--white);color:var(--slate)}.composer textarea:focus{outline:2px solid var(--orange);outline-offset:-1px}.composer button{align-self:flex-end;padding:.38rem 1.2rem;border:0;border-radius:3px;background:var(--orange);color:var(--white);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.composer button:disabled{background:var(--slate-subtle);cursor:default}.viewport{position:relative;flex:1;min-width:0}.viewport canvas{display:block}.badge{position:absolute;top:.8rem;left:.8rem;background:var(--orange);color:var(--white);padding:.28rem .7rem;border-radius:2px;font-family:var(--font-mono);font-size:.82rem;font-weight:600;pointer-events:none}.not-assembled{position:absolute;top:.8rem;left:50%;transform:translate(-50%);z-index:2;max-width:min(34rem,calc(100% - 14rem));display:flex;flex-direction:column;gap:.15rem;padding:.5rem .85rem;background:var(--orange-wash);border-left:3px solid var(--orange);border-radius:2px;color:var(--orange-ink);pointer-events:none}.not-assembled strong{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.not-assembled span{font-size:.8rem;line-height:1.4}.empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--slate-subtle);font-size:.95rem;pointer-events:none}.parts{position:absolute;top:.8rem;right:.8rem;max-height:calc(100% - 1.6rem);overflow-y:auto;padding:.6rem .7rem;background:#ffffffeb;border:1px solid var(--line);border-radius:4px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.parts h2{font-family:var(--font-display);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--slate-muted);margin-bottom:.45rem}.parts ul{list-style:none;padding:0}.parts button{display:block;width:100%;text-align:left;padding:.2rem .45rem;margin-bottom:1px;border:0;border-radius:2px;background:transparent;font-size:.8rem;font-family:var(--font-mono);color:var(--slate);cursor:pointer}.parts button:hover{background:var(--surface)}.parts button.active{background:var(--orange);color:var(--white)}.warnings{background:var(--orange-wash);border-top:2px solid var(--orange);color:var(--orange-ink);font-size:.85rem;max-height:40vh;overflow-y:auto}.warnings-toggle{display:flex;align-items:baseline;gap:.6rem;width:100%;padding:.45rem 1rem;background:none;border:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.warnings-toggle:hover .warnings-count{text-decoration:underline}.warnings-count{font-weight:600;white-space:nowrap}.warnings-codes{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;opacity:.75;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.warnings-chevron{opacity:.7}.warnings-item{padding:.3rem 1rem .5rem;line-height:1.45}.warnings-item+.warnings-item{border-top:1px solid rgba(0,0,0,.06)}
