:root{--bg:#F7F7F6;--panel:#FBFBFA;--surface:#FFFFFF;--rail:#F1F1EF;--line:#E4E4E1;--line-soft:#EEEEEC;--fg:#151514;--muted:#5C5C58;--chip:#F0F0EE;--hover:#EAEAE7;--ink:#151514;--on-ink:#FFFFFF;--link:#1F5FBF;--info-bg:#ECF2FB;--info-fg:#1A4A91;--err-bg:#FBEDEC;--err-fg:#8E1B13;--ok-fg:#1E6B30;--t-bl:#E3EEDB;--t-cs:#F4E6DA;--t-ve:#E4E7F6;--t-ar:#F3E3EC;--t-lf:#DDEFEE;--t-sf:#ECECEA;--t-ap:#E8E2F4;--font:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121211;--panel:#171716;--surface:#1C1C1B;--rail:#141413;--line:#2C2C2A;--line-soft:#252523;--fg:#EDEDEA;--muted:#A3A39E;--chip:#262624;--hover:#2A2A28;--ink:#EDEDEA;--on-ink:#151514;--link:#8DB4F0;--info-bg:#17233A;--info-fg:#A9C6F2;--err-bg:#3A1D1B;--err-fg:#F2B4AE;--ok-fg:#9FD8A8;--t-bl:#2B3626;--t-cs:#3A2D22;--t-ve:#282C3E;--t-ar:#3A2832;--t-lf:#223534;--t-sf:#2C2C2A;--t-ap:#302A3D;color-scheme:dark}}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--font)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--link);outline-offset:2px}a{color:var(--link)}.app{height:100vh}.app,.side{display:flex}.side{flex:0 0 280px;flex-direction:column;gap:14px;padding:16px 12px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}.side-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.side-head h1{margin:0;font-size:18px;font-weight:600}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.label{padding:4px 8px;font-size:12px;font-weight:500;color:var(--muted)}.list{display:flex;flex-direction:column;gap:2px}.row-btn{display:flex;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:8px;background:transparent;text-align:left;min-height:44px}.row-btn:hover,.row-btn[aria-current=true]{background:var(--hover)}.mark{flex:0 0 32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:600}.row-btn .t{font-weight:500;display:block}.row-btn .s{font-size:12px;color:var(--muted);display:block}.roles{display:flex;flex-wrap:wrap;gap:4px;padding:0 4px}.roles button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 12px;min-height:30px;font-size:13px}.roles button[aria-pressed=true]{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.note{font-size:12px;color:var(--muted);padding:0 4px}.main{flex:1 1;min-width:0;flex-direction:column;background:var(--surface)}.head,.main{display:flex}.head{align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line-soft)}.head .title{font-weight:600;font-size:15px;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{font-weight:500;padding:3px 10px;border-radius:999px;background:var(--ink);color:var(--on-ink)}.meta,.pill{font-size:12px}.meta{color:var(--muted)}.thread{flex:1 1;overflow-y:auto}.inner{display:flex;flex-direction:column;gap:20px;padding:24px 20px;max-width:880px;margin:0 auto}.empty h2{margin:24px 0 8px;font-size:22px;font-weight:600}.starters{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:8px;gap:8px;margin-top:14px}.starters button{text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.starters button:hover{background:var(--hover)}.user{align-self:flex-end;max-width:78%;padding:10px 14px;border-radius:12px;background:var(--chip);display:flex;flex-direction:column;gap:10px}.user-text{white-space:pre-wrap;overflow-wrap:anywhere}.user-files{display:flex;flex-wrap:wrap;gap:8px}.file-pill{display:flex;align-items:center;gap:10px;max-width:100%;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.file-ic{flex:0 0 34px;height:34px;border-radius:7px;background:var(--t-bl);color:var(--fg);display:grid;place-items:center;font-size:10px;font-weight:600;letter-spacing:.04em}.file-meta{display:flex;flex-direction:column;min-width:0}.file-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}.file-sub{font-size:12px;color:var(--muted)}.ai{display:flex;gap:12px}.bot{flex:0 0 30px;height:30px;border-radius:50%;background:var(--t-cs);display:grid;place-items:center;font-size:11px;font-weight:600}.ai-body{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1 1}.md p{margin:0 0 8px}.md p:last-child{margin:0}.md ol,.md ul{margin:0 0 8px;padding-left:20px}.md table{border-collapse:collapse;font-size:13px;display:block;overflow-x:auto}.md td,.md th{border:1px solid var(--line);padding:5px 9px;text-align:left;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.md th{background:var(--panel);font-weight:500}.md code{font-family:var(--mono);font-size:12px;padding:1px 4px;border-radius:4px}.md code,.md pre{background:var(--chip)}.md pre{padding:10px;border-radius:8px;overflow-x:auto}.md pre code{background:none;padding:0}.steps{align-self:flex-start;align-items:center;padding:6px 10px;border:1px solid var(--line);color:var(--muted)}.steps,.steps-list{display:flex;gap:8px;border-radius:8px;background:var(--panel);font-size:13px}.steps-list{flex-direction:column;padding:10px 12px;margin:0;list-style:none}.step .line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.dot{flex:0 0 16px;text-align:center;font-weight:600}.dot.ok{color:var(--ok-fg)}.dot.retry{color:var(--muted)}.dot.run{color:var(--link)}.muted{color:var(--muted)}.spin{width:10px;height:10px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--link);display:inline-block}@media (prefers-reduced-motion:no-preference){.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}}.switch{display:flex;gap:8px;align-items:center;padding:4px;font-size:13px;cursor:pointer}.step{display:flex;flex-direction:column;gap:2px}.step code{font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-word;color:var(--muted);padding-left:22px}.step .r{color:var(--fg)}.step .bad{color:var(--err-fg);font-size:12px;padding-left:22px}.file{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.file .ic{width:36px;height:36px;border-radius:8px;background:var(--info-bg);color:var(--info-fg);display:grid;place-items:center}.file .m{flex:1 1 200px;min-width:0}.file .n{font-weight:500;word-break:break-all}.file .d{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;height:38px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:500;text-decoration:none;color:var(--fg)}.err{padding:8px 10px;border-radius:8px;background:var(--err-bg);color:var(--err-fg);font-size:13px}.thinking{color:var(--muted)}.composer-wrap{padding:0 20px 18px;max-width:880px;width:100%;margin:0 auto}.composer{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.composer textarea{border:0;resize:none;outline:none;background:transparent;min-height:44px}.composer .row{display:flex;align-items:center;gap:8px}.hint{font-size:12px;color:var(--muted);flex:1 1}.send{width:38px;height:38px;border:0;border-radius:8px;background:var(--ink);color:var(--on-ink);display:grid;place-items:center}.send:disabled{opacity:.4;cursor:not-allowed}@media (max-width:760px){.app{flex-direction:column;height:auto}.side{flex:0 0 auto;max-height:280px}}.chips{display:flex;flex-wrap:wrap}.chip,.chips{gap:6px;align-items:center}.chip{display:inline-flex;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:12px}.chip button{border:0;background:transparent;color:var(--muted);padding:0 2px;font-size:14px;line-height:1}.attach{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.composer.drop{border-color:var(--link);background:var(--info-bg)}.approval{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.approval.pending{border-color:#D9A35B}.approval-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.approval-title,.badge{font-weight:600}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.approval.pending .badge{background:#FBEFD9;color:#7A4B00}.approval.approved .badge{background:var(--info-bg);color:var(--info-fg)}.approval.committed .badge{background:#E2F1E4;color:var(--ok-fg)}.approval.failed .badge{background:var(--err-bg);color:var(--err-fg)}.kv{margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.kv-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px}.kv-row dt{color:var(--muted)}.kv-row dd{margin:0;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.btns{display:flex;gap:8px}.btn.primary{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.btn.ghost{background:transparent}.progress{display:flex;flex-direction:column;gap:6px}.bar{height:6px;border-radius:999px;background:var(--chip);overflow:hidden}.bar>div{height:100%;background:var(--link);transition:width .4s}.approval-result{display:flex;flex-direction:column;gap:8px}.small{font-size:12px}@media (prefers-color-scheme:dark){.approval.pending .badge{background:#3A2D17;color:#F0C590}.approval.committed .badge{background:#18291B}}.signin{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;background:var(--bg,#fff)}.signin h1{margin:0;font-size:22px}.team{max-width:860px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:12px}.team h2{margin:0;font-size:20px}.team-add{display:flex;flex-wrap:wrap;gap:8px}.team-add input{flex:1 1 240px;min-width:0;padding:8px 10px}.team-add input,.team-add select,.team-table select{border:1px solid var(--line,#ddd);border-radius:8px;background:var(--surface);color:inherit;font:inherit}.team-add select,.team-table select{padding:6px 8px}.team-roles{margin:0;padding-left:18px;font-size:13px;color:var(--muted,#666)}.team-table{width:100%;border-collapse:collapse;font-size:14px}.team-table td,.team-table th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line,#e5e5e5);vertical-align:middle}.team-table th{font-weight:600;font-size:12px;color:var(--muted,#666)}@media (max-width:640px){.team-table td:nth-child(4),.team-table th:nth-child(4){display:none}}.team-wrap{flex:1 1;overflow:auto}