:root{color-scheme:light}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#201c26;overscroll-behavior:none}
body{padding:12px;box-sizing:border-box}
*,*:before,*:after{box-sizing:border-box}
#app{height:100%;min-height:0!important;background:transparent!important}
#life.compact-game{
 --ink:#1b1424;--paper:#f6ecd0;--surface:#e8d3a8;--muted:#785137;--accent:#f4c542;--green:#2e7d4f;--danger:#c0392b;--track:#c4b28f;
 width:100%;max-width:1400px;margin:auto;height:100%;min-height:0;padding:0;
 display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);
 grid-template-rows:52px minmax(0,1fr) 50px 56px;
 grid-template-areas:"brand brand" "stage workspace" "needs workspace" "nav workspace";
 font:14px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);
 border:2px solid var(--ink);box-shadow:0 0 0 2px #8a5a3b;
}
#life.compact-game[data-lcd=true]{--ink:#000;--paper:#fff;--surface:#fff;--muted:#000;--accent:#000;--green:#000;--danger:#000;--track:#fff;color-scheme:light;box-shadow:none}
#life.compact-game[data-lcd=true][data-inverted=true]{--ink:#fff;--paper:#000;--surface:#000;--muted:#fff;--accent:#fff;--green:#fff;--danger:#fff;--track:#000;color-scheme:dark}
#life .game-brand{grid-area:brand;display:flex;align-items:center;gap:10px;padding:3px 12px;background:var(--paper);border-bottom:2px solid var(--ink);min-width:0}
#life .game-brand strong{font:800 20px/1.1 Consolas,"Courier New",monospace;letter-spacing:-.7px;flex:1;min-width:0;white-space:nowrap}
#life .display-controls{display:flex;gap:4px;flex-shrink:0;align-items:center}
#life .display-controls button{min-width:44px;min-height:44px;padding:3px 7px;font-size:12px;box-shadow:none}
#life.compact-game button,#life.compact-game select,#life.compact-game input,#life.compact-game textarea{font:inherit;border-radius:0;touch-action:manipulation;max-width:100%}
#life.compact-game button{min-height:44px;min-width:44px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:6px 10px;box-shadow:2px 2px 0 var(--muted);cursor:pointer}
#life.compact-game .panel button[data-key]:not(:disabled):not([data-mini]){position:relative;padding-right:14px}
#life.compact-game .panel button[data-key]:not(:disabled):not([data-mini])::after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#35a867;border:1px solid #145c37;box-shadow:0 0 0 1px var(--paper)}
#life.compact-game button:hover:not(:disabled){background:var(--surface)}
#life.compact-game button:active:not(:disabled){transform:translate(1px,1px);box-shadow:none}
#life.compact-game button:disabled{opacity:.5;cursor:not-allowed}
#life.compact-game button[aria-pressed=true],#life.compact-game nav button[aria-selected=true]{background:var(--accent);color:var(--ink)}
#life.compact-game[data-lcd=true] button[aria-pressed=true],#life.compact-game[data-lcd=true] nav button[aria-selected=true]{color:var(--paper)}
#life.compact-game :focus-visible{outline:3px solid var(--green);outline-offset:-4px}
#life .playfield{grid-area:stage;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;background:var(--surface)}
#life .playfield header{flex:none;min-height:30px;padding:5px 10px;display:flex;align-items:center;gap:6px;justify-content:space-between;background:var(--surface);font-size:11px;flex-wrap:nowrap}
#life .playfield header span:first-child{font-weight:700;flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#life .playfield header span:last-child{flex:0 1 auto;white-space:nowrap;font-size:10px}
#life .scene-viewport{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface)}
#life .scene-viewport>canvas{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;background:transparent;cursor:pointer;touch-action:manipulation}
#life .playfield .hud{flex:none;min-height:26px;padding:4px 10px;border-top:1px solid var(--muted);display:block;color:var(--muted);font-size:10px;overflow:hidden}
#life .playfield .hud>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#life .playfield .hud-next{display:block;border:0;padding:0;background:transparent;color:inherit;box-shadow:none}
#life .playfield .hud-sent+.hud-next{display:none}
#life.compact-game>.needs{grid-area:needs;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px;padding:3px 10px;background:var(--paper);border-top:2px solid var(--ink)}
#life .need{display:grid;grid-template-columns:20px 1fr;grid-template-rows:18px 8px;gap:0 5px;align-content:center;text-align:left;font-size:10px;min-width:0}
#life .need>.icon{grid-column:1;grid-row:1;width:16px!important;height:16px!important;margin:0!important}
#life .need>.need-label{grid-column:2;grid-row:1;align-self:center;white-space:nowrap;font-size:10px}
#life .need>.bar{grid-column:1/-1;grid-row:2;height:7px;margin:0;border:1px solid var(--ink);background:var(--track);width:100%}
#life .need>.bar i{height:100%;display:block;background:var(--green)}
#life .need.low>.bar i{background:var(--danger)}
#life.compact-game>nav{grid-area:nav;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;padding:3px 5px;overflow:visible;background:var(--surface);border-top:2px solid var(--ink);min-width:0}
#life.compact-game>nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;white-space:nowrap;min-width:0;min-height:44px;padding:2px;font-size:10px;line-height:1.1;box-shadow:none;border:1px solid transparent;background:transparent;color:var(--ink)}
#life.compact-game>nav button[aria-selected=true]{border:1px solid var(--ink)}
#life.compact-game>nav .icon{width:20px!important;height:20px!important;margin:0!important}
#life.compact-game>nav .badge{position:absolute;top:0;right:0;padding:0 3px;background:var(--danger);color:var(--paper);font-size:8px;border:1px solid var(--ink);margin:0}
#life .workspace{grid-area:workspace;min-height:0;min-width:0;display:flex;flex-direction:column;border-left:2px solid var(--ink);background:var(--paper)}
#life .workspace-heading{flex:none;margin:0;display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 12px;border-bottom:1px solid var(--muted);font-size:13px}
#life .workspace-heading small{margin-left:auto;font-size:10px;font-weight:400;color:var(--muted)}
#life.compact-game .panel{flex:1;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;padding:10px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;font-size:12px;scroll-padding:8px}
#life .panel>*{flex-shrink:0;min-width:0;max-width:100%}
#life .panel h3{font-size:12px;margin:6px 0}
#life .panel .row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;max-width:100%}
#life .panel .row>span{flex:1 1 100px;min-width:0;overflow-wrap:anywhere}
#life .panel .row>button{flex:0 0 auto;font-size:11px}
#life .panel .row>input,#life .panel .row>select{flex:1 1 90px;min-width:0;width:auto}
#life .panel select,#life .panel input[type=text],#life .panel textarea{width:100%;min-width:0;min-height:44px;padding:6px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
#life .panel .icon{width:24px!important;height:24px!important;margin-right:5px!important}
#life .panel .card{border:1px solid var(--muted);padding:8px;box-shadow:none;border-radius:0;gap:5px;background:var(--paper);color:var(--ink);overflow-wrap:anywhere}
#life .panel .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#life .panel .ui-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,148px),1fr));align-items:stretch;gap:7px;min-width:0}
#life .panel .ui-card{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:5px 8px;min-width:0;min-height:68px;padding:7px;border:1px solid var(--muted);background:var(--paper);box-shadow:1px 1px 0 var(--muted);overflow-wrap:anywhere}
#life .panel .ui-card>.card-media{grid-column:1;grid-row:1;width:36px;height:36px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--muted)}
#life .panel .ui-card>.card-media canvas.icon,#life .panel .ui-card>.card-media img{width:32px!important;height:32px!important;max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;margin:0!important}
#life .panel .ui-card>.card-title{grid-column:2;grid-row:1;align-self:end;min-width:0;margin:0!important;font-size:11px;line-height:1.25;font-weight:650;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
#life .panel .ui-card.no-media>.card-title{grid-column:1/-1}
#life .panel .ui-card.no-media{grid-template-columns:minmax(0,1fr)}
#life .panel .ui-card.no-media>input,#life .panel .ui-card.no-media>select,#life .panel .ui-card.no-media>textarea{grid-column:1;width:100%;min-width:0}
#life .panel .ui-card>.card-action{grid-column:1/-1;grid-row:2;justify-self:stretch;min-height:44px!important;padding:4px 8px!important;font-size:10px!important;line-height:1.15;white-space:normal}
#life .panel .ui-card>.card-info{grid-column:1/-1;grid-row:2;justify-self:start;max-width:100%;font-size:10px;color:var(--muted)}
#life .panel .ui-card>.card-info[open]{grid-column:1/-1;grid-row:auto}
#life .panel .ui-card.has-info>.card-action{grid-row:3}
#life .panel .card-info>summary{display:inline-flex;align-items:center;min-height:32px;cursor:pointer}
#life .panel .card-description{display:block;padding:5px 0;line-height:1.35;overflow-wrap:anywhere}
#life .panel .ui-card.text-note{display:block;min-height:0;line-height:1.4;font-size:11px;padding:8px}
#life .panel .garden-grid .ui-card,#life .panel .garden-grid>.card{grid-template-columns:1fr;grid-template-rows:auto;min-height:110px;text-align:center;justify-items:center}
#life .panel .garden-grid .ui-card>.card-media,#life .panel .garden-grid>.card>.icon{grid-column:auto;grid-row:auto}
#life .panel .garden-grid .ui-card>.card-action{grid-column:auto;grid-row:auto;justify-self:stretch;width:100%}
#life .panel .garden-grid .ui-card>.card-title{grid-column:auto;grid-row:auto}
#life .panel .grid2 .card{display:grid;grid-template-columns:1fr;grid-template-rows:auto;justify-items:center;text-align:center;min-height:116px}
#life .panel .grid2 .card>.icon{width:36px!important;height:36px!important;margin:0!important}
#life .panel .grid2 .card button{width:100%;min-height:36px!important}
#life .panel .food-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,148px),1fr));gap:7px}
#life .panel .food-list .row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:5px;padding:7px;min-height:72px}
#life .panel .food-list .row>span{grid-column:1/-1;grid-row:1;min-width:0;font-size:11px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
#life .panel .food-list .row>button{grid-row:2;min-height:36px!important}
#life .panel .food-list .row>button:first-of-type{grid-column:2}
#life .panel .food-list .row>button:nth-of-type(2){grid-column:1}
#life .panel .row-info>summary{min-height:34px}
#life .panel .grid2 .card button{font-size:11px;padding:5px;white-space:normal}
#life .panel-section{border:1px solid var(--muted);background:var(--paper);min-width:0}
#life .panel-section>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px;cursor:pointer;font-size:12px;font-weight:650;list-style:none;color:var(--ink);touch-action:manipulation}
#life .panel-section>summary:before{content:"+";font:700 16px monospace}
#life .panel-section[open]>summary:before{content:"−"}
#life .panel-section[open]>summary{border-bottom:1px solid var(--muted);background:var(--surface)}
#life .panel-section>summary::-webkit-details-marker{display:none}
#life .section-body{padding:8px;display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere}
#life .section-count{margin-left:auto;font-size:10px;color:var(--muted);font-weight:400}
#life .care-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:5px;padding-bottom:3px}
#life .care-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:53px;padding:4px 2px;box-shadow:1px 1px 0 var(--muted);font-size:10px;line-height:1.1;white-space:nowrap}
#life .care-actions button .icon{width:20px!important;height:20px!important;margin:0!important}
#life .food-list{display:flex;gap:6px;flex-wrap:wrap}
#life .food-list .row{flex:1 1 140px;border:1px solid var(--muted);padding:5px;gap:4px}
#life .food-list .row>span{font-size:11px;min-width:60px}
#life .food-list .row>button{min-height:44px!important;padding:4px 6px;font-size:10px}
#life .row-info{flex:1 1 100px;min-width:0;font-size:11px}
#life .row-info>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:4px}
#life .row-info>summary:after{content:"ⓘ";color:var(--muted);font-size:11px}
#life .row-info>summary::-webkit-details-marker{display:none}
#life .row-info>span{display:block;padding:4px 0 8px;overflow-wrap:anywhere;font-size:11px;color:var(--muted)}
#life .panel .text-note{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
#life .panel .lineage{margin-left:0!important;border-left:2px solid var(--muted);padding-left:6px}
#life .panel ul{padding-left:18px;margin:4px 0}
#life .panel .group{min-width:0}
#life .testlabel{display:none}
#life.compact-game .toast{position:fixed;z-index:50;inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px;text-align:center;font-size:12px;pointer-events:none}
#life.compact-game .toast.transaction-suppressed{opacity:0}
#life.compact-game .swupdate.transaction-suppressed{opacity:0}
#life.compact-game .toast>span{display:inline-block;max-width:min(100%,600px);background:var(--ink);color:var(--paper);border:1px solid var(--paper);padding:8px 12px;box-shadow:2px 2px 0 var(--muted)}
#life .transaction-toast{position:fixed;z-index:60;left:50%;bottom:max(70px,calc(env(safe-area-inset-bottom) + 64px));max-width:calc(100vw - 24px);transform:translate(-50%,12px);opacity:0;pointer-events:none;padding:8px 14px;border:2px solid var(--paper);background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;text-align:center;box-shadow:3px 3px 0 var(--muted);transition:opacity .16s steps(2,end),transform .16s steps(2,end)}
#life .transaction-toast.show{opacity:1;transform:translate(-50%,0)}
#life .playfield header .coin-pulse{animation:coin-pulse .45s steps(3,end)}
@keyframes coin-pulse{50%{color:var(--accent);transform:scale(1.08)}}
#life.compact-game .modal{z-index:100;position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
#life.compact-game .modal>div{width:min(480px,100%);max-width:100%;max-height:calc(var(--game-height,100dvh) - 24px);overflow:auto;background:var(--paper);color:var(--ink);border:2px solid var(--ink);padding:14px;box-shadow:4px 4px 0 var(--muted);font-size:13px}
#life .modal h2{font-size:18px;margin:0 0 8px}
#life .modal .row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
#life .modal .row>span{min-width:0;flex:1 1 150px}
#life .modal button{font-size:12px}
#life .modal canvas:not(.icon){width:100%;height:auto;max-width:100%;image-rendering:pixelated;touch-action:none}
#life[data-lcd=true] .modal canvas:not(.icon){filter:url(#lcd-binary)}
#life[data-lcd=true][data-inverted=true] .modal canvas:not(.icon){filter:url(#lcd-binary-invert)}
#life .modal select,#life .modal input{min-width:0;max-width:100%;min-height:44px}
#life .modal .card{border:1px solid var(--muted);padding:8px;box-shadow:none;color:var(--ink)}
#life .extra-mini-box{width:min(440px,100%);display:grid;gap:8px}
#life .extra-mini-box>p{margin:0;line-height:1.35}
#life .extra-mini-status{font-weight:700;min-height:1.4em}
#life .extra-mini-controls{display:flex;flex-wrap:wrap;gap:6px}
#life .extra-mini-controls button{flex:1 1 72px;min-height:46px;touch-action:manipulation}
#life .seed-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(250px,100%);justify-self:center}
#life .seed-pad{display:grid;place-items:center;min-height:72px!important;background:#d7c28e!important;touch-action:manipulation}
#life .seed-pad canvas.icon{width:48px!important;height:48px!important;image-rendering:pixelated}
#life .seed-pad.is-lit{background:#80a85c!important;transform:translate(1px,1px);box-shadow:none!important}
#life .runner-canvas{display:block;width:min(100%,300px)!important;max-height:min(46dvh,360px);justify-self:center;aspect-ratio:3/4;image-rendering:pixelated;border:2px solid var(--ink);background:#211a2b;touch-action:pan-y!important}
#life[data-lcd=true] .seed-pad canvas.icon{filter:url(#lcd-binary)}
#life[data-lcd=true][data-inverted=true] .seed-pad canvas.icon{filter:url(#lcd-binary-invert)}
#life.compact-game .panel .food-list .row>button{min-height:44px!important}
#life .swupdate{position:fixed;bottom:0;left:0;right:0;z-index:110;font-size:12px}
#life .swupdate span{background:var(--paper);color:var(--ink);border-color:var(--ink)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:900px) and (min-height:501px){
 body{padding:0}
 #life.compact-game{height:var(--game-height,100dvh);border:0;box-shadow:none;grid-template-columns:minmax(0,1fr);grid-template-rows:46px minmax(100px,34dvh) 44px 52px minmax(0,1fr);grid-template-areas:"brand" "stage" "needs" "nav" "workspace";padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
 #life .game-brand{padding:1px 8px}
 #life .game-brand strong{font-size:17px}
 #life .workspace{border-left:0;border-top:2px solid var(--ink)}
 #life .workspace-heading{min-height:30px;padding:4px 10px;font-size:12px}
 #life.compact-game .panel{padding:7px;gap:6px}
 #life .playfield header{min-height:25px;font-size:10px;padding:3px 8px}
 #life .playfield .hud{min-height:22px;font-size:9px;padding:3px 8px}
 #life .display-fullscreen{display:none}
 #life .care-actions{grid-template-columns:repeat(auto-fit,minmax(44px,1fr))}
 #life .food-list .row{flex-basis:135px}
}
@media(max-width:520px){#life .panel .ui-grid,#life .panel .food-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr));gap:6px}#life .panel .ui-card{grid-template-columns:28px minmax(0,1fr);min-height:64px;padding:6px;gap:4px 6px}#life .panel .ui-card>.card-media{width:28px;height:28px}#life .panel .ui-card>.card-media canvas.icon,#life .panel .ui-card>.card-media img{width:24px!important;height:24px!important}#life .panel .food-list .row{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;min-height:80px}#life .panel .food-list .row>span{grid-column:1;grid-row:1}#life .panel .food-list .row>button:first-of-type,#life .panel .food-list .row>button:nth-of-type(2){grid-column:1;justify-self:stretch;width:100%;grid-row:auto}}
@media(max-width:379px) and (min-height:501px){#life.compact-game{grid-template-rows:46px minmax(90px,30dvh) 44px 96px minmax(0,1fr)}#life.compact-game>nav{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:44px 44px}#life.compact-game>nav button{flex-direction:row;gap:5px;font-size:10px}#life .game-brand strong{font-size:15px}}
@media(max-height:500px){
 body{padding:0}
 #life.compact-game{height:var(--game-height,100dvh);max-width:none;border:0;box-shadow:none;grid-template-columns:minmax(0,1.1fr) minmax(250px,1fr);grid-template-rows:44px minmax(0,1fr) 40px 52px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
 #life .game-brand{padding:0 8px}#life .game-brand strong{font-size:16px}
 #life .playfield header{min-height:23px;padding:2px 7px;font-size:9px}
 #life .playfield .hud{min-height:20px;font-size:9px;padding:2px 7px}
 #life.compact-game>.needs{padding:2px 6px;gap:5px}
 #life .need{font-size:9px;grid-template-columns:16px 1fr}
 #life .need>.need-label{font-size:9px}
 #life .need>.icon{width:14px!important;height:14px!important}
 #life .workspace-heading{min-height:30px;padding:4px 8px;font-size:12px}
 #life.compact-game .panel{padding:6px;gap:6px}
}
@media(max-height:500px) and (max-width:900px){#life.compact-game{grid-template-rows:44px minmax(0,1fr) 40px 96px}#life.compact-game>nav{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:44px 44px}#life.compact-game>nav button{flex-direction:row;gap:4px;font-size:9px}#life .display-fullscreen{display:none}}
@media(min-width:521px) and (max-height:500px){#life.compact-game{grid-template-columns:minmax(0,1.55fr) minmax(220px,.9fr)}#life.compact-game .playfield{grid-row:2/5}#life.compact-game>.needs{grid-column:2;grid-row:2}#life.compact-game>.workspace{grid-column:2;grid-row:3/5}}
@media(max-width:520px) and (max-height:500px){
 #life.compact-game{grid-template-columns:minmax(0,1fr);grid-template-rows:44px 70px 36px 48px minmax(0,1fr);grid-template-areas:"brand" "stage" "needs" "nav" "workspace"}
 #life.compact-game>nav{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:44px}#life.compact-game>nav button{flex-direction:column;font-size:8px}
 #life .playfield header,#life .playfield .hud{display:none}#life .game-brand strong{font-size:14px}
 #life .workspace{border-left:0;border-top:2px solid var(--ink)}
}
@media(prefers-reduced-motion:reduce){#life.compact-game *{scroll-behavior:auto;animation:none!important;transition:none!important}#life .transaction-toast{transition:none}}
