:root{font-family:IBM Plex Sans,PingFang SC,Noto Sans SC,sans-serif;color:#1f2f1f;background:radial-gradient(circle at top left,rgba(255,243,203,.8),transparent 34%),radial-gradient(circle at bottom right,rgba(103,148,103,.18),transparent 28%),linear-gradient(180deg,#e5edd7,#d4e2c3);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface: rgba(248, 245, 233, .86);--surface-strong: rgba(255, 251, 238, .94);--surface-soft: rgba(239, 236, 223, .78);--stroke: rgba(76, 103, 67, .18);--ink: #243324;--muted: #617061;--accent: #355f38;--accent-warm: #a66c37;--shadow: 0 22px 64px rgba(49, 67, 40, .16);--legacy-bg: rgba(255, 255, 255, .96);--legacy-bg-soft: rgba(255, 255, 255, .92);--legacy-stroke: #e0dcd0;--legacy-stroke-soft: #f0ece0;--legacy-ink: #3a4a3a;--legacy-muted: #6a7a5a;--legacy-accent: #5a8a4a;--legacy-shadow: 0 4px 20px rgba(0, 0, 0, .08);--legacy-shadow-soft: 0 2px 12px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{min-height:100vh;overflow:hidden;background:radial-gradient(circle at 15% 15%,rgba(255,248,212,.76),transparent 22%),radial-gradient(circle at 82% 24%,rgba(157,194,153,.26),transparent 26%),linear-gradient(180deg,#e5edd7,#d4e2c3);color:var(--ink)}button,input{font:inherit}button{border:0}.app-shell{height:100vh;padding:10px}.app-shell--immersive{overflow:hidden}.stage-shell{position:relative;height:calc(100vh - 20px)}.top-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;padding:12px 16px;border:1px solid var(--stroke);border-radius:20px;background:linear-gradient(135deg,#fffaf0f2,#f0eee1d1);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.eyebrow,.detail-card__eyebrow{margin:0 0 6px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8a9a7a}.top-bar h1,.scenario-studio h2{margin:0;font-family:Iowan Old Style,"Noto Serif SC",serif;font-size:clamp(20px,2.4vw,32px);line-height:1.02}.top-bar__controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.control-btn,.legend-chip,.resident-pill,.ops-panel__toggle,.agent-roster-btn{border-radius:8px;border:1px solid var(--legacy-stroke);background:var(--legacy-bg-soft);color:var(--legacy-muted);cursor:pointer;box-shadow:var(--legacy-shadow-soft);transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.control-btn:hover,.legend-chip:hover,.resident-pill:hover,.ops-panel__toggle:hover,.agent-roster-btn:hover,.agent-chip:hover{background:#e8e4d8;border-color:#c0b8a0;box-shadow:0 2px 12px #0000000f}.control-btn{padding:6px 9px;font-size:11px;line-height:1.4}.control-btn--soft{background:#fffbf0c7}.control-btn--ghost{background:#fffbf0ad}.control-btn.is-active{background:linear-gradient(135deg,#3f7045,#547d4b);color:#f8f4e8}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}.scenario-studio{margin-bottom:10px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.scenario-studio--overlay{position:absolute;top:86px;left:16px;right:344px;margin-bottom:0;max-height:min(46vh,420px);overflow:auto}.scenario-studio__header{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.scenario-studio__header p{margin:2px 0 0;color:var(--legacy-muted);font-size:11px}.scenario-studio__notice{align-self:flex-start;padding:5px 8px;border-radius:8px;background:#5a8a4a1a;color:var(--legacy-accent);font-size:11px;font-weight:600}.scenario-grid,.param-grid{display:grid;gap:8px}.scenario-grid{grid-template-columns:1fr;margin-bottom:8px}.scenario-card{padding:8px 10px;border-radius:8px;border:1px solid var(--legacy-stroke-soft);background:#fff;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.scenario-card:hover,.param-card:hover{transform:translateY(-1px);box-shadow:var(--legacy-shadow-soft)}.scenario-card strong{display:block;margin-bottom:3px;font-size:12px;color:var(--legacy-ink)}.scenario-card p{margin:0;color:var(--legacy-muted);font-size:11px;line-height:1.5}.scenario-card.is-active{background:#5a8a4ae6;border-color:#5a8a4ae6;color:#fff}.scenario-card.is-active p{color:#ffffffd1}.param-grid{grid-template-columns:1fr}.param-card{display:block;padding:8px 10px;border-radius:8px;border:1px solid var(--legacy-stroke-soft);background:#fff}.param-card__top{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:11px;color:var(--legacy-muted)}.param-card input{width:100%;accent-color:var(--legacy-accent)}.stage{position:relative;height:100%}.town-scene{position:relative;height:100%;min-height:100%;border-radius:28px;overflow:hidden;border:1px solid var(--stroke);background:linear-gradient(180deg,#d4e7d4d6,#c6dbbcc7);box-shadow:var(--shadow)}.town-scene__viewport{width:100%;height:100%;min-height:100%}.town-scene__legacy-frame{display:block;width:100%;height:100%;border:0;background:#f4f0e8}.town-scene__viewport canvas{display:block;width:100%;height:100%}.town-scene__overlay{position:absolute;inset:0;pointer-events:none}.agent-chip,.building-pin,.bulletin-badge{position:absolute;left:-9999px;top:-9999px}.agent-chip{display:flex;flex-direction:column;gap:2px;min-width:96px;padding:8px 10px;border-radius:16px;background:#fbf7edeb;border:1px solid rgba(78,98,71,.18);box-shadow:0 10px 28px #35492b2e;pointer-events:auto;cursor:pointer;translate:-50% -50%;text-align:left}.agent-chip span{font-weight:700}.agent-chip small,.building-pin small,.detail-card__desc,.list-card__meta,.ops-panel p,.feed-item p,.memory-item p,.empty-inline,.empty-state{color:var(--muted)}.agent-chip small{font-size:11px}.agent-chip.is-active{background:linear-gradient(135deg,#426539f0,#547d4beb);color:#f5f2e5}.agent-chip.is-active small{color:#f5f2e5b8}.building-pin{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#213021b3;color:#f9f4e8;border:1px solid rgba(255,249,230,.16);box-shadow:0 12px 24px #141b1338;translate:-50% -50%;pointer-events:auto;cursor:pointer}.building-pin span{font-size:16px}.building-pin small{color:#f9f4e8d6}.building-pin.is-active{background:#a66c37eb}.bulletin-badge{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:linear-gradient(135deg,#cf6c32,#b3452f);color:#fff9ef;font-weight:700;box-shadow:0 14px 22px #873a2347;translate:-50% -50%}.hud-row,.card-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.floating-sheet,.floating-detail,.floating-tools,.ops-panel{pointer-events:auto}.panel,.ops-panel{border:1px solid var(--legacy-stroke);border-radius:12px;background:var(--legacy-bg);box-shadow:var(--legacy-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.panel{padding:14px 16px}.floating-sheet,.floating-detail{position:absolute;width:min(320px,calc(100vw - 32px));max-height:min(42vh,360px);overflow:auto;z-index:6}.floating-sheet--left{left:16px;bottom:64px}.floating-sheet__notice{margin-top:10px;padding:7px 10px;border-radius:8px;background:#5a8a4a1a;color:var(--legacy-accent);font-size:11px;line-height:1.4}.floating-detail{left:16px;bottom:64px;width:min(300px,calc(100vw - 32px));max-height:min(50vh,380px)}.inline-action-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.inline-action-row .control-btn{padding:5px 8px;font-size:11px;border-radius:8px}.compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.compact-grid__full{grid-column:1 / -1}.compact-grid .control-btn{padding:6px 8px;font-size:11px;border-radius:8px}.panel__title,.ops-block__title{margin-bottom:8px;font-size:11px;font-weight:600;letter-spacing:.08em;color:#c27a32}.legend-grid{display:flex;flex-wrap:wrap;gap:6px}.roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.agent-roster-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:7px 9px;border-radius:8px;border-color:var(--legacy-stroke);background:#fff}.agent-roster-btn strong{font-size:12px}.agent-roster-btn small{color:var(--legacy-muted);font-size:10px}.agent-roster-btn.is-active{background:var(--legacy-accent);color:#fff}.agent-roster-btn.is-active small{color:#f8f4e8b8}.legend-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 8px;font-size:11px;border-radius:8px;border-color:var(--legacy-stroke);background:#fff}.legend-chip__dot{width:10px;height:10px;border-radius:999px}.time-strip{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.time-strip strong{font-size:12px;font-family:JetBrains Mono,monospace;letter-spacing:.08em}.time-slider{width:100%;accent-color:var(--legacy-accent)}.detail-card{display:flex;flex-direction:column;gap:8px;color:var(--legacy-ink)}.detail-card__header{display:flex;justify-content:space-between;gap:12px}.detail-card__actions{display:flex;align-items:flex-start;gap:8px}.detail-card__header h2,.ops-panel h2,.ops-subgroup h3,.detail-card h3{margin:0}.scenario-studio h2,.detail-card__header h2,.ops-panel h2{font-family:Noto Sans SC,-apple-system,sans-serif;font-size:16px;line-height:1.3;font-weight:700;color:var(--legacy-ink)}.scenario-studio__header p,.detail-card__desc,.ops-panel p,.feed-item p,.memory-item p,.list-card__meta,.empty-state,.empty-inline{color:var(--legacy-muted);font-size:11px;line-height:1.6}.detail-badge,.tag{align-self:flex-start;padding:3px 6px;border-radius:999px;font-size:10px;font-weight:700}.detail-badge{background:#466b421f;color:var(--accent)}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric-row div,.overview-card{padding:8px;border-radius:8px;background:#fff;border:1px solid var(--legacy-stroke-soft)}.metric-row strong,.overview-card strong{display:block;font-size:14px;margin-bottom:4px}.resident-list{display:flex;flex-wrap:wrap;gap:6px}.resident-pill{padding:5px 8px;font-size:11px;border-radius:8px;border-color:var(--legacy-stroke);background:#fff}.agent-needs{display:grid;gap:10px}.need-bar__label,.mini-row,.list-card__top,.list-card__meta,.ops-panel__header,.ops-panel__time,.hot-building-list__item,.feed-item{display:flex;justify-content:space-between;gap:10px}.need-bar__track{width:100%;height:10px;border-radius:999px;overflow:hidden;background:#4c67431f}.need-bar__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#7ca159,#446e46)}.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.memory-list,.hot-building-list,.ops-subgroup,.overview-grid{display:grid;gap:8px}.memory-item,.list-card,.feed-item,.hot-building-list__item{padding:8px 10px;border-radius:8px;background:#fff;border:1px solid var(--legacy-stroke-soft)}.memory-item,.feed-item{display:flex;gap:10px}.feed-item strong,.memory-item strong,.list-card strong{font-size:12px}.list-card__note{margin-top:4px;color:var(--legacy-muted);font-size:11px;line-height:1.5}.feed-item p,.memory-item p{margin:2px 0 0}.tag-open{background:#48845924;color:#315f38}.tag-warm{background:#be814429;color:#8d5524}.tag-cool{background:#59708b24;color:#4d6075}.feed-dot{flex:0 0 12px;height:12px;margin-top:6px;border-radius:999px}.feed-dot--seek{background:#d16d31}.feed-dot--match,.feed-dot--task{background:#738953}.feed-dot--collab{background:#4a7b94}.feed-dot--social{background:#9169a5}.feed-dot--dialogue{background:#5f7c51}.feed-dot--gift{background:#c27a32}.feed-dot--clique{background:#6a7ab8}.feed-dot--improv{background:#8a6a42}.feed-dot--event{background:#9d6ac8}.feed-dot--system{background:#44543c}.ops-panel{position:absolute;left:auto;right:var(--ops-panel-right-clear);bottom:var(--ops-panel-bottom);top:auto;width:var(--ops-panel-width);height:var(--ops-panel-height);overflow:hidden;padding:8px 9px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:6px;z-index:6}.ops-panel.is-collapsed{width:auto;max-height:none;padding:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.ops-panel__bar,.ops-panel__summary,.ops-panel__lanes,.ops-lane,.ops-lane__body{min-width:0}.ops-panel__bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}.ops-panel__identity{min-width:0}.ops-panel__identity .panel__title{margin-bottom:1px}.ops-panel__identity h2{margin-bottom:0;font-size:14px;line-height:1.15}.ops-panel__identity p{margin:0;max-width:240px;font-size:10px;line-height:1.3}.ops-panel__time{flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;min-width:64px}.ops-panel__time strong{font-size:12px;font-weight:700;line-height:1.1;color:var(--legacy-ink)}.ops-panel__time span{color:var(--legacy-muted);font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.04em}.ops-panel__toggle{align-self:start;padding:4px 7px;font-size:10px;line-height:1.2}.ops-panel__summary{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.overview-card--compact{min-height:0;padding:5px 6px}.overview-card--compact strong{margin-bottom:1px;font-size:13px}.overview-card--compact span{display:block;color:var(--legacy-muted);font-size:9px;line-height:1.25}.ops-panel__lanes{display:grid;grid-template-columns:1fr 1.12fr 1.12fr 1fr;gap:6px;min-height:0}.ops-lane,.ops-block{padding:6px 7px;border-radius:8px;background:#ffffffe6;border:1px solid var(--legacy-stroke-soft)}.ops-lane{display:flex;flex-direction:column;min-height:0}.ops-lane__body{display:grid;gap:6px;min-height:0;overflow:auto;padding-right:1px;scrollbar-width:thin}.ops-lane__body::-webkit-scrollbar{width:6px}.ops-lane__body::-webkit-scrollbar-thumb{background:#7a876c42;border-radius:999px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-subgroup h3,.detail-card h3{font-size:10px;margin-bottom:4px}.ops-lane .ops-subgroup{gap:4px}.ops-lane .list-card,.ops-lane .feed-item,.ops-lane .hot-building-list__item{padding:5px 7px}.ops-panel .list-card strong,.ops-panel .feed-item strong,.ops-panel .hot-building-list__item span{font-size:11px}.ops-panel .list-card__meta,.ops-panel .list-card__note,.ops-panel .feed-item p,.ops-panel .empty-state,.ops-panel .hot-building-list__item small{font-size:10px;line-height:1.35}.ops-panel .tag{padding:2px 5px;font-size:9px}.list-card--muted{background:#faf1e4c2}.list-card--quiet{background:#eef0e9cc}.list-card--button,.feed-item--button{width:100%;text-align:left;cursor:pointer}.list-card--button:hover,.feed-item--button:hover{background:#f2eee2;border-color:#d6cfbf}.empty-state,.empty-inline{font-size:12px}.bridge-status{position:absolute;left:16px;bottom:calc(var(--overlay-gap) + var(--dock-size) + 10px);z-index:6;pointer-events:none;padding:5px 8px;border-radius:8px;border:1px solid var(--legacy-stroke);background:var(--legacy-bg-soft);color:var(--legacy-muted);box-shadow:var(--legacy-shadow-soft);font-size:11px;line-height:1.3}@media(max-width:1180px){.ops-panel{padding:9px}.ops-panel__summary{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-panel__lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.split-grid,.metric-row,.overview-grid{grid-template-columns:1fr}.ops-panel{left:10px;right:10px;width:auto;height:var(--ops-panel-height)}.ops-panel__bar{grid-template-columns:minmax(0,1fr) auto auto}.ops-panel__summary,.ops-panel__lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-shell{padding:6px}.stage-shell{height:calc(100vh - 12px)}.panel,.ops-panel{border-radius:12px}.floating-sheet,.floating-detail,.ops-panel,.floating-tools--bottom{left:10px;right:10px}.floating-sheet,.floating-detail{width:auto}.floating-tools--bottom{bottom:10px;gap:4px}.ops-panel{width:auto;padding:8px}.ops-panel__bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity toggle" "time time"}.ops-panel__identity{grid-area:identity}.ops-panel__time{grid-area:time;flex-direction:row;justify-content:flex-start;gap:8px}.ops-panel__toggle{grid-area:toggle}.ops-panel__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-panel__lanes{grid-template-columns:1fr}.agent-chip{min-width:80px;padding:6px 8px}.building-pin{padding:7px 10px}}.topology-container{display:flex;flex-direction:column;gap:8px;padding:4px 0}.topology-svg{width:100%;max-height:280px;display:block}.topology-edge{stroke:#7aaa68;transition:stroke-opacity .2s ease}.topology-edge--highlighted{stroke:var(--legacy-accent, #5a8a4a)}.topology-edge--dimmed{stroke:#ccc}.topology-node{transition:r .15s ease,stroke-width .15s ease}.topology-node--selected{filter:drop-shadow(0 0 4px rgba(90,138,74,.5))}.topology-node-group:hover .topology-node{stroke:var(--legacy-accent, #5a8a4a);stroke-width:2}.topology-label{font-size:8px;fill:var(--legacy-muted, #a09880);pointer-events:none;-webkit-user-select:none;user-select:none}.topology-label--selected{fill:var(--legacy-accent, #5a8a4a);font-weight:700;font-size:9px}.topology-legend{display:flex;flex-wrap:wrap;gap:6px 10px;padding:4px 8px;border-top:1px solid var(--legacy-stroke, #e0dcd0)}.topology-legend__item{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--legacy-muted, #a09880)}.topology-legend__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.topology-legend__name{color:#4a4538}.topology-legend__count{font-size:10px;opacity:.7}.topology-stats{display:flex;gap:12px;padding:2px 8px;font-size:10px;color:var(--legacy-muted, #a09880)}.topology-empty{padding:24px;text-align:center;font-size:12px;color:var(--legacy-muted, #a09880)}.narrative-container{display:flex;flex-direction:column;gap:6px;padding:4px 0;overflow-y:auto}.narrative-card{background:var(--legacy-bg, rgba(255, 255, 255, .96));border:1px solid var(--legacy-stroke, #e0dcd0);border-radius:10px;padding:8px 10px;transition:transform .15s ease,box-shadow .15s ease}.narrative-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.narrative-card--milestone{border-left:3px solid var(--legacy-accent, #5a8a4a);background:linear-gradient(135deg,rgba(90,138,74,.04) 0%,var(--legacy-bg, rgba(255, 255, 255, .96)) 40%)}.milestone-badge{display:inline-block;background:linear-gradient(135deg,#5a8a4a,#7ab868);color:#fff;font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;margin-bottom:4px;letter-spacing:.3px}.narrative-card__header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.narrative-card__time{font-size:11px;font-weight:600;color:#4a4538;font-variant-numeric:tabular-nums}.narrative-card__type-label{font-size:10px;color:var(--legacy-muted, #a09880)}.narrative-card__text{font-size:12px;line-height:1.5;color:#4a4538;margin:0 0 6px}.narrative-card__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.narrative-card__chips{display:flex;flex-wrap:wrap;gap:4px}.narrative-actor-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:8px;border:1px solid var(--legacy-stroke, #e0dcd0);background:#5a8a4a0f;color:var(--legacy-accent, #5a8a4a);font-size:11px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.narrative-actor-chip:hover{background:#5a8a4a24;border-color:var(--legacy-accent, #5a8a4a)}.narrative-loc-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:8px;border:1px solid var(--legacy-stroke, #e0dcd0);background:#4ac8fa0f;color:#3a7a9a;font-size:11px;cursor:pointer;transition:background .15s,border-color .15s}.narrative-loc-chip:hover{background:#4ac8fa24;border-color:#3a7a9a}.narrative-trust-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:8px;background:#5a8a4a14;color:var(--legacy-accent, #5a8a4a);font-size:10px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.narrative-empty{padding:24px;text-align:center;font-size:12px;color:var(--legacy-muted, #a09880)}@media(max-width:640px){.topology-svg{max-height:220px}.topology-label{font-size:7px}.topology-label--selected{font-size:8px}.narrative-card{padding:6px 8px}.narrative-card__text{font-size:11px}}.stage-shell--stacked{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none}.stage-shell--stacked::-webkit-scrollbar{display:none}.window-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));height:200%}.window-screen{position:relative;min-height:0;height:100%;scroll-snap-align:start}.window-screen--scene{background:transparent}.window-screen--dashboard{position:relative;display:flex;align-items:stretch;padding:26px 92px 26px 26px;overflow:hidden;background:radial-gradient(circle at 14% 12%,rgba(255,241,201,.78),transparent 22%),radial-gradient(circle at 88% 10%,rgba(143,180,128,.18),transparent 24%),radial-gradient(circle at 78% 78%,rgba(221,229,199,.54),transparent 20%),linear-gradient(180deg,#edf1df,#dee6ce)}.window-screen--dashboard:before,.window-screen--dashboard:after{content:"";position:absolute;pointer-events:none}.window-screen--dashboard:before{inset:14px 28px 14px 14px;border-radius:30px;border:1px solid rgba(183,178,155,.22);background:linear-gradient(180deg,#fffcf338,#ffffff0f),linear-gradient(140deg,rgba(255,255,255,.15),transparent 46%);box-shadow:inset 0 1px #ffffff47}.window-screen--dashboard:after{inset:0;background:linear-gradient(90deg,rgba(112,138,93,.04) 1px,transparent 1px),linear-gradient(180deg,rgba(112,138,93,.04) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.18),transparent 55%);mask-image:linear-gradient(180deg,rgba(0,0,0,.18),transparent 55%);opacity:.45}.scene-stage{position:relative;height:100%}.bridge-status--scene{left:20px;bottom:20px}.dashboard-shell{display:flex;flex-direction:column;gap:10px;width:100%;min-height:0;max-width:1560px;margin:0 auto;z-index:1}.dashboard-topbar{display:flex;align-items:center;gap:0;padding:8px 14px;border-radius:12px;border:1px solid rgba(186,180,155,.4);background:#fffdf6f2;font-size:12px;color:var(--legacy-ink, #3c3a32);flex-wrap:wrap}.dashboard-topbar__time{font-weight:700}.dashboard-topbar__sep{margin:0 8px;color:#a0988080}.dashboard-notice{padding:6px 12px;border-radius:8px;border:1px solid rgba(90,138,74,.16);background:#5a8a4a14;color:var(--legacy-accent);font-size:11px}.dashboard-console{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px;flex:1;min-height:0}.dashboard-sidebar,.dashboard-workspace,.dashboard-workspace__frame,.dashboard-section-grid{min-height:0}.dashboard-sidebar{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:12px;border:1px solid rgba(188,180,154,.4);background:#fffcf4f2}.dashboard-sidebar__item{padding:8px 10px;text-align:left;border-radius:8px;border:none;background:transparent;color:var(--legacy-muted, #a09880);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.dashboard-sidebar__item:hover{background:#5a8a4a0f;color:var(--legacy-ink, #3c3a32)}.dashboard-sidebar__item.is-active{background:#5a8a4a1f;color:var(--legacy-accent, #5a8a4a)}.dashboard-workspace{display:block;overflow:auto;scroll-behavior:smooth;scrollbar-width:thin}.dashboard-workspace::-webkit-scrollbar{width:5px}.dashboard-workspace::-webkit-scrollbar-thumb{background:#7a876c33;border-radius:999px}.dashboard-workspace__frame{display:grid;gap:12px}.dashboard-workspace__title{margin:0 0 2px;font-size:16px;font-weight:700;color:var(--legacy-ink, #3c3a32)}.dashboard-section-grid{display:grid;gap:10px}.dashboard-section-grid>*{align-self:start}.dashboard-section-grid--triple{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.9fr)}.dashboard-section-grid--residents,.dashboard-section-grid--story{grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr)}.dashboard-card{display:block;align-self:start;padding:12px;border-radius:12px;border:1px solid rgba(188,180,154,.4);background:#fffcf4f2}.dashboard-card__title{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--legacy-ink, #3c3a32);padding-bottom:6px;border-bottom:1px solid rgba(212,206,189,.5)}.dashboard-card__stack{display:grid;gap:8px;align-content:start}.scenario-grid--dashboard{max-height:180px;overflow:auto}.param-grid--dashboard{grid-template-columns:1fr}.dashboard-card--snapshot .compact-grid,.dashboard-card--controls .compact-grid{margin-top:0}.dashboard-card--controls .dashboard-card__stack,.dashboard-card--snapshot .dashboard-card__stack{gap:14px}.ops-panel--dashboard{position:relative;inset:auto;width:100%;height:auto;min-height:320px;padding:12px;overflow:hidden;gap:10px;border-radius:12px;border:1px solid rgba(188,180,154,.4);background:#fffcf4f2}.ops-panel--dashboard .ops-panel__toggle{display:none}.ops-panel--dashboard .ops-panel__identity p{display:block;max-width:none;font-size:12px;line-height:1.6;color:#738168}.ops-panel--dashboard .ops-panel__identity h2{font-size:20px}.ops-panel--dashboard .ops-panel__time strong{font-size:30px}.ops-panel--dashboard .ops-panel__time span{font-size:12px}.ops-panel--dashboard .ops-panel__summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ops-panel--dashboard .overview-card--compact{position:relative;min-height:84px;padding:11px 12px 10px;border-radius:18px;border:1px solid rgba(208,200,180,.72);background:linear-gradient(180deg,#ffffffeb,#f9f6ebf5),linear-gradient(135deg,rgba(255,255,255,.26),transparent);box-shadow:inset 0 1px #ffffffb8,0 10px 20px #52613b0a}.ops-panel--dashboard .overview-card--compact strong{font-size:24px;line-height:1;color:var(--legacy-ink)}.ops-panel--dashboard .overview-card--compact span{font-size:11px;line-height:1.4;color:#76836b}.ops-panel--dashboard .ops-panel__lanes{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ops-panel--dashboard .ops-lane,.ops-panel--dashboard .ops-block{padding:13px;border-radius:18px;border:1px solid rgba(210,204,187,.74);background:linear-gradient(180deg,#ffffffc7,#f6f2e7e0),linear-gradient(135deg,rgba(255,255,255,.3),transparent);box-shadow:inset 0 1px #ffffffb3,0 10px 20px #52613b0a}.ops-panel--dashboard .ops-lane__body{gap:10px}.ops-panel--dashboard .ops-lane .list-card,.ops-panel--dashboard .ops-lane .feed-item,.ops-panel--dashboard .ops-lane .hot-building-list__item{padding:10px 11px;border-radius:14px;background:linear-gradient(180deg,#fffffff2,#f9f6ece6)}.dashboard-card--controls .inline-action-row{gap:6px}.dashboard-card--controls .time-strip{align-items:flex-end;padding:8px 10px;border-radius:10px;border:1px solid rgba(206,200,182,.55);background:#fff9}.dashboard-card--controls .time-strip span{color:#76836b;font-size:11px}.dashboard-card--controls .time-strip strong{font-size:18px}.dashboard-card--controls .time-slider{margin-top:-2px}.dashboard-card--controls .control-btn{padding:6px 8px;font-size:12px;border-radius:8px}.dashboard-card--controls .compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.dashboard-card--controls .compact-grid .control-btn{min-height:28px}.dashboard-card--scenario .scenario-card{position:relative;border-radius:10px;padding:10px 12px;background:#ffffffb3;border-left:3px solid rgba(194,122,50,.3)}.dashboard-card--scenario .scenario-card.is-active{border-left-color:var(--legacy-accent)}.dashboard-card--scenario .scenario-card strong{font-size:13px}.dashboard-card--scenario .scenario-card p{font-size:11px;line-height:1.5}.dashboard-card--scenario .param-card{border-radius:10px;padding:8px 10px;background:#ffffffa6}.residents-split{display:flex;gap:12px;height:100%;min-height:0}.residents-directory{flex:0 0 180px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;padding:4px 10px 4px 0;border-right:1px solid rgba(206,200,182,.3)}.directory-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;border:none;background:transparent;text-align:left;cursor:pointer;transition:background .12s;font:inherit;color:var(--legacy-ink)}.directory-item:hover{background:#5a8a4a0f}.directory-item.is-active{background:#5a8a4a1f;font-weight:600}.directory-item__dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,.6)}.directory-item__name{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory-item__loc{flex-shrink:0;font-size:10px;color:var(--legacy-muted);max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.residents-detail{flex:1;min-width:0;overflow-y:auto;padding:4px 0}.residents-detail__empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--legacy-muted);font-size:14px}.dashboard-card--snapshot .control-btn{border-radius:8px}.dashboard-card--snapshot .compact-grid{gap:6px}.venue-mode-panel{display:flex;flex-direction:column;gap:12px}.venue-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.venue-status{font-size:12px;color:var(--legacy-muted)}.venue-mode-toggle{display:inline-flex;gap:6px;padding:3px;border-radius:10px;border:1px solid rgba(206,200,182,.45);background:#ffffff8c}.venue-mode-toggle .control-btn{min-height:28px}.venue-mode-hint{font-size:11px;color:var(--legacy-muted);line-height:1.5}.venue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.venue-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border-radius:12px;border:1px solid rgba(206,200,182,.45);background:#ffffffa6;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;font:inherit;color:var(--legacy-ink)}.venue-chip:hover{border-color:#5a8a4a66;background:#ffffffe0;transform:translateY(-1px)}.venue-chip.is-active{border-color:var(--legacy-accent);background:#5a8a4a1a}.venue-chip__emoji{font-size:24px;line-height:1}.venue-chip__label{font-size:13px;font-weight:600}.venue-chip__loc{font-size:10px;color:var(--legacy-muted)}.venue-chip__count{font-size:10px;color:#fff;background:var(--legacy-accent);padding:1px 6px;border-radius:8px;font-weight:600}.control-btn--warn{background:#dc503c1f;color:#c04030;border:1px solid rgba(220,80,60,.25)}.control-btn--warn:hover{background:#dc503c33}.dashboard-card--narrative .narrative-card{border-radius:10px;background:#ffffffb8}.dashboard-card--narrative .narrative-card__header{margin-bottom:6px}.dashboard-card--narrative .narrative-card__text{line-height:1.55}.dashboard-card--narrative .narrative-container{max-height:380px;overflow:auto;padding-right:2px}.dashboard-card--topology .topology-empty,.dashboard-card--narrative .narrative-empty,.ops-panel--dashboard .empty-state{display:grid;place-items:center;padding:10px;border-radius:10px;border:1px dashed rgba(191,184,163,.7);background:#ffffff8c;color:#7a866e;text-align:center}.ops-panel--dashboard .empty-state{min-height:50px}.dashboard-card--topology .topology-container{gap:6px;padding:4px 2px 0}.dashboard-card--topology .topology-svg{padding:6px;border-radius:10px;border:1px solid rgba(208,203,188,.55);background:#f6f9f0b3;max-height:360px;width:auto;margin:0 auto}.dashboard-card--topology .topology-empty,.dashboard-card--narrative .narrative-empty{min-height:180px}.dashboard-card--topology .topology-stats,.dashboard-card--topology .topology-legend{background:#ffffff80;border:1px solid rgba(208,203,188,.55);border-radius:8px;padding:6px 8px}.page-switcher{position:fixed;top:50%;right:20px;z-index:24;display:flex;flex-direction:column;align-items:center;gap:14px;transform:translateY(-50%);pointer-events:auto}.page-switcher__arrow{width:42px;height:42px;border-radius:12px;border:1px solid var(--legacy-stroke);background:var(--legacy-bg-soft);color:var(--legacy-muted);box-shadow:var(--legacy-shadow-soft);display:grid;place-items:center}.page-switcher__arrow:disabled{opacity:.42;cursor:default;box-shadow:none}.pager-arrow-icon{width:18px;height:18px}@media(max-width:1180px){.window-screen--dashboard{padding:14px 72px 14px 14px}.dashboard-console,.dashboard-section-grid--triple,.dashboard-section-grid--residents,.dashboard-section-grid--story{grid-template-columns:1fr}.dashboard-sidebar{position:relative;top:auto;flex-direction:row;width:100%;gap:4px}.dashboard-sidebar button{flex:1;text-align:center}}@media(max-width:900px){.window-screen--dashboard{padding:12px 66px 12px 12px}.dashboard-topbar{flex-wrap:wrap}.ops-panel--dashboard .ops-panel__summary,.ops-panel--dashboard .ops-panel__lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stage-shell--stacked{height:100%}.window-screen--dashboard{padding:10px 58px 10px 10px}.dashboard-card,.ops-panel--dashboard{padding:10px}.dashboard-section-grid--triple,.dashboard-section-grid--residents,.dashboard-section-grid--story,.ops-panel--dashboard .ops-panel__summary,.ops-panel--dashboard .ops-panel__lanes{grid-template-columns:1fr}.page-switcher{right:8px;gap:6px}}.window-screen--scene>.floating-sheet{position:absolute;inset:auto 16px 16px auto;z-index:20;width:min(340px,calc(100vw - 32px));max-height:calc(100% - 32px)}.detail-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.detail-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 6px #0000001f}.detail-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.detail-identity strong{font-size:15px;font-weight:700;color:var(--legacy-text, #3c3a32)}.detail-identity small{font-size:11px;color:var(--legacy-muted, #a09880);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-clique{color:var(--legacy-accent, #5a8a4a)!important}.detail-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:#0000000a;border-radius:50%;font-size:16px;color:var(--legacy-muted, #a09880);cursor:pointer;transition:background .15s}.detail-close:hover{background:#00000014;color:var(--legacy-text, #3c3a32)}.detail-tabs{display:flex;gap:2px;margin-bottom:10px;border-bottom:1px solid var(--legacy-stroke, #e6e0d3);padding-bottom:0}.detail-tab{flex:1;padding:6px 0;border:none;background:none;font-size:12px;font-weight:500;color:var(--legacy-muted, #a09880);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.detail-tab.is-active{color:var(--legacy-accent, #5a8a4a);border-bottom-color:var(--legacy-accent, #5a8a4a)}.detail-tab:hover:not(.is-active){color:var(--legacy-text, #3c3a32)}.detail-body{display:flex;flex-direction:column;gap:6px}.detail-stat{display:flex;align-items:center;gap:8px;height:22px}.detail-stat__label{flex-shrink:0;width:60px;font-size:11px;color:var(--legacy-muted, #a09880);white-space:nowrap}.detail-stat__bar{flex:1;height:6px;border-radius:3px;background:var(--legacy-stroke, #e6e0d3);overflow:hidden}.detail-stat__fill{height:100%;border-radius:3px;transition:width .3s ease}.detail-stat__value{flex-shrink:0;width:32px;text-align:right;font-size:10px;font-weight:600;color:var(--legacy-text, #3c3a32)}.detail-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--legacy-muted, #a09880);padding:4px 0}.detail-reason{font-size:11px;color:var(--legacy-text, #3c3a32);padding:4px 8px;border-radius:6px;background:#5a8a4a0f;line-height:1.4}.detail-dialogue{font-size:11px;color:var(--legacy-text, #3c3a32);padding:4px 8px;border-radius:6px;background:#6080c014;line-height:1.4}.detail-dialogue--past{opacity:.65}.ego-network{width:100%;max-height:160px;display:block;margin:0 auto}.ego-empty{text-align:center;font-size:12px;color:var(--legacy-muted, #a09880);padding:16px 0}.detail-relations-list{display:flex;flex-direction:column;gap:2px}.detail-relation-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border:none;background:none;border-radius:6px;cursor:pointer;transition:background .12s;width:100%;text-align:left}.detail-relation-row:hover{background:#5a8a4a0f}.detail-relation-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}.detail-relation-name{flex-shrink:0;width:48px;font-size:11px;font-weight:500;color:var(--legacy-text, #3c3a32);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-relation-bar-container{flex:1;height:4px;border-radius:2px;background:var(--legacy-stroke, #e6e0d3);overflow:hidden}.detail-relation-bar-fill{display:block;height:100%;border-radius:2px;background:var(--legacy-accent, #5a8a4a);transition:width .3s ease}.detail-relation-trust{flex-shrink:0;width:30px;text-align:right;font-size:10px;color:var(--legacy-muted, #a09880)}.detail-personality,.detail-skills{display:flex;flex-direction:column;gap:4px}.detail-memories{margin-top:8px;padding-top:8px;border-top:1px solid var(--legacy-stroke, #e6e0d3)}.detail-section-title{font-size:11px;font-weight:600;color:var(--legacy-muted, #a09880);margin-bottom:4px}.detail-memory-row{display:flex;gap:6px;font-size:11px;color:var(--legacy-text, #3c3a32);line-height:1.5}.detail-memory-day{flex-shrink:0;width:24px;font-weight:600;color:var(--legacy-muted, #a09880);font-size:10px}.detail-empty{text-align:center;font-size:12px;color:var(--legacy-muted, #a09880);padding:24px 0}@media(max-width:640px){.window-screen--scene>.floating-sheet{right:8px;bottom:8px;width:calc(100vw - 16px);max-height:45vh}}.dialogue-window{position:absolute;inset:16px 16px auto auto;width:min(360px,calc(100vw - 32px));max-height:min(50vh,420px);display:flex;flex-direction:column;z-index:18;overflow:hidden}.dialogue-window__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--legacy-stroke, #e6e0d3)}.dialogue-window__title{display:flex;align-items:center;gap:6px}.dialogue-window__icon{font-size:16px}.dialogue-window__live{font-size:9px;padding:2px 6px;border-radius:8px;background:#5a8a4a1f;color:var(--legacy-accent, #5a8a4a);font-weight:600}.dialogue-window__participants{font-size:11px;color:var(--legacy-muted, #a09880)}.dialogue-window__tabs{display:flex;gap:4px;padding:6px 0;overflow-x:auto;border-bottom:1px solid var(--legacy-stroke, #e6e0d3)}.dialogue-tab{padding:4px 10px;border-radius:6px;border:none;font-size:11px;background:transparent;cursor:pointer;white-space:nowrap;color:var(--legacy-muted, #a09880);display:flex;align-items:center;gap:4px}.dialogue-tab.is-active{background:#5a8a4a14;color:var(--legacy-accent, #5a8a4a);font-weight:600}.dialogue-tab__dot{width:5px;height:5px;border-radius:50%;background:var(--legacy-accent, #5a8a4a)}.dialogue-window__meta{display:flex;gap:12px;padding:6px 0;font-size:10px;color:var(--legacy-muted, #a09880);border-bottom:1px solid var(--legacy-stroke, #e6e0d3)}.dialogue-window__messages{flex:1;overflow-y:auto;padding:10px 0;display:flex;flex-direction:column;gap:8px;min-height:60px}.dialogue-window__empty{text-align:center;color:var(--legacy-muted, #a09880);font-size:11px;padding:20px}.dialogue-message{display:flex;gap:8px;align-items:flex-start}.dialogue-message__avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;border:none;color:#fff;font-size:10px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s}.dialogue-message__avatar:hover{transform:scale(1.12)}.dialogue-message__body{flex:1;min-width:0}.dialogue-message__name{font-size:10px;font-weight:600;color:var(--legacy-text, #3c3a32);display:block;margin-bottom:2px}.dialogue-message__text{margin:0;font-size:12px;line-height:1.55;color:var(--legacy-text, #3c3a32);background:#5a8a4a0f;padding:6px 10px;border-radius:0 10px 10px}.dialogue-message__typing{display:flex;gap:4px;padding:8px 10px}.dialogue-message__typing span{width:5px;height:5px;border-radius:50%;background:var(--legacy-muted, #a09880);animation:dialogue-typing 1.2s ease-in-out infinite}.dialogue-message__typing span:nth-child(2){animation-delay:.2s}.dialogue-message__typing span:nth-child(3){animation-delay:.4s}@keyframes dialogue-typing{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.dialogue-window__summary{padding:8px 0 0;font-size:11px;color:var(--legacy-muted, #a09880);border-top:1px solid var(--legacy-stroke, #e6e0d3);font-style:italic}@media(max-width:640px){.dialogue-window{right:8px;top:8px;width:calc(100vw - 16px);max-height:40vh}}.dialogue-config{display:flex;flex-direction:column;gap:10px}.dialogue-config__mode{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--legacy-text, #3c3a32)}.dialogue-config__fields{display:flex;flex-direction:column;gap:8px}.dialogue-config__fields label{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--legacy-muted, #a09880)}.dialogue-config__fields input{padding:6px 8px;border:1px solid var(--legacy-stroke, #e6e0d3);border-radius:6px;font-size:11px;background:#ffffffb3;color:var(--legacy-text, #3c3a32)}.dialogue-config__toggle{display:flex;gap:4px}.dialogue-config__field{display:flex;flex-direction:column;gap:3px}.dialogue-config__field span{font-size:10px;color:var(--legacy-muted, #a09880);font-weight:500}.dialogue-config__field input{padding:6px 8px;border:1px solid var(--legacy-stroke, #e6e0d3);border-radius:6px;font-size:11px;background:#ffffffb3;color:var(--legacy-text, #3c3a32);font-family:inherit}.dialogue-config__field input:focus{outline:none;border-color:var(--legacy-accent, #7ca668);box-shadow:0 0 0 2px #7ca66826}.dialogue-config__field input[type=password]{letter-spacing:.1em}.dialogue-config__error{font-size:10px;color:#c44;padding:4px 8px;background:#cc444414;border-radius:6px}.dialogue-config__status{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--legacy-muted, #a09880);padding-top:4px;border-top:1px solid var(--legacy-stroke, #e6e0d3)}.dialogue-config__status .is-ready{color:#5a8a4a;font-weight:600}.dialogue-config__status .is-not-ready{color:#c44;font-weight:600}
