/*! Sakktenisz © 2026 Bajnok Sakkiskola – Farkas Ádám · C54B1770 */:root{--bg:#12301f;--bg2:#1b4a33;--ink:#f6f2e4;--muted:#b9cdbc;--accent:#d2ea6a;--accent-ink:#1d3310;--font-ui:"Segoe UI",Roboto,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);overscroll-behavior:none}body{overflow:hidden;position:fixed;inset:0;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{height:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#hud{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border-bottom:2px solid #0c2418}.stat{display:flex;flex-direction:column;align-items:center;min-width:58px;flex:1}.stat .lbl{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.stat .val{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.stat.time .val{min-width:3.2em;text-align:center;border-radius:8px}.stat.time.hurry .val{background:var(--ink);color:#111;animation:blink .5s steps(2) infinite}@keyframes blink{50%{background:#111;color:var(--ink)}}.btns{display:flex;gap:6px}button.icon{width:42px;height:42px;border-radius:10px;border:2px solid #3f8a5f;background:#143b28;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}button.icon svg{width:24px;height:24px;fill:currentColor;stroke:currentColor}button.icon svg rect,button.icon svg path:first-child{stroke:none}#btnSound .cross{display:none}#btnSound.off .cross{display:inline}#btnSound.off .wave{display:none}#btnSound.off{color:var(--muted)}#stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;touch-action:none}#bg{position:absolute;inset:0;width:100%;height:100%;display:block}#cv{position:relative;z-index:1;display:block;touch-action:none;cursor:none}#banner{position:absolute;z-index:2;left:50%;top:42%;transform:translate(-50%,-50%);padding:12px 22px;border-radius:14px;background:rgba(15,42,29,.92);border:2px solid var(--ink);font-size:clamp(20px,5vw,30px);font-weight:800;text-align:center;pointer-events:none;white-space:nowrap}.overlay{position:absolute;z-index:3;inset:0;display:grid;place-items:center;background:rgba(8,24,16,.45);padding:16px}.overlay[hidden],#banner[hidden]{display:none}.card{width:min(470px,100%);max-height:100%;overflow:auto;background:var(--bg2);border:2px solid #3f8a5f;border-radius:18px;padding:18px 18px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.5)}.card h1{margin:0;font-size:clamp(34px,9vw,48px);font-weight:900;letter-spacing:.04em}.card h2{margin:0 0 12px;font-size:28px;font-weight:800}.card .sub{margin:2px 0 14px;color:var(--muted);font-size:18px;font-weight:600}.card .rec{margin:16px 0 0;color:var(--muted);font-size:16px}.card .rec b{color:var(--ink)}.card .final{margin:4px 0 6px;font-size:40px;font-weight:900}.card .note{margin:0 0 16px;color:var(--muted);font-size:17px;font-weight:600;min-height:1em}.card.rules{text-align:left}.card.rules h2{text-align:center}.card.rules ul{margin:0 0 18px;padding-left:20px;font-size:16px;line-height:1.45}.card.rules li{margin-bottom:8px}button.big,button.ghost{display:block;width:100%;margin-top:10px;padding:14px 16px;border-radius:12px;font:800 22px var(--font-ui);cursor:pointer}button.big{background:var(--accent);color:var(--accent-ink);border:2px solid #eef9bd}button.ghost{background:transparent;color:var(--ink);border:2px solid #4f9b71;font-size:18px}button:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.stat .val.serves{letter-spacing:.08em;font-size:20px}@media (max-width:420px){#hud{gap:4px;padding:6px 8px}.stat{min-width:0}.stat .val{font-size:20px}.stat .val.serves{font-size:16px}button.icon{width:38px;height:38px}}.levels{display:grid;gap:9px;margin-top:2px}button.level{display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;text-align:left;cursor:pointer;padding:12px 16px;border-radius:14px;background:var(--accent);color:var(--accent-ink);border:2px solid #eef9bd;font-family:var(--font-ui)}button.level:hover{filter:brightness(1.06)}.lv-name{font-size:21px;font-weight:900}.lv-info{font-size:15px;font-weight:700}.lv-rec{font-size:14px;font-weight:600;opacity:.85}.lv-text{display:grid;gap:2px}.lv-badge{width:104px;height:124px;border-radius:20px;background:radial-gradient(circle at 50% 35%,#2c6b42,#123a24 75%);border:2px solid rgba(255,255,255,.55);box-shadow:inset 0 2px 8px rgba(0,0,0,.45);display:grid;place-items:center;overflow:hidden}.lv-face{max-width:calc(100% - 8px);max-height:calc(100% - 6px);width:auto;height:auto;object-fit:contain;align-self:end;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}@media (max-width:420px){button.level{grid-template-columns:72px 1fr;gap:9px;padding:9px 11px}.lv-badge{width:72px;height:86px;border-radius:15px}.lv-name{font-size:16px}.lv-info{font-size:13px}.lv-rec{font-size:12px}}h1.logo{margin:-4px 0 0}h1.logo img{display:block;width:100%;height:auto}