:root{--font:ui-rounded, system-ui, sans-serif;--bg:#fde9f1;--panel:#ffe0eee6;--panel-tint:var(--panel);--panel-blur:blur(16px) saturate(1.35);--panel-solid:#fff1f7;--panel-border:#f9d7e7;--panel-edge:#f2b9d3;--chip:#fff1f7;--chip-hover:#ffe2ef;--text:#70455f;--muted:#7b4767;--accent:#ff82b6;--accent-gradient:linear-gradient(135deg, #ff9cc6, #ff82b6 55%, #f877ad);--on-accent:#4a1c3a;--accent-strong:#962a5f;--accent-soft:#ffd3e6;--accent-2:#9d84d6;--good:#2fa57a;--good-soft:#e3f6ec;--warn:#e0951a;--warn-soft:#fff1d6;--warn-edge:#ffd98a;--warn-text:#7d5100;--bad:#e04c68;--bad-soft:#ffe1e8;--bad-edge:#ffb3c1;--bad-text:#952140;--info:#3d8fd8;--radius:16px;--shadow:0 10px 30px #d65c9633, 0 2px 6px #aa508224;--radius-s:12px;--pink-200:#ffe2ef;--pink-300:#ffc9df;--pink-600:#d9558f;--lilac:#b9a2ee;--lilac-deep:#8f74dc;--honey:#f3b94a;--shadow-raised:0 6px 16px #d65c9633, 0 1px 3px #96467824;--gloss:inset 0 1px 0 #ffffffd9;--bevel:inset 0 1px 0 #ffffffe6, inset 0 -2px 0 #be46821f;--focus-ring:0 0 0 3px #b9a2eebf}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}code,.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}h1,h2,h3,h4{margin:0;font-weight:900}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);margin-bottom:8px;font-size:13px}.small{font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.gap-s{gap:6px}.full{width:100%}.stack{flex-direction:column;gap:12px;display:flex}.app{position:fixed;inset:0}.world{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.loading,.gate{color:var(--muted);place-items:center;font-weight:800;display:grid;position:fixed;inset:0}.gate-card{flex-direction:column;gap:12px;width:min(420px,100vw - 32px);padding:28px;display:flex}.panel{background:var(--panel-tint,var(--panel));border:1.5px solid var(--panel-edge,var(--panel-border));border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--panel-blur)}.topbar{pointer-events:none;z-index:20;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:12px;left:12px;right:12px}.topbar>*{pointer-events:auto}.town-card{flex-direction:column;gap:8px;min-width:0;max-width:760px;padding:10px 14px;display:flex}.town-title{align-items:center;gap:10px;display:flex}.town-title b{font-size:17px;font-weight:900;display:block}.town-title small{color:var(--muted);font-weight:700}.town-emblem{background:radial-gradient(circle at 35% 30%, var(--chip), var(--accent-soft) 70%);width:40px;height:40px;box-shadow:inset 0 0 0 1.5px var(--panel-border);border-radius:12px;place-items:center;font-size:26px;display:grid}.stat-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--chip);border:1px solid var(--panel-border);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-flex}.chip[role=button]{cursor:pointer}.conn .dot{background:var(--muted)}.conn-live .dot{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.conn-offline{color:var(--bad)}.world-controls{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;padding:6px;display:flex}@media (width<=1180px){.world-controls{flex-shrink:1}}.seg{background:var(--accent-soft);border-radius:999px;padding:2px;display:flex}.seg button{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 9px;font-size:15px}.seg button.on{background:var(--panel-solid);box-shadow:0 1px 4px #0000001a}.pill{border:1px solid var(--panel-border);background:var(--chip);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}.pill.on{background:var(--accent-gradient,var(--accent));color:var(--on-accent);box-shadow:0 3px 10px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}.pill:not(.on):not(:disabled):hover{background:var(--chip-hover)}.pill:disabled{opacity:.45;cursor:default}.pill.danger{color:color-mix(in srgb, var(--bad) 80%, black);border-color:color-mix(in srgb, var(--bad) 45%, transparent)}.banner{top:var(--hud-top,110px);z-index:19;cursor:pointer;box-shadow:var(--shadow);text-align:center;border-radius:999px;max-width:calc(100vw - 32px);padding:8px 16px;font-size:13px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.banner-simulation{background:var(--warn-soft);color:var(--warn-text);border:1.5px solid var(--warn-edge)}.banner-unconfigured{background:var(--bad-soft);color:var(--bad-text);border:1.5px solid var(--bad-edge)}.dock{z-index:20;gap:6px;max-width:calc(100vw - 24px);padding:8px;display:flex;position:absolute;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%)}.dock-btn{background:var(--chip);cursor:pointer;border:0;border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:62px;height:58px;transition:transform .15s,background .15s;display:flex;position:relative}.dock-btn:hover{transform:translateY(-4px)scale(1.06)}.dock-btn.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.dock-icon{font-size:22px;line-height:1}.dock-label{color:var(--muted);white-space:nowrap;font-size:9.5px;font-weight:800}.dock-badge{background:var(--bad);color:#fff;border:2px solid var(--panel-solid);border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:900;display:grid;position:absolute;top:-4px;right:-4px}.dock-badge.soft{background:var(--accent-2)}.drawer{top:var(--hud-top,108px);z-index:25;background:var(--panel-tint,var(--panel));border:1.5px solid var(--panel-edge,var(--panel-border));border-radius:var(--radius);width:min(400px,100vw - 24px);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--panel-blur);flex-direction:column;animation:.22s slide-in;display:flex;position:absolute;bottom:96px}.drawer.wide{width:min(560px,100vw - 24px)}.drawer-left{left:12px}.drawer-right{right:12px}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}.drawer-head{justify-content:space-between;align-items:center;padding:12px 14px 6px;display:flex}.drawer-head h2{align-items:center;gap:8px;font-size:18px;display:flex}.drawer-icon{font-size:20px}.drawer-body{flex-direction:column;gap:12px;padding:6px 14px 16px;display:flex;overflow-y:auto}.icon-btn{background:var(--accent-soft);cursor:pointer;width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;flex:none;font-weight:900}.card{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:calc(var(--radius) - 4px);flex-direction:column;gap:8px;padding:12px;display:flex}.empty{color:var(--muted);text-align:center;padding:16px 8px;font-weight:700}.error-box{background:var(--bad-soft);color:var(--bad-text);white-space:pre-wrap;border-radius:10px;margin:0;padding:8px 10px;font-size:13px}.info-box{background:var(--good-soft,#e6f6ec);color:var(--good-text,#1f6b3a);white-space:pre-wrap;border-radius:10px;margin:0;padding:8px 10px;font-size:13px}.warn-box{background:var(--warn-soft);color:var(--warn-text);border-radius:10px;padding:8px 10px;font-size:13px}input,select,textarea{background:var(--panel-solid);border:1.5px solid var(--panel-border);border-radius:10px;outline:none;min-width:0;padding:7px 10px}textarea{resize:vertical}input[type=color]{width:100%;height:36px;padding:2px}.form label,label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:800;display:flex}label.check{color:var(--text);flex-direction:row;align-items:flex-start;gap:8px;font-size:13px;font-weight:600}label.check.inline{align-items:center}label.check input{margin-top:3px}fieldset{border:1.5px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:10px;display:flex}legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:800}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn{border:1.5px solid var(--panel-border);background:var(--chip);cursor:pointer;border-radius:12px;padding:8px 14px;font-weight:800}.btn.primary{background:var(--accent-gradient,var(--accent));color:var(--on-accent);box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}.btn.warn{background:var(--warn-soft);border-color:var(--warn-edge)}.btn.ghost{background:0 0}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.5;cursor:default}.btn.primary:disabled{opacity:1;background:var(--accent-soft);color:var(--muted);box-shadow:none}.link{cursor:pointer;text-align:left;color:var(--accent-strong);background:0 0;border:0;padding:0}.composer summary,details summary{cursor:pointer;font-weight:800}.badge{letter-spacing:.03em;white-space:nowrap;border-radius:6px;align-items:center;padding:1px 7px;font-size:10.5px;font-weight:900;display:inline-flex}.tone-good{background:color-mix(in srgb, var(--good) 16%, var(--panel-solid));color:color-mix(in srgb, var(--good) 75%, black)}.tone-warn{background:color-mix(in srgb, var(--warn) 18%, var(--panel-solid));color:color-mix(in srgb, var(--warn) 60%, black)}.tone-bad{background:color-mix(in srgb, var(--bad) 15%, var(--panel-solid));color:color-mix(in srgb, var(--bad) 75%, black)}.tone-info{background:color-mix(in srgb, var(--info) 15%, var(--panel-solid));color:color-mix(in srgb, var(--info) 70%, black)}.tone-accent{background:var(--accent-soft);color:color-mix(in srgb, var(--accent) 70%, black)}.tone-accent2{background:color-mix(in srgb, var(--accent-2) 15%, var(--panel-solid));color:color-mix(in srgb, var(--accent-2) 70%, black)}.tone-muted{background:color-mix(in srgb, var(--muted) 14%, var(--panel-solid));color:var(--muted)}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.status-idle.dot,.dot.status-idle{background:#b9b2c9}.dot.status-planning{background:var(--info)}.dot.status-working{background:var(--accent);animation:1.2s infinite pulse}.dot.status-delivering{background:var(--accent-2)}.dot.status-waiting_approval{background:var(--warn);animation:1s infinite pulse}.dot.status-completed{background:var(--good)}.dot.status-failed{background:var(--bad)}@keyframes pulse{50%{opacity:.4}}.status-pill{background:var(--chip);border:1px solid var(--panel-border);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-flex}.label-scaler{transform-origin:50% 100%}.world-label{pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:4px;display:flex;transform:translateY(-50%)}.name-chip{pointer-events:auto;cursor:pointer;background:var(--chip);border:1.5px solid var(--panel-border);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;display:inline-flex;box-shadow:0 2px 8px #7850782e}.name-chip .role{color:var(--muted);font-size:11px;font-weight:700}.name-chip .lv{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:0 5px;font-size:10px;font-weight:900}.bubble{background:var(--panel-solid);text-align:center;border-radius:12px;width:max-content;max-width:220px;padding:5px 10px;font-size:12px;font-weight:700;line-height:1.3;position:relative;box-shadow:0 3px 10px #78507833}.bubble:after{content:"";background:var(--panel-solid);width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble.status-waiting_approval,.bubble.status-waiting_approval:after{background:var(--warn-soft)}.bubble.status-failed,.bubble.status-failed:after{background:var(--bad-soft)}.building-label{pointer-events:auto;cursor:pointer;background:color-mix(in srgb, var(--panel-solid) 85%, transparent);text-align:center;white-space:nowrap;border-radius:12px;padding:3px 12px;box-shadow:0 2px 8px #78507826}.building-label b{font-size:13px;display:block}.building-label span{color:var(--muted);font-size:11px;font-weight:700}.agent-head{align-items:center;gap:12px;display:flex}.agent-avatar{cursor:pointer;color:#fff;text-shadow:0 1px 2px #0003;border:0;border-radius:20px;flex:none;place-items:center;width:58px;height:58px;font-size:26px;font-weight:900;display:grid;box-shadow:inset 0 -6px #00000014}.agent-id{flex-direction:column;gap:4px;display:flex}.agent-id h2{font-size:21px}.xp-bar{background:var(--accent-soft);border-radius:999px;height:16px;position:relative;overflow:hidden}.xp-bar>div{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;position:absolute;inset:0 auto 0 0}.xp-bar span{padding-left:8px;font-size:10px;font-weight:900;line-height:16px;position:relative}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat-grid>div{background:var(--panel-solid);border:1px solid var(--panel-border);text-align:center;border-radius:12px;flex-direction:column;padding:8px;display:flex}.stat-grid b{font-size:16px;font-weight:900}.stat-grid small{color:var(--muted);font-size:10.5px;font-weight:700}.tabs{background:var(--accent-soft);border-radius:12px;gap:4px;padding:3px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;padding:6px;font-weight:800}.tabs button.on{background:var(--panel-solid);color:var(--accent-strong);box-shadow:0 2px 6px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 -2px 0 var(--accent)}.tabs button:not(.on):hover{color:var(--accent-strong)}.live-feed{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.live-feed li{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.work-feed{overscroll-behavior:contain;flex-direction:column;gap:6px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.work-feed .note{background:var(--panel-solid);border:1px solid var(--panel-border);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px 12px 12px 4px;padding:7px 10px;font-size:13px;line-height:1.45}.work-feed .note small{margin-top:2px;display:block}.work-feed .step{color:var(--muted);overflow-wrap:anywhere;padding-left:4px;font-size:12px}.result-body{max-height:none}.task-mini{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.task-mini li{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.agent-link{align-items:center;gap:5px;font-size:12.5px;font-weight:800;display:inline-flex}.avatar-dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:inset 0 0 0 1px #0000001f}.avatar-dot.big{border-radius:9px;width:26px;height:26px}.resident{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:4px;display:flex}.resident:hover{background:var(--accent-soft)}.kanban{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.kanban-col{background:color-mix(in srgb, var(--accent-soft) 45%, transparent);border-radius:14px;flex-direction:column;gap:6px;min-height:80px;padding:8px;display:flex}.kanban-col h4{text-transform:uppercase;letter-spacing:.05em;font-size:12px}.task-card{text-align:left;background:var(--panel-solid);border:1.5px solid var(--panel-border);cursor:pointer;border-radius:12px;flex-direction:column;gap:5px;padding:8px;display:flex}.task-card.on{border-color:var(--accent)}.task-card b{font-size:13px}.task-detail h3{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:15px}.flow{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:800;display:flex}.flow span{background:var(--panel-solid);border:1px solid var(--panel-border);color:var(--text);border-radius:999px;padding:3px 9px}.steps{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.step{border-radius:999px;padding:2px 8px}.log-table{border-collapse:collapse;width:100%;font-size:12.5px}.log-table td{border-bottom:1px solid var(--panel-border);vertical-align:top;padding:5px 4px}.log-table td:first-child{white-space:nowrap}.markdown{overflow-wrap:anywhere;font-size:13.5px;line-height:1.55}.markdown h1,.markdown h2,.markdown h3{text-transform:none;letter-spacing:0;color:var(--text);margin:12px 0 4px;font-size:15px}.markdown p{margin:6px 0}.markdown ul,.markdown ol{margin:6px 0;padding-left:20px}.markdown a{color:var(--accent-strong);text-underline-offset:2px;font-weight:700;text-decoration:underline}.markdown img{border-radius:8px;max-width:100%;height:auto}.markdown .md-img-blocked{color:var(--muted);font-size:12.5px;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown code{background:var(--accent-soft);border-radius:5px;padding:0 4px}.md-table{margin:6px 0;overflow-x:auto}.md-table table{border-collapse:collapse;min-width:100%;font-size:12.5px}.md-table th,.md-table td{border:1px solid var(--panel-border);text-align:left;vertical-align:top;padding:4px 8px}.md-table th{background:var(--accent-soft);font-weight:800}.markdown pre{background:var(--accent-soft);border-radius:8px;padding:8px;overflow-x:auto}.stat-grid.four b{font-size:18px}.meter{background:var(--accent-soft);border-radius:999px;height:12px;overflow:hidden}.meter>div{background:var(--accent-2);border-radius:999px;height:100%}.meter>div.over{background:var(--bad)}.hbars{flex-direction:column;gap:8px;display:flex}.hbar{grid-template-columns:110px 1fr 70px;align-items:center;gap:8px;padding:2px 0;display:grid}.hbar:hover .hbar-fill{filter:brightness(.92)}.hbar-track{height:10px}.hbar-fill{background:var(--accent-2);border-radius:0 4px 4px 0;height:100%;display:block}.hbar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.columns{border-bottom:1px solid var(--panel-border);align-items:flex-end;gap:2px;height:110px;padding-top:6px;display:flex}.col{cursor:default;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;height:100%;display:flex}.col-fill{background:var(--accent-2);border-radius:4px 4px 0 0;width:100%;max-width:26px}.col:hover .col-fill{filter:brightness(.9)}.col small{color:var(--muted);font-size:9px}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.data-table th{text-align:left;color:var(--muted);padding:4px;font-size:11px}.data-table td{border-top:1px solid var(--panel-border);padding:5px 4px}.conservation{background:linear-gradient(160deg, var(--good-soft), var(--panel-solid))}.pledge{background:color-mix(in srgb, var(--good) 10%, var(--panel-solid));border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.pledge-amount{text-align:right;flex-direction:column;display:flex}.pledge-amount b{color:color-mix(in srgb, var(--good) 70%, black);font-size:22px}.kv{grid-template-columns:110px 1fr;gap:6px 10px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--muted);font-weight:800}.kv dd{margin:0}.credit-notice{z-index:35;flex-direction:column;gap:6px;width:min(560px,100vw - 28px);padding:12px 14px;font-size:13px;display:flex;position:absolute;top:150px;left:50%;transform:translate(-50%)}.credit-notice b{font-size:15px}@media (width<=720px){.credit-notice{top:auto;bottom:110px}}.funding-line{line-height:1.4;display:block}.key-guide{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:12px;padding:8px 12px}.key-guide summary{cursor:pointer}.key-guide ol{margin:8px 0;padding-left:18px}.key-guide ul{margin:4px 0;padding-left:16px}.toasts{z-index:40;flex-direction:column;gap:8px;max-width:min(360px,100vw - 28px);display:flex;position:absolute;bottom:100px;right:14px}.toast{background:var(--panel-solid);box-shadow:var(--shadow);border-left:5px solid var(--info);cursor:pointer;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:700;animation:.25s slide-in}.toast.tone-good{border-left-color:var(--good)}.toast.tone-warn{border-left-color:var(--warn)}.toast.tone-bad{border-left-color:var(--bad)}@media (width<=760px){.topbar{flex-direction:column}.town-card{width:100%;max-width:none}.world-controls{justify-content:flex-start}.drawer,.drawer.wide{width:auto;height:58vh;inset:auto 12px 88px}.kanban{grid-template-columns:1fr}.dock-label{display:none}.dock-btn{width:48px;height:48px}.banner{border-radius:14px;top:auto;bottom:84px}.stat-grid{grid-template-columns:repeat(2,1fr)}}.chips{flex-wrap:wrap;gap:5px;display:flex}.skill-chip{background:var(--accent-soft);color:var(--text);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11.5px;font-weight:800;display:inline-flex}.skill-chip.planned{background:color-mix(in srgb, var(--muted) 12%, var(--panel-solid));color:var(--muted)}.skill-chip em{font-style:normal;font-weight:700}.chip-bad{background:color-mix(in srgb, var(--bad) 14%, var(--panel-solid));color:color-mix(in srgb, var(--bad) 75%, black);cursor:pointer}.template-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.template{text-align:left;border:1.5px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;border-radius:14px;flex-direction:column;gap:3px;padding:10px;transition:transform .12s;display:flex}.template:hover{transform:translateY(-2px)}.template.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.template-icon{font-size:22px}.template small{color:var(--muted);font-size:11px;line-height:1.3}.proof{background:color-mix(in srgb, var(--good) 10%, var(--panel-solid));border-radius:10px;padding:7px 10px;font-size:12.5px;font-weight:700}.seg-row{flex-wrap:wrap;gap:6px;display:flex}.budget-row{grid-template-columns:90px 1fr 110px;align-items:center;gap:8px;font-size:12.5px;font-weight:700;display:grid}.schedule.paused{opacity:.65}.data-table input{width:80px;padding:4px 6px}h4{color:var(--muted);margin:6px 0 0;font-size:12px}.town-clock{align-items:center;gap:4px;display:inline-flex;position:relative}.clock-face{border:1px solid var(--panel-border);background:var(--chip);cursor:pointer;color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:4px 12px 4px 4px;font-size:13px;display:inline-flex}.clock-icon{font-size:16px}.clock-phase{color:var(--muted);font-size:11.5px;font-weight:800}.clock-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:900;display:inline-flex}.live-badge{background:color-mix(in srgb, var(--good) 16%, var(--panel-solid));color:color-mix(in srgb, var(--good) 70%, black)}.live-dot{background:var(--good);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent);border-radius:50%}.clock-face.preview{background:repeating-linear-gradient(-45deg,#fff6dc,#fff6dc 8px,#ffefc4 8px 16px);border-color:#f5c96a}.preview-badge{color:#fff;background:#f5a623}.clock-real{color:#8a5a00;border-left:1px solid #f0d08a;padding-left:7px;font-size:11px;font-weight:800}.clock-live-btn{border:1px solid color-mix(in srgb, var(--good) 40%, var(--panel-solid));background:color-mix(in srgb, var(--good) 14%, var(--panel-solid));color:color-mix(in srgb, var(--good) 70%, black);cursor:pointer;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.popover{z-index:60;background:var(--panel-solid);border:1.5px solid var(--panel-border);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:3px;min-width:230px;padding:8px;animation:.15s slide-in;display:flex;position:absolute}.clock-pop{top:calc(100% + 6px);right:0}.pop-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:2px 6px 4px;font-size:12px;font-weight:900}.pop-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:baseline;gap:6px;padding:6px 8px;font-weight:700;display:flex}.pop-row:hover{background:var(--accent-soft)}.pop-row.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.pop-row small{color:var(--muted);margin-left:auto;font-weight:600}.wardrobe-stage{z-index:2;background:radial-gradient(circle at 50% 35%, var(--chip) 0%, color-mix(in srgb, var(--accent) 16%, var(--panel-solid)) 70%);border:1px solid var(--panel-border);border-radius:16px;flex:none;position:sticky;top:-6px;overflow:hidden;box-shadow:0 6px 14px -10px #3c285a59}.wardrobe-canvas{touch-action:none;height:210px!important}.pose-row{flex-wrap:wrap;justify-content:center;gap:4px;display:flex;position:absolute;bottom:6px;left:6px;right:6px}.pose{background:var(--chip);color:var(--muted);cursor:pointer;border:0;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:800}.pose.on{background:var(--accent);color:var(--on-accent)}.tabs-scroll{flex:none;overflow-x:auto}.tabs-scroll button{white-space:nowrap;padding:6px 8px}.field-label{color:var(--muted);font-size:12.5px;font-weight:800}.opt-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;display:grid}.opt{border:1.5px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;color:var(--text);border-radius:12px;padding:7px 6px;font-size:12.5px;font-weight:800}.opt.on,.item.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.swatches{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.swatch{aspect-ratio:1;box-shadow:0 0 0 1px var(--panel-border);cursor:pointer;border:2px solid #ffffffe6;border-radius:10px}.swatch.on{box-shadow:0 0 0 3px var(--accent)}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.slot-row{flex-direction:column;gap:5px;display:flex}.item-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.item{border:1.5px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;color:var(--text);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:11px;font-weight:800;line-height:1.15;display:flex}.item-icon{font-size:20px;line-height:1.1}.wardrobe-actions{background:linear-gradient(transparent, var(--panel-solid) 35%);justify-content:flex-end;gap:8px;padding:10px 0 4px;display:flex;position:sticky;bottom:-16px}::selection{background:var(--accent-soft);color:var(--accent-strong)}*{scrollbar-color:color-mix(in srgb, var(--accent) 35%, var(--panel-solid)) transparent}.dock-btn:hover{background:var(--chip-hover)}.dock-btn.on{background:linear-gradient(180deg, var(--chip), var(--accent-soft))}.btn:not(.primary):not(:disabled):hover{border-color:var(--accent)}.chip{box-shadow:0 1px 3px color-mix(in srgb, var(--accent) 10%, transparent)}.card{box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 8%, transparent)}.name-chip{border-color:color-mix(in srgb, var(--accent) 35%, var(--panel-solid))}.bubble{border:1.5px solid color-mix(in srgb, var(--accent) 22%, var(--panel-solid))}.cam-pad{z-index:19;grid-template-columns:auto auto;align-items:start;gap:6px;max-width:236px;padding:8px;display:grid;position:absolute;bottom:14px;left:12px}.cam-grid{grid-template-columns:repeat(3,34px);gap:4px;display:grid}.cam-zoom{gap:4px;display:grid}.cam-btn{border:1px solid var(--panel-border);background:var(--chip);width:34px;height:34px;color:var(--accent-strong,var(--accent));cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;place-items:center;font-size:16px;font-weight:900;transition:background .12s,transform 80ms;display:grid}.cam-btn:active{background:var(--accent-soft);transform:scale(.94)}.cam-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cam-home{color:var(--muted)}.cam-hide{color:var(--muted);font-size:12px}.cam-hint{color:var(--muted);grid-column:1/-1;margin:0;font-size:10.5px;font-weight:700;line-height:1.35}.cam-toggle{z-index:19;cursor:pointer;border-radius:12px;width:40px;height:40px;font-size:18px;position:absolute;bottom:14px;left:12px}@media (width<=760px){.cam-pad,.cam-toggle{bottom:92px}.cam-hint{display:none}}.usage{margin-top:4px}.usage>summary{cursor:pointer}.usage-facts{color:var(--text);flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex}.usage-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.usage-table th,.usage-table td{text-align:right;border-bottom:1px solid var(--panel-border);white-space:nowrap;padding:3px 5px}.usage-table td:first-child{white-space:normal}.usage-table.calls{font-size:11.5px}.usage-table th:first-child,.usage-table td:first-child,.usage-table.calls td:nth-child(2){text-align:left}.usage-table tr.total td{border-bottom:none;font-weight:700}.usage-notes{margin:0;padding-left:18px}.run-options{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.run-options label{flex-direction:column;gap:4px;font-size:12.5px;display:flex}.run-options .run-hint,.run-options .funding-line,.run-options .cost-estimate{grid-column:1/-1}.depth-choices{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.depth-choice{border:1px solid var(--panel-border);cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:10px;display:flex}.depth-choice.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.depth-choice input{align-self:flex-start}.chat{text-align:left;flex-direction:column;gap:8px;display:flex}.chat-bar{gap:6px;display:flex}.chat-bar select{flex:1;min-width:0}.chat-log{flex-direction:column;gap:10px;min-height:220px;max-height:calc(100vh - 360px);padding:4px 2px;display:flex;overflow-y:auto}.chat-log.empty-chat{text-align:center;justify-content:center;gap:12px}.chat-msg{border:1px solid var(--panel-border);background:var(--panel-solid);border-radius:14px;flex-direction:column;gap:4px;min-width:0;max-width:92%;padding:8px 11px;display:flex}.chat-msg .who{color:var(--muted);font-size:11.5px;font-weight:800}.chat-msg .who em{font-style:normal;font-weight:700}.chat-msg.agent{border-bottom-left-radius:4px;align-self:flex-start}.chat-msg.owner{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent);border-bottom-right-radius:4px;align-self:flex-end}.chat-msg .owner-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-msg .brief-title{font-size:13px}.chat-msg .btn.tiny{align-self:flex-start;padding:2px 8px;font-size:11.5px}.chat-msg.typing .work-feed{max-height:160px;margin:0}.dots{gap:4px;padding:4px 0;display:inline-flex}.dots i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chat-dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.dots i{opacity:.7;animation:none}}.chat-compose{align-items:flex-end;gap:6px;display:flex}.chat-compose textarea{resize:vertical;flex:1;min-width:0}.ai-setup{flex-direction:column;gap:8px;display:flex}.ai-setup .row>input{flex:1;min-width:0}.span2{grid-column:1/-1}.bad-text{color:var(--bad-text)}.key-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.key-list li{background:var(--chip);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.key-main{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hire-steps{background:var(--accent-soft);border-radius:999px;gap:4px;margin:0;padding:3px;list-style:none;display:flex}.hire-steps li{flex:1}.hire-steps button{width:100%;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:12px;font-weight:800;display:flex}.hire-steps button:disabled{cursor:default;opacity:.6}.hire-steps li.on button{background:var(--panel-solid);color:var(--accent-strong);box-shadow:0 2px 6px color-mix(in srgb, var(--accent) 25%, transparent)}.hire-step-num{background:var(--panel-solid);width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--panel-border);border-radius:50%;place-items:center;font-size:11px;display:inline-grid}.hire-steps li.on .hire-step-num,.hire-steps li.done .hire-step-num{background:var(--accent);color:var(--on-accent);box-shadow:none}.hire-title{text-transform:none;letter-spacing:0;color:var(--text);margin:4px 0 0;font-size:17px}.job-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.job-card{border:1.5px solid var(--panel-border);background:var(--panel-solid);text-align:center;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:12px 8px 10px;transition:transform .12s,box-shadow .12s;display:flex}.job-card:hover{border-color:var(--accent);box-shadow:0 6px 16px color-mix(in srgb, var(--accent) 22%, transparent);transform:translateY(-2px)}.job-card b{font-size:13px}.job-card small{color:var(--muted);font-size:11px;line-height:1.3}.job-card.custom{background:color-mix(in srgb, var(--accent-soft) 45%, var(--panel-solid));border-style:dashed}.job-icon{background:var(--accent-soft);border-radius:14px;place-items:center;width:44px;height:44px;font-size:24px;display:grid;box-shadow:inset 0 -3px #0000000f}.job-icon.small{border-radius:10px;flex:none;width:32px;height:32px;font-size:18px}.job-list{flex-direction:column;gap:4px;max-height:260px;display:flex;overflow-y:auto}.job-row{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.job-row:hover{background:var(--chip-hover);border-color:var(--panel-border)}.job-row span:last-child{flex-direction:column;min-width:0;display:flex}.hire-hero{align-items:center;gap:12px;display:flex}.hire-hero>div{flex-direction:column;min-width:0;display:flex}.hire-hero-icon,.employee-avatar{width:54px;height:54px;box-shadow:inset 0 -4px 0 #00000014, 0 4px 12px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:18px;flex:none;place-items:center;font-size:28px;display:grid}.employee-card{background:linear-gradient(135deg, var(--panel-solid), color-mix(in srgb, var(--accent-soft) 60%, var(--panel-solid)));border:1.5px solid var(--panel-border);border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.employee-avatar{border-radius:22px;width:64px;height:64px;font-size:34px}.employee-id{flex-direction:column;gap:2px;min-width:0;display:flex}.employee-name{font-size:18px}.employee-role{color:var(--accent-strong);font-size:13px;font-weight:800}.note-box{background:var(--warn-soft);border:1px solid var(--warn-edge);border-radius:10px;gap:8px;padding:8px 10px}.resp-list{flex-direction:column;gap:2px;margin:0;padding-left:18px;display:flex}.clamp3{-webkit-line-clamp:3;white-space:pre-wrap;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.hire-summary{flex-direction:column;gap:4px;padding:0 2px;display:flex}.stack-s{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:800}.btn.tiny{border-radius:9px;padding:3px 9px;font-size:11.5px}.job-card.picked{border-color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 55%, var(--panel-solid));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent)}.plan-step{gap:8px}.plan-step>.row{flex-wrap:nowrap}.plan-step-num{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:900;display:inline-grid}.plan-step-title{flex:1;min-width:0;font-weight:700}.plan-deps{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.plan-deps label.check{font-weight:600}.plan-review{flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:13px;display:flex}.plan-review li{overflow-wrap:anywhere}.plan-review li>.card{margin-top:6px}.plan-task{color:var(--text)}.project-card{text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%;transition:transform .12s,border-color .12s}.project-card:hover{border-color:var(--accent);transform:translateY(-1px)}.project-card h3{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:15px}.project-goal{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.meter.thin{height:6px}.draft-callout{background:color-mix(in srgb, var(--warn-soft) 70%, var(--panel-solid));border-color:var(--warn-edge)}.team-chip{background:var(--chip);border-radius:999px;padding:3px 10px}.back-link{align-self:flex-start}.project-dash .kv dd{overflow-wrap:anywhere;min-width:0}details.option{border:1.5px solid var(--panel-border);background:var(--panel-solid);border-radius:12px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}details.option[open]{gap:10px}details.option>summary,details.mini>summary{cursor:pointer;font-size:13px;font-weight:800;list-style:none}details.option>summary::-webkit-details-marker{display:none}details.mini>summary::-webkit-details-marker{display:none}details.option>summary:after,details.mini>summary:after{content:"▸";float:right;color:var(--muted);transition:transform .15s}details.option[open]>summary:after,details.mini[open]>summary:after{transform:rotate(90deg)}details.option[open]>summary{margin-bottom:8px}details.mini{flex-direction:column;gap:8px;display:flex}details.mini[open]>summary{margin-bottom:8px}.btn.welcome{padding:10px 18px;font-size:14px}.label-text{color:var(--muted);font-size:12px;font-weight:800}.equipment{flex-direction:column;gap:8px;display:flex}.equip-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px;display:grid}.equip-tile{border:1.5px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:9px 4px 7px;transition:transform .12s;display:flex;position:relative}.equip-tile:hover{border-color:var(--accent);transform:translateY(-1px)}.equip-tile.on{background:color-mix(in srgb, var(--accent-soft) 70%, var(--panel-solid));border-color:var(--accent)}.equip-tile.open{box-shadow:0 0 0 3px var(--accent-soft)}.equip-tile.ready-coming-soon:not(.on){opacity:.6}.equip-icon{font-size:22px;line-height:1}.equip-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;font-weight:800;overflow:hidden}.equip-check{color:var(--accent-strong);font-size:11px;font-weight:900;position:absolute;top:3px;left:6px}.equip-dot{border-radius:50%;width:8px;height:8px;display:inline-block;position:absolute;top:6px;right:6px}.equip-legend .equip-dot{vertical-align:middle;margin-right:3px;position:static}.equip-dot.working{background:var(--good)}.equip-dot.needs-connection{background:var(--warn)}.equip-dot.coming-soon{background:color-mix(in srgb, var(--muted) 45%, transparent)}.equip-legend{flex-wrap:wrap;gap:4px 12px;display:flex}.equip-detail{gap:6px}.equip-facts{flex-direction:column;gap:3px;display:flex}.perm-list{flex-direction:column;gap:6px;display:flex}.perm-row{background:var(--chip);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;color:var(--text)!important;flex-direction:row!important;font-weight:400!important}.perm-row>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.perm-row.locked{background:color-mix(in srgb, var(--warn-soft) 70%, var(--chip))}.perm-switch{flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.perm-switch small{color:var(--muted);font-size:10px;font-weight:800}.connections{flex-direction:column;gap:6px;display:flex}.conn-chips{flex-wrap:wrap;gap:6px;display:flex}.conn-chip{border:1px solid var(--panel-border);background:var(--chip);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.conn-chip small{color:var(--muted);font-size:10px;font-weight:900}.conn-chip.ok{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 40%, transparent)}.conn-chip.ok small{color:var(--good)}.conn-chip.soon{opacity:.6}.instructions{flex-direction:column;gap:10px;display:flex}.instructions .seg button{padding:4px 12px;font-size:12px;font-weight:800}.md-editor{resize:vertical;font-size:12.5px;line-height:1.5}.list-editor{flex-direction:column;gap:4px;display:flex}.list-item input{flex:1;min-width:0}.config-sections{flex-wrap:wrap;gap:6px;display:flex}.config-save{z-index:2;background:var(--panel-solid);border-top:1px solid var(--panel-border);box-shadow:0 -6px 12px color-mix(in srgb, var(--accent) 10%, transparent);margin:0 -14px;padding:8px 14px 12px;position:sticky;bottom:-16px}.draft-preview{white-space:pre-wrap;background:var(--chip);border-radius:10px;max-height:240px;margin:0;padding:8px 10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;overflow-y:auto}.version-row{border-bottom:1px dashed var(--panel-border);flex-direction:column;gap:4px;padding:4px 0;display:flex}.version-row:last-child{border-bottom:0}.template-actions{flex-wrap:wrap}.draft-source{gap:6px;padding:8px 10px}.draft-source .check span{line-height:1.35}.draft-receipt{padding:0 2px;display:block}.spend-split{flex-direction:column;gap:4px;font-size:13px;display:flex}.panel,.drawer{box-shadow:var(--shadow), var(--gloss), inset 0 0 0 1px #ffffff8c}.card{border-radius:var(--radius-s);box-shadow:0 2px 10px #d65c9614, var(--gloss)}body{font-size:14px;line-height:1.45}.drawer-head h2{color:var(--plum-700,var(--accent-strong));letter-spacing:.005em;font-size:18px;font-weight:900}.drawer-body h3,.card>h3,.card .row>h3{letter-spacing:.08em;color:var(--pink-600);font-size:11.5px;font-weight:900}.drawer-body>h3:before,.drawer-body>section>h3:before{content:"✦ ";color:var(--lilac)}h3.hire-title,.card .row>h3.hire-title,.project-card h3{letter-spacing:0;text-transform:none;color:var(--plum-700,var(--accent-strong));font-size:17px}.drawer-body>section>h3.hire-title:before{content:none}.muted{color:var(--muted)}.mono,.stat-grid b,.meter+small,.chip{font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible,[role=button]:focus-visible,.chip:focus-visible,summary:focus-visible{box-shadow:var(--focus-ring);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--lilac);box-shadow:var(--focus-ring)}.btn{border-radius:var(--radius-s);box-shadow:var(--gloss);transition:transform .12s,box-shadow .15s,background .15s,border-color .15s}.btn:not(:disabled):active{transform:translateY(1px)}.btn.primary{background:var(--accent-gradient);color:var(--on-accent);box-shadow:0 4px 12px #f77fb259, var(--bevel);text-shadow:0 1px #ffffff73}.btn.primary:not(:disabled):hover{box-shadow:0 7px 16px #f77fb26b, var(--bevel);transform:translateY(-1px)}.btn.primary:not(:disabled):active{transform:translateY(1px);box-shadow:0 2px 6px #f77fb24d,inset 0 2px 4px #aa3c7833}.btn.ghost{box-shadow:none;color:var(--plum-700,var(--accent-strong))}.btn.ghost:not(:disabled):hover{background:var(--pink-200);border-color:#0000}.btn:not(.primary):not(.ghost):not(:disabled):hover{background:var(--chip-hover);border-color:var(--pink-300)}.icon-btn{background:var(--chip);box-shadow:var(--bevel), 0 1px 3px #9646781f;color:var(--plum-700,var(--accent-strong));transition:transform .12s,background .15s}.icon-btn:hover{background:var(--pink-200);transform:rotate(90deg)}.town-card{gap:7px;max-width:min(460px,100vw - 24px);padding:9px 12px 10px}.town-title{gap:9px}.town-emblem{background:radial-gradient(circle at 32% 28%, #fff, var(--pink-200) 55%, var(--pink-300));width:36px;height:36px;box-shadow:var(--bevel), 0 2px 6px #d65c9638;border-radius:12px;font-size:21px}.town-name b{color:var(--plum-700,var(--accent-strong));align-items:center;gap:7px;font-size:16px;display:flex}.town-name small{font-size:11.5px}.conn-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.conn-dot.conn-live{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 22%, transparent)}.conn-dot.conn-offline{background:var(--bad)}.stat-chips{gap:5px}.chip{border-color:var(--panel-border);box-shadow:var(--gloss), 0 1px 2px #96467814;padding:3px 9px;font-size:11.5px;transition:background .15s,border-color .15s}.chip[role=button],button.chip{cursor:pointer}.chip[role=button]:hover,button.chip:hover{background:var(--chip-hover);border-color:var(--pink-300)}.chip-attn{background:color-mix(in srgb, var(--warn-soft) 70%, var(--chip));border-color:var(--warn-edge)}.chip-coins{color:#8a5a00;background:linear-gradient(#fffaf0,#fff0cc);border-color:#f8dc9c}.chip-toggle{border:1px dashed var(--pink-300);box-shadow:none;color:var(--plum-700,var(--accent-strong));background:0 0;font-weight:800}.world-controls{gap:5px;padding:5px}.pill{border-color:var(--panel-border);background:var(--chip);box-shadow:var(--gloss);color:var(--plum-800,var(--text));transition:background .15s,border-color .15s,transform .12s}.pill.on{background:linear-gradient(180deg, var(--pink-200), var(--pink-300));color:var(--plum-700,var(--accent-strong));border-color:color-mix(in srgb, var(--pink-500,#f77fb2) 40%, transparent);box-shadow:var(--bevel)}.pill:not(:disabled):active{transform:translateY(1px)}.pill.danger{color:var(--bad-text);background:var(--chip);border-color:var(--bad-edge)}.pill.danger:not(:disabled):hover{background:var(--bad-soft)}.danger-zone{border:1.5px dashed var(--bad-edge);border-radius:var(--radius-s,12px);background:color-mix(in srgb, var(--bad-soft) 35%, var(--panel-solid));flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.danger-zone>summary{color:var(--bad-text)}.danger-zone[open]>summary{margin-bottom:4px}.danger-zone h4{color:var(--bad-text);margin:0}.danger-zone p,.danger-zone ul{overflow-wrap:anywhere;margin:0}.danger-zone ul{padding-left:18px}.danger-zone input{box-sizing:border-box;width:100%}.btn.destructive{background:var(--bad);color:#fff;box-shadow:0 3px 10px color-mix(in srgb, var(--bad) 30%, transparent), var(--bevel,none);text-shadow:none;border-color:#0000}.btn.destructive:not(:disabled):hover{background:color-mix(in srgb, var(--bad) 85%, black);border-color:#0000}.btn.destructive:disabled{opacity:1;background:var(--bad-soft);color:var(--bad-text);box-shadow:none}.btn.small.danger{color:var(--bad-text);border-color:var(--bad-edge)}@media (width<=720px){.danger-zone .btn.destructive{width:100%}}.dock{border-radius:24px;gap:4px;padding:7px}.dock-btn{background:0 0;border-radius:16px;width:64px;height:58px;transition:transform .18s cubic-bezier(.3,1.4,.5,1),background .15s,box-shadow .15s}.dock-btn:hover{background:var(--chip);box-shadow:var(--bevel);transform:translateY(-3px)}.dock-btn:active{transform:translateY(0)scale(.97)}.dock-btn.on{background:var(--accent-gradient);box-shadow:0 5px 14px #f77fb261, var(--bevel);transform:translateY(-3px)}.dock-btn.on .dock-label{color:var(--plum-900,var(--on-accent))}.dock-btn.on:after{content:"✦";color:var(--lilac-deep);text-shadow:0 0 6px #ffffffe6;font-size:11px;position:absolute;top:-9px;left:50%;transform:translate(-50%)}.dock-icon{filter:drop-shadow(0 1px 1px #9646782e);font-size:22px}.dock-label{color:var(--muted);letter-spacing:.01em;font-size:10px;font-weight:800}.dock-badge{background:linear-gradient(180deg, #ff7f9d, var(--bad));border:2px solid #fff;box-shadow:0 2px 5px #d9435f59}.dock-badge.soft{background:linear-gradient(180deg, var(--lilac), var(--lilac-deep));box-shadow:0 2px 5px #8f74dc59}.name-chip{color:var(--plum-800,var(--text));box-shadow:0 2px 8px #5a285038, var(--gloss);background:#fffcfef2;border:1.5px solid #f77fb259;font-weight:800}.name-chip.selected{border-color:var(--pink-500,var(--accent));box-shadow:0 0 0 3px #ffc9dfe6,0 3px 10px #5a285040}.name-chip .role{color:var(--muted)}.name-chip .lv{background:linear-gradient(180deg, #d6c7ff, var(--lilac));color:#3f2a78;border-radius:7px}.bubble{color:var(--plum-800,var(--text));background:#fffcfef7;border:1.5px solid #f77fb247;box-shadow:0 3px 12px #5a285038}.bubble:after{background:#fffcfef7;border-bottom:1.5px solid #f77fb247;border-right:1.5px solid #f77fb247}.building-label{border-bottom:2px solid var(--pink-300);color:var(--plum-800,var(--text));background:#fffafced;box-shadow:0 2px 8px #5a285033}.building-label b{color:var(--plum-700,var(--accent-strong))}.drawer{background:linear-gradient(165deg,#fff0f7fa,#ffe6f1f7 55%,#ffdfedf7)}.drawer-head{border-bottom:1px solid #f0b5d08c;margin:0 6px;padding:13px 14px 9px}.drawer-icon{filter:drop-shadow(0 1px 1px #96467833);font-size:21px}.drawer-body{padding-top:10px}.toast{box-shadow:var(--shadow), var(--gloss);border-radius:16px}.banner{box-shadow:var(--shadow), var(--gloss)}.badge{border-radius:999px;padding:1px 8px}.cam-pad{opacity:.86;transition:opacity .15s}.cam-pad:hover,.cam-pad:focus-within{opacity:1}.cam-btn{box-shadow:var(--gloss);border-radius:10px}.cam-btn:hover{background:var(--pink-200)}@media (width<=720px){.town-card{max-width:none}.dock-btn.on:after,.world-controls .pill-text{display:none}.world-controls .pill{padding:5px 10px}.cam-hint{display:none}}@media (prefers-reduced-motion:reduce){.btn,.pill,.chip,.dock-btn,.icon-btn,.drawer,.toast{transition:none!important;animation:none!important}.dock-btn:hover,.dock-btn.on,.btn.primary:not(:disabled):hover,.icon-btn:hover{transform:none}.dot.status-working,.dot.status-waiting_approval{animation:none}}.panel{box-shadow:var(--shadow), var(--gloss), inset 0 0 0 1px #fff9, inset 0 0 14px #ffffff73}.chip-mode{letter-spacing:.01em;font-weight:900}.chip-mode-simulation,.chip-mode-demo{color:var(--warn-text);background:linear-gradient(180deg, #fffaf0, var(--warn-soft));border-color:var(--warn-edge)}.chip-mode-unconfigured{color:var(--bad-text);background:var(--bad-soft);border-color:var(--bad-edge)}.chip-mode-simulation:hover,.chip-mode-unconfigured:hover{filter:brightness(1.03)}.label-scaler{transition:opacity .2s}.label-scaler[data-lod=far] .name-chip .role,.label-scaler[data-lod=far] .name-chip .lv{display:none}.label-scaler[data-covered="1"]{opacity:.32}.label-scaler[data-covered="1"]:hover{opacity:1}.name-chip.selected{position:relative}.name-chip.selected:before{content:"✦";color:var(--lilac-deep);text-shadow:0 0 4px #fff,0 0 8px #ffffffe6;font-size:11px;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.dock-icon{background:radial-gradient(circle at 35% 28%, #fff, var(--chip) 60%, var(--pink-200));width:32px;height:32px;box-shadow:var(--bevel), 0 1px 3px #9646781f;border-radius:11px;place-items:center;font-size:19px;display:grid}.dock-btn.on .dock-icon{background:radial-gradient(circle at 35% 28%,#fff,#fff6fa 70%)}@media (width<=720px){.dock-icon{width:30px;height:30px;font-size:18px}}@media (prefers-reduced-motion:reduce){.label-scaler{transition:none}}.landing{padding:max(28px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));background:radial-gradient(1200px 520px at 15% -10%, var(--pink-200), transparent 70%), radial-gradient(900px 480px at 100% 0%, color-mix(in srgb, var(--lilac) 28%, transparent), transparent 70%), var(--bg);grid-template-columns:minmax(0,1fr);grid-template-areas:"hero""card""body""footer";place-content:start center;gap:22px;display:grid;position:fixed;inset:0;overflow-y:auto}@media (width>=900px){.landing{grid-template-columns:minmax(0,560px) 400px;grid-template-areas:"hero card""body card""footer footer";column-gap:40px;padding-top:56px}.landing-card{align-self:start;position:sticky;top:0}}.landing-hero{flex-direction:column;grid-area:hero;gap:8px;display:flex}.landing-hero h1{color:var(--accent-strong);text-wrap:balance;margin:0;font-size:clamp(30px,6vw,44px);line-height:1.05}.landing-logo{width:clamp(200px,48vw,300px);max-width:100%;height:auto;display:block}.gate-logo{width:200px;max-width:100%;height:auto;margin:0 auto;display:block}.town-emblem img{width:32px;height:32px;display:block}@media (width<=899px){.landing-logo{margin:0 auto}.landing-hero .landing-kicker{align-self:center}}.landing-kicker{background:var(--accent-soft);color:var(--accent-strong);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-self:start;margin:0;padding:3px 10px;font-size:12px;font-weight:800}.landing-lede{max-width:60ch;margin:0;font-size:16px;line-height:1.55}.landing-card{grid-area:card}.landing-card .gate-card{width:100%}.landing-card .gate-card>h1{display:none}.landing-body{flex-direction:column;grid-area:body;gap:22px;max-width:60ch;display:flex}.landing-body h2{color:var(--accent-strong);margin:0 0 8px;font-size:18px}.landing-body p{margin:0;line-height:1.55}.landing-body a,.landing-footer a,.gate-card a{color:var(--accent-strong);font-weight:700}.landing-steps,.landing-list,.landing-examples{flex-direction:column;gap:8px;margin:0;padding-left:20px;line-height:1.5;display:flex}.landing-prices{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:10px;display:grid}.landing-price{background:var(--panel-solid);border:1.5px solid var(--panel-border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:14px;display:flex}.landing-price.featured{border-color:var(--accent);box-shadow:var(--shadow-raised)}.landing-price h3{margin:0}.landing-choose{align-self:stretch;margin-top:auto}.landing-amount{color:var(--text);font-variant-numeric:tabular-nums;font-size:28px;font-weight:900}.landing-amount span{color:var(--muted);font-size:14px;font-weight:700}.landing-note{background:var(--panel-solid);border-left:4px solid var(--lilac);border-radius:var(--radius-s);padding:10px 12px}.landing-footer{color:var(--muted);flex-wrap:wrap;grid-area:footer;justify-content:center;gap:10px;padding-top:8px;display:flex}@media (width<=720px){.dock{scroll-snap-type:x proximity;padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000)}.dock-btn{scroll-snap-align:start}.drawer,.drawer.wide{top:calc(env(safe-area-inset-top,0px) + 10px);z-index:30;height:auto;bottom:88px}.drawer-body{overflow-x:hidden}.drawer-body>*,.drawer-body .card,.drawer-body section{min-width:0;max-width:100%}.kv{grid-template-columns:minmax(0,1fr);gap:2px}.kv dt{margin-top:8px;font-size:12px}.kv dt:first-child{margin-top:0}.kv dd{overflow-wrap:anywhere;min-width:0}.badge{white-space:normal;overflow-wrap:anywhere;text-align:left;max-width:100%}.drawer-body table{-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}.grid2,.grid3{grid-template-columns:minmax(0,1fr)}.drawer-body label,.drawer-body select,.drawer-body input,.drawer-body textarea{min-width:0;max-width:100%}.drawer-body .row{flex-wrap:wrap}.hbar{grid-template-columns:84px minmax(0,1fr) 60px}.budget-row{grid-template-columns:76px minmax(0,1fr) auto}.drawer-body table .badge{white-space:nowrap;overflow-wrap:normal}.drawer,.drawer.wide{background:var(--pink-100);-webkit-backdrop-filter:none}}.dock-cta .dock-icon{background:var(--accent-gradient,var(--accent));box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 40%, transparent), var(--bevel,none);color:var(--on-accent)}.dock-cta .dock-label{color:var(--accent-strong,var(--accent))}.drawer-nav{padding:0 14px 6px}.nav-tabs{background:var(--accent-soft);scrollbar-width:none;border-radius:12px;gap:4px;padding:3px;display:flex;overflow-x:auto}.nav-tab{cursor:pointer;min-height:36px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1 0 auto;padding:8px 10px;font-size:13px;font-weight:800}.nav-tab.on{background:var(--panel-solid);color:var(--accent-strong,var(--accent));box-shadow:0 2px 6px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 -2px 0 var(--accent)}.nav-tab.nav-cta{background:var(--accent-gradient,var(--accent));color:var(--on-accent);flex:none}.nav-back{color:var(--accent-strong,var(--accent));cursor:pointer;background:0 0;border:0;align-self:flex-start;min-height:32px;padding:6px 2px;font-size:13px;font-weight:800}.more-list{flex-direction:column;gap:6px;display:flex}.more-row{text-align:left;border:1px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;width:100%;min-height:56px;color:var(--text);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.more-row:hover{border-color:var(--accent)}.more-icon{text-align:center;flex:none;width:32px;font-size:22px}.more-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.more-text small{color:var(--muted);font-size:12px;line-height:1.35}.more-badge{background:var(--bad);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:900;display:grid}.more-chevron{color:var(--muted);font-size:20px;font-weight:800}.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.choice{text-align:left;border:1.5px solid var(--panel-border);background:var(--panel-solid);cursor:pointer;color:var(--text);border-radius:16px;flex-direction:column;align-items:flex-start;gap:4px;min-height:44px;padding:12px;display:flex}.choice:hover{border-color:var(--accent)}.choice-icon{font-size:24px}.choice small{color:var(--muted);font-size:12px;line-height:1.35}.starter-list{flex-direction:column;gap:6px;display:flex}.starter{text-align:left;border:1px solid var(--panel-border);background:var(--chip);cursor:pointer;color:var(--text);border-radius:14px;align-items:flex-start;gap:10px;min-height:44px;padding:10px 12px;display:flex}.starter:hover{border-color:var(--accent)}.starter-icon{flex:none;font-size:22px}.starter-text{flex-direction:column;gap:3px;min-width:0;display:flex}.starter-text b{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.starter-text small{color:var(--muted);font-size:12px}.cost-estimate{line-height:1.4;display:block}.lifecycle{flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.sent-note p{margin:6px 0 10px}.guide{z-index:22;width:min(340px,100vw - 24px);max-height:calc(100vh - var(--hud-top,120px) - 110px);background:var(--panel-solid);flex-direction:column;gap:8px;padding:12px 14px;display:flex;position:absolute;bottom:96px;right:12px;overflow-y:auto}.guide-head{align-items:center;gap:8px;display:flex}.guide-spacer{flex:1}.guide-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.guide-steps li{color:var(--muted);align-items:flex-start;gap:10px;display:flex}.guide-steps li.current,.guide-steps li.done{color:var(--text)}.guide-steps li.done b{text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent)}.guide-steps p{margin:4px 0 8px;line-height:1.45}.guide-check{background:var(--chip);border:1.5px solid var(--panel-border);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:900;display:grid}.guide-steps li.current .guide-check{background:var(--accent-gradient,var(--accent));color:var(--on-accent);border-color:#0000}.guide-steps li.done .guide-check{background:var(--good);color:#fff;border-color:#0000}.guide-pill{z-index:22;cursor:pointer;min-height:40px;color:var(--text);border:0;padding:8px 14px;font-weight:800;position:absolute;bottom:96px;right:12px}@media (width<=720px){.dock{max-width:none;padding:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-between;gap:2px;bottom:8px;left:8px;right:8px;transform:none}.dock-btn{flex:1 1 0;width:auto;min-width:0;height:56px}.dock-label{font-size:10.5px;display:block}.choice-grid{grid-template-columns:minmax(0,1fr)}.choice{flex-direction:row;align-items:center;gap:10px}.choice b{flex:none}.guide,.guide-pill{width:auto;bottom:84px;left:8px;right:8px}.guide{max-height:46vh}.guide-pill{right:auto}.btn{min-height:40px}.btn.small{min-height:36px}}.provider-picks{flex-direction:column;gap:6px;list-style:none;display:flex;padding-left:0!important}.provider-picks li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.before-you-start ul{flex-direction:column;gap:4px;margin:6px 0 0;padding-left:18px;display:flex}@media (width<=720px){.nav-tab.nav-cta,.pill-signout,.guide-steps li:not(.current){display:none}.guide{gap:6px;padding:10px 12px}}.feedback-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.feedback-list li{border:1px solid var(--panel-border);background:var(--panel-solid);border-radius:12px;padding:8px 10px}.feedback-list p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}label.inline-input{color:var(--text);flex-direction:row;align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.inline-input input{width:72px}.tiny-input{width:56px;margin:0 4px;padding:2px 6px}.away-lines{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.away-line{text-align:left;background:var(--chip);width:100%;min-height:36px;color:var(--text);cursor:pointer;border:0;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700}.away-line:hover{background:var(--accent-soft)}.away-line.attn{background:color-mix(in srgb, var(--warn) 16%, var(--panel-solid))}.away-highlights{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.away-highlights .link{text-align:left}
