:root{--bg:#08090d;--bg2:#0f1117;--bg3:#14161e;--border:#ffffff12;--border-light:#ffffff21;--text:#f0f0f5;--text-mid:#f0f0f5ad;--text-muted:#f0f0f58c;--blue:#4a7cf7;--blue-dim:#4a7cf726;--blue-border:#4a7cf74d;--green:#5ec98a;--green-dim:#5ec98a1a;--nav-bg:#08090de6;--grid-line:#ffffff06;--tag-bg:#ffffff0a;--hover-border:#ffffff47;--violet:#c77dff;--amber:#e8c460;--danger:#ff6b6b;--danger-dim:#ff6b6b24;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--fs-micro:.75rem;--fs-cap:.8125rem;--fs-ui:.9375rem;--fs-body:1.0625rem;--fs-lead:1.1875rem;--fs-title:1.375rem;--lh-tight:1.35;--lh-body:1.7;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:44px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--measure:44rem;--chat-max:none;--gutter:20px;--header-h:60px;--tap:48px;--icon:24px;--spec-w:400px;--band-bg:var(--bg3);--band-border:var(--border);--panel-bg:var(--bg2);--panel-border:var(--border);--chip-bg:var(--tag-bg);--chip-border:var(--border-light);--field-missing:var(--text-muted);--field-inferred:var(--amber);--field-confirmed:var(--green);--scrim:#0405089e;--sb-size:10px;--sb-thumb:#ffffff29;--sb-thumb-hover:#ffffff4d;--sb-thumb-active:#ffffff6b}:root[data-theme=light]{--bg:#f5f6f9;--bg2:#fff;--bg3:#eceef3;--border:#0a0f1e17;--border-light:#0a0f1e2b;--text:#12141c;--text-mid:#12141cb8;--text-muted:#12141c99;--blue-dim:#4a7cf71a;--green:#2a7a4e;--green-dim:#34965f1a;--nav-bg:#f5f6f9e6;--grid-line:#0a0f1e09;--tag-bg:#0a0f1e0b;--hover-border:#0a0f1e52;--violet:#8b3fd4;--amber:#8a6210;--danger:#d13b41;--danger-dim:#d13b411a;--scrim:#12141c61;--sb-thumb:#0a0f1e33;--sb-thumb-hover:#0a0f1e5c;--sb-thumb-active:#0a0f1e80}@media (width<=389px){:root{--gutter:16px}}@media (width>=768px){:root{--chat-max:calc(var(--measure) + 6rem)}}@media (width>=1200px){:root{--fs-body:1.125rem;--fs-lead:1.3125rem;--fs-title:1.625rem;--header-h:64px;--chat-max:calc(var(--measure) + 8rem);--spec-w:400px}}@media (width>=1600px){:root{--fs-body:1.1875rem;--chat-max:calc(var(--measure) + 10rem);--spec-w:480px}}@media (width>=2200px){:root{--fs-body:1.25rem;--chat-max:calc(var(--measure) + 12rem);--spec-w:560px}}@media (height<=560px){:root{--header-h:48px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}.app{background:var(--bg);height:100dvh;color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex;overflow:hidden}#root{display:contents}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}a:not([class]){color:var(--text-mid);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}a:not([class]):hover{color:var(--text)}.icon{width:var(--icon);height:var(--icon);stroke:currentColor;stroke-width:1.8px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}@supports ((-moz-appearance:none)){*{scrollbar-width:thin;scrollbar-color:var(--sb-thumb) transparent}}::-webkit-scrollbar{width:var(--sb-size);height:var(--sb-size)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--sb-thumb);border-radius:var(--r-pill);background-clip:padding-box;border:3px solid #0000;transition:background-color .2s}::-webkit-scrollbar-thumb:hover{background-color:var(--sb-thumb-hover);background-clip:padding-box}::-webkit-scrollbar-thumb:active{background-color:var(--sb-thumb-active);background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-button{width:0;height:0;display:none}.comp-field::-webkit-scrollbar{width:6px}.comp-field::-webkit-scrollbar-thumb{border-width:2px}.hdr{z-index:30;height:var(--header-h);align-items:center;gap:var(--sp-2);padding:0 var(--sp-3) 0 var(--sp-2);background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);flex:none;display:flex;position:relative}.hdr-back{width:var(--tap);height:var(--tap);color:var(--text-mid);border-radius:var(--r-md);place-items:center;text-decoration:none;display:grid}.hdr-back:hover{color:var(--text);background:var(--tag-bg)}.hdr-brand{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:800}a.hdr-brand-link{color:inherit;text-decoration:none}a.hdr-brand-link:hover{opacity:.75}a.hdr-brand-link:focus-visible{outline:2px solid var(--focus,currentColor);outline-offset:3px;border-radius:4px}@media (width<=399px){.hdr-brand:not(.hdr-brand-link){display:none}}.hdr-spacer{flex:1}.brief-pill{align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-3) 0 10px;border:1px solid var(--chip-border);border-radius:var(--r-pill);background:var(--chip-bg);font-size:var(--fs-ui);color:var(--text-mid);white-space:nowrap;font-weight:500;transition:border-color .2s,color .2s;display:flex}.brief-pill:hover{border-color:var(--hover-border);color:var(--text)}.brief-pill b{color:var(--text);font-weight:600}.brief-pill .icon{width:20px;height:20px}.files-pill{align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-3) 0 6px;border-radius:var(--r-pill);color:var(--text-mid);font-size:var(--fs-ui);border:1px solid #0000;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:flex}.files-pill:hover{border-color:var(--chip-border);background:var(--chip-bg);color:var(--text)}.stack{align-items:center;display:flex}.stack .fchip{margin-left:-6px}.stack .fchip:first-child{margin-left:0}.fchip{background:var(--bg3);width:26px;height:26px;box-shadow:0 0 0 2px var(--bg);color:var(--text-mid);border-radius:50%;flex:none;place-items:center;display:grid}.fchip .icon{stroke-width:2px;width:14px;height:14px}.fchip-img{color:var(--violet)}.fchip-doc{color:var(--amber)}.fchip-link{color:var(--green)}.fchip.is-queued{opacity:.4}.fchip.is-uploading{opacity:.55;position:relative}.fchip.is-uploading:after{content:"";background:conic-gradient(var(--blue) calc(var(--p,0) * 360deg), #4a7cf740 0);border-radius:50%;position:absolute;inset:-5px;-webkit-mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 0);mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 0)}.fchip.is-failed{color:var(--danger);background:var(--danger-dim);box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px var(--danger)}.files-pill b{color:var(--text);font-weight:600}.brief-pill.is-empty{color:var(--text-muted);border-color:var(--border);background:0 0}.ring{background:conic-gradient(var(--blue) calc(var(--p) * 360deg), var(--border-light) 0);border-radius:50%;flex:none;width:20px;height:20px;-webkit-mask:radial-gradient(circle,#0000 5.5px,#000 6px);mask:radial-gradient(circle,#0000 5.5px,#000 6px)}.chat{overscroll-behavior:contain;flex:1;overflow-y:auto}.thread{width:100%;max-width:var(--chat-max);padding-bottom:var(--sp-7);flex-direction:column;margin-inline:auto;display:flex}.row-in{max-width:var(--measure);padding:0 var(--gutter);margin:0 auto}.row-user .row-in{white-space:pre-wrap}.row-in p,.row-in ul,.row-in ol,.row-in li,.row-user .band-files{white-space:normal}.row-bot .msg>:first-child{margin-top:0}.row-bot .msg>:last-child{margin-bottom:0}.row-bot .msg ul,.row-bot .msg ol{margin:var(--sp-2) 0;padding-left:1.4em}.row-bot .msg li+li{margin-top:var(--sp-1)}.row-bot .msg code{font-family:var(--font-mono,ui-monospace, monospace);font-size:.92em}.row-user{background:var(--band-bg);border-top:1px solid var(--band-border);border-bottom:1px solid var(--band-border);padding:var(--sp-5) 0;margin:var(--sp-5) 0;font-weight:500;position:relative}.row-user:first-child{border-top:none;margin-top:0}.row-edit{border-radius:var(--r-md);width:40px;height:40px;color:var(--text-muted);opacity:0;place-items:center;transition:opacity .18s,color .18s;display:grid;position:absolute;top:10px;right:10px}.row-user:hover .row-edit,.row-user:focus-within .row-edit{opacity:1}.row-edit:hover{color:var(--text);background:var(--tag-bg)}.row-edit .icon{width:19px;height:19px}@media (hover:none){.row-edit{opacity:.45}}.row-bot{padding:var(--sp-3) 0 var(--sp-2)}.row-bot p+p{margin-top:var(--sp-4)}.row-bot strong{font-weight:600}.row-bot ul{margin:var(--sp-3) 0 0;padding-left:1.15em}.row-bot li{margin-bottom:var(--sp-2)}.row-bot .msg-status{color:var(--text-muted)}.caret{vertical-align:-.16em;background:var(--blue);width:2px;height:1.05em;margin-left:2px;animation:1.05s step-end infinite caret;display:inline-block}@keyframes caret{0%,to{opacity:1}50%{opacity:0}}.replies{gap:var(--sp-2);padding-top:var(--sp-3);flex-wrap:wrap;display:flex}.reply{min-height:var(--tap);padding:0 var(--sp-5);align-items:center;gap:var(--sp-2);border:1px solid var(--blue-border);border-radius:var(--r-pill);background:var(--blue-dim);color:var(--text);font-size:var(--fs-ui);font-weight:500;transition:background .2s,border-color .2s;display:inline-flex}.reply:hover{background:#4a7cf73d}.reply.is-ghost{border-color:var(--chip-border);color:var(--text-mid);background:0 0}.reply.is-ghost:hover{border-color:var(--hover-border);color:var(--text);background:var(--tag-bg)}.receipt{margin:var(--sp-4) auto 0;max-width:var(--measure);width:calc(100% - var(--gutter) * 2);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg2);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-5);text-align:left;display:block}.receipt:hover{border-color:var(--hover-border)}.receipt-head{align-items:center;gap:var(--sp-2);font-size:var(--fs-cap);letter-spacing:.06em;text-transform:uppercase;color:var(--green);font-weight:600;display:flex}.receipt-head .icon{stroke-width:2.4px;width:17px;height:17px}.receipt-head .receipt-more{color:var(--text-muted);margin-left:auto}.receipt-body{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.tag{padding:7px var(--sp-3);border:1px solid var(--chip-border);border-radius:var(--r-sm);background:var(--chip-bg);font-size:var(--fs-ui);color:var(--text);align-items:center;gap:7px;line-height:1.2;display:inline-flex}.tag em{color:var(--text-muted);font-style:normal}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot-blue{background:var(--blue);box-shadow:0 0 7px #4a7cf773}.dot-green{background:var(--green);box-shadow:0 0 7px #5ec98a66}.dot-violet{background:var(--violet);box-shadow:0 0 7px #c77dff66}.dot-amber{background:var(--amber);box-shadow:0 0 7px #e8c46066}.pipeline{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--fs-cap);color:var(--text-muted);flex-wrap:wrap;display:flex}.pipeline span{color:var(--text-mid)}.peek{margin:var(--sp-5) auto 0;max-width:var(--measure);width:calc(100% - var(--gutter) * 2);border:1px solid var(--blue-border);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--blue-dim), transparent 70%), var(--bg2);padding:var(--sp-5)}.peek-label{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);font-weight:600}.peek h3{font-family:var(--font-display);font-size:var(--fs-title);letter-spacing:-.01em;font-weight:700;line-height:var(--lh-tight);margin:var(--sp-2) 0 var(--sp-2)}.peek p{font-size:var(--fs-ui);color:var(--text-mid);line-height:1.6}.peek-open{margin-top:var(--sp-4);min-height:var(--tap);justify-content:center;align-items:center;gap:var(--sp-2);border:1px solid var(--blue-border);border-radius:var(--r-md);background:var(--blue-dim);width:100%;font-size:var(--fs-ui);font-weight:600;display:inline-flex}.intro{max-width:var(--measure);padding:var(--sp-8) var(--gutter) var(--sp-6);margin:0 auto}.intro h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(28px,8vw,40px);font-weight:800;line-height:1.15}.intro p{margin-top:var(--sp-4);font-size:var(--fs-lead);color:var(--text-mid);line-height:1.55}.intro-label{margin-top:var(--sp-7);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.examples{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.example{align-items:center;gap:var(--sp-3);min-height:60px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border-light);border-radius:var(--r-md);background:var(--bg2);font-size:var(--fs-body);text-align:left;transition:border-color .2s,transform .2s;display:flex}.example:hover{border-color:var(--hover-border)}.example .icon{width:20px;height:20px;color:var(--text-muted);margin-left:auto}.trust{margin-top:var(--sp-6);font-size:var(--fs-cap);color:var(--text-muted);line-height:1.6}.composer{background:var(--bg2);border-top:1px solid var(--border);padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + env(safe-area-inset-bottom,0px));flex:none;position:relative}.activity{pointer-events:none;height:2px;position:absolute;top:-1px;left:0;right:0;overflow:hidden}.activity>span{background:linear-gradient(90deg, var(--blue), var(--green));height:100%;display:block}.activity.is-waiting{background:#4a7cf738}.activity.is-waiting>span{background:0 0;width:100%;position:relative;overflow:hidden}.activity.is-waiting>span:after{content:"";background:linear-gradient(90deg, transparent, var(--blue), var(--green), transparent);animation:1.5s ease-in-out infinite sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.activity.is-waiting>span:after{background:linear-gradient(90deg, var(--blue), var(--green));animation:1.8s ease-in-out infinite dim-pulse;transform:none}@keyframes dim-pulse{0%,to{opacity:.25}50%{opacity:.9}}.caret{animation:none}}.composer-in{max-width:var(--measure);padding:var(--sp-2);border:1px solid var(--border-light);border-radius:var(--r-xl);background:var(--bg);flex-direction:column;margin:0 auto;transition:border-color .2s;display:flex}.composer-in:focus-within{border-color:var(--blue-border)}.comp-tools{align-items:center;gap:var(--sp-1);display:flex}.comp-spacer{flex:1}.banner{padding:var(--sp-3) var(--gutter);background:var(--tag-bg);border-top:1px solid var(--border);flex:none}.banner.is-error{background:var(--danger-dim);border-top-color:#ff6b6b4d}.banner-in{max-width:var(--measure);align-items:center;gap:var(--sp-3);margin:0 auto;display:flex}.banner .icon{width:20px;height:20px;color:var(--text-muted);flex:none}.banner.is-error .icon{color:var(--danger)}.banner-msg{min-width:0;font-size:var(--fs-ui);color:var(--text-mid);flex:1;line-height:1.45}.banner.is-error .banner-msg{color:var(--text)}.banner-msg b{color:var(--text);font-weight:600}.banner-act{min-height:40px;padding:0 var(--sp-4);align-items:center;gap:var(--sp-2);border:1px solid var(--border-light);border-radius:var(--r-sm);font-size:var(--fs-ui);color:var(--text);flex:none;font-weight:600;display:inline-flex}.banner.is-error .banner-act{color:var(--danger);border-color:#ff6b6b73}.banner-act:hover{border-color:var(--hover-border)}.banner-act .icon{width:17px;height:17px;color:inherit}.banner-x{border-radius:var(--r-md);width:40px;height:40px;color:var(--text-muted);flex:none;place-items:center;display:grid}.banner-x:hover{color:var(--text);background:var(--tag-bg)}.banner-x .icon{width:18px;height:18px;color:inherit}@media (width<=439px){.banner-in{row-gap:var(--sp-2);flex-wrap:wrap}.banner-msg{flex:calc(100% - 84px)}.banner-act{order:3;margin-left:32px}.banner-in:not(:has(.banner-x)) .banner-msg{flex-basis:calc(100% - 32px)}}.comp-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--text-mid);flex:none;place-items:center;display:grid}.comp-btn:hover{color:var(--text);background:var(--tag-bg)}.comp-field{width:100%;min-height:40px;max-height:min(8.7em,34dvh);padding:9px var(--sp-3) 3px;color:var(--text);font-family:inherit;font-size:var(--fs-body);resize:none;field-sizing:content;background:0 0;border:none;outline:none;line-height:1.45}.comp-field::placeholder{color:var(--text-muted)}.comp-send{width:var(--tap);height:var(--tap);background:var(--blue);color:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.comp-send[disabled]{background:var(--tag-bg);color:var(--text-muted);cursor:default}.band-files{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.att{align-items:center;gap:var(--sp-2);padding:8px var(--sp-3);border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--bg);font-size:var(--fs-cap);color:var(--text-mid);display:inline-flex}.att .icon{width:18px;height:18px}.commit{background:var(--bg2);border-top:1px solid var(--border);padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom,0px));flex:none}.commit-in{max-width:var(--measure);margin:0 auto}.commit-sum{justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-ui);color:var(--text-mid);display:flex}.commit-sum b{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;font-size:26px;font-weight:800}.commit-go{margin-top:var(--sp-3);justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-md);background:var(--blue);color:#fff;width:100%;min-height:56px;font-size:17px;font-weight:600;display:flex}.commit-go[disabled]{background:var(--tag-bg);color:var(--text-muted);border:1px solid var(--border);cursor:default}.commit-alt{margin-top:var(--sp-3);width:100%;min-height:var(--tap);border:1px solid var(--border-light);border-radius:var(--r-md);color:var(--text-mid);font-size:var(--fs-ui);justify-content:center;align-items:center;font-weight:500;transition:border-color .2s,color .2s;display:flex}.commit-alt:hover{border-color:var(--hover-border);color:var(--text)}.commit-note{margin-top:var(--sp-2);font-size:var(--fs-micro);color:var(--text-muted);text-align:center}.scrim{z-index:40;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:fixed;inset:0}.spec{z-index:41;background:var(--panel-bg);border-top:1px solid var(--border-light);border-radius:var(--r-xl) var(--r-xl) 0 0;flex-direction:column;height:92dvh;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -24px 60px #00000073}.spec-grip{flex:none;place-items:center;height:22px;display:grid}.spec-grip:after{content:"";border-radius:var(--r-pill);background:var(--border-light);width:40px;height:4px}.spec-hd{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border);flex:none;display:flex}.spec-hd h2{font-family:var(--font-display);font-size:var(--fs-title);letter-spacing:-.015em;font-weight:700;line-height:var(--lh-tight)}.spec-hd .spec-count{font-size:var(--fs-cap);color:var(--text-muted);margin-top:5px}.spec-close{width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--text-mid);flex:none;place-items:center;margin-left:auto;display:grid}.spec-close:hover{background:var(--tag-bg);color:var(--text)}.spec-tabs{gap:var(--sp-1);padding:var(--sp-3) var(--sp-5) 0;border-bottom:1px solid var(--border);flex:none;display:flex}.spec-tab{min-height:42px;padding:0 var(--sp-3);align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-ui);border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:600;transition:color .2s,border-color .2s;display:flex}.spec-tab:hover{color:var(--text-mid)}.spec-tab.is-on{color:var(--text);border-bottom-color:var(--blue)}.tab-count{border-radius:var(--r-pill);background:var(--chip-bg);font-size:var(--fs-micro);color:var(--text-mid);padding:1px 7px;font-weight:600}.spec-body{overscroll-behavior:contain;padding:var(--sp-5) var(--sp-5) var(--sp-8);flex:1;overflow-y:auto}.sec-label{align-items:center;gap:var(--sp-2);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-3);font-weight:600;display:flex}.sec+.sec{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border)}.flist{flex-direction:column;display:flex}.frow{align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:var(--sp-2) 0;text-align:left;width:100%;display:flex}.frow:hover .frow-name{color:var(--blue)}.frow .fchip{width:36px;height:36px;box-shadow:none}.frow .fchip .icon{width:18px;height:18px}.frow-open{text-align:left;flex:1;min-width:0}.frow-main{flex:1;min-width:0}.frow-remove{opacity:0;transition:opacity .18s,color .18s,background .18s}.frow:hover .frow-remove,.frow:focus-within .frow-remove{opacity:1}@media (hover:none){.frow-remove{opacity:.45}}.frow-name{font-size:var(--fs-ui);color:var(--text);text-overflow:ellipsis;white-space:nowrap;transition:color .2s;overflow:hidden}.frow-meta{font-size:var(--fs-micro);color:var(--text-muted)}.frow.is-uploading .fchip,.frow.is-queued .fchip{opacity:.4}.frow-bar{border-radius:var(--r-pill);background:var(--tag-bg);height:3px;margin-top:6px;overflow:hidden}.frow-bar>span{height:100%;width:calc(var(--p,0) * 100%);border-radius:var(--r-pill);background:var(--blue);transition:width .25s;display:block}.frow-act{border-radius:var(--r-md);width:40px;height:40px;color:var(--text-muted);flex:none;place-items:center;display:grid}.frow-act:hover{color:var(--text);background:var(--tag-bg)}.frow-act .icon{width:18px;height:18px}.frow-name,.frow-meta{display:block}.f{padding-bottom:var(--sp-5);margin-bottom:var(--sp-5);border-bottom:1px solid var(--border)}.f:last-child{border-bottom:none}.f-label{align-items:center;gap:var(--sp-2);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:flex}.f-val{margin-top:var(--sp-2);font-size:var(--fs-ui);color:var(--text);line-height:1.6}.f-val li{margin:0 0 var(--sp-2) 1.1em}.f-state{border-radius:50%;flex:none;width:8px;height:8px}.is-confirmed .f-state{background:var(--field-confirmed)}.is-inferred .f-state{background:var(--field-inferred)}.is-missing .f-state{border:1.5px dashed var(--field-missing);background:0 0}.is-inferred .f-val{color:var(--text-mid)}.is-inferred .f-val:before{content:"assumed  ";font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--field-inferred);font-weight:600}.f-confirm{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.f-confirm button{min-height:40px;padding:0 var(--sp-4);border:1px solid var(--chip-border);border-radius:var(--r-sm);font-size:var(--fs-ui);color:var(--text-mid)}.f-confirm button:first-child{color:var(--green);border-color:#5ec98a73}.f-confirm button:hover{border-color:var(--hover-border)}.f-missing{margin-top:var(--sp-2);min-height:var(--tap);align-items:center;gap:var(--sp-2);width:100%;padding:0 var(--sp-4);border:1.5px dashed var(--border-light);border-radius:var(--r-md);color:var(--text-muted);font-size:var(--fs-ui);text-align:left;display:flex}.f-missing:hover{border-color:var(--blue-border);color:var(--text-mid)}.f-missing .icon{width:18px;height:18px;color:var(--blue);margin-left:auto}.checks{margin-top:var(--sp-2);gap:var(--sp-3);flex-direction:column;display:flex}.check{gap:var(--sp-3);font-size:var(--fs-ui);color:var(--text);line-height:1.55;display:flex}.check .icon{width:20px;height:20px;color:var(--green);stroke-width:2.2px;flex:none;margin-top:2px}.spec-foot{padding:var(--sp-4) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--panel-bg);flex:none}.spec-status{font-size:var(--fs-cap);color:var(--text-muted);text-align:center;margin-bottom:var(--sp-3)}.btn-outline{width:100%;min-height:var(--tap);justify-content:center;align-items:center;gap:var(--sp-2);border:1px solid var(--border-light);border-radius:var(--r-md);color:var(--text-mid);font-size:var(--fs-ui);background:0 0;font-weight:500;transition:border-color .2s,color .2s;display:flex}.btn-outline:hover{border-color:var(--hover-border);color:var(--text)}@media (width>=1200px){.app{grid-template-columns:1fr var(--spec-w);grid-template-rows:auto auto 1fr auto auto;grid-template-areas:"hdr hdr""bar spec""chat spec""note spec""comp spec";display:grid}.app>.hdr,.app>*>.hdr{grid-area:hdr}.app>.order-bar,.app>*>.order-bar{grid-area:bar}.app>.chat,.app>.cabinet,.app>.auth,.app>*>.chat,.app>*>.cabinet,.app>*>.auth{grid-area:chat;min-height:0}.app>.banner,.app>.review-bar,.app>.delivered,.app>*>.banner,.app>*>.review-bar,.app>*>.delivered{grid-area:note}.app>.composer,.app>.commit,.app>.locked,.app>*>.composer,.app>*>.commit,.app>*>.locked{grid-area:comp}.app:not(:has(.spec)){grid-template-columns:1fr;grid-template-areas:"hdr""bar""chat""note""comp"}.scrim{display:none}.spec{border-top:none;border-left:1px solid var(--panel-border);height:auto;min-height:0;box-shadow:none;border-radius:0;grid-area:spec;position:static}.spec-grip,.spec-close,.spec-foot{display:none}body[data-commit=pane] .spec-foot{display:block}.row-user{padding:var(--sp-6) 0}.chat{flex-direction:column;display:flex}.examples{flex-flow:wrap}.example{flex:46%}.commit-go,.commit-alt{white-space:nowrap}.commit-go{width:auto;min-width:280px;padding:0 var(--sp-6)}.commit-in{align-items:center;gap:var(--sp-3) var(--sp-7);grid-template-columns:auto 1fr auto;grid-template-areas:"sum sum sum""go.alt""note note note";display:grid}.commit-sum{justify-content:flex-start;align-items:baseline;gap:var(--sp-3);flex-direction:row;flex:none;grid-area:sum;max-width:none}.commit-go{grid-area:go;margin-top:0}.commit-alt{width:auto;min-height:48px;padding:0 var(--sp-5);grid-area:alt;margin-top:0}.commit-note{text-align:left;grid-area:note;margin-top:0;display:block}}body[data-spec=closed] .spec,body[data-spec=closed] .scrim{display:none}@media (width>=1200px){body[data-spec=closed][data-spec-desktop=docked] .spec{display:flex}body[data-spec=closed]:not([data-spec-desktop=docked]).app{grid-template-columns:1fr;grid-template-areas:"hdr""bar""chat""note""comp"}}@media (width>=1200px) and (height>=700px){.intro{padding-block:var(--sp-8);margin:auto}}@media (height<=560px){.intro{padding-block:var(--sp-5)}.intro h1{font-size:clamp(22px,5vw,28px)}.intro-label{margin-top:var(--sp-5)}.composer{padding-block:var(--sp-2)}.comp-field{min-height:30px;max-height:min(3em,14dvh);padding-top:5px}.comp-btn,.comp-send{width:44px;height:44px}.att{padding:5px var(--sp-2)}.row-user{padding:var(--sp-4) 0;margin:var(--sp-4) 0}}.btn-primary{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-md);background:var(--blue);color:#fff;width:100%;min-height:56px;font-size:17px;font-weight:600;display:flex}.btn-primary[disabled]{background:var(--tag-bg);color:var(--text-muted);border:1px solid var(--border);cursor:default}.auth{padding:var(--sp-6) var(--gutter) var(--sp-8);flex:1;justify-content:center;align-items:center;display:flex;overflow-y:auto}.auth-card{width:100%;max-width:420px}.auth h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(26px,7vw,34px);font-weight:800;line-height:1.15}.auth-sub{margin-top:var(--sp-3);color:var(--text-mid);font-size:var(--fs-body);line-height:1.6}.auth-order{margin-top:var(--sp-5);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg2)}.auth-order-title{font-weight:600;line-height:1.35}.auth-order-meta{margin-top:var(--sp-2);gap:var(--sp-2) var(--sp-4);font-size:var(--fs-cap);color:var(--text-muted);flex-wrap:wrap;display:flex}.auth-order-meta b{color:var(--text);font-weight:600}.btn-secondary,.btn-google{margin-top:var(--sp-5);justify-content:center;align-items:center;gap:var(--sp-3);border:1px solid var(--border-light);border-radius:var(--r-md);background:var(--bg2);width:100%;min-height:56px;font-size:var(--fs-body);color:var(--text);font-weight:500;display:flex}.btn-secondary:hover,.btn-google:hover{border-color:var(--hover-border)}.btn-secondary svg,.btn-google svg{flex:none;width:20px;height:20px}.auth-or{align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0;font-size:var(--fs-cap);color:var(--text-muted);display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}.field{margin-bottom:var(--sp-3)}.field label{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-weight:600;display:block}.field input{width:100%;min-height:52px;padding:0 var(--sp-4);border:1px solid var(--border-light);border-radius:var(--r-md);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-body);outline:none}.field input::placeholder{color:var(--text-muted)}.field input:focus{border-color:var(--blue-border)}.auth-fine{margin-top:var(--sp-4);font-size:var(--fs-micro);color:var(--text-muted);text-align:center;line-height:1.6}.auth-fine a{color:var(--text-mid)}.auth-sent{text-align:center}.mark{background:var(--blue-dim);width:64px;height:64px;color:var(--blue);border-radius:50%;place-items:center;display:grid}.mark .icon{width:30px;height:30px}.auth-sent .mark{margin:0 auto var(--sp-5)}.mark.is-good{background:var(--green-dim);color:var(--green)}.mark.is-bad{background:var(--danger-dim);color:var(--danger)}.rate-block{margin:var(--sp-6) 0 var(--sp-5)}.rate-label{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2);font-weight:600}.rate{gap:var(--sp-2);display:flex}.rate-star{border:1px solid var(--border-light);border-radius:var(--r-md);width:52px;height:52px;color:var(--text-muted);background:var(--bg);place-items:center;display:grid}.rate-star .icon{width:26px;height:26px}.rate-star:hover{border-color:var(--hover-border);color:var(--text-mid)}.rate-star.is-on{color:var(--amber);background:#e8c4601f;border-color:#e8c46080}.rate-star.is-on .icon{fill:currentColor}.field-area{width:100%;min-height:120px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border-light);border-radius:var(--r-md);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-body);resize:vertical;outline:none;line-height:1.5}.field-area:focus{border-color:var(--blue-border)}.avatar{background:var(--bg3);border:1px solid var(--border-light);width:36px;height:36px;color:var(--text);font-size:var(--fs-ui);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.hdr-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:700}@media (width<=419px){.hdr-title{display:none}}.cabinet{overscroll-behavior:contain;flex:1;overflow-y:auto}.cabinet-in{max-width:860px;padding:var(--sp-6) var(--gutter) var(--sp-8);margin:0 auto}.cabinet h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(24px,6vw,32px);font-weight:800}.cabinet-limit{margin-top:var(--sp-2);color:var(--text-muted);font-size:var(--fs-cap);line-height:1.5}.cabinet-sub{margin-top:var(--sp-2);color:var(--text-muted);font-size:var(--fs-ui)}.orders{gap:var(--sp-3);margin-top:var(--sp-6);flex-direction:column;display:flex}.order{text-align:left;width:100%;padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg2);transition:border-color .2s;display:block}.order:hover{border-color:var(--hover-border)}.order.needs-you{border-color:var(--blue-border);background:linear-gradient(180deg, var(--blue-dim), transparent 60%), var(--bg2)}.order.needs-review{background:linear-gradient(180deg, var(--green-dim), transparent 60%), var(--bg2);border-color:#5ec98a66}.order-top{align-items:flex-start;gap:var(--sp-3);flex-wrap:wrap;display:flex}.order-title{min-width:0;font-size:var(--fs-body);flex:55%;font-weight:600;line-height:1.35}.order-top .status{margin-left:auto}.order-meta{margin-top:var(--sp-3);gap:var(--sp-2) var(--sp-5);font-size:var(--fs-cap);color:var(--text-muted);flex-wrap:wrap;display:flex}.order-meta b{color:var(--text);font-weight:600}.order-note{margin-top:var(--sp-3);color:var(--text-muted);font-size:var(--fs-cap);text-overflow:ellipsis;white-space:nowrap;line-height:1.5;overflow:hidden}.order-cta{margin-top:var(--sp-4)}.order-cta .btn-primary{min-height:48px;font-size:var(--fs-ui)}.status{padding:6px var(--sp-3);border-radius:var(--r-pill);background:var(--tag-bg);border:1px solid var(--border);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--text-mid);white-space:nowrap;flex:none;align-items:center;gap:7px;font-weight:600;display:inline-flex}.status .dot{width:7px;height:7px}.status.is-matching{color:var(--amber);border-color:#e8c46059}.status.is-budget{color:var(--blue);border-color:var(--blue-border);background:var(--blue-dim)}.status.is-processing{color:var(--violet);border-color:#c77dff59}.status.is-review{color:var(--blue);border-color:var(--blue-border);background:var(--blue-dim)}.status.is-done{color:var(--green);border-color:#5ec98a59}.status.is-blocked{color:var(--amber);background:#e8c46014;border-color:#e8c46066}.delivered{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--gutter);border-top:1px solid var(--border);background:var(--bg2);flex-wrap:wrap;flex:none;display:flex}.delivered-label{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.delivered .tag{font-size:var(--fs-cap);padding:5px var(--sp-3)}.order-bar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--gutter);background:var(--bg2);border-bottom:1px solid var(--border);flex:none;display:flex}.order-bar-main{flex:1;min-width:0}.order-bar-title{font-size:var(--fs-ui);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.order-bar-meta{font-size:var(--fs-micro);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.locked{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--gutter) calc(var(--sp-4) + env(safe-area-inset-bottom,0px));background:var(--bg2);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-ui);flex:none;line-height:1.45;display:flex}.locked .icon{flex:none;width:20px;height:20px}.locked-in{max-width:var(--measure);align-items:center;gap:var(--sp-3);width:100%;margin:0 auto;display:flex}.result{margin-top:var(--sp-4);border:1px solid var(--green-dim);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--green-dim), transparent 60%), var(--bg2);padding:var(--sp-5)}.result-label{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--green);font-weight:600}.result h3{font-family:var(--font-display);font-size:var(--fs-title);letter-spacing:-.01em;font-weight:700;line-height:var(--lh-tight);margin:var(--sp-2) 0 var(--sp-3)}.result-list{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.review-bar{padding:var(--sp-3) var(--gutter);background:var(--green-dim);border-top:1px solid var(--border);flex:none;position:relative}.review-bar.is-complete{border-top-color:#5ec98a73}.review-bar-in{max-width:var(--measure);margin:0 auto}.review-bar-top{align-items:center;gap:var(--sp-2);width:100%;min-height:28px;display:flex}.review-bar-title{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-mid);font-weight:600}.review-bar.is-complete .review-bar-title{color:var(--green)}.review-bar-count{font-size:var(--fs-cap);color:var(--text-mid);margin-left:auto}.review-bar-chev{width:18px;height:18px;color:var(--text-muted);transition:transform .2s;transform:rotate(-90deg)}.review-bar.is-collapsed .review-bar-chev{transform:rotate(90deg)}.review-bar-chips{gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.review-bar.is-collapsed .review-bar-chips{display:none}.rchip{align-items:center;gap:var(--sp-2);min-width:0;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--border-light);border-radius:var(--r-md);background:var(--bg);color:var(--text-mid);font-size:var(--fs-ui);text-align:left;flex:1 1 0;line-height:1.25;transition:border-color .2s,color .2s,background .2s;display:flex}.rchip:hover{border-color:var(--hover-border);color:var(--text)}.rchip.is-met{background:var(--green-dim);color:var(--text);border-color:#5ec98a73}.rchip .review-box{border-radius:6px;width:20px;height:20px;margin-top:0}.rchip .review-box .icon{width:14px;height:14px}.rchip.is-met .review-box{background:var(--green);border-color:var(--green);color:var(--bg)}.review-checks{gap:var(--sp-3);flex-direction:column;display:flex}.review-check{gap:var(--sp-3);padding:var(--sp-3) 0;text-align:left;align-items:flex-start;width:100%;display:flex}.review-box{border-radius:var(--r-sm);border:1.5px solid var(--border-light);color:#0000;flex:none;place-items:center;width:24px;height:24px;margin-top:1px;display:grid}.review-check.is-met .review-box{background:var(--green);border-color:var(--green);color:var(--bg)}.review-box .icon{stroke-width:3px;width:16px;height:16px}.review-text{font-size:var(--fs-ui);color:var(--text-mid);flex:1;line-height:1.5}.review-check.is-met .review-text{color:var(--text)}.review-text small{font-size:var(--fs-micro);color:var(--text-muted);margin-top:3px;display:block}.escrow{gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);font-size:var(--fs-cap);color:var(--text-mid);line-height:1.6;display:flex}.escrow .icon{width:20px;height:20px;color:var(--green);flex:none}.escrow b{color:var(--text);font-weight:600}@media (width>=1200px){.cabinet-in{padding-top:var(--sp-8)}.order{padding:var(--sp-6)}.order-cta .btn-primary{width:auto;min-width:260px;padding:0 var(--sp-6)}.auth-card{max-width:460px}}
