@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0f17;--surface:#161926;--surface-2:#1d2135;--surface-3:#242840;--border:#ffffff12;--border-2:#ffffff1f;--text:#edeef5;--text-muted:#6b7291;--text-dim:#9aa0be;--green:#22c55e;--green-glow:#22c55e2e;--red:#ef4444;--red-glow:#ef44442e;--gold:#f59e0b;--radius:10px;--radius-lg:14px}html{font-size:16px}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}header{background:var(--surface);border-bottom:1px solid var(--border);text-align:center;padding:16px 18px 14px;position:relative}header h1{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:1.05rem;font-weight:800}header .subtitle{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:.65rem;font-weight:600}.tab-nav{scrollbar-width:none;margin-top:14px;display:flex;overflow-x:auto}.tab-nav::-webkit-scrollbar{display:none}.tab-nav button{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:10px 20px;font-family:inherit;font-size:.8rem;font-weight:600;transition:color .15s,border-color .15s}.tab-nav button.active{color:var(--green);border-bottom-color:var(--green)}.tab-nav button:hover:not(.active){color:var(--text-dim)}main{padding:16px}.note{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius);margin:10px 0;padding:10px 14px;font-size:.82rem}.banner{border-radius:var(--radius);margin-bottom:10px;padding:10px 14px;font-size:.82rem;font-weight:500}.banner.warn{border-left:3px solid var(--gold);color:#fcd34d;background:#f59e0b1f}.banner.err{background:var(--red-glow);border-left:3px solid var(--red);color:#fca5a5}.banner.ok{background:var(--green-glow);border-left:3px solid var(--green);color:#86efac}h2{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:20px 0 10px;font-size:.72rem;font-weight:700}h3{color:var(--text);margin:12px 0 6px;font-size:.9rem;font-weight:700}.btn{cursor:pointer;white-space:nowrap;letter-spacing:.02em;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:11px 22px;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .12s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--green);color:#000}.btn-primary:hover{opacity:.9}.btn-sm{border-radius:7px;min-height:34px;padding:7px 14px;font-size:.78rem}.btn-ghost{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--red-glow);color:var(--red);border:1px solid #ef444440}.btn-danger:hover{background:#ef444440}.btn:disabled{opacity:.35;cursor:default;transform:none}select,input[type=text],input[type=number]{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--surface-2);color:var(--text);width:100%;min-height:42px;padding:9px 12px;font-family:inherit;font-size:.88rem;transition:border-color .15s,box-shadow .15s}select option{background:var(--surface-2)}select:focus,input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow);outline:none}label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);flex-direction:column;gap:6px;font-size:.72rem;font-weight:700;display:flex}.data-table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:.875rem}.data-table th{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 12px;font-size:.68rem;font-weight:700}.data-table td{text-align:center;border-bottom:1px solid var(--border);padding:11px 12px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover td{background:var(--surface-2)!important}.data-table td:first-child{text-align:left}.data-table tr.leader td{background:#f59e0b0f;font-weight:700}.status-badge{white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:2px 7px;font-size:.65rem;font-weight:700;display:inline-block}.status-complete{background:var(--green-glow);color:var(--green)}.status-in-progress{color:var(--gold);background:#f59e0b26}.status-not-started{background:var(--surface-2);color:var(--text-muted)}.clickable-row{cursor:pointer;-webkit-user-select:none;user-select:none}.clickable-row:hover td,.row-expanded td{background:var(--surface-2)!important}.detail-row td{background:var(--surface)!important;border-top:none!important;padding:4px 12px 14px!important}.mini-scorecard{border-collapse:collapse;min-width:620px;font-size:.72rem}.mini-scorecard th,.mini-scorecard td{border:1px solid var(--border);text-align:center;min-width:26px;padding:4px}.mini-scorecard thead th{background:var(--surface-3);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;border-color:var(--border);font-size:.65rem;font-weight:700}.msc-label{white-space:nowrap;min-width:46px;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.65rem;font-weight:700;text-align:left!important;background:var(--surface-2)!important;padding:4px 8px!important}.msc-sub{min-width:30px;color:var(--text-dim);font-weight:700;background:var(--surface-2)!important}.msc-total{font-weight:800;color:var(--green)!important;background:#22c55e1a!important}.msc-par td{color:var(--text-muted)}.score-badge{justify-content:center;align-items:center;width:18px;height:18px;margin:4px;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.cell-eagle .score-badge{border:1.5px solid var(--green);box-shadow:0 0 0 3px var(--green);color:var(--green);border-radius:50%}.cell-birdie .score-badge{border:1.5px solid var(--green);color:var(--green);border-radius:50%}.cell-par .score-badge{color:var(--text-dim)}.cell-bogey .score-badge{border:1.5px solid var(--red);color:var(--red)}.cell-double .score-badge{border:1.5px solid var(--red);box-shadow:0 0 0 3px var(--red);color:var(--red)}.cell-triple .score-badge{color:#000;background:#fff}.score-under{color:var(--red);font-weight:800}.score-even{color:var(--text-muted)}.score-over{color:var(--text-dim)}.flight-a{color:#60a5fa;letter-spacing:.03em;text-transform:uppercase;background:#60a5fa26;border-radius:5px;padding:2px 7px;font-size:.72rem;font-weight:700}.flight-b{color:#f472b4;letter-spacing:.03em;text-transform:uppercase;background:#f472b626;border-radius:5px;padding:2px 7px;font-size:.72rem;font-weight:700}.picker-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:14px;max-width:440px;margin:24px auto 0;padding:22px;display:flex}.picker-card h2{margin:0 0 2px}.group-pick-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:14px 16px;font-family:inherit;transition:background .12s,border-color .12s;display:flex}.group-pick-btn:hover{background:var(--surface-3);border-color:var(--border-2)}.group-pick-btn:active{transform:scale(.99)}.group-pick-name{color:var(--text);font-size:.92rem;font-weight:700}.group-pick-members{color:var(--text-muted);font-size:.78rem}.hbh-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;padding:18px 18px 14px}.hbh-hole-num{letter-spacing:-.03em;color:var(--text);font-size:2.4rem;font-weight:900;line-height:1}.hbh-course-info{color:var(--text-muted);letter-spacing:.02em;margin-top:3px;font-size:.75rem;font-weight:500}.hbh-progress{background:var(--border);border-radius:99px;height:2px;margin-top:14px;overflow:hidden}.hbh-progress-fill{background:var(--green);border-radius:99px;height:100%;transition:width .4s}.hbh-body{background:var(--surface);border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.player-hole-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.player-hole-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.player-hole-name{color:var(--text);font-size:.88rem;font-weight:700}.stroke-pill{background:var(--green-glow);color:var(--green);letter-spacing:.03em;border-radius:5px;padding:2px 8px;font-size:.7rem;font-weight:700}.player-hole-body{background:var(--surface-2);align-items:center;gap:16px;padding:14px;display:flex}.stepper{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--surface-3);flex-shrink:0;align-items:center;display:flex;overflow:visible}.stepper-btn{cursor:pointer;width:50px;height:50px;color:var(--text-dim);background:0 0;border:none;justify-content:center;align-items:center;font-family:inherit;font-size:1.4rem;font-weight:600;transition:background .1s,color .1s;display:flex}.stepper-btn:first-child{border-radius:calc(var(--radius) - 1px) 0 0 calc(var(--radius) - 1px)}.stepper-btn:last-child{border-radius:0 calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0}.stepper-btn:hover{background:var(--surface-2);color:var(--text)}.stepper-btn:active{color:var(--green)}.stepper-val{border-left:1px solid var(--border-2);border-right:1px solid var(--border-2);background:var(--surface);width:56px;height:50px;color:var(--text);justify-content:center;align-items:center;font-size:1.5rem;font-weight:800;display:flex}.stepper-val.unset{color:var(--text-muted);font-size:1rem;font-weight:500}.net-display{flex:1;justify-content:center;align-items:center;display:flex}.score-badge-lg{width:38px;height:38px;margin:6px;font-size:1.15rem;font-weight:800}.stroke-dots{letter-spacing:3px;color:var(--green);font-size:.85rem}.hbh-nav{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;gap:10px;padding:12px 14px 16px;display:flex}.hbh-nav .btn{flex:1}.save-status{text-align:center;color:var(--text-muted);padding:6px 0 2px;font-size:.76rem;font-weight:500}.save-status.ok{color:var(--green)}.save-status.err{color:var(--red)}.round-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.round-tab{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;border-radius:8px;padding:7px 14px;font-family:inherit;font-size:.78rem;font-weight:700;transition:all .12s}.round-tab.active{background:var(--green);color:#000;border-color:var(--green)}.round-tab:hover:not(.active){background:var(--surface-3);color:var(--text-dim)}.groups-grid{flex-direction:column;gap:10px;display:flex}.group-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.group-card-header{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:11px 16px;display:flex}.group-card-header input{background:var(--surface-3);border:1px solid var(--border-2);color:var(--text);min-height:unset;border-radius:6px;flex:1;padding:5px 10px;font-family:inherit;font-size:.88rem;font-weight:700;transition:border-color .15s}.group-card-header input::placeholder{color:var(--text-muted)}.group-card-header input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow);outline:none}.group-card-body{background:var(--surface);padding:14px}.group-members{flex-wrap:wrap;gap:6px;min-height:32px;margin-bottom:10px;display:flex}.member-chip{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:flex}.member-chip button{cursor:pointer;color:var(--text-muted);opacity:.7;background:0 0;border:none;padding:0;font-family:inherit;font-size:1rem;line-height:1;transition:opacity .1s}.member-chip button:hover{opacity:1;color:var(--red)}.add-member-row{align-items:center;gap:8px;display:flex}.add-member-row select{flex:1;min-height:40px}.unassigned-note{color:var(--text-muted);margin-top:10px;font-size:.76rem}.player-edit-table td input{background:var(--surface-2);border:1px solid var(--border);min-height:36px;color:var(--text);border-radius:6px;padding:5px 9px;font-family:inherit;font-size:.85rem;transition:border-color .15s}.player-edit-table td input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow);outline:none}.player-edit-table td input[type=text]{min-width:140px}.player-edit-table td input[type=number]{width:70px}.row-status{margin-left:4px;font-size:.74rem;font-weight:700}.row-status.ok{color:var(--green)}.row-status.err{color:var(--red)}.course-meta-grid{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.course-meta-grid label{min-width:80px}.course-meta-grid input[type=text]{min-width:160px}.scorecard-edit{border-collapse:collapse;min-width:700px;font-size:.8rem}.scorecard-edit th,.scorecard-edit td{border:1px solid var(--border);text-align:center;padding:0}.scorecard-edit th{background:var(--surface-3);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;min-width:38px;padding:5px 2px;font-size:.68rem;font-weight:700}.sc-label{white-space:nowrap;min-width:50px;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:700;text-align:left!important;background:var(--surface-2)!important;padding:6px 10px!important}.sc-sub{min-width:38px;color:var(--text-dim);font-weight:700;background:var(--surface-2)!important;padding:4px 6px!important}.sc-input{text-align:center;width:38px;height:36px;color:var(--text);appearance:textfield;background:0 0;border:none;font-family:inherit;font-size:.85rem;font-weight:600}.sc-input::-webkit-inner-spin-button{-webkit-appearance:none}.sc-input::-webkit-outer-spin-button{-webkit-appearance:none}.sc-input:focus{background:var(--green-glow);border-radius:3px;outline:none}.fab{background:var(--green);color:#000;cursor:pointer;z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.2rem;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;bottom:24px;right:20px;box-shadow:0 4px 16px #22c55e66}.fab:hover{transform:scale(1.08);box-shadow:0 6px 20px #22c55e80}.fab:active{transform:scale(.95)}.game-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:14px;overflow:hidden}.game-card-header{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.game-card-title{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem;font-weight:700}.game-card-body{padding:14px 16px}.game-toggle{border:1px solid var(--border-2);border-radius:6px;display:flex;overflow:hidden}.game-toggle-btn{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:4px 12px;font-family:inherit;font-size:.75rem;font-weight:700;transition:background .12s,color .12s}.game-toggle-btn.active{background:var(--green);color:#000}.game-toggle-btn:hover:not(.active){color:var(--text-dim)}.game-skin-summary{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;gap:6px;padding:10px 16px;display:flex}.game-skin-chip{color:var(--text-dim);background:var(--surface-3);border-radius:5px;padding:3px 10px;font-size:.8rem}.game-skin-chip strong{color:var(--green);margin-left:4px}.skins-list{flex-direction:column;gap:2px;display:flex}.skin-row{border-radius:6px;justify-content:space-between;align-items:center;padding:7px 10px;font-size:.85rem;display:flex}.skin-row-won{background:#22c55e0f}.skin-hole{color:var(--text-dim);min-width:50px;font-weight:600}.skin-par{color:var(--text-muted);font-size:.72rem;font-weight:400}.skin-winner{color:var(--green);font-weight:700}.skin-tied{color:var(--text-muted);font-style:italic}.ctp-row{border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:.85rem;display:flex}.ctp-row-set{background:#22c55e0f}.ctp-hole{color:var(--text-dim);font-weight:600}.ctp-leader{color:var(--green);font-weight:700}.ctp-dist{color:var(--text-muted);font-weight:400}.ctp-empty{color:var(--text-muted)}.ctp-entry{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 14px;display:flex}.ctp-entry-label{letter-spacing:.06em;text-transform:uppercase;color:var(--green);white-space:nowrap;font-size:.7rem;font-weight:700}.ctp-entry select{flex:1;min-height:36px;padding:5px 8px;font-size:.82rem}.ctp-dist-inputs{flex-shrink:0;align-items:center;gap:4px;display:flex}.ctp-dist-inputs input[type=number]{text-align:center;appearance:textfield;width:52px;min-height:36px;padding:5px 6px;font-size:.88rem}.ctp-dist-inputs input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.ctp-dist-inputs input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.ctp-dist-sep{color:var(--text-muted);font-size:.9rem;font-weight:600}.game-editor-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:12px;padding:14px 16px}.game-editor-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.game-editor-toggle-label{letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-size:.88rem;font-weight:700;display:flex}.game-editor-toggle-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}.player-checklist{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.player-chip{border:1.5px solid var(--border-2);background:var(--surface-2);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:.83rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.player-chip:hover{border-color:var(--green);color:var(--text)}.player-chip.selected{background:var(--green);border-color:var(--green);color:#000}@media (width<=480px){main{padding:12px 10px}.stepper-btn{width:44px;height:44px}.stepper-val{width:50px;height:44px;font-size:1.3rem}.data-table{font-size:.78rem}.data-table th,.data-table td{padding:8px}}
