:root{--bg:#0f2a22;--panel:#102620eb;--line:#a0f0be2e;--txt:#f1fbf4;--muted:#a8c9b6;--accent:#ff8a4c;--accent2:#ffd25e;--green:#4fd38a;--bad:#ff6b6b;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);font-family:Nunito,Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--txt);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none;margin:0;overflow:hidden}#c{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.screen{padding:max(12px, var(--sat)) max(12px, var(--sar)) max(12px, var(--sab)) max(12px, var(--sal));z-index:20;touch-action:pan-y;background:radial-gradient(#0a1e1859,#0a1e18d9);justify-content:center;align-items:center;display:none;position:fixed;inset:0;overflow:auto}.screen.dim{z-index:30;background:#06120e8c}.screen.show{display:flex}#loading{background:var(--bg);z-index:50;flex-direction:column;gap:8px}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;max-width:100%;margin:auto;padding:20px 22px;box-shadow:0 20px 60px #00000073}.panel.small{flex-direction:column;gap:12px;width:420px;display:flex}.panel.menu{flex-direction:column;gap:12px;width:460px;display:flex}.panel.wide{flex-direction:column;gap:12px;width:760px;display:flex}h2{margin:0;font-size:22px}h4{color:var(--accent2);margin:0 0 6px}.logo{letter-spacing:3px;font-size:34px;font-weight:900}.logo b{color:var(--accent)}.logo.big{text-align:center;font-size:46px}.tag{text-align:center;color:var(--muted);margin:-6px 0 2px}.muted{color:var(--muted);margin:0}.small{font-size:13px}.err{color:var(--bad);min-height:1em;margin:0}.row{flex-wrap:wrap;gap:10px;display:flex}.row>*{flex:1}.col{flex-direction:column;gap:10px;display:flex}.menu-grid{gap:10px;display:grid}.btn{font:inherit;color:var(--txt);cursor:pointer;touch-action:manipulation;background:#ffffff14;border:1px solid #ffffff24;border-radius:14px;padding:11px 16px;font-weight:800}.btn:hover{background:#ffffff24}.btn.primary{color:#fff;text-shadow:0 1px 2px #0000004d;background:linear-gradient(#ff9b5e,#f2703a);border-color:#ffdcbe80}.btn.primary:hover{filter:brightness(1.06)}.btn.big{padding:15px 18px;font-size:17px}.btn.small{padding:8px 12px;font-size:14px}.btn.ghost{background:0 0}.btn.sel{outline:2px solid var(--accent2)}.btn:disabled{opacity:.5;cursor:default}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:14px;display:flex}.field input,.field select,.join input{font:inherit;color:var(--txt);-webkit-user-select:text;user-select:text;background:#0000004d;border:1px solid #ffffff29;border-radius:12px;padding:10px 12px}.join input{text-transform:uppercase;letter-spacing:4px;text-align:center;font-weight:900}.chk{align-items:center;gap:8px;font-size:14px;display:flex}.who{text-align:center;color:var(--muted)}.who b{color:var(--txt)}.invite{border:1px solid var(--accent2);text-align:center;border-radius:14px;padding:10px 12px}.invite p{margin:0 0 8px}.course-btn{text-align:left;flex-direction:column;gap:2px;display:flex}.course-btn small{color:var(--muted);font-weight:600}.panel.lobby{flex-direction:column;gap:12px;width:480px;display:flex}.lobby-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lobby-share{flex-direction:column;gap:6px;display:flex}.code{letter-spacing:6px;color:var(--accent2);font-size:38px;font-weight:900}.players{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.players li{background:#ffffff0f;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.players .dot,#plist .dot{border:2px solid #0006;border-radius:50%;flex:none;width:14px;height:14px}.players .st{color:var(--muted);margin-left:auto;font-size:13px}.players .st.ok{color:var(--green)}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud>*{pointer-events:auto}#bar{top:max(10px, var(--sat));left:max(10px, var(--sal));align-items:stretch;gap:8px;display:flex;position:absolute}#bar>div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px 12px}#holeNo{color:var(--muted);font-size:12px;font-weight:800}#holeName{font-size:16px;font-weight:900}#bar .k{color:var(--muted);text-align:center;font-size:12px;font-weight:800}#bar .v{text-align:center;font-size:18px;font-weight:900}#net{color:var(--accent2);align-self:center;font-size:12px}#tools{top:max(10px, var(--sat));right:max(10px, var(--sar));gap:6px;display:flex;position:absolute}.ib{width:44px;height:44px;color:var(--txt);background:var(--panel);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;border-radius:14px;font-size:20px}.side{bottom:max(12px, var(--sab));flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}#left{left:max(12px, var(--sal))}#right{right:max(12px, var(--sar));align-items:flex-end}#spin{touch-action:none;flex-direction:column;align-items:center;gap:4px;display:flex}#spinBall{cursor:crosshair;background:radial-gradient(circle at 35% 30%,#fff,#eef1ee 45%,#b9c2bc 100%);border-radius:50%;width:86px;height:86px;position:relative;box-shadow:0 4px 14px #00000073}#spinLimit{pointer-events:none;border:1px dashed #00000059;border-radius:50%;position:absolute}#spinDot{pointer-events:none;background:#f0603c;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #fff,0 1px 4px #0009}.lbl{background:var(--panel);border-radius:8px;padding:2px 8px;font-size:12px;font-weight:800}#elev{flex-direction:column;align-items:center;gap:4px;display:flex}#elevR{width:110px;accent-color:var(--accent)}#plist{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}#plist li{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;min-width:150px;padding:4px 10px;font-size:13px;font-weight:800;display:flex}#plist li.turn{border-color:var(--accent2)}#plist li .s{color:var(--muted);margin-left:auto}#plist li.done .s{color:var(--green)}#rot{bottom:max(12px, var(--sab));align-items:center;gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}#powerTxt{text-align:center;text-shadow:0 1px 3px #000000b3;pointer-events:none;min-width:90px;font-size:15px;font-weight:900}#toast{text-align:center;pointer-events:none;text-shadow:0 2px 8px #0009;opacity:0;white-space:nowrap;font-size:30px;font-weight:900;transition:opacity .25s;position:absolute;top:26%;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#toast small{font-size:16px;font-weight:800;display:block}#hint{bottom:calc(max(12px, var(--sab)) + 58px);color:#fff;text-shadow:0 1px 4px #000c;pointer-events:none;text-align:center;max-width:80vw;font-size:14px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}#intro{z-index:15;pointer-events:none;justify-content:center;display:flex;position:fixed;top:16%;left:0;right:0}#intro .card{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:20px;max-width:min(520px,90vw);padding:14px 24px;animation:.35s ease-out pop}#introNo{color:var(--muted);font-weight:800}#introName{font-size:30px;font-weight:900}#introPar{color:var(--accent2);font-weight:900}#introTip{color:var(--txt);margin:8px 0 0}@keyframes pop{0%{opacity:0;transform:scale(.85)}}#cardTable{border-collapse:collapse;width:100%;font-size:14px}#cardTable th,#cardTable td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 6px}#cardTable td.name,#cardTable th.name{text-align:left}#cardTable .tot{color:var(--accent2);font-weight:900}#cardTable td.under{color:var(--green);font-weight:900}#cardTable td.over{color:#ffb4a0}#cardTable tr.me td.name{color:var(--accent2)}.scroll{touch-action:pan-x pan-y;max-height:55vh;overflow:auto}.panel.help{flex-direction:column;gap:12px;width:820px;display:flex}.help-cols{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.help-cols ul{margin:0;padding-left:18px;font-size:14px;line-height:1.45}@media (max-width:720px){.help-cols{grid-template-columns:1fr}.logo.big{font-size:36px}}@media (max-height:520px){#spinBall{width:66px;height:66px}#bar>div{padding:3px 10px}#holeName{font-size:14px}#bar .v{font-size:15px}.ib{width:38px;height:38px;font-size:17px}#plist li{min-width:120px;padding:2px 8px;font-size:12px}#toast{font-size:24px}}body.portrait #holeBox{max-width:34vw}body.portrait #holeName{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}body.portrait #tools{flex-wrap:wrap;justify-content:flex-end;width:96px}body.portrait #right{bottom:calc(max(12px, var(--sab)) + 60px)}body.portrait #hint{bottom:calc(max(12px, var(--sab)) + 150px)}body.portrait #elevR{width:84px}body.portrait #rot{left:auto;right:max(12px, var(--sar));gap:4px;transform:none}body.portrait #powerTxt{min-width:70px;font-size:13px}
