:root{--bg:#12160f;--bg2:#1a2015;--panel:#20281a;--panel2:#28311f;--ink:#eaf3dd;--dim:#93a382;--faint:#5f6e51;--green:#6abe30;--green-d:#4a8c2a;--gold:#f2c024;--red:#d94f3d;--blue:#4aa3d9;--edge:#0d100a;--shadow:3px 3px 0 var(--edge);--font:"Silkscreen",ui-monospace,monospace;--font-title:"Press Start 2P",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;overscroll-behavior-y:none;background-image:radial-gradient(circle at 20% 0%,#1b2415 0%,transparent 55%),radial-gradient(circle at 90% 100%,#18220f 0%,transparent 50%);background-attachment:fixed}img,canvas{image-rendering:pixelated;display:block}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}#app{max-width:520px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding-bottom:76px}.screen{padding:14px 14px 24px;flex:1;animation:fade .18s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;gap:10px;padding:12px 14px 8px;position:sticky;top:0;z-index:20;background:linear-gradient(var(--bg) 70%,transparent)}.brand{font-family:var(--font-title);font-size:11px;color:var(--green);text-shadow:2px 2px 0 var(--edge);letter-spacing:.5px}.brand small{display:block;font-family:var(--font);font-size:10px;color:var(--faint);letter-spacing:0;margin-top:3px;text-shadow:none}.topbar .spacer{flex:1}.lvl{font-family:var(--font-title);font-size:8px;color:var(--gold);text-shadow:1px 1px 0 var(--edge)}.streak{font-size:12px;color:var(--dim)}h2{font-family:var(--font-title);font-size:12px;color:var(--ink);text-shadow:2px 2px 0 var(--edge);margin:18px 0 10px;display:flex;align-items:center;gap:8px}h2:first-child{margin-top:4px}h3{font-family:var(--font-title);font-size:10px;color:var(--dim);margin:0 0 8px;text-shadow:1px 1px 0 var(--edge)}.muted{color:var(--dim)}.faint{color:var(--faint)}.tiny{font-size:12px}.card{background:var(--panel);border:3px solid var(--edge);box-shadow:var(--shadow);padding:12px;margin-bottom:10px}.card.tap{cursor:pointer;transition:transform .08s}.card.tap:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--edge)}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.grow{flex:1}.between{display:flex;align-items:center;justify-content:space-between;gap:8px}.meter{height:12px;background:var(--edge);border:2px solid var(--edge);position:relative;overflow:hidden}.meter i{display:block;height:100%;transition:width .35s ease;background-image:linear-gradient(180deg,rgba(255,255,255,.28),transparent 55%)}.meter.gdd i{background-color:var(--green)}.meter.water i{background-color:var(--blue)}.meter.xp i{background-color:var(--gold)}.meter.thirsty i{background-color:#c98b2a}.meter.parched i{background-color:var(--red)}.meterlab{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);margin-bottom:4px}.quest{display:flex;gap:10px;align-items:flex-start;background:var(--panel);border:3px solid var(--edge);box-shadow:var(--shadow);padding:10px;margin-bottom:8px;transition:opacity .2s}.quest .ic{font-size:20px;line-height:1.2;width:24px;text-align:center;flex-shrink:0}.quest .t{font-family:var(--font-title);font-size:9px;line-height:1.5;margin-bottom:4px}.quest .d{font-size:12px;color:var(--dim);line-height:1.4}.quest .xp{font-size:10px;color:var(--gold);white-space:nowrap;flex-shrink:0}.quest.done{opacity:.42}.quest.done .t{text-decoration:line-through}.check{width:26px;height:26px;border:3px solid var(--edge);background:var(--panel2);flex-shrink:0;display:grid;place-items:center;font-size:14px;align-self:center}.check.on{background:var(--green);color:var(--edge)}.plant-row{display:flex;gap:12px;align-items:center}.plant-row canvas{width:64px;height:64px;flex-shrink:0;background:#161c11;border:2px solid var(--edge)}.pname{font-family:var(--font-title);font-size:10px;line-height:1.4}.badge{display:inline-block;font-size:10px;padding:2px 6px;border:2px solid var(--edge);background:var(--panel2);color:var(--dim)}.badge.ok{background:var(--green-d);color:#eaf3dd}.badge.warn{background:#8a5a1c;color:#ffe9c4}.badge.bad{background:#8c2f22;color:#ffd9d2}.badge.kit{background:#2b4a66;color:#cfe8ff}.alert{border:3px solid var(--edge);box-shadow:var(--shadow);padding:10px;margin-bottom:8px;display:flex;gap:10px;align-items:flex-start}.alert .ic{font-size:18px}.alert.high{background:#5c1f16;color:#ffd9d2}.alert.med{background:#5c421a;color:#ffe9c4}.alert.info{background:#1c3a4d;color:#cfe8ff}.wx{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.wx::-webkit-scrollbar{display:none}.wxd{flex:0 0 52px;background:var(--panel);border:2px solid var(--edge);padding:6px 4px;text-align:center}.wxd .dow{font-size:10px;color:var(--faint)}.wxd .hi{font-size:13px;color:var(--ink)}.wxd .lo{font-size:11px;color:var(--dim)}.wxd .rn{font-size:10px;color:var(--blue);min-height:14px}.wxd.frost{border-color:var(--blue);background:#16283a}.wxd.hot{border-color:var(--red);background:#3a1d16}.btn{font-family:var(--font-title);font-size:9px;padding:12px 14px;border:3px solid var(--edge);box-shadow:var(--shadow);background:var(--green-d);color:#f2ffe6;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;transition:transform .08s}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--edge)}.btn.ghost{background:var(--panel2);color:var(--dim)}.btn.gold{background:#a37c12;color:#fff6dc}.btn.wide{width:100%}.btn[disabled]{opacity:.45;pointer-events:none}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.btnrow .btn{flex:1;min-width:0}label{display:block;font-size:12px;color:var(--dim);margin:10px 0 4px}input,select,textarea{width:100%;font-family:var(--font);font-size:15px;padding:11px;background:var(--bg2);color:var(--ink);border:3px solid var(--edge);box-shadow:inset 2px 2px 0 var(--edge);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green-d)}textarea{resize:vertical;min-height:76px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:12px;padding:8px 10px;border:3px solid var(--edge);background:var(--panel);color:var(--dim);cursor:pointer}.chip.on{background:var(--green-d);color:#f2ffe6}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dex{background:var(--panel);border:3px solid var(--edge);padding:8px 4px;text-align:center;cursor:pointer}.dex canvas{width:100%;height:auto;max-width:72px;margin:0 auto}.dex .n{font-size:11px;margin-top:4px}.dex .num{font-size:9px;color:var(--faint)}.dex.locked{opacity:.55}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--panel);border-top:3px solid var(--edge);z-index:30;max-width:520px;margin:0 auto}nav button{flex:1;padding:9px 2px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--faint)}nav button .ic{font-size:19px}nav button .lb{font-size:9px;font-family:var(--font-title)}nav button.on{color:var(--green);background:var(--panel2)}nav .dot{position:absolute;top:6px;margin-left:16px;width:7px;height:7px;background:var(--red);border:2px solid var(--edge)}#toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}.toast{background:var(--panel2);border:3px solid var(--edge);box-shadow:var(--shadow);padding:9px 14px;font-family:var(--font-title);font-size:9px;color:var(--gold);animation:pop .25s ease}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:none}}.modal{position:fixed;inset:0;background:#060904d1;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--panel);border:3px solid var(--edge);width:100%;max-width:520px;max-height:88vh;overflow-y:auto;padding:16px 14px 24px;animation:up .2s ease}@keyframes up{0%{transform:translateY(20px);opacity:.6}to{transform:none;opacity:1}}.hero{display:grid;place-items:center;padding:8px 0 4px}.hero canvas{width:160px;height:160px;background:#161c11;border:3px solid var(--edge);box-shadow:var(--shadow)}.sep{height:3px;background:var(--edge);margin:14px 0}.logline{display:flex;gap:8px;padding:8px 0;border-bottom:2px solid var(--bg2);font-size:12px}.logline .dt{color:var(--faint);flex-shrink:0;width:52px}.empty{text-align:center;color:var(--faint);padding:28px 12px;font-size:13px;line-height:1.7}
