:root{--night: #141a2b;--ink: #1a1714;--paper: #f7f3ea;--cream: #e8dcc2;--tong-green: #6b8f7a;--milk-tea: #b07a4a;--booth-red: #9e2b2b;--neon-pink: #ff4fa3;--neon-cyan: #3de1e8;--neon-yellow: #ffd23f;--warning: #d7263d;--safe: #2a9d6f;--gold: #c9a227;--panel: #1c2338;--panel-2: #232c45;--line: #34405f;--fg: var(--paper);--fg-dim: #aeb6c9;font-family:-apple-system,PingFang SC,PingFang HK,Hiragino Sans GB,Microsoft JhengHei,Noto Sans CJK SC,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--night);color:var(--fg)}button{font:inherit;color:inherit}#app{height:100%;display:grid;grid-template-rows:auto minmax(0,46vh) minmax(0,1fr);grid-template-areas:"top" "stage" "side"}.topbar{grid-area:top;display:flex;align-items:center;gap:12px;padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--panel);border-bottom:1px solid var(--line)}.topbar .title{font-weight:700;letter-spacing:.04em;color:var(--neon-yellow)}.topbar .clock{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--fg-dim);font-size:13px}.topbar .day{font-variant-numeric:tabular-nums;font-size:13px}.icon-btn{background:transparent;border:1px solid var(--line);border-radius:8px;padding:4px 10px;cursor:pointer}.icon-btn:hover,.icon-btn:focus-visible{border-color:var(--neon-cyan);outline:none}.nav{display:none}.stage{grid-area:stage;position:relative;background:#0f1422;min-height:0;min-width:0;overflow:hidden}.stage canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.stage .here{position:absolute;left:12px;bottom:10px;background:#141a2bd9;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px}.side{grid-area:side;overflow-y:auto;min-height:0;padding:12px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px}section.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}section.card h2{margin:0 0 10px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);font-weight:600}.hud .wan{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--neon-yellow)}.hud .wan small{font-size:13px;color:var(--fg-dim);margin-left:4px}.hud .facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:8px 0 12px;font-size:13px;color:var(--fg-dim)}.hud .facts b{color:var(--fg);font-weight:600}.meters{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.meter{display:grid;grid-template-columns:3.2em 1fr 2.4em;align-items:center;gap:6px;font-size:12px}.meter .bar{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden}.meter .bar i{display:block;height:100%;background:var(--safe);transition:width .3s}.meter.low .bar i{background:var(--warning)}.meter .val{text-align:right;font-variant-numeric:tabular-nums;color:var(--fg-dim)}.actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px 10px;cursor:pointer;text-align:left;line-height:1.25;min-height:48px}.btn:hover,.btn:focus-visible{border-color:var(--neon-cyan);outline:none}.btn.primary{background:var(--booth-red);border-color:var(--booth-red)}.btn.gold{background:#3a3012;border-color:var(--gold)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn small{display:block;color:var(--fg-dim);font-size:12px;margin-top:2px}.board ul,.inbox ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.board li{font-size:14px;padding:6px 8px;background:var(--panel-2);border-radius:8px;display:flex;gap:8px}.board li time{color:var(--fg-dim);font-size:12px;font-variant-numeric:tabular-nums;flex:none}.board li.me{border-left:3px solid var(--neon-pink)}.board .count{font-size:12px;color:var(--fg-dim);margin-bottom:8px}.event{background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--neon-pink);border-radius:10px;padding:10px 12px}.event h3{margin:0 0 4px;font-size:15px}.event p{margin:0 0 10px;font-size:14px;color:var(--fg-dim)}.event .choices{display:flex;flex-wrap:wrap;gap:8px}.event .choices .btn{min-height:40px;padding:8px 12px}.empty{color:var(--fg-dim);font-size:13px}abbr.term{text-decoration:underline dotted var(--neon-cyan);text-underline-offset:3px;cursor:help}.toasts{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;flex-direction:column;gap:6px;z-index:50;pointer-events:none;width:min(92vw,420px)}.toast{background:#1a1714eb;border:1px solid var(--line);color:var(--paper);border-radius:10px;padding:10px 14px;font-size:14px;text-align:center;animation:toast-in .2s ease-out}.toast.bad{border-color:var(--warning)}.toast.good{border-color:var(--safe)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:40;padding:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px 16px 0 0;width:min(100vw,560px);max-height:88vh;overflow-y:auto;padding:16px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.modal h2{margin:0 0 12px;font-size:18px}.modal .list{display:flex;flex-direction:column;gap:8px}.modal .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.modal .close{margin-top:12px;width:100%;text-align:center}.onboarding{position:fixed;inset:0;background:linear-gradient(180deg,#0f1422,var(--night));z-index:60;overflow-y:auto;padding:calc(24px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-right,0px))}.onboarding .inner{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.onboarding h1{margin:0;font-size:34px;color:var(--neon-yellow);letter-spacing:.06em}.onboarding .tagline{color:var(--fg-dim);margin:-8px 0 0}.onboarding .name{display:flex;align-items:center;gap:10px;font-size:18px}.onboarding .name b{color:var(--neon-cyan);font-size:22px}.scripts{display:grid;gap:10px}.script{text-align:left;background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:14px;cursor:pointer}.script.selected{border-color:var(--neon-pink)}.script h3{margin:0 0 4px;font-size:17px}.script p{margin:0;color:var(--fg-dim);font-size:14px;line-height:1.4}.share img{width:100%;height:auto;border-radius:8px;display:block}.settings label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.settings select,.settings input[type=checkbox]{font:inherit}.settings .danger{color:var(--warning);border-color:var(--warning)}@media (min-width: 768px){#app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"top top" "stage side"}}@media (min-width: 1200px){#app{grid-template-columns:240px minmax(0,1fr) 380px;grid-template-areas:"top top top" "nav stage side"}.nav{display:flex;flex-direction:column;gap:8px;padding:12px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto}.nav h2{margin:0 0 4px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim)}.nav .btn{min-height:40px;padding:8px 10px}.nav .btn.here{border-color:var(--neon-pink)}.modal-backdrop{align-items:center}.modal{border-radius:16px}}@media (prefers-reduced-motion: reduce){.toast{animation:none}.meter .bar i{transition:none}}.digest{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;line-height:1.5}#app.run{grid-template-rows:auto minmax(0,30vh) minmax(0,1fr)}#app.run .nav{display:none}.onboarding .intro{margin:0;color:var(--fg);font-size:15px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.settings .note{margin:0;padding:10px 0;color:var(--fg-dim);font-size:13px;border-bottom:1px solid var(--line)}.run-hud .top{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.run-hud .money b{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--neon-yellow)}.run-hud .money small{margin-left:4px;color:var(--fg-dim)}.rent-chip{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:6px;align-items:baseline;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);font-size:12px;min-width:120px}.rent-chip .label{color:var(--fg-dim)}.rent-chip b{font-size:15px;font-variant-numeric:tabular-nums}.rent-chip small{grid-column:1 / span 2;color:var(--fg-dim)}.rent-chip.soon{border-color:var(--gold)}.rent-chip.soon small{color:var(--neon-yellow)}.rent-chip.urgent{border-color:var(--warning)}.rent-chip.urgent small,.rent-chip.today small{color:var(--warning);font-weight:600}.rent-chip.today{border-color:var(--warning);animation:pulse 1.2s ease-in-out infinite}.rent-chip.paid{border-color:var(--safe)}.rent-chip.paid small{color:var(--safe)}.rent-chip.free{opacity:.7}@keyframes pulse{0%,to{box-shadow:0 0 #d7263d00}50%{box-shadow:0 0 0 4px #d7263d59}}.run-hud .credit{text-align:right;font-size:12px;color:var(--fg-dim)}.run-hud .credit b{display:block;font-size:20px;color:var(--fg);font-variant-numeric:tabular-nums}.strip{display:grid;grid-template-columns:repeat(30,1fr);gap:2px;margin:12px 0 10px}.strip i{display:block;height:8px;border-radius:2px;background:var(--panel-2)}.strip i.past{background:var(--line)}.strip i.rent{background:#5a3a1a}.strip i.rent.past{background:#7a5220}.strip i.today{background:var(--neon-pink);box-shadow:0 0 6px var(--neon-pink)}.meters.compact{grid-template-columns:1fr 1fr;gap:6px 14px}.run-hud .facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px;color:var(--fg-dim)}.run-hud .facts b{color:var(--fg);font-weight:600}.day-panel h3.section{margin:14px 0 8px;font-size:13px;color:var(--fg-dim);font-weight:600;letter-spacing:.06em}.event-card{background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--neon-pink);border-radius:12px;padding:12px 14px;animation:card-in .25s ease-out}.event-card .kicker{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--neon-pink);margin-bottom:4px}.event-card h3{margin:0 0 6px;font-size:18px}.event-card p{margin:0 0 12px;font-size:15px;line-height:1.55}.event-card .choices{display:grid;gap:8px}.event-card .choice{min-height:44px;padding:10px 12px;font-size:15px}.event-card.outcome{border-left-color:var(--neon-cyan)}.event-card.outcome .kicker{color:var(--neon-cyan)}.event-card .outcome-text{font-size:16px;color:var(--paper)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip{font-size:12px;padding:3px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-variant-numeric:tabular-nums}.chip.good{border-color:var(--safe);color:#7fd6ad}.chip.bad{border-color:var(--warning);color:#ff8a9a}.event-card .ok{width:100%;text-align:center}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.main-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.daytime-actions{grid-template-columns:repeat(2,1fr)}.main-actions>small{grid-column:1 / -1}.btn.big{min-height:74px;padding:10px;display:flex;flex-direction:column;justify-content:center;gap:4px}.btn.big b{font-size:16px}.btn.big small{margin:0;line-height:1.3}.btn.small{min-height:40px;padding:7px 10px;font-size:13px}.btn.small small{font-size:11px}.eat-row,.more-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.eat-row .label{font-size:12px;color:var(--fg-dim);margin-right:2px}.eat-row .btn{flex:1 1 90px}.btn.end-day{margin-top:14px;width:100%;text-align:center;background:#1f3a30;border-color:var(--safe);min-height:56px;font-size:16px;font-weight:700}.btn.end-day small{font-weight:400}.neighbours .sub{font-size:12px;color:var(--fg-dim);margin:-6px 0 8px}ol.rank{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}ol.rank li{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:var(--panel-2);font-size:13px}ol.rank li.me{border:1px solid var(--neon-pink)}ol.rank .pos{font-weight:800;color:var(--fg-dim);text-align:center}ol.rank li:first-child .pos{color:var(--neon-yellow)}ol.rank .who small,ol.rank .score small{display:block;color:var(--fg-dim);font-size:11px}ol.rank .score{text-align:right;font-variant-numeric:tabular-nums}ul.news{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}ul.news li{font-size:13px;padding:6px 8px;background:var(--panel-2);border-radius:8px;display:flex;gap:8px}ul.news li.me{border-left:3px solid var(--neon-pink)}ul.news time{color:var(--fg-dim);font-size:11px;flex:none;padding-top:2px}.float{position:fixed;z-index:70;pointer-events:none;transform:translate(-50%,-100%);font-weight:800;font-size:18px;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 #000;animation:float-up 1.05s ease-out forwards}.float.good{color:#7fd6ad}.float.bad{color:#ff8a9a}@keyframes float-up{0%{opacity:0;transform:translate(-50%,-80%)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-220%)}}body.shake{animation:shake .45s ease-in-out}@keyframes shake{0%,to{transform:none}20%{transform:translate(-6px,2px)}40%{transform:translate(6px,-2px)}60%{transform:translate(-4px,1px)}80%{transform:translate(4px,-1px)}}.morning{position:fixed;inset:0;z-index:65;background:linear-gradient(180deg,#0a0d1a,var(--night) 60%,#1c2338);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease;cursor:pointer;padding:max(16px,env(safe-area-inset-left,0px))}.morning.in{opacity:1}.morning .inner{max-width:480px;width:100%;text-align:center}.morning .kicker{font-size:13px;letter-spacing:.2em;color:var(--neon-cyan)}.morning h1{margin:6px 0 14px;font-size:40px;color:var(--neon-yellow)}.morning .flavor{font-size:17px;line-height:1.6;color:var(--paper);margin:0 0 18px}.morning .notes{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}.morning .notes li{background:#232c45e6;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px}.morning .notes li.good{border-color:var(--safe)}.morning .notes li.bad{border-color:var(--warning)}.morning .tap{color:var(--fg-dim);font-size:13px;animation:blink 1.6s ease-in-out infinite}@keyframes blink{50%{opacity:.4}}.lifecard{position:fixed;inset:0;z-index:66;background:#0a0d1af5;overflow-y:auto;padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-right,0px))}.lifecard .inner{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.lifecard .row{display:flex;gap:8px;flex-wrap:wrap}.lifecard .row .btn{flex:1 1 140px;text-align:center}.lifecard .row.next .btn{min-height:56px}@media (min-width: 768px){#app.run{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 420px;grid-template-areas:"top top" "stage side"}}@media (min-width: 1200px){#app.run{grid-template-columns:minmax(0,1fr) 440px;grid-template-areas:"top top" "stage side"}}@media (prefers-reduced-motion: reduce){.float,body.shake,.event-card,.rent-chip.today,.morning .tap{animation:none}}.event-card.outcome.tone-warm{border-left-color:var(--neon-yellow)}.event-card.outcome.tone-proud{border-left-color:var(--safe)}.event-card.outcome.tone-wry{border-left-color:var(--milk-tea)}.event-card.outcome.tone-ache{border-left-color:#7c8bb5}.event-card.outcome.tone-calm{border-left-color:var(--neon-cyan)}.morning .notes li small{display:block;margin-top:4px;color:var(--fg-dim);font-size:13px}.morning .tips{text-align:left;background:#3de1e814;border:1px solid var(--neon-cyan);border-radius:10px;padding:10px 12px;margin:0 0 18px}.morning .tips .label{font-size:11px;letter-spacing:.14em;color:var(--neon-cyan)}.morning .tips p{margin:6px 0 0;font-size:14px;line-height:1.5}.btn small.short{color:var(--neon-yellow)}.run-hud .facts .love b{color:var(--neon-pink);font-weight:600}
