:root{--bg: #0f1412;--bg-2: #161d1a;--surface: #1c2622;--surface-2: #243029;--line: #2e3b35;--text: #f2f5f3;--muted: #9aa8a1;--dim: #6b776f;--green: #35c46b;--green-2: #1f8f4c;--green-soft: rgba(53, 196, 107, .16);--red: #ff5c5c;--red-soft: rgba(255, 92, 92, .16);--amber: #f3b23e;--amber-soft: rgba(243, 178, 62, .18);--blue: #4da3ff;--bpk: #4da3ff;--bno: #ff7a45;--radius: 14px;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--num: "Barlow Condensed", "Inter", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.35;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:700}.num{font-family:var(--num);font-weight:700;letter-spacing:.01em}.muted{color:var(--muted)}.dim{color:var(--dim)}.green{color:var(--green)}.red{color:var(--red)}.amber{color:var(--amber)}.center{text-align:center}.row{display:flex;align-items:center;gap:10px}.grow{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.hide{display:none!important}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top)}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg-2),var(--bg));position:sticky;top:0;z-index:5}.topbar .logo{width:36px;height:36px;border-radius:8px}.topbar .title{font-family:var(--num);font-size:22px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.topbar .sub{font-size:12px;color:var(--muted);margin-top:-2px}.content{flex:1;padding:16px;padding-bottom:calc(84px + var(--safe-bottom));max-width:560px;width:100%;margin:0 auto}.content.wide{max-width:1100px;padding-bottom:32px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-2);border-top:1px solid var(--line);padding:6px 0 calc(8px + var(--safe-bottom))}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--muted);padding:4px 0}.tabbar a svg{width:24px;height:24px}.tabbar a.active{color:var(--green)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card.flat{background:var(--bg-2)}.card h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:12px;font-weight:600;font-size:16px;background:var(--surface-2);color:var(--text);border:1px solid var(--line);min-height:48px;transition:transform .06s ease,background .15s ease}.btn:active{transform:scale(.98)}.btn.primary{background:var(--green);color:#07130b;border-color:transparent}.btn.danger{background:var(--red-soft);color:var(--red);border-color:transparent}.btn.ghost{background:transparent}.btn.small{padding:8px 12px;min-height:36px;font-size:14px;border-radius:10px}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:default}.input{width:100%;padding:12px 14px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);outline:none;min-height:48px}.input:focus{border-color:var(--green-2)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.pill.green{background:var(--green-soft);color:var(--green)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.amber{background:var(--amber-soft);color:var(--amber)}.pill.bpk{background:#4da3ff2e;color:var(--bpk)}.pill.bno{background:#ff7a452e;color:var(--bno)}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--amber-soft);color:var(--amber);border:1px solid rgba(243,178,62,.35)}.banner.red{background:var(--red-soft);color:var(--red);border-color:#ff5c5c59}.banner.green{background:var(--green-soft);color:var(--green);border-color:#35c46b59}.banner .x{margin-left:auto;opacity:.7;font-size:18px;line-height:1}.hero{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 0 18px}.hero img{width:120px;height:120px;border-radius:28px;box-shadow:0 10px 40px #00000080}.hero h1{font-family:var(--num);font-size:34px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.roster{display:grid;grid-template-columns:1fr 1fr;gap:8px}.roster button{text-align:left;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-height:56px}.roster button.taken{opacity:.45}.roster button.sel{border-color:var(--green);background:var(--green-soft)}.roster .nm{font-weight:600}.roster .meta{font-size:11px;color:var(--muted)}.coursecard{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}.coursecard .img{height:150px;background:linear-gradient(160deg,#1d3a2a,#0e1a13);display:flex;align-items:flex-end;padding:14px}.coursecard .img h2{font-family:var(--num);font-size:28px;text-transform:uppercase;letter-spacing:.04em;text-shadow:0 2px 10px rgba(0,0,0,.6)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:var(--bg-2);border-radius:12px;padding:10px 8px;text-align:center}.stat .v{font-family:var(--num);font-size:28px;font-weight:800;line-height:1}.stat .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.holehead{display:flex;align-items:baseline;justify-content:space-between}.holehead .h{font-family:var(--num);font-size:44px;font-weight:800;line-height:1}.holehead .h small{font-size:18px;color:var(--muted);font-weight:700;margin-left:6px}.holehead .par{text-align:right}.holehead .par .v{font-family:var(--num);font-size:28px;font-weight:800;line-height:1}.holehead .par .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.aerial{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);aspect-ratio:16 / 9;border:1px solid var(--line)}.aerial img{width:100%;height:100%;object-fit:cover;display:block}.aerial .ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--dim);font-size:13px;background:radial-gradient(ellipse at 30% 20%,#203a2b,#121a15 70%)}.aerial .ph .big{font-family:var(--num);font-size:64px;font-weight:800;color:#ffffff14;line-height:1}.aerial .tag{position:absolute;left:10px;top:10px}.bigscore{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 0 2px}.bigscore .v{font-family:var(--num);font-size:84px;font-weight:800;line-height:1;min-width:90px;text-align:center}.bigscore .side{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);min-width:90px}.keypad{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.keypad button{font-family:var(--num);font-size:26px;font-weight:700;min-height:54px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--text)}.keypad button.par{border-color:var(--green-2)}.keypad button.sel{background:var(--green);color:#07130b;border-color:transparent}.extras{display:grid;grid-template-columns:1fr 1fr;gap:8px}.extra{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.extra .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;justify-content:space-between}.extra .lbl b{color:var(--amber)}.counter{display:flex;align-items:center;gap:6px}.counter button{flex:1;min-height:40px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-family:var(--num);font-size:20px;font-weight:700}.counter button.sel{background:var(--amber);color:#1a1200;border-color:transparent}.toggle{min-height:40px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-weight:600}.toggle.on{background:var(--amber);color:#1a1200;border-color:transparent}.holenav{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:8px}.sc{width:100%;border-collapse:collapse;font-family:var(--num);font-size:17px}.sc th,.sc td{text-align:center;padding:6px 2px;border-bottom:1px solid var(--line)}.sc th{font-size:11px;color:var(--muted);font-family:var(--font);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sc td.lbl,.sc th.lbl{text-align:left;padding-left:6px;font-family:var(--font);font-size:12px;color:var(--muted);width:54px}.sc td.tot{font-weight:800;background:var(--bg-2)}.chip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-weight:700}.chip.eagle{border:2px double var(--green);border-radius:50%;color:var(--green)}.chip.birdie{border:1.5px solid var(--green);border-radius:50%;color:var(--green)}.chip.bogey{border:1.5px solid var(--muted)}.chip.double{border:2px double var(--red);color:var(--red)}.chip.empty{color:var(--dim)}.chip.locked:after{content:"•";color:var(--amber);position:relative;top:-10px;left:2px;font-size:10px}.lb{width:100%;border-collapse:collapse}.lb th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);font-weight:600}.lb td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.lb td.r{text-align:right;font-family:var(--num);font-size:20px;font-weight:700;white-space:nowrap}.lb td.pos{font-family:var(--num);font-size:20px;font-weight:800;color:var(--muted);width:36px}.lb .name{font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lb .reason{font-size:11px;color:var(--dim);font-weight:500}.lb .thru{font-size:12px;color:var(--muted)}.lb tr.me td{background:var(--green-soft)}.lb tr.hi td{background:#ffffff08}.segs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.segs button{padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-weight:600;white-space:nowrap;font-size:14px}.segs button.on{background:var(--green);color:#07130b;border-color:transparent}.ryder{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.ryder .side{text-align:center;padding:14px 8px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.ryder .side.lead{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.ryder .side .t{font-family:var(--num);font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.ryder .side .v{font-family:var(--num);font-size:56px;font-weight:800;line-height:1;margin:6px 0}.ryder .side .l{font-size:12px;color:var(--muted)}.ryder .vs{font-family:var(--num);font-size:22px;font-weight:800;color:var(--dim)}.ryder .side.bpk .t{color:var(--bpk)}.ryder .side.bno .t{color:var(--bno)}.flightgrid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:760px){.flightgrid{grid-template-columns:1fr 1fr}.content{max-width:760px}}.prize{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.prize .medal{font-family:var(--num);font-size:20px;font-weight:800;width:40px;color:var(--amber)}.prize .who{font-weight:600}.prize .what{font-size:12px;color:var(--muted)}.prize .sc2{margin-left:auto;font-family:var(--num);font-size:22px;font-weight:700}.tv{background:var(--bg);min-height:100vh;padding:24px 40px;font-size:22px}.tv .tvhead{display:flex;align-items:center;gap:20px;margin-bottom:18px}.tv .tvhead img{width:72px;height:72px;border-radius:16px}.tv .tvhead h1{font-family:var(--num);font-size:48px;text-transform:uppercase;letter-spacing:.06em}.tv .tvhead .clock{margin-left:auto;font-family:var(--num);font-size:36px;color:var(--muted)}.tv .lb td{padding:12px 14px;font-size:24px}.tv .lb td.r,.tv .lb td.pos{font-size:32px}.tv .lb th{font-size:15px}.tv .ryder .side .v{font-size:110px}.tv .ryder .side .t{font-size:34px}.tv .dots{display:flex;gap:8px;justify-content:center;margin-top:18px}.tv .dots span{width:10px;height:10px;border-radius:50%;background:var(--line)}.tv .dots span.on{background:var(--green)}.tv .twocol{display:grid;grid-template-columns:1fr 1fr;gap:24px}.adm{width:100%;border-collapse:collapse;font-size:14px}.adm th{text-align:left;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px;border-bottom:1px solid var(--line)}.adm td{padding:6px;border-bottom:1px solid var(--line);vertical-align:middle}.adm tr.stale td{background:var(--amber-soft)}.adm tr.sel td{background:var(--green-soft)}.adm .mini{padding:4px 8px;border-radius:8px;background:var(--bg-2);border:1px solid var(--line);font-size:13px;min-height:30px}.adm input.mini{width:56px;text-align:center}.adm select.mini{min-width:64px}.editgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.editgrid .cell{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:6px;text-align:center}.editgrid .cell .h{font-size:10px;color:var(--muted)}.editgrid .cell input{width:100%;text-align:center;background:transparent;border:0;font-family:var(--num);font-size:22px;font-weight:700;outline:none}.editgrid .cell.locked{border-color:var(--amber)}.toast{position:fixed;left:50%;bottom:calc(96px + var(--safe-bottom));transform:translate(-50%);background:var(--surface-2);border:1px solid var(--line);padding:10px 16px;border-radius:999px;font-size:14px;z-index:20;box-shadow:0 10px 30px #00000080}.toast.red{color:var(--red);border-color:#ff5c5c66}.toast.green{color:var(--green);border-color:#35c46b66}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:pulse 1.4s ease-in-out infinite}
