:root{--pine:#12372a;--turf:#2f6b4f;--flag:#f4c84a;--mist:#edf1ea;--paper:#f8faf6;--ink:#17211b;--muted:#66736b;--line:#d5ddd6;--font-display:"Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-body:"Avenir Next", Avenir, "Segoe UI", sans-serif;--font-data:"Roboto Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:linear-gradient(115deg, #2f6b4f14, transparent 34rem), var(--paper);font-family:var(--font-body);margin:0}button,input,select{font:inherit}button{color:#fff;background:var(--pine);cursor:pointer;border:0;border-radius:11px;padding:.8rem 1.15rem;font-weight:750;transition:transform .15s,background .15s,box-shadow .15s}button:hover:not(:disabled){transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #f4c84abf}button:disabled{opacity:.42;cursor:default}.shell{width:min(1440px,100% - 40px);min-height:100vh;margin:auto;padding:24px 0 80px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:52px;margin-bottom:26px;display:flex}.topbar>div{align-items:center;gap:11px;display:flex}.topbar strong{color:var(--muted);font-size:.78rem;font-weight:600}.brand-mark{width:34px;height:34px;color:var(--pine);font:900 .7rem/1 var(--font-data);border:1px solid #aebdb3;border-radius:50%;place-items:center;display:grid}.top-actions{align-items:center;gap:3px;display:flex}.new-round-button{padding:9px 13px}.text-button,.back-link{color:var(--pine);box-shadow:none;background:0 0}.back-link{align-self:start;padding:8px 0;font-size:.82rem}.round-detail-actions{justify-items:start;gap:3px;display:grid}.delete-link,.round-delete{color:#8d332f;box-shadow:none;background:0 0}.delete-link{padding:7px 0;font-size:.75rem}.eyebrow{color:var(--turf);font:800 .68rem/1 var(--font-data);letter-spacing:.16em;text-transform:uppercase}h1,h2{font-family:var(--font-display)}h1{letter-spacing:-.055em;margin:.35rem 0 1rem;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:650;line-height:.88}h2{letter-spacing:-.025em}.muted{color:var(--muted)}.auth-card,.panel{border:1px solid var(--line);background:#ffffffe6;border-radius:22px;box-shadow:0 18px 55px #12372a14}.auth-card{width:min(520px,100%);margin:8vh auto;padding:clamp(26px,5vw,48px)}.google-login{color:#202124;background:#fff;border:1px solid #c7cbc8;width:100%;margin:18px 0 14px;box-shadow:0 2px 5px #12372a14}.google-login:hover{background:#f8faf8;border-color:#87918b}.google-mark{color:#4285f4;background:#fff;border-radius:50%;place-items:center;width:22px;height:22px;margin-right:9px;font-family:Arial,sans-serif;font-weight:800;display:inline-grid}.auth-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:12px;margin:4px 0 16px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.panel{padding:clamp(22px,4vw,38px)}form,.form-grid{gap:15px;margin:26px 0;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}label{color:#31433a;font:750 .76rem/1.25 var(--font-data);text-transform:uppercase;letter-spacing:.04em;gap:7px;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.9rem}.actions,.round-summary{justify-content:space-between;align-items:center;gap:10px;display:flex}.secondary{color:var(--pine);background:#e5eee8}.danger{color:#843732;background:#f6e1df}.notice,.toast{background:#edf3e8;border-radius:10px;padding:12px 14px}.toast{z-index:1000;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000026}.new-round-layout{grid-template-columns:minmax(270px,.7fr) 1.3fr;align-items:start;gap:clamp(26px,7vw,100px);padding-top:clamp(30px,7vw,90px);display:grid}.new-round-intro{position:sticky;top:30px}.new-round-intro p{max-width:460px;color:var(--muted);font-size:1.05rem;line-height:1.6}.new-round-form{box-shadow:none}.guest-roster{border-top:1px solid var(--line);gap:14px;margin:22px 0;padding-top:20px;display:grid}.guest-roster-heading{justify-content:space-between;align-items:end;display:flex}.guest-roster-heading strong{font:650 1.45rem/1 var(--font-display);margin-top:6px;display:block}.guest-roster-heading small{color:var(--muted);font:700 .72rem var(--font-data)}.guest-add-row{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.guest-add-row button{min-height:48px}.guest-list{border-top:1px solid var(--line);display:grid}.guest-row{border-bottom:1px solid var(--line);grid-template-columns:38px 1fr auto;align-items:center;gap:11px;min-height:60px;display:grid}.guest-row>span:nth-child(2){gap:3px;display:grid}.guest-row small{color:var(--muted)}.guest-avatar{width:34px;height:34px;color:var(--pine);background:var(--mist);font:850 .65rem var(--font-data);border-radius:50%;place-items:center;display:grid}.guest-row.owner .guest-avatar{color:var(--pine);background:var(--flag)}.guest-ready{color:var(--turf);font:800 .68rem var(--font-data);text-transform:uppercase}.guest-remove{color:#8d332f;box-shadow:none;background:0 0;padding:8px 0 8px 12px;font-size:.74rem}.join-round{box-shadow:none;grid-template-columns:1fr minmax(130px,190px) auto;align-items:center;gap:12px;margin:18px 0 0;padding:16px 18px;display:grid}.join-round strong{margin-top:5px;display:block}.sharing-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.visibility-toggle{color:var(--ink);text-transform:none;grid-auto-flow:column;align-items:center;gap:7px;display:flex}.visibility-toggle input{width:auto}.sharing-controls code{color:var(--pine);font:800 .78rem var(--font-data)}.round-heading{grid-template-columns:125px minmax(0,1fr) auto;align-items:end;gap:28px;margin:20px 0 30px;display:grid}.round-heading h1{max-width:850px;margin:10px 0 7px}.round-heading p{color:var(--muted);margin:0}.round-metrics{border:1px solid var(--line);background:var(--line);border-radius:16px;gap:1px;display:flex;overflow:hidden}.round-metrics span{background:#fff;min-width:125px;padding:15px 18px;display:grid}.round-metrics strong{font:800 1.55rem/1 var(--font-data)}.round-metrics small{color:var(--muted);margin-top:6px;font-size:.68rem}.round-workspace{grid-template-columns:minmax(330px,410px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.score-column,.analysis-column{gap:14px;display:grid}.review-scorecard{box-shadow:none;padding:20px}.result-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:14px 0 20px;display:grid}.result-player{min-height:92px;color:var(--ink);border:1px solid var(--line);text-align:left;background:#fff;grid-template-columns:1fr auto;align-items:end;gap:2px 10px;padding:14px;display:grid}.result-player span{color:var(--muted);align-self:start;font-size:.76rem}.result-player strong{font:800 2.3rem/.9 var(--font-data)}.result-player small{color:var(--muted);font-size:.66rem}.result-player.active{color:#fff;border-color:var(--pine);background:var(--pine)}.result-player.active span,.result-player.active small{color:#ffffffa6}.review-rule{border-top:1px solid var(--line);color:var(--muted);font:750 .7rem/1 var(--font-data);text-transform:uppercase;justify-content:space-between;padding-top:13px;display:flex}.review-holes{margin:14px 0}.whole-round{width:100%}.score-hero{color:#fff;background:var(--pine);border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:25px;display:grid;box-shadow:0 18px 50px #12372a33}.hole-label{display:grid}.hole-label span{color:#ffffff8f;font:800 .66rem/1 var(--font-data);letter-spacing:.15em;text-transform:uppercase}.hole-label strong{font:650 3.7rem/.9 var(--font-display)}.score{text-align:center;min-width:92px;display:grid}.score span{font:800 4.4rem/.82 var(--font-data)}.score small{color:#fff9;margin-top:8px;font-size:.72rem}.score-actions{grid-column:1/-1;grid-template-columns:1fr 1.35fr;gap:9px;display:grid}.round{color:#fff;width:100%;min-height:66px;font:500 2.2rem/1 var(--font-body);background:#ffffff1a;border:1px solid #ffffff2e;padding:0}.round.primary{color:var(--pine);border-color:var(--flag);background:var(--flag);box-shadow:0 10px 25px #f4c84a26}.scorecard-panel{padding:18px}.player-tabs{gap:7px;padding-bottom:10px;display:flex;overflow-x:auto}.player-tab{color:var(--pine);background:#e5eee8;flex:none;padding:9px 12px;font-size:.78rem}.player-tab.active{color:#fff;background:var(--turf)}.player-editor{grid-template-columns:1fr auto;gap:7px;margin:2px 0 16px;display:grid}.player-editor .danger{grid-column:1/-1}.round-summary{border-top:1px solid var(--line);padding:12px 0}.holes{grid-template-columns:repeat(6,1fr);gap:5px;margin-top:10px;display:grid}.hole{min-width:0;color:var(--ink);background:var(--mist);border:1px solid #0000;gap:3px;padding:9px 3px;display:grid}.hole span{color:var(--muted);font:700 .62rem/1 var(--font-data)}.hole strong{font:800 1rem/1 var(--font-data)}.hole.active{color:var(--pine);background:var(--flag);border-color:#dab13b}.hole.active span{color:#5d512c}.round-index{padding:clamp(25px,5vw,65px) 0}.index-heading{justify-content:space-between;align-items:end;gap:30px;display:flex}.index-heading h1{margin:12px 0 10px}.index-heading p{max-width:620px;color:var(--muted);margin:0;font-size:1.04rem}.index-heading>button{margin-bottom:5px}.index-rule{color:var(--muted);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font:700 .68rem/1 var(--font-data);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin-top:42px;padding:10px 0;display:flex}.empty-rounds,.empty-shots{text-align:center;color:var(--muted);border:1px dashed #aebbb2;border-radius:16px;padding:44px 20px}.empty-rounds{margin-top:22px}.empty-rounds strong,.empty-shots strong{color:var(--ink);font-family:var(--font-display);font-size:1.5rem}.section-title{align-items:center;gap:10px;display:flex}.section-title h2{margin:0;font-size:2rem}.section-title>span{color:#fff;background:var(--turf);font:700 .7rem/1 var(--font-data);border-radius:999px;padding:3px 8px}.round-list{gap:0;margin-top:10px;display:grid}.round-card{width:100%;min-height:92px;color:var(--ink);border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:90px minmax(220px,1fr) 130px 95px 70px 28px;align-items:center;display:grid;position:relative}.round-card:hover:not(:disabled){border-color:#9eb4a5;box-shadow:0 9px 24px #12372a14}.round-open{z-index:0;background:0 0;border-radius:0;position:absolute;inset:0}.round-card>:not(.round-open){z-index:1;pointer-events:none;position:relative}.round-card>.round-delete{z-index:2;pointer-events:auto;padding:8px}.round-card time,.round-course,.round-facts{gap:4px;display:grid}.round-card time strong{font:650 2rem/.9 var(--font-display)}.round-card time small{text-transform:capitalize}.round-course strong{font-size:1.05rem}.round-facts strong{font:750 .8rem/1 var(--font-data)}.round-card small{color:var(--muted)}.round-arrow{text-align:right;font-size:1.25rem}.status{color:#805b0c;font:700 .66rem/1 var(--font-data);background:#fff0bc;border-radius:999px;padding:5px 9px}.status.done{color:var(--pine);background:#dcebe0}.shot-journal{border:1px solid var(--line);background:#fffc;border-radius:22px;margin-top:24px;padding:clamp(22px,4vw,38px)}.shot-journal>header{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.shot-journal h2{margin:7px 0 0;font-size:clamp(1.8rem,4vw,3rem)}.shot-table{border-top:1px solid var(--ink)}.shot-row{width:100%;min-height:54px;color:var(--ink);border-bottom:1px solid var(--line);text-align:left;font:650 .76rem/1.2 var(--font-data);background:0 0;border-radius:0;grid-template-columns:65px 65px 120px minmax(190px,1fr) 120px 150px;align-items:center;padding:7px 10px;display:grid}button.shot-row:hover{color:var(--pine);background:#edf3ee;transform:none}.shot-row b{width:28px;height:28px;color:var(--pine);background:var(--flag);border-radius:50%;place-items:center;display:inline-grid}.shot-head{min-height:38px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.coordinates{color:var(--muted);flex-wrap:wrap;gap:3px 8px;display:flex}.coordinates code{font:inherit}.shot-length{color:var(--pine);font-size:.9rem;font-weight:900}.distance-pending{color:var(--muted);font:600 .66rem/1.25 var(--font-body)}@media (max-width:980px){.round-heading{grid-template-columns:1fr auto}.back-link{grid-column:1/-1}.round-workspace{grid-template-columns:1fr}.round-workspace>:last-child{grid-row:1}.score-column{grid-template-columns:minmax(280px,.8fr) 1.2fr}.new-round-layout{grid-template-columns:1fr}.new-round-intro{position:static}}@media (max-width:720px){.result-grid{gap:6px;margin:8px 0 12px;display:flex;overflow-x:auto}.result-player{border-radius:10px;flex:0 0 126px;grid-template-columns:minmax(0,1fr) auto;min-height:54px;padding:8px 10px}.result-player span{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.result-player strong{grid-area:1/2/3;font-size:1.35rem}.result-player small{font-size:.58rem}.guest-add-row{grid-template-columns:1fr}.guest-add-row button{width:100%}.join-round{grid-template-columns:1fr auto}.join-round>div{grid-column:1/-1}.shell{width:min(100% - 20px,1440px);padding-top:12px}.topbar strong,.brand-mark,.top-actions .text-button:first-child{display:none}.top-actions{gap:0}.top-actions button{padding:8px 9px;font-size:.72rem}.round-heading{grid-template-columns:1fr;gap:15px;margin-top:8px}.round-heading h1{font-size:clamp(2.7rem,15vw,4.5rem)}.round-metrics{width:100%}.round-metrics span{flex:1;min-width:0}.score-column{grid-template-columns:1fr}.score-hero{z-index:5;position:sticky;bottom:8px}.holes{grid-template-columns:repeat(6,1fr)}.player-editor{grid-template-columns:1fr}.player-editor .danger{grid-column:auto}.index-heading{align-items:start;display:grid}.round-card{grid-template-columns:58px minmax(0,1fr) auto 54px 20px;gap:6px;padding:13px 4px}.round-card time strong{font-size:1.55rem}.round-facts{display:none}.round-course strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shot-table{overflow-x:auto}.shot-row{min-width:820px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
