:root{--bg: #F7F7F6;--paper: #FCFCFC;--card: #FFFFFF;--top: #F2F2F1;--panel: #EAE5DF;--panel2: #DFD9D1;--line: #E3E3E2;--border: #D2CBC1;--ink: #232323;--ink-soft: #6B6B6B;--ink-faint: #9A9A9A;--btn: #FCFCFC;--btn2: #E4EEEE;--btn3: #B4CFCE;--teal: #5F9EA0;--teal-dark: #4A8183;--disabled: #D5D5D4;--press-0: #E9E9E8;--press-1: #CFDEDD;--press-2: #97BAB8;--press-3: #4A8183;--life: #F08A6B;--learn: #6FB3D9;--nature: #7FC08A;--wealth: #EFB44A;--art: #A98CD0;--social: #E88AA0;--life-ink: #C2553A;--learn-ink: #2F7BA6;--nature-ink: #3F8752;--wealth-ink: #A8730C;--art-ink: #6B4CA6;--social-ink: #BE5069;--fx-map: #5EAEDC;--fx-phone: #9E86C9;--fx-log: #7BC47F;--fx-item: #E0A94E;--fx-set: #9A9A9A;--r1: 5px;--r2: 10px;--r3: 15px;--radius: 6px;--serif: "Source Han Serif SC", "Source Han Serif CN", "Noto Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", serif;--serif-stretch: 1.15;--topbar-h: 62px;--panel-h: 33vh;--log-tail: calc((100vh - var(--topbar-h) - var(--panel-h)) / 2);--pad-x: 16px;--fx-bar: 10px}.topbar.night{--top: #22262C;--line: #39404A;--ink: #ECEDEF;--ink-soft: #A9AEB6;--ink-faint: #7E848D}.topbar,.topbar *,.logpanel,.actionpanel,.pop,.panel-attrs{transition:background-color .5s ease,color .5s ease,border-color .5s ease}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:13px/1.7 system-ui,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--bg)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border)}::-webkit-scrollbar-corner{background:transparent}@media (max-width: 520px){::-webkit-scrollbar{width:6px;height:6px}}.app{height:100%;max-width:560px;margin:0 auto;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);display:grid;grid-template-rows:auto minmax(0,1fr) var(--panel-h);grid-template-columns:1fr;position:relative;background:var(--bg);overflow:hidden}.title{height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--bg)}.title:before,.title:after{content:"";margin:auto}.serif-tall{font-family:var(--serif);font-weight:400;display:inline-block;transform:scaleY(var(--serif-stretch));transform-origin:center bottom}.title-name{font-size:46px;letter-spacing:.22em;line-height:1;margin:18px 0 0;color:var(--ink)}.title-intro{margin:72px 0 0;font-size:13px;line-height:1.5;color:var(--ink-soft)}.title-sub{color:var(--ink-faint);font-size:11px;margin:6px 0 26px;letter-spacing:.04em}.title-menu{display:grid;gap:6px;width:196px}.title-menu button{min-height:44px;padding:0;border:1px solid var(--border);border-radius:var(--r2);background:var(--btn);color:var(--ink);cursor:pointer;font:inherit;font-size:14px}.title-menu button:active{background:var(--press-1);border-color:var(--press-1);color:var(--ink)}.title-primary{background:var(--teal)!important;border-color:var(--teal)!important;color:var(--card)!important}.title-primary:active{background:var(--press-3)!important;border-color:var(--press-3)!important}.title-about{font-size:14px;line-height:1.9;text-align:left;color:var(--ink);margin:0 0 12px}.title-about-h{font-size:13px;margin:18px 0 6px;text-align:left}.title-pane{width:min(420px,86vw)}.pane-head{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);position:sticky;top:0;z-index:1;background:var(--bg);padding:4px 0;margin-bottom:12px;justify-content:center}.pane-empty{color:var(--ink-soft)}.slot-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.slot{width:100%;display:grid;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;font:inherit}.slot-no{font-weight:600}.slot-empty,.slot-meta{font-size:12px;color:var(--ink-soft)}.slot-name{font-size:14px}.topbar{display:grid;grid-template-rows:auto auto;align-content:center;gap:2px;padding:max(5px,env(safe-area-inset-top)) 16px 6px;border-bottom:1px solid var(--line);background:var(--top);overflow:hidden;position:relative}.topbar-row{display:flex;align-items:baseline;gap:10px;min-width:0}.topbar-row.tight{font-size:11px;color:var(--ink-soft);gap:10px}.topbar-item{display:flex;gap:5px;white-space:nowrap;min-width:0}.topbar-item.big{font-size:13px;color:var(--ink)}.topbar-spacer{flex:1 1 auto}.topbar-where{overflow:hidden;text-overflow:ellipsis}.topbar-num{font-variant-numeric:tabular-nums}.topbar-more{position:relative;flex:0 0 auto}.more-btn{border:1px solid var(--line);background:transparent;border-radius:var(--radius);width:28px;height:24px;line-height:1;cursor:pointer;font:inherit}.more-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:160px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:0 6px 20px #00000014;display:grid;gap:2px}.more-menu button{text-align:left;padding:6px 10px;border:0;border-radius:4px;background:transparent;cursor:pointer;font:inherit}.more-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.note-pop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000040;display:grid;place-content:center}.note-body{width:min(420px,86vw);padding:20px;border-radius:var(--radius);background:var(--paper);text-align:left}.note-body h3{margin:0 0 8px;font-size:16px}.note-body button{margin-top:12px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;cursor:pointer;font:inherit}.slot-badge{position:absolute;left:12px;bottom:calc(var(--panel-h) + 6px);z-index:10;font-size:11px;color:var(--ink-soft);border:1px solid var(--line);border-radius:3px;padding:1px 6px;background:var(--card)}.topbar-key{color:var(--ink-soft);font-size:13px}.topbar-value{font-variant-numeric:tabular-nums}.logpanel{background:var(--paper);overflow-y:auto;min-height:0;overscroll-behavior:contain;padding:14px 20px var(--log-tail)}.log-year{font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:.08em;margin:20px 0 4px;padding-bottom:4px;border-bottom:1px solid var(--line)}.log-year:first-child{margin-top:0}.log-day{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-soft);margin:10px 0 3px}.log-line{margin:1px 0;display:flex;gap:7px;align-items:baseline;line-height:1.65}.log-text{flex:1 1 auto;color:var(--ink)}.log-empty{color:var(--ink-soft)}.actionpanel{position:relative;z-index:1;border-top:1px solid var(--border);background:var(--panel);padding:12px 18px max(16px,env(safe-area-inset-bottom));overflow:hidden}.panel-cols{display:grid;grid-template-columns:148px minmax(0,1fr);gap:14px;height:100%;min-height:0}.panel-place{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-bottom:6px}.panel-fixed{display:grid;grid-template-rows:auto auto;gap:8px;align-self:start;min-height:0}.fix-top{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fix-top .fix-btn{min-height:34px;padding:4px 6px;justify-items:center}.fix-top .fix-sub{display:none}.panel-attrs{display:grid;gap:1px;align-content:start;padding:7px 8px 8px;border:1px solid var(--border);border-radius:var(--r1);background:var(--panel2)}.attr-row{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.attr-name{font-size:10.5px;color:var(--ink-soft)}.attr-value{font-size:11.5px;font-variant-numeric:tabular-nums}.attr-row.low .attr-value{color:var(--life)}.attr-row.high .attr-value{color:var(--teal-dark)}.fix-btn{display:grid;gap:1px;min-height:44px;padding:7px 8px;border:1px solid var(--border);border-radius:var(--r1);background:var(--panel2);color:var(--ink);cursor:pointer;font:inherit;text-align:left}.fix-btn:active{background:var(--press-1);border-color:var(--press-1);color:var(--ink)}.fix-btn:disabled{background:var(--disabled);border-color:var(--disabled);color:var(--ink-soft);cursor:default}.fix-name{font-size:14px}.fix-sub{font-size:10px;color:var(--ink-soft)}.fix-btn:active .fix-sub,.fix-btn:disabled .fix-sub{color:inherit;opacity:.8}.fx-map{border-left:var(--fx-bar) solid var(--fx-map)}.fx-item{border-left:var(--fx-bar) solid var(--fx-item)}.fx-log{border-left:var(--fx-bar) solid var(--fx-log)}.fx-set{border-left:var(--fx-bar) solid var(--fx-set)}.fix-btn:active.fx-map,.fix-btn:active.fx-item,.fix-btn:active.fx-log,.fix-btn:active.fx-set{border-left-color:var(--press-1)}.fix-btn:disabled[class*=fx-]{border-left-color:var(--disabled)}@media (max-width: 520px){.panel-cols{grid-template-columns:116px minmax(0,1fr);gap:8px}.fix-btn{padding:5px 6px;min-height:34px}.fix-sub{display:none}.panel-attrs{padding:6px 7px 7px}.attr-name{font-size:10px}.attr-value{font-size:11px}}.panel-title{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);margin-bottom:8px}.back{border:1px solid var(--line);background:transparent;border-radius:var(--radius);padding:2px 8px;cursor:pointer;font:inherit;font-size:12px}.district-grid,.building-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.district-card,.building-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r1);background:var(--btn);color:var(--ink);cursor:pointer;font:inherit;text-align:left}.district-card:active,.building-card:active{background:var(--panel2)}.district-card:disabled,.building-card:disabled{background:var(--disabled);border-color:var(--disabled);color:var(--ink-soft);cursor:default}.district-name,.building-name{font-weight:600}.district-sub,.building-sub{font-size:12px;color:var(--ink-soft)}.act-list{display:flex;flex-direction:column;gap:8px}.act-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-height:44px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--r2);background:var(--btn);cursor:pointer;font:inherit;text-align:left;color:var(--ink);transition:background .12s ease}.act-row.tier-1{background:var(--btn2)}.act-row.tier-2{background:var(--btn3)}.act-row.tier-3{background:var(--teal);border-color:var(--teal);color:var(--card)}.act-row.tier-3 .act-cost{color:var(--card);opacity:.85}.act-row:active{background:var(--press-0);border-color:var(--border)}.act-row.tier-1:active{background:var(--press-1)}.act-row.tier-2:active{background:var(--press-2)}.act-row.tier-3:active{background:var(--press-3);border-color:var(--press-3);color:var(--card)}.act-row:active .act-cost{color:var(--card);opacity:.85}.act-cost{flex:0 0 auto;font-size:11px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.act-empty{color:var(--ink-soft)}.act-done{opacity:.55}.panel-spacer{flex:1 1 auto}.chip{border:1px solid var(--border);background:var(--btn);border-radius:var(--r2);min-height:36px;padding:6px 10px;cursor:pointer;font:inherit;font-size:12px;color:var(--ink)}.chip:active{background:var(--press-1);border-color:var(--press-1);color:var(--ink)}.chip:disabled{background:var(--disabled);border-color:var(--disabled);color:var(--ink-soft)}.expand{display:flex;flex-direction:column;gap:0}.expand.open>.expand-head{border-bottom-left-radius:0;border-bottom-right-radius:0;filter:brightness(1.04)}.expand-body{display:flex;flex-direction:column;gap:8px;padding:8px 10px 10px;border:1px solid var(--border);border-top:0;border-radius:0 0 var(--r2) var(--r2);background:var(--card)}.project-list{display:flex;flex-wrap:wrap;gap:6px}.expand-rows{display:flex;flex-direction:column;gap:6px}.shop-shelf,.work-zone{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.zone-head{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:12px;letter-spacing:.08em;color:var(--ink-soft)}.zone-head:after{content:"";flex:1;height:1px;background:var(--line)}.act-note{margin:0;font-size:12px;line-height:1.6;color:var(--ink-soft)}.project-now{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.project-name{font-size:13px}.project-sub{font-size:12px;color:var(--ink-soft)}.repeat-btn{min-height:36px;justify-items:center}.repeat-btn .fix-name{font-size:13px}.log-pin{position:sticky;top:0;z-index:2;margin:0 0 8px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--card);color:var(--ink)}.pop-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000047;display:grid;align-content:safe center;justify-items:center;overflow-y:auto;padding:max(6vh,env(safe-area-inset-top)) calc(7vw + env(safe-area-inset-right)) max(6vh,env(safe-area-inset-bottom)) calc(7vw + env(safe-area-inset-left))}.pop{position:relative;width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:16px 16px 14px 24px;box-shadow:0 10px 40px #0000002e;--pop-theme: var(--ink-faint)}.pop-mask{animation:mask-in .16s ease-out}.pop{animation:pop-in .2s cubic-bezier(.2,.7,.3,1)}.pop-mask.leaving{animation:mask-out .14s ease-in forwards}.pop.leaving{animation:pop-out .14s ease-in forwards}@keyframes mask-in{0%{opacity:0}to{opacity:1}}@keyframes mask-out{to{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop-out{to{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion: reduce){.pop-mask,.pop,.pop-mask.leaving,.pop.leaving{animation:none}}.pop-next{background:var(--teal)!important;border-color:var(--teal)!important;color:var(--card)!important;text-align:center;min-width:100px}.pop-next:active{background:var(--press-3)!important;border-color:var(--press-3)!important}.pop:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--pop-theme);border-radius:4px 0 0 4px}.theme-life{--pop-theme: var(--life);--pop-theme-ink: var(--life-ink)}.theme-learn{--pop-theme: var(--learn);--pop-theme-ink: var(--learn-ink)}.theme-health{--pop-theme: var(--nature);--pop-theme-ink: var(--nature-ink)}.theme-wealth{--pop-theme: var(--wealth);--pop-theme-ink: var(--wealth-ink)}.theme-art{--pop-theme: var(--art);--pop-theme-ink: var(--art-ink)}.theme-social{--pop-theme: var(--social);--pop-theme-ink: var(--social-ink)}.pop-kind{font-size:12px;color:var(--pop-theme-ink);border:1px solid var(--pop-theme);border-radius:3px;padding:0 6px;display:inline-block;margin-bottom:8px}.pop-text{margin:0 0 14px;line-height:1.75}.pop-options,.pop-actions{display:grid;gap:6px}.pop-options button,.pop-actions button{text-align:left;min-height:40px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r2);background:var(--btn);color:var(--ink);cursor:pointer;font:inherit}.pop-options button:active,.pop-actions button:active{background:var(--press-1);border-color:var(--press-1);color:var(--ink)}.pop-actions{justify-items:end}.pop-actions button{text-align:center;min-width:100px}.pop-确认 .pop-options button:first-child{border-radius:var(--r3);background:var(--teal);border-color:var(--teal);color:var(--card);text-align:center}.pop-确认 .pop-options{grid-auto-flow:column;justify-content:end}.pop-more{margin-top:10px;font-size:11px;color:var(--ink-soft);text-align:right}.npc-gate{margin:4px 0 0;font-size:12px;color:var(--ink-soft)}.pop-input{display:flex;gap:6px;align-items:stretch}.pop-input input{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:inherit;font:inherit}.pop-input button{padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:inherit;font:inherit;cursor:pointer}.pop-input button:disabled{opacity:.4;cursor:default}.ending{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;padding:calc(48px + env(safe-area-inset-top)) 56px calc(64px + env(safe-area-inset-bottom));background:var(--bg);color:var(--ink)}.ending-intro{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:20px;padding:calc(48px + env(safe-area-inset-top)) 48px calc(48px + env(safe-area-inset-bottom));background:var(--bg);color:var(--ink)}.intro-line{margin:0;text-align:center;min-height:1.7em}.intro-a{font-size:26px;font-weight:600;letter-spacing:1px}.intro-b{font-size:17px;color:var(--ink-soft)}.intro-caret{display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.12em;background:currentColor;animation:intro-blink 1s steps(1,end) infinite}@keyframes intro-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.slot-locked{opacity:.55;cursor:default}.settle-again{position:absolute;right:12px;bottom:calc(var(--panel-h) + 10px);z-index:20;padding:7px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:inherit;font:inherit;cursor:pointer}.intro-actions{margin-top:26px;display:flex;gap:10px}.intro-actions button{padding:9px 18px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:inherit;font:inherit;cursor:pointer}.intro-next{border-color:var(--ink-soft)!important}.ending-next{background:var(--teal)!important;border-color:var(--teal)!important;color:var(--card)!important}.ending-next:active{background:var(--press-3)!important;border-color:var(--press-3)!important}.ending-head{max-width:720px}.ending-kind{font-size:11px;letter-spacing:2px;color:var(--ink-soft)}.ending-name{margin:18px 0 22px;font-size:38px;letter-spacing:3px;line-height:1;color:var(--ink)}.ending{line-height:1.85}.ending-comment{margin:0 0 10px;font-size:14px;line-height:1.9}.ending-why{margin:0;font-size:11px;color:var(--ink-soft);line-height:1.8}.ending-rule{margin:44px 0;border:none;border-top:1px solid var(--line)}.ending h2{margin:0 0 18px;font-size:14px;font-weight:600;letter-spacing:.04em}.ending h3{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--ink-soft);letter-spacing:.06em}.ending-achievements ul,.ending-memory ul,.ending-metrics ul{margin:0;padding:0;list-style:none}.ending-achievements li{display:flex;gap:8px;padding:0;font-size:12px;align-items:baseline;line-height:1.55;flex-wrap:nowrap}.ending-achievements .ach-dot{flex:0 0 auto;align-self:center}.ending-layer+.ending-layer{margin-top:30px}.ach-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--ink-faint);transform:translateY(-1px)}.ach-name{flex:1 1 auto;font-weight:600}.ach-grade{flex:0 0 auto;text-align:right;color:var(--ink-soft)}.ach-how{color:var(--ink-soft)}.ending-memory li{display:flex;gap:12px;padding:7px 0;font-size:12px;align-items:baseline}.mem-when{min-width:7em;color:var(--ink-soft);font-size:12px}.mem-text{font-weight:600}.mem-note,.ending-empty{color:var(--ink-soft);font-size:12px}.ending-metrics li{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13px}.metric-name{min-width:4em}.metric-bar{flex:0 0 220px;height:6px;background:var(--line);border-radius:3px;overflow:hidden}.metric-bar i{display:block;height:100%;background:var(--ink-soft)}.metric-value{color:var(--ink-soft);font-size:12px}.ending-note{margin:14px 0 0;font-size:12px;line-height:1.8;color:var(--ink-soft)}.ending-actions{margin-top:32px;display:flex;gap:10px}.ach-layer{margin:14px 0;text-align:left}.ach-layer h3{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--ink-soft)}.ach-layer ul{margin:0;padding:0;list-style:none}.ach-card{display:flex;flex-direction:column;gap:1px;padding:6px 10px;margin-bottom:4px;border:1px solid var(--line);border-left:6px solid var(--ink-faint);border-radius:var(--r1);background:var(--card)}.ach-card .ach-name{font-size:13px;font-weight:600}.ach-card .ach-how{font-size:12px;color:var(--ink-soft)}.ach-card:not(.got){background:transparent}.ach-card:not(.got) .ach-name{color:var(--ink-faint);font-weight:400;letter-spacing:.12em}.ending-actions button{padding:9px 18px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:inherit;font:inherit;cursor:pointer}.shot-ok{border-color:var(--ink-soft)!important;color:var(--ink-soft)!important}.ending-actions button:disabled,.intro-actions button:disabled{opacity:.55;cursor:default}.ending-actions,.intro-actions{align-items:center;flex-wrap:wrap}.shot-note{font-size:12px;color:var(--ink-soft)}.shot-preview{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#22222280}.shot-card{max-width:min(92vw,720px);max-height:92vh;overflow:auto;background:var(--paper);border-radius:var(--radius);padding:12px;box-shadow:0 8px 40px #00000040}.shot-card img{display:block;width:100%;height:auto;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.shot-hint{margin:10px 2px;font-size:12px;line-height:1.8;color:var(--ink-soft)}.shot-btns{display:flex;gap:10px;flex-wrap:wrap}.shot-btns button{padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:inherit;font:inherit;cursor:pointer}@media (max-width: 640px){.ending{padding:calc(28px + env(safe-area-inset-top)) 18px calc(40px + env(safe-area-inset-bottom))}.ending-name{font-size:28px}.ending-rule{margin:20px 0}.ending-achievements li{gap:6px}.ach-grade{min-width:auto}.ending-memory li{flex-wrap:wrap;gap:0 10px}.mem-when,.mem-text,.mem-note{min-width:100%}.ending-metrics li{flex-wrap:wrap}.metric-bar{flex:1 1 auto;min-width:120px}.ending-actions button,.intro-actions button{padding:11px 16px}.ending-intro{padding:calc(32px + env(safe-area-inset-top)) 20px calc(32px + env(safe-area-inset-bottom));gap:16px}.intro-a{font-size:20px}.intro-b{font-size:15px}.shot-card{max-width:96vw}}.phone{position:absolute;top:calc(var(--topbar-h) + 8px);right:12px;z-index:10}.phone-btn{min-height:44px;border:1px solid var(--border);background:var(--btn);border-radius:var(--r1);padding:6px 12px;cursor:pointer;font:inherit;color:var(--ink)}.phone-btn.on{background:var(--panel2)}.phone-body{margin-top:6px;width:220px;border:1px solid var(--border);border-radius:var(--r1);background:var(--card);padding:8px}.phone-close{width:100%;margin-top:8px}.phone-apps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.phone-apps button{width:100%;min-height:40px;padding:6px;border:1px solid var(--border);border-left:var(--fx-bar) solid var(--ink-faint);border-radius:var(--r1);background:var(--btn);color:var(--ink);cursor:pointer;font:inherit}.phone-apps button:active{background:var(--press-0);border-color:var(--press-0);color:var(--ink)}.phone-app-title{display:flex;gap:8px;align-items:center;font-weight:600}.phone-app-empty{color:var(--ink-soft);font-size:13px}.phone-note{color:var(--ink-soft);font-size:12px;margin:8px 0 0}.phone-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.phone-facts dt{color:var(--ink-soft)}.phone-facts dd{margin:0}.jobs{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto}.job-row{border-bottom:1px solid var(--line);padding-bottom:6px}.job-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.job-industry{font-weight:600;font-size:13px}.job-where{color:var(--ink-soft);font-size:12px}.job-pos{font-size:12px}.job-req,.job-note{color:var(--ink-soft);font-size:11px}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000047;display:grid;place-items:center;padding:20px;z-index:40}.overlay-box{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);box-shadow:0 10px 40px #0000002e;padding:14px 16px;min-width:min(420px,88vw);max-width:640px;max-height:70vh;overflow-y:auto}.settings-box{min-width:320px}.settings-h{margin:14px 0 4px;font-size:13px;font-weight:600}.settings-h:first-of-type{margin-top:0}.settings-note{margin:0;font-size:12px;line-height:1.8;color:var(--ink-soft)}.settings-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.settings-attrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:4px 12px;margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r1);background:var(--panel2)}.settings-attr{display:flex;justify-content:space-between;gap:8px}.overlay-head{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:10px}.overlay-hint{color:var(--ink-soft);font-weight:400;font-size:12px}.storage-shown{font-size:12px;color:var(--ink-soft);margin-bottom:8px}.storage-spot+.storage-spot{margin-top:12px}.storage-spot-head{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:13px;padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:4px}.storage-list{display:flex;flex-direction:column;gap:4px}.storage-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.storage-name{font-size:14px}.storage-count{color:var(--ink-soft);font-style:normal;margin-left:4px;font-size:12px}.storage-actions{display:flex;gap:6px;flex-wrap:wrap}.contact-list{display:flex;flex-direction:column;gap:4px}.contact-row{display:grid;grid-template-columns:5em 6.5em 1fr;gap:8px;text-align:left;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;cursor:pointer;font:inherit}.contact-name{font-weight:600}.contact-sub{color:var(--ink-soft);font-size:12px}.contact-favor{font-size:12px;font-variant-numeric:tabular-nums}.npc-attrs{margin:0 0 6px;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.confirm-box{padding:8px 0}.confirm-sub{color:var(--ink-soft);font-size:12px}.confirm-warn{color:var(--life);font-size:13px}.confirm-actions{display:flex;gap:8px;margin-top:10px}.chip-primary{border-color:var(--ink)}.contact-cold{color:var(--ink-soft);font-size:12px;margin-left:auto}.npc-impression{font-size:13px;margin:0 0 8px}.npc-cold{color:var(--ink-soft);font-size:13px;margin:0 0 8px}.npc-hint{color:var(--ink-soft);font-size:12px;margin-top:10px}.npc-history{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.npc-history-head{font-size:12px;color:var(--ink-soft);margin-bottom:4px}.npc-history-line{display:flex;gap:8px;font-size:13px;padding:2px 0}.act-row:disabled{cursor:default}.act-lock{color:var(--ink-soft);font-size:12px;flex-basis:100%}.district-lock{color:var(--ink-soft);font-size:12px}.boot{height:100%;display:grid;place-content:center;text-align:center;gap:8px}.boot-err{color:var(--life);max-width:32em}
