:root{--bg:#0f1218;--floor:#171c26;--panel:#1c2230;--line:#2a3242;--text:#e8ecf3;--muted:#8b94a7;--brand:#f4961e;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);height:100%;margin:0}button,input{font:inherit}.office{grid-template:"top top""key key""floor side"1fr/1fr 360px;gap:12px;height:100vh;padding:12px;display:grid;overflow:hidden}.topbar{background:var(--panel);border:1px solid var(--line);border-radius:14px;grid-area:top;align-items:center;gap:16px;padding:10px 16px;display:flex}.topbar h1{letter-spacing:-.02em;margin:0;font-size:20px}.topbar h1 span{color:var(--brand)}.goal{flex:1;gap:8px;display:flex}.goal input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:10px;outline:none;flex:1;padding:10px 12px}.goal input:focus{border-color:var(--brand)}.btn{background:var(--brand);color:#1a1407;cursor:pointer;border:0;border-radius:10px;padding:10px 16px;font-weight:600}.btn--stop{color:#fff;background:#e74c3c}.toggle{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.floor{background:radial-gradient(ellipse at 50% 0%, #f2b13414, transparent 60%), repeating-linear-gradient(90deg, transparent 0 58px, #ffffff06 58px 60px), var(--floor);border:1px solid var(--line);border-radius:14px;flex-direction:column;grid-area:floor;justify-content:center;align-items:center;padding:16px;display:flex;overflow:hidden}.pixel-canvas{image-rendering:pixelated;image-rendering:crisp-edges;aspect-ratio:22/13;background:#3a2b22;border-radius:8px;width:100%;height:auto;max-height:calc(100% - 40px);box-shadow:0 20px 60px -20px #000000b3,inset 0 0 0 2px #3a2b22}.legend{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.legend .pill{align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.legend .pill i{border-radius:2px;width:8px;height:8px;display:inline-block}.pill{background:var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;font-style:normal}.pill--thinking{color:#c6c3ff;background:#3b3a66}.pill--talking{background:color-mix(in srgb, var(--agent) 30%, #000);color:#fff}.pill--working{color:#9ed0ff;background:#2b4a66}.pill--done{color:#7cf0b0;background:#1f4d36}.side{overscroll-behavior:contain;flex-direction:column;grid-area:side;gap:12px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.side>.panel{flex-shrink:0}.panel--log{flex:0 auto;max-height:45vh}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}.panel h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:13px}.panel--log{flex-direction:column;flex:1;min-height:0;display:flex}.panel--summary{border-color:#2ecc71}.panel--error{color:#ff9b91;border-color:#e74c3c}.muted{color:var(--muted);font-size:13px}.tasks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.task{background:var(--bg);cursor:pointer;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:grid}.task .dot{border-radius:50%;width:8px;height:8px}.task-owner{color:var(--muted);font-size:12px}.task--in_progress .task-title{color:#9ed0ff}.task--done .task-title{color:var(--muted);text-decoration:line-through}.task-detail{white-space:pre-wrap;color:var(--text);background:#0b0e14;border-radius:8px;grid-column:1/-1;max-height:240px;margin:4px 0 0;padding:10px;font-size:12px;overflow:auto}.log{flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.msg{border-left:3px solid var(--agent);padding-left:10px}.msg strong{color:var(--agent);font-size:12px}.msg p{white-space:pre-wrap;margin:2px 0 0;font-size:13px;line-height:1.4}.msg--live p:after{content:"▍";animation:.8s step-end infinite cursor}@keyframes cursor{50%{opacity:0}}@media (max-width:980px){.office{grid-template:"top""key""floor""side"/1fr;height:auto;overflow:visible}.side{overflow:visible}.panel--log{max-height:none}}.needs-title{text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin:12px 0 6px;font-size:12px}.needs{margin:0;padding-left:18px;font-size:13px;line-height:1.5}.needs li{margin-bottom:4px}.panel--proposals.has-pending{border-color:var(--brand)}.panel h2 .count{background:var(--brand);color:#1a1407;letter-spacing:0;text-transform:none;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px}.notice{color:#7cf0b0;margin:0 0 8px;font-size:12px}.proposals{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.proposal{background:var(--bg);border-radius:10px;padding:8px 10px;font-size:13px}.proposal--applied{opacity:.7}.proposal--rejected{opacity:.5}.proposal-head{cursor:pointer;align-items:center;gap:8px;display:flex}.proposal-head .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.proposal-path{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:12px;overflow:hidden}.proposal-title{flex:1;min-width:0;font-size:13px;font-weight:600;line-height:1.3}.proposal-head{flex-wrap:wrap}.brief{grid-template-columns:max-content 1fr;gap:3px 10px;margin:8px 0 0;font-size:12.5px;line-height:1.45;display:grid}.brief dt{color:var(--brand);text-transform:uppercase;letter-spacing:.04em;padding-top:2px;font-size:11px;font-weight:600}.brief dd{color:var(--text);margin:0}.proposal-reason{color:var(--muted);margin:6px 0 0;font-size:11.5px;line-height:1.4}.proposal-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.btn--small{padding:6px 10px;font-size:12px}.btn--ghost{background:var(--line);color:var(--text)}.diff{background:#0b0e14;border-radius:8px;max-height:320px;margin:8px 0 0;padding:8px;font-size:11.5px;line-height:1.45;overflow:auto}.diff-line{white-space:pre-wrap;word-break:break-all}.diff-add{color:#7cf0b0;background:#2ecc7114}.diff-del{color:#ff9b91;background:#e74c3c14}.diff-ctx{color:var(--muted)}.keybar{background:var(--panel);border:1px solid var(--brand);color:var(--muted);border-radius:14px;flex-wrap:wrap;grid-area:key;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.keybar input{background:var(--bg);min-width:240px;color:var(--text);border:1px solid var(--line);border-radius:10px;outline:none;flex:1;padding:8px 12px}.keybar input:focus{border-color:var(--brand)}.key-error{color:#ff9b91}.server-action .sa-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:8px 0 2px;font-size:11px}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:min(420px,100%);padding:28px 24px;display:flex;box-shadow:0 20px 60px -20px #000000b3}.login-card h1{letter-spacing:-.02em;margin:0;font-size:22px}.login-card h1 span{color:var(--brand)}.login-card .muted{margin:0;line-height:1.5}.login-form{flex-direction:column;gap:12px;margin-top:4px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-form input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:10px;outline:none;padding:10px 12px}.login-form input:focus{border-color:var(--brand)}.login-form .btn{margin-top:4px}.login-form .btn:disabled{opacity:.6;cursor:default}.login-error{color:#ff9b91;margin:0;font-size:13px}.signout{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;padding:6px 10px;font-size:12px}.signout:hover{color:var(--text);border-color:var(--muted)}
