*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;background:#79c04b;font-family:system-ui,'Segoe UI',Roboto,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none}
#game{position:fixed;inset:0;width:100%;height:100%;display:block}

#hud{position:fixed;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 12px calc(12px + env(safe-area-inset-left));pointer-events:none;z-index:5}
#money{background:rgba(30,50,20,.78);color:#ffe28a;font-weight:800;font-size:clamp(18px,3vw,26px);padding:8px 18px;border-radius:999px;box-shadow:0 3px 0 rgba(0,0,0,.25)}
#btns{display:flex;gap:8px;pointer-events:auto}
#btns button{width:46px;height:46px;font-size:22px;border:none;border-radius:12px;background:rgba(30,50,20,.78);cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.25)}
#btns button:active{transform:translateY(2px);box-shadow:none}

#hint{position:fixed;bottom:calc(26px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);color:#fff;padding:10px 20px;border-radius:12px;font-size:clamp(13px,2.2vw,17px);z-index:5;pointer-events:none;text-align:center;max-width:90vw}
.hidden{display:none!important}
.kbSel{outline:3px solid #ffd23b;outline-offset:2px}

#joyBase,#joyKnob{position:fixed;border-radius:50%;pointer-events:none;z-index:4;transform:translate(-50%,-50%)}
#joyBase{width:112px;height:112px;background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.45)}
#joyKnob{width:48px;height:48px;background:rgba(255,255,255,.55)}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:10}
.card{background:#fffbe9;border-radius:20px;padding:28px 32px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.4);max-width:92vw;animation:pop .25s ease}
.card h2{color:#3a5f1f;margin-bottom:8px;font-size:clamp(20px,4vw,30px)}
.card p{color:#666;margin-bottom:18px;font-size:clamp(14px,2.5vw,18px);line-height:1.4}
#choiceBtns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
#choiceBtns button,.big{font-size:clamp(16px,3vw,22px);font-weight:800;padding:14px 24px;border:none;border-radius:14px;cursor:pointer;color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.25);transition:transform .1s,box-shadow .1s;line-height:1.3}
#choiceBtns button small{font-weight:600;font-size:.65em;opacity:.9}
#choiceBtns button:active,.big:active{transform:translateY(3px);box-shadow:none}
.big{background:#4a9e2f}
#choiceBtns .ghost{background:#8a8a80}
#buffIcon{margin-left:6px}

#tractorBtn{position:fixed;right:calc(16px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));z-index:5;font-size:clamp(15px,2.5vw,19px);font-weight:800;padding:14px 20px;border:none;border-radius:16px;background:#3f8f2f;color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.3);cursor:pointer}
#tractorBtn:active{transform:translateY(3px);box-shadow:none}

#actionBtn{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:5;font-size:clamp(15px,2.5vw,19px);font-weight:800;padding:14px 22px;border:none;border-radius:16px;background:#e08a1f;color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.3);cursor:pointer;animation:pop .2s ease}
#actionBtn:active{transform:translate(-50%,3px);box-shadow:none}

#buyBtn{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:6;font-size:clamp(16px,2.8vw,21px);font-weight:800;padding:14px 26px;border:none;border-radius:16px;background:#2f8f4f;color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.3);cursor:pointer;animation:pop .2s ease}
#buyBtn:active{transform:translate(-50%,3px);box-shadow:none}

#padInfo{position:fixed;bottom:88px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.95);color:#555;padding:10px 18px;border-radius:14px;font-size:clamp(13px,2.2vw,16px);z-index:5;pointer-events:none;text-align:center;max-width:min(560px,92vw);box-shadow:0 3px 10px rgba(0,0,0,.25);line-height:1.35;animation:pop .2s ease}
#padInfo b{color:#3a5f1f}

#shopItems{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;max-height:50vh;overflow-y:auto;min-width:min(420px,80vw)}
.shopItem{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:10px 14px;box-shadow:0 2px 5px rgba(0,0,0,.12);text-align:left}
.si-icon{font-size:28px}
.si-info{flex:1;display:flex;flex-direction:column;color:#444}
.si-info small{color:#888;font-weight:600}
.shopItem button{border:none;border-radius:10px;padding:10px 16px;font-weight:800;font-size:15px;color:#fff;background:#4a9e2f;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.2);white-space:nowrap}
.shopItem button:disabled{background:#b5b5ad;box-shadow:none;cursor:default}
.shopItem button.owned{background:#8fbf6a}
@keyframes pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

/* igra v dvoje */
#inviteCode{font-size:44px;font-weight:800;letter-spacing:10px;color:#3a5f1f;background:#eef7e2;border-radius:14px;padding:8px 6px 8px 16px;margin-bottom:14px;user-select:text;-webkit-user-select:text}
#inviteRow{display:flex;gap:8px;margin-bottom:14px}
#inviteLink{flex:1;min-width:0;border:2px solid #cfe0b8;border-radius:12px;padding:10px 12px;font-size:14px;color:#555;background:#fff}
#inviteStatus{min-height:1.4em}
.orLine{color:#999;font-size:13px;margin:14px 0 10px}
#joinRow{display:flex;gap:8px;justify-content:center;margin-bottom:16px}
#joinCode{width:130px;text-align:center;font-size:24px;font-weight:800;letter-spacing:6px;text-transform:uppercase;border:2px solid #cfe0b8;border-radius:12px;padding:8px 4px 8px 10px;color:#3a5f1f;background:#fff}
.ghostBig{background:#8a8a80}

/* garderoba */
.wardLabel{color:#8a8a80;font-size:13px;font-weight:700;margin:4px 0 8px;text-transform:uppercase;letter-spacing:1px}
#shirtRow{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}
#shirtRow button{width:44px;height:44px;border-radius:50%;border:4px solid rgba(0,0,0,.12);cursor:pointer;box-shadow:0 2px 0 rgba(0,0,0,.2);padding:0}
#shirtRow button.sel{border-color:#ffd23b;transform:scale(1.12)}
#hatRow{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:18px}
#hatRow button{font-size:16px;font-weight:800;padding:10px 16px;border:4px solid rgba(0,0,0,.08);border-radius:12px;background:#f4efe0;color:#555;cursor:pointer;box-shadow:0 2px 0 rgba(0,0,0,.15)}
#hatRow button.sel{border-color:#ffd23b;background:#fff}
