:root{--bg:#f4f6f4;--surface:#ffffff;--ink:#12271a;--muted:#5b6b60;--line:#d8e0d8;--accent:#1b7a3d;--accent-ink:#ffffff;--under:#1b7a3d;--over:#b23a2e;--warn:#b8860b;--sc-ink:#212331;--sc-ink-2:#161922;--sc-ink-border:#2d3344;--sc-ondark:#9ca3af;--sc-ondark-faint:#9090a0;--sc-bg:#f9f9f7;--sc-card:#ffffff;--sc-surface:#f2f3f5;--sc-muted:#5a5a66;--sc-faint:#9090a0;--sc-line:#e5e7eb;--sc-line-2:#f2f3f5;--sc-dashed:#d1d5db;--sc-chev:#c4c7cc;--sc-accent:#88e74b;--sc-accent-ink:#212331;--brand-green:#0b3a2a;--brand-gold:#b8860b;--brand-paper:#f5f3e8;--sc-tabbar-h:58px;--sc-r-sm:8px;--sc-r-md:12px;--sc-r-lg:14px;--sc-r-xl:16px;--sc-r-pill:9999px;--sc-r-phone:42px;--sc-font-body:var(--font-inter),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--sc-font-display:var(--font-dm-sans),var(--font-inter),system-ui,sans-serif;--sc-font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sc-font-body);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.sc-screen{min-height:100dvh;max-width:430px;margin:0 auto;background:var(--sc-bg);color:var(--sc-ink);display:flex;flex-direction:column;position:relative;overflow-x:hidden}body:has(.app-tabbar) .sc-screen{padding-bottom:calc(var(--sc-tabbar-h) + env(safe-area-inset-bottom, 0px))}.sc-scroll{flex:1 1;overflow-y:auto}.sc-scroll,.sc-scroll-x{-webkit-overflow-scrolling:touch}.sc-scroll-x{display:flex;overflow-x:auto;scrollbar-width:none}.sc-scroll-x::-webkit-scrollbar{height:0;width:0}.sc-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (min-width:720px){body:has(.sc-screen){background:radial-gradient(1100px 620px at 50% -10%,#23324a 0,transparent 60%),linear-gradient(180deg,#161922,#10131b)}.sc-screen{box-shadow:0 0 0 1px rgba(255,255,255,.04),0 40px 90px rgba(0,0,0,.45)}}.plain-container{max-width:900px;margin:0 auto;padding:1rem}.tv-stage{position:fixed;inset:0;background:#0b0c12;display:grid;place-items:center;overflow:hidden}.tv-canvas{width:1200px;height:675px;flex:none;transform-origin:center center}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}h1{font-size:1.4rem;margin:.4rem 0 1rem}h2{font-size:1.1rem;margin:0 0 .6rem}table.board{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.board td,table.board th{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--line)}table.board td.num,table.board th.num{text-align:right}.topar-under{color:var(--under);font-weight:700}.topar-over{color:var(--over);font-weight:700}.badge{display:inline-block;font-size:.72rem;padding:.1rem .4rem;border-radius:999px;background:var(--line);color:var(--muted);margin-left:.3rem}.badge.warn{background:var(--warn);color:#fff}.status-line{color:var(--muted);font-size:.85rem;margin-bottom:.6rem}.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.35rem;vertical-align:middle}.dot.on{background:var(--accent)}.dot.off{background:var(--muted)}.stepper{display:flex;align-items:center;gap:.5rem}button.btn,button.step{min-width:56px;min-height:56px;font-size:1.4rem;font-weight:800;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;cursor:pointer}button.btn{font-size:1rem;min-height:48px;padding:0 1rem}button.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.btn:active,button.step:active{transform:translateY(1px)}.value{min-width:3ch;text-align:center;font-size:1.8rem;font-weight:800}.player-row{padding:.7rem 0;border-bottom:1px solid var(--line)}.hole-nav,.player-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hole-nav{margin-bottom:.8rem}input.code-input{width:100%;font-size:1.3rem;padding:.7rem;border:1px solid var(--line);border-radius:12px;text-transform:uppercase;letter-spacing:.08em}.error{color:var(--over);font-weight:600}.pickup{color:var(--warn);font-weight:700}label.field{display:block;margin-bottom:.4rem;font-weight:600}.card-grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.25rem .6rem}table.board.card-grid{min-width:640px}table.board.card-grid td,table.board.card-grid th{padding:.4rem .45rem;white-space:nowrap}table.board.card-grid td:first-child,table.board.card-grid th:first-child{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);font-weight:600}.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.card-status{font-weight:700}.admin-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.admin-nav a{display:inline-block;padding:.4rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}.admin-nav a.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.admin-field{display:block;margin-bottom:.9rem}.admin-field>span{display:block;font-weight:600;margin-bottom:.25rem}.admin-field input,.admin-field select,.admin-field textarea{width:100%;font-size:1rem;padding:.5rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-family:inherit}.admin-field textarea{min-height:8rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.admin-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.admin-row .admin-field{flex:1 1 10rem;margin-bottom:0}.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;word-break:break-all}.notice{padding:.6rem .8rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);margin:.6rem 0}.notice.ok{border-color:var(--accent)}.notice.bad{border-color:var(--over)}.diff-old{color:var(--over)}.diff-new{color:var(--under)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.wizard-steps{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.wizard-steps span{font-size:.85rem;color:var(--muted);font-weight:600}.wizard-steps span.active{color:var(--accent)}