:root{--green: #2f9e5f;--dark-green: #1e6b3e;--bg: #f3f8f1;--accent: #ffc93c;--ink: #173d24;--card: #fffdf4;--muted: #5c6f5a;--grass1: #8fd07a;--grass2: #83c66e;--panel: #fffdf4;--track: #0d3520;--pipbg: #eef6e6;--pipborder: #b9d8ae}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{touch-action:manipulation}body{margin:0;background:#14532d;color:var(--ink);font-family:"M PLUS Rounded 1c",sans-serif;font-weight:700;display:flex;justify-content:center;padding:14px 8px 30px}a{color:var(--dark-green)}.pix{font-family:"Press Start 2P",monospace}h1,h2,h3{font-family:"Press Start 2P","M PLUS Rounded 1c",monospace}html[data-lang=pl] body,html[data-lang=pl] h1,html[data-lang=pl] h2,html[data-lang=pl] h3,html[data-lang=pl] .pix,html[data-lang=pl] .mhead,html[data-lang=pl] .mcell .dnum,html[data-lang=pl] .badge,html[data-lang=pl] .px-zzz{font-family:system-ui,-apple-system,sans-serif;font-weight:700}.app{width:392px;max-width:100%;background:var(--bg);border:4px solid var(--ink);box-shadow:0 0 0 4px #0d3520,0 18px 40px #00000073;padding:12px 12px 16px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.logo{font-size:14px;color:var(--dark-green);letter-spacing:1px}.logo span{color:var(--green)}.clocks{display:flex;gap:6px}.clock{background:#fff;border:3px solid var(--ink);padding:3px 7px;font-size:12px;line-height:1.25;text-align:center;white-space:nowrap}.clock .cname{display:block;white-space:nowrap}html[data-lang=pl] .navbtn{font-size:13px}@media(max-width:480px){.logo{font-size:12px}.clocks{gap:4px}.clock{padding:3px 5px}.clock .cname{font-size:10px}.monthbar{gap:5px}}.clock b{display:block;font-size:13px}.stats{background:var(--dark-green);color:#fff;border:3px solid var(--ink);padding:8px 10px;display:flex;align-items:center;gap:10px;margin-bottom:8px}.lvbadge{background:var(--accent);color:var(--ink);border:3px solid var(--ink);padding:5px 7px;font-size:12px}.xpwrap{flex:1}.xpbar{height:16px;background:var(--track);border:2px solid #fff;display:flex;gap:2px;padding:2px}.xpbar i{flex:1;background:transparent}.xpbar i.on{background:var(--accent)}.xpnum{font-size:12px;margin-top:3px}.window,.card{background:var(--panel);border:3px solid var(--ink);box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #b9d8ae;padding:10px 11px;margin-bottom:10px}.rpg{background:var(--panel);border:3px solid var(--ink);box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #b9d8ae}.quest{display:flex;align-items:center;gap:11px}.qtext{flex:1}.qtitle{font-size:10px;color:var(--dark-green);margin-bottom:4px}.qbody{font-size:16px}.qprog{font-size:12px;color:#5a7263}.qpips{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}.pip{width:30px;height:30px;background:var(--pipbg);border:2px solid var(--pipborder);display:flex;align-items:center;justify-content:center}.pip.clear{background:#fff3c4;border-color:var(--ink)}.nav{display:flex;gap:8px;margin:2px 0 10px}.navbtn{flex:1;min-width:0;text-align:center;text-decoration:none;background:#fff;border:3px solid var(--ink);box-shadow:2px 2px 0 var(--ink);padding:8px 0;font-size:15px;color:var(--ink);cursor:pointer;font-family:inherit}.navbtn:active,.navbtn.active{transform:translate(2px,2px);box-shadow:none;background:#fff3c4}.monthbar{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:2px 0 6px}.monthbar .navbtn{flex:none}.monthbar .chevbtn{flex:none;width:44px;text-align:center}.monthbar .mname{flex:1;min-width:0;white-space:nowrap;text-align:center;font-size:12px;color:var(--dark-green)}.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.legend{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:6px;font-size:10px;color:var(--muted)}.legend .litem{display:inline-flex;align-items:center;gap:4px}.legend .px-bob,.legend .px-sway,.legend .px-run,.legend .px-float,.legend .px-bloom{animation:none}.mhead{text-align:center;font-size:10px;font-family:"Press Start 2P",monospace;font-weight:400;color:var(--dark-green);padding:1px 0}html[data-lang=pl] .mhead{font-family:system-ui,-apple-system,sans-serif;font-weight:700}.mcell{aspect-ratio:auto;min-height:70px;vertical-align:top;padding:2px 3px;cursor:pointer;position:relative;border:3px solid rgba(23,61,36,.55);text-decoration:none;color:var(--ink);display:block;overflow:hidden}.mcell.grass-a{background:var(--grass1)}.mcell.grass-b{background:var(--grass2)}.mcell .dnum{font-size:10px;font-family:"Press Start 2P",monospace;color:#14532d}html[data-lang=pl] .mcell .dnum{font-family:system-ui,-apple-system,sans-serif;font-weight:700}.mcell.out{opacity:.38}.mcell.today{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent),inset 0 0 0 2px #fff8d6;background-image:radial-gradient(ellipse 70% 46% at 50% 88%,#fff8bef2,#fff8be00 70%)}.mchars{display:flex;justify-content:center}.mchars>*:last-child{margin-left:-8px}.mcell .spr{position:absolute;left:50%;bottom:2px;transform:translate(-50%);display:flex;gap:1px;align-items:flex-end}.mcell .spr>*:last-child{margin-left:-7px}.mcell .spr>*:first-child{margin-left:0}.navbtn.todaybtn{width:auto;padding:0 8px;font-size:12px}.mtitle{font-size:10px;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#14532d}.evrow{background:#fff;border:3px solid #cfe6c6;box-shadow:none}.dual{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.dual .mine{font-size:20px;font-weight:800}.dual .theirs{color:#5a7263}.day-note{background:var(--accent);border:2px solid var(--ink);padding:2px 4px;font-size:10px}.badge{display:inline-block;font-size:10px;font-family:"Press Start 2P",monospace;background:var(--accent);border:2px solid var(--ink);padding:2px 4px}html[data-lang=pl] .badge{font-family:system-ui,-apple-system,sans-serif}.badge.done{background:var(--green);color:#fff}.badge.rest{background:#a8c6fa}.badge.jogging,.badge.general{background:var(--accent);color:var(--ink)}.gbtn,.pbtn{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff;font-family:"M PLUS Rounded 1c",sans-serif;font-weight:700;font-size:16px;padding:9px 14px;cursor:pointer;color:var(--ink)}html[data-lang=pl] .gbtn,html[data-lang=pl] .pbtn{font-family:system-ui,-apple-system,sans-serif;font-weight:700}.gbtn:active:not(:disabled),.pbtn:active:not(:disabled){transform:translate(3px,3px);box-shadow:none}.gbtn:disabled,.pbtn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.gbtn.done,.pbtn.done{background:var(--green);color:#fff}.gbtn.rest,.pbtn.rest{background:#dcebfd}.gbtn.accent,.pbtn.move{background:var(--accent);color:var(--ink)}.gbtn.danger{background:#fde8e8;color:#a33;font-size:14px}.gbtn.ghost{background:#e7f2e9}input,select,textarea{box-sizing:border-box;width:100%;border:3px solid var(--ink);border-radius:4px;padding:8px 10px;font-size:15px;margin:4px 0 10px;background:#fff;font-family:inherit;font-weight:700}input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}label{font-size:13px;font-weight:700;color:var(--dark-green)}.row{display:flex;gap:8px;flex-wrap:wrap}.row .gbtn{flex:1}.muted{color:#5a7263;font-size:13px}.lvup-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#143c238c;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.lvup-card{background:var(--panel);border:4px solid var(--ink);box-shadow:6px 6px #00000059;padding:18px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.lvup-card .big{font-size:16px;color:var(--dark-green);margin:8px 0 4px}.lvup-card .small{font-size:13px;color:#5a7263}.sunrow{display:flex;justify-content:center}.px{image-rendering:pixelated}@keyframes px-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes px-sway{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes px-run{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes px-bloom{0%{transform:scale(.2) rotate(-20deg)}60%{transform:scale(1.15) rotate(4deg)}to{transform:scale(1) rotate(0)}}@keyframes px-float{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(-4px);opacity:1}}.px-bob{animation:px-bob 1.5s ease-in-out infinite}.px-delay{animation-delay:.8s}.px-sway{animation:px-sway 2.4s ease-in-out infinite alternate;transform-origin:50% 100%}.px-run{animation:px-run .45s ease-in-out infinite}.px-bloom{animation:px-bloom .9s ease-out both}.px-float{animation:px-float 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.px-bob,.px-delay,.px-sway,.px-run,.px-bloom,.px-float{animation:none}}
