:root{--navy:#08172d;--navy2:#102744;--maroon:#6d1f32;--maroon2:#8f3049;--cream:#f4efe7;--sand:#d8c7af;--ink:#152033;--muted:#6c7280;--line:rgba(8,23,45,.12);--panel:rgba(255,255,255,.82);--green:#2f6a57;--shadow:0 20px 50px rgba(8,23,45,.09)}*{box-sizing:border-box}html{background:#f2eee8}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f7f4ef 0%,#efe9e0 100%);min-height:100vh}.ambient{position:fixed;z-index:-1;border-radius:999px;filter:blur(70px);opacity:.18}.ambient-a{width:360px;height:360px;background:var(--maroon);top:-150px;right:-80px}.ambient-b{width:430px;height:430px;background:#254977;bottom:-220px;left:-180px}.topbar{max-width:1120px;margin:auto;padding:22px 24px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:11px;align-items:center;color:var(--navy);text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--cream);font-family:Georgia,serif;font-style:italic;font-size:22px}.brand b{display:block;letter-spacing:.15em;font-size:13px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.shell{max-width:1120px;margin:auto;padding:30px 24px 80px}.eyebrow,.section-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.17em;color:var(--maroon);text-transform:uppercase}.home-hero,.round-head,.summary-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:36px 0 42px}.home-hero h1,.round-head h1,.summary-hero h1,.hero-copy h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--navy);font-size:clamp(42px,7vw,76px);line-height:.92;letter-spacing:-.045em;margin:12px 0 18px}.round-head h1{font-size:clamp(40px,6vw,64px)}.summary-hero h1{font-size:clamp(40px,6vw,66px)}h1 em{color:var(--maroon);font-weight:400}h2{font-family:Georgia,"Times New Roman",serif;color:var(--navy);font-weight:500;font-size:30px;letter-spacing:-.025em;margin:6px 0 14px}.home-hero p,.hero-copy p,.summary-hero p{max-width:600px;color:var(--muted);font-size:17px;line-height:1.65}.hero-orbit{width:260px;aspect-ratio:1;border:1px solid rgba(109,31,50,.25);border-radius:50%;position:relative;flex:none}.hero-orbit:after{content:"";position:absolute;inset:28%;background:var(--navy);border-radius:50%}.hero-orbit span,.hero-orbit b,.hero-orbit i,.hero-orbit strong{position:absolute;font-size:10px;letter-spacing:.12em;color:var(--maroon);font-style:normal}.hero-orbit span{top:12%;left:46%}.hero-orbit b{top:48%;right:5%}.hero-orbit i{bottom:12%;left:47%}.hero-orbit strong{top:48%;left:-2%}.panel{background:var(--panel);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.74);box-shadow:var(--shadow);border-radius:28px;padding:28px}.active-round{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;border-left:5px solid var(--maroon)}.active-round p{margin:0;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 48px}.philosophy{background:linear-gradient(140deg,var(--navy),#173658);color:white}.philosophy h2{color:#fff}.philosophy .section-kicker{color:#dca9b4}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}.feature-grid span{padding:16px;border-top:1px solid rgba(255,255,255,.15);font-size:14px}.feature-grid b{display:block;color:#dca9b4;font-size:10px;letter-spacing:.14em;margin-bottom:6px}.primary,.secondary,.ghost{appearance:none;border:0;border-radius:999px;padding:13px 20px;font-weight:800;font-size:13px;letter-spacing:.02em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;transition:.18s}.primary{background:var(--maroon);color:white}.primary:hover{background:var(--maroon2);transform:translateY(-1px)}.secondary{background:var(--navy);color:#fff}.ghost{background:rgba(8,23,45,.06);color:var(--navy)}.tiny{padding:9px 14px;min-height:38px}.full{width:100%;margin-top:16px}.section-head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:18px}.round-list{border-top:1px solid var(--line)}.round-row{display:grid;grid-template-columns:1fr auto 28px;gap:22px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.round-row>div:first-child b{display:block;color:var(--navy)}.round-row small{color:var(--muted)}.round-metrics{display:flex;gap:28px}.round-metrics span{min-width:55px}.round-metrics small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.round-metrics b{font-family:Georgia,serif;font-size:20px;color:var(--navy)}.chev{font-size:18px;color:var(--maroon)}label{display:block;color:var(--navy);font-weight:800;font-size:13px;margin:14px 0}input,select,textarea{width:100%;border:1px solid rgba(8,23,45,.14);background:#fbfaf7;border-radius:14px;padding:13px 14px;font:inherit;font-size:16px;color:var(--ink);margin-top:7px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--maroon);box-shadow:0 0 0 3px rgba(109,31,50,.08)}textarea{resize:vertical}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;background:rgba(8,23,45,.05);padding:6px;border-radius:17px}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented label{margin:0}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{display:grid;place-items:center;min-height:42px;border-radius:12px;color:var(--muted);font-size:13px;cursor:pointer}.segmented input:checked+span{background:white;color:var(--navy);box-shadow:0 5px 15px rgba(8,23,45,.08)}.backlink{display:block;text-decoration:none;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:10px}.round-head h1 em{font-size:.45em;color:var(--muted)}.score-orb,.summary-score{width:150px;height:150px;border-radius:50%;background:var(--navy);color:white;display:grid;place-items:center;align-content:center;text-align:center;flex:none}.score-orb small,.summary-score small{font-size:9px;letter-spacing:.17em;color:#d7a9b4}.score-orb strong,.summary-score strong{font-family:Georgia,serif;font-size:46px;line-height:1}.score-orb span,.summary-score span{font-size:11px;color:#c9d2df}.hole-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:none}.hole-strip::-webkit-scrollbar{display:none}.hole-pill{flex:0 0 54px;border-radius:16px;padding:10px 5px;text-align:center;text-decoration:none;color:var(--navy);border:1px solid var(--line);background:rgba(255,255,255,.45)}.hole-pill b,.hole-pill small{display:block}.hole-pill small{font-size:10px;color:var(--muted);margin-top:2px}.hole-pill.current{background:var(--navy);color:#fff}.hole-pill.current small{color:#d7a9b4}.hole-pill.played:not(.current){border-color:rgba(109,31,50,.28)}.shot-panel{margin-top:12px}.helper{color:var(--muted);font-size:13px;line-height:1.55;margin-top:-6px}.shot-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:8px;margin-top:20px}.shot-btn{border:1px solid var(--line);background:#faf8f4;border-radius:18px;min-height:100px;padding:10px 6px;color:var(--navy);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.shot-btn:hover{border-color:rgba(109,31,50,.35);background:white}.shot-btn:active{transform:scale(.97)}.shot-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:Georgia,serif;font-style:italic}.shot-btn b{font-size:12px}.shot-btn small{font-size:9px;color:var(--muted)}.gps-status{display:flex;align-items:center;gap:9px;margin-top:16px;color:var(--muted);font-size:12px}.gps-dot{width:8px;height:8px;background:var(--green);border-radius:50%;box-shadow:0 0 0 4px rgba(47,106,87,.1)}.hole-lower{align-items:start}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.label-row{display:flex;justify-content:space-between;gap:10px;margin:22px 0 8px;font-size:13px;font-weight:800;color:var(--navy)}.label-row small,.muted{color:var(--muted);font-weight:500}.actions{display:flex;gap:10px;margin-top:20px}.actions>*{flex:1}.shot-history{min-height:100%}.shot-row{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.shot-row>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(8,23,45,.06);font-weight:800;font-size:12px}.shot-row b,.shot-row small{display:block}.shot-row small{font-size:10px;color:var(--muted);margin-top:2px}.shot-row strong{font-family:Georgia,serif;color:var(--maroon)}.empty{text-align:center;padding:42px 10px;color:var(--muted);font-size:13px;line-height:1.6}.summary-score{width:172px;height:172px}.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:24px}.stat-card{padding:20px 16px;background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:20px}.stat-card small,.stat-card span{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em}.stat-card strong{display:block;color:var(--navy);font-family:Georgia,serif;font-size:32px;margin:6px 0 4px}.scorecard-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:700px}th,td{padding:11px 10px;text-align:center;border-bottom:1px solid var(--line);font-size:12px}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:#f9f7f3;color:var(--navy);font-weight:800}.under{color:var(--green);font-weight:800}.over{color:var(--maroon);font-weight:800}.insight-card{margin-top:24px}.insight-copy{max-width:760px;color:var(--muted);line-height:1.7}.insight-copy b{color:var(--navy)}.finish{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:30px}.finish small{color:var(--muted)}.login-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center;padding:9vh 0}.hero-copy{padding-right:20px}.login-card{max-width:420px;width:100%}.alert{background:#f7e7e9;color:#7d2436;padding:12px 14px;border-radius:12px;font-size:13px;margin:8px 0 14px}
@media(max-width:900px){.shot-grid{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:repeat(3,1fr)}.login-wrap{grid-template-columns:1fr}.hero-orbit{display:none}}
@media(max-width:700px){.shell{padding:12px 16px 60px}.topbar{padding:16px}.home-hero,.round-head,.summary-hero{padding:22px 0 26px;align-items:flex-start}.home-hero h1{font-size:50px}.round-head h1,.summary-hero h1{font-size:46px}.score-orb{width:108px;height:108px}.score-orb strong{font-size:34px}.summary-score{width:120px;height:120px}.summary-score strong{font-size:38px}.split{grid-template-columns:1fr}.panel{border-radius:22px;padding:20px}.active-round{align-items:flex-start;flex-direction:column}.active-round .primary{width:100%}.round-row{grid-template-columns:1fr auto}.chev{display:none}.round-metrics span:nth-child(2){display:none}.stat-grid{grid-template-columns:repeat(2,1fr)}.section-head{align-items:flex-start;flex-direction:column}.section-head .primary{width:100%}.actions{flex-direction:column}.field-pair{gap:8px}.shot-btn{min-height:90px}.shot-grid{gap:7px}.topbar form .ghost{padding:8px 10px}.home-hero p{font-size:15px}.feature-grid{grid-template-columns:1fr 1fr}.login-wrap{padding:28px 0}.hero-copy h1{font-size:54px}.round-head{gap:12px}.round-head .eyebrow{max-width:190px}.summary-hero{gap:10px}.round-metrics{gap:16px}}

/* TeeUpCo v0.2.1 — GPS + course maps */
.start-grid{align-items:stretch}.catalog-note{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.5);margin:2px 0 14px}.catalog-note b{font-family:Georgia,serif;font-size:25px;color:var(--maroon)}.catalog-note span{font-size:11px;line-height:1.35;color:var(--muted)}
.course-search-wrap{position:relative}.course-results{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:30;background:#fbfaf7;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 50px rgba(8,23,45,.14);padding:6px;max-height:340px;overflow-y:auto}.course-result{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:12px;border-radius:13px;color:var(--navy);cursor:pointer}.course-result:hover,.course-result:focus{background:rgba(109,31,50,.06)}.course-result span{min-width:0}.course-result b,.course-result small{display:block}.course-result b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-result small{font-size:10px;color:var(--muted);margin-top:3px}.course-result i{font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.1em;color:var(--maroon);flex:none}.course-result-empty{padding:14px;color:var(--muted);font-size:12px;line-height:1.5}.course-picker-actions{display:flex;align-items:center;gap:12px;margin:8px 0 18px}.course-picker-actions small{color:var(--muted);font-size:10px;line-height:1.4}.source-note,.course-attribution,.map-attribution{font-size:10px!important;color:var(--muted);line-height:1.5}.source-note{margin:14px 2px 0}.course-attribution{text-align:center;margin:20px 0}.course-attribution a{color:var(--maroon)}
.yardage-ribbon{display:grid;grid-template-columns:.75fr 1.5fr auto;gap:24px;align-items:center;margin:12px 0 24px;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(247,242,238,.86));border-top:3px solid var(--maroon)}.yardage-main strong{display:block;font-family:Georgia,serif;color:var(--navy);font-size:48px;line-height:1;margin:8px 0 3px}.yardage-main strong small{font:700 12px/1 system-ui,sans-serif;color:var(--muted)}.yardage-main p,.green-distance p{margin:4px 0 0;color:var(--muted);font-size:10px}.distance-trio{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:8px;background:rgba(255,255,255,.58)}.distance-trio span{padding:10px 14px;text-align:center;border-right:1px solid var(--line)}.distance-trio span:last-child{border-right:0}.distance-trio small,.distance-trio b{display:block}.distance-trio small{font-size:8px;letter-spacing:.12em;color:var(--muted)}.distance-trio b{font-family:Georgia,serif;font-size:30px;color:var(--navy);margin-top:2px}.distance-trio .center{background:var(--navy)}.distance-trio .center small{color:#c8d3df}.distance-trio .center b{color:#fff}.gps-controls{display:flex;flex-direction:column;gap:7px;min-width:148px}.gps-controls small{text-align:center;color:var(--muted);font-size:9px}
.hole-map-panel{margin:0 0 24px}.hole-map-shell{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.hole-map-shell svg{width:100%;height:auto;max-height:630px;border-radius:24px}.map-bg{fill:#ede9e1}.map-feature{vector-effect:non-scaling-stroke}.map-feature.fairway{fill:#cdd4bd;stroke:#aeb99c;stroke-width:2}.map-feature.green{fill:#80967b;stroke:#647a60;stroke-width:2}.map-feature.tee{fill:#dfe2d0;stroke:#aeb99c;stroke-width:2}.map-feature.bunker{fill:#e4d3ad;stroke:#c7b17e;stroke-width:2}.map-feature.water_hazard,.map-feature.lateral_water_hazard{fill:#c1d4d7;stroke:#9abcc0;stroke-width:2}.hole-centerline{fill:none;stroke:var(--maroon);stroke-width:4;stroke-dasharray:9 8;stroke-linecap:round;opacity:.75}.gps-track{fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round;opacity:.35}.shot-marker{fill:var(--maroon);stroke:#fff;stroke-width:3}.shot-label{fill:#fff;text-anchor:middle;font:800 9px system-ui,sans-serif;pointer-events:none}.current-ring{fill:none;stroke:rgba(8,23,45,.22);stroke-width:10}.current-marker{fill:var(--navy);stroke:#fff;stroke-width:4}.map-legend{display:flex;flex-direction:column;gap:12px;font-size:10px;color:var(--muted);min-width:82px}.map-legend span{display:flex;align-items:center;gap:7px}.map-legend i{width:13px;height:13px;border-radius:4px;display:block}.legend-fairway{background:#cdd4bd}.legend-green{background:#80967b}.legend-bunker{background:#e4d3ad}.legend-shot{background:var(--maroon);border-radius:50%!important}.map-attribution{margin:10px 2px 0}.map-empty{text-align:center;padding:34px 12px 24px;color:var(--muted)}.map-empty h3{font-family:Georgia,serif;color:var(--navy);font-size:22px;font-weight:500;margin:12px 0 6px}.map-empty p{max-width:570px;margin:0 auto 18px;font-size:12px;line-height:1.6}.map-empty-art{height:160px;max-width:360px;margin:0 auto;position:relative;border-radius:80px 80px 35px 35px;background:#d8dfc8;overflow:hidden;transform:perspective(300px) rotateX(7deg)}.map-empty-art:before{content:"";position:absolute;width:90px;height:110px;background:#849a7d;border-radius:60% 45%;right:20px;bottom:-15px}.map-empty-art:after{content:"";position:absolute;width:72px;height:22px;background:#e4d3ad;border-radius:50%;right:64px;bottom:54px}.map-empty-art span{position:absolute;width:5px;height:120px;background:var(--maroon);left:50%;top:25px;transform:rotate(-20deg);border-radius:99px}.map-empty-art i{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--navy);left:43%;bottom:23px}.map-empty-art b{position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--maroon);left:24%;top:44%}
@media(max-width:900px){.yardage-ribbon{grid-template-columns:1fr 1.5fr}.gps-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;align-items:center}.hole-map-shell{grid-template-columns:1fr}.map-legend{flex-direction:row;flex-wrap:wrap;justify-content:center}}
@media(max-width:700px){.course-picker-actions{align-items:flex-start;flex-direction:column}.course-picker-actions .ghost{width:100%}.yardage-ribbon{grid-template-columns:1fr;gap:18px}.yardage-main{display:grid;grid-template-columns:1fr auto;align-items:end}.yardage-main .section-kicker,.yardage-main p{grid-column:1}.yardage-main strong{grid-column:2;grid-row:1/3;margin:0;font-size:44px}.gps-controls{grid-template-columns:1fr 1fr}.gps-controls small{grid-column:1/-1}.distance-trio b{font-size:28px}.hole-map-panel{padding:16px}.hole-map-shell svg{border-radius:18px}.map-attribution{padding:0 4px}.hole-head{align-items:center}.map-empty{padding-top:20px}}

/* TeeUpCo v0.3 — accounts, friends, shared rounds, admin */
.topnav{display:flex;align-items:center;gap:10px}.topnav>a{color:var(--navy);text-decoration:none;font-size:12px;font-weight:800;padding:8px 10px;border-radius:999px}.topnav>a:hover{background:rgba(8,23,45,.06)}.topnav form{margin:0}.user-chip{font-size:11px;color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-actions,.section-actions,.row-actions{display:flex;gap:8px;align-items:center}.auth-switch{text-align:center;color:var(--muted);font-size:12px;margin:16px 0 0}.auth-switch a,.friend-empty-inline a{color:var(--maroon);font-weight:800}.field-help{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:6px}.notice{padding:13px 16px;border-radius:15px;background:rgba(47,106,87,.09);color:var(--green);font-size:13px;margin-bottom:18px}.page-head{padding:32px 0 30px}.page-head h1{font-family:Georgia,serif;font-weight:500;color:var(--navy);font-size:clamp(46px,7vw,72px);line-height:1;margin:10px 0}.page-head p{max-width:700px;color:var(--muted);line-height:1.6}.friend-invite-block{margin-top:18px}.friend-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.friend-check{margin:0;display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:rgba(255,255,255,.42)}.friend-check input{width:auto;margin:0}.friend-check span,.friend-check b,.friend-check small{display:block}.friend-check small{color:var(--muted);font-size:9px;margin-top:2px}.friend-empty-inline{font-size:11px;color:var(--muted);margin-top:16px;padding:12px;border:1px dashed var(--line);border-radius:14px}.friend-layout{align-items:start}.people-list{display:flex;flex-direction:column}.person-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.person-row:last-child{border-bottom:0}.person-row b,.person-row small{display:block}.person-row small{font-size:10px;color:var(--muted);margin-top:3px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:Georgia,serif;font-style:italic}.avatar.large{width:52px;height:52px;font-size:22px}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;background:rgba(8,23,45,.06);color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap}.status-pill.online{background:rgba(47,106,87,.12);color:var(--green)}.status-pill.inactive{background:rgba(109,31,50,.1);color:var(--maroon)}.friend-requests h3{font-family:Georgia,serif;color:var(--navy);font-weight:500}.empty.compact{padding:18px 0}.backlink-row{display:flex;gap:14px}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.player-card{border-top:3px solid transparent}.player-card.player-self{border-top-color:var(--maroon)}.player-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.player-card-head h2{margin:2px 0}.player-card-head p{margin:0;color:var(--muted);font-size:11px}.group-score-form .segmented{margin-top:10px}.spectator-score{padding:28px 0 8px;text-align:center}.spectator-score span,.spectator-score small{display:block;color:var(--muted)}.spectator-score strong{display:block;font-family:Georgia,serif;color:var(--navy);font-size:64px;line-height:1;margin:8px}.invite-bar{display:grid;grid-template-columns:1fr minmax(180px,280px) auto;gap:12px;align-items:center;margin:10px 0 24px}.invite-bar select{margin:0}.group-scorecard{margin-top:24px}.admin-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:24px}.metric-panel{padding:18px 14px;border:1px solid var(--line);background:rgba(255,255,255,.62);border-radius:18px}.metric-panel small,.metric-panel span{display:block;color:var(--muted);font-size:9px;letter-spacing:.08em}.metric-panel strong{display:block;font-family:Georgia,serif;color:var(--navy);font-size:34px;margin:5px 0}.admin-table table{min-width:850px}.table-sub{display:block;color:var(--muted);font-weight:500;margin-top:3px}.security-note{margin-top:24px}.security-note p{color:var(--muted);line-height:1.6}.gps-dot.error{background:var(--maroon);box-shadow:0 0 0 4px rgba(109,31,50,.1)}
@media(max-width:900px){.admin-metrics{grid-template-columns:repeat(3,1fr)}.group-grid{grid-template-columns:1fr}.invite-bar{grid-template-columns:1fr 1fr}.invite-bar>div{grid-column:1/-1}}
@media(max-width:700px){.topbar{align-items:flex-start}.topnav{flex-wrap:wrap;justify-content:flex-end}.topnav>a{display:none}.user-chip{max-width:100px}.active-actions{width:100%;flex-direction:column}.active-actions>*{width:100%}.friend-checks{grid-template-columns:1fr}.person-row{grid-template-columns:auto 1fr}.person-row>form,.person-row>.row-actions,.person-row>.status-pill{grid-column:2;justify-self:start}.row-actions{flex-wrap:wrap}.section-actions{width:100%;flex-direction:column}.section-actions>*{width:100%}.invite-bar{grid-template-columns:1fr}.invite-bar>div{grid-column:auto}.admin-metrics{grid-template-columns:repeat(2,1fr)}.player-card-head{grid-template-columns:auto 1fr}.player-card-head>form{grid-column:2}.backlink-row{flex-wrap:wrap}}


/* TeeUpCo v0.3.2 — creator credit */
.site-footer{max-width:1180px;margin:34px auto 0;padding:20px 24px 34px;text-align:center;border-top:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:.03em}.site-footer p{margin:0}.site-footer strong{color:var(--navy);font-weight:800}
@media(max-width:700px){.site-footer{padding-left:18px;padding-right:18px}}

/* TeeUpCo v0.3.3 — round timing + GPS quality */
.round-clock{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:10px}.round-clock span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.45)}
.round-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;max-width:700px}.round-time-grid>div{padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.05)}.round-time-grid small,.round-time-grid time,.round-time-grid span,.round-time-grid strong{display:block}.round-time-grid small{font-size:8px;letter-spacing:.12em;opacity:.65;margin-bottom:4px}.round-time-grid time,.round-time-grid span,.round-time-grid strong{font-size:11px;color:inherit;font-weight:800}
.end-round-btn{border:1px solid rgba(109,31,50,.25);background:rgba(109,31,50,.08);color:var(--maroon);font-weight:850;border-radius:14px;padding:11px 16px;cursor:pointer;min-height:44px}.end-round-btn:hover{background:rgba(109,31,50,.13)}
.map-mode-note{margin:5px 0 0!important;color:var(--muted);font-size:10px!important;max-width:520px;line-height:1.45}
.history-duration{white-space:nowrap}
@media(max-width:700px){.round-time-grid{grid-template-columns:1fr}.round-clock{gap:6px}.end-round-btn{width:100%}}

/* TeeUpCo v0.3.4 — mobile-first usability */
.mobile-nav{display:none}
@media(max-width:700px){
  html{scroll-padding-bottom:92px}
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
  .ambient{display:none}
  .topbar{padding:12px 14px;align-items:center;border-bottom:1px solid var(--line);background:rgba(247,244,239,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50}
  .brand{gap:8px;min-width:0}.brand-mark{width:36px;height:36px;font-size:19px}.brand b{font-size:12px}.brand small{font-size:9px}
  .topnav{display:none}
  .shell{padding:12px 12px 34px}
  .panel{padding:16px;border-radius:20px;box-shadow:0 10px 28px rgba(8,23,45,.07)}
  .home-hero,.round-head,.summary-hero{padding:14px 2px 18px}
  .home-hero{display:block}.home-hero h1{font-size:38px;line-height:.98;margin:8px 0 10px}.home-hero p{font-size:14px;line-height:1.5;margin-bottom:0}
  .round-head h1,.summary-hero h1{font-size:38px;line-height:.98;margin:8px 0 10px}
  .round-head,.summary-hero{align-items:center}
  .score-orb{width:88px;height:88px}.score-orb strong{font-size:30px}.score-orb small{font-size:7px}.score-orb span{font-size:9px}
  .summary-score{width:98px;height:98px}.summary-score strong{font-size:32px}
  h2{font-size:26px}
  .split{gap:12px;margin:12px 0 28px}
  .philosophy{display:none}
  .active-round{margin-bottom:12px}
  .page-head{padding:16px 2px 18px}.page-head h1{font-size:42px;margin:6px 0}.page-head p{font-size:14px;margin-bottom:0}
  .login-wrap{display:flex;flex-direction:column;padding:10px 0 22px;gap:14px}.login-wrap .hero-copy{order:2;padding:0 4px}.login-wrap .hero-copy h1{font-size:34px;margin:8px 0}.login-wrap .hero-copy p{font-size:13px;line-height:1.45}.login-card{order:1;width:100%}
  label{margin:12px 0}input,select,textarea{min-height:48px;border-radius:13px;padding:12px 13px}textarea{min-height:82px}
  .primary,.secondary,.ghost,.end-round-btn{min-height:48px;padding:12px 16px}
  .segmented span{min-height:46px}
  .hole-strip{margin:0 -12px;padding:4px 12px 12px;scroll-snap-type:x proximity}.hole-pill{flex-basis:52px;scroll-snap-align:start}
  .yardage-ribbon{position:relative;margin-top:2px;padding:14px;gap:12px}.yardage-main strong{font-size:40px}.yardage-main strong small{font-size:12px}.yardage-main p,.green-distance p{font-size:10px}
  .distance-trio{gap:4px}.distance-trio span{padding:8px 4px}.distance-trio b{font-size:25px}.distance-trio small{font-size:7px}
  .gps-controls{gap:7px}.gps-controls .primary,.gps-controls .ghost{width:100%;padding-left:10px;padding-right:10px}.gps-controls small{font-size:10px;line-height:1.35}
  .hole-map-panel{padding:12px}.hole-map-panel .section-head{margin-bottom:10px}.hole-map-shell{gap:8px}.hole-map-shell svg{width:100%;max-height:58vh;min-height:340px}.map-legend{gap:8px;font-size:9px}.map-attribution{font-size:9px;line-height:1.4}
  .shot-panel{padding:14px;margin-top:12px}.shot-panel .section-head{display:flex;flex-direction:row;align-items:center}.shot-panel .section-head h2{margin-bottom:4px}.shot-panel .section-head .ghost{width:auto;min-height:42px;flex:none}.helper{font-size:11px;line-height:1.45}
  .shot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.shot-btn{min-height:76px;border-radius:16px;padding:8px 3px}.shot-icon{width:25px;height:25px}.shot-btn b{font-size:11px}.shot-btn small{font-size:8px}
  .gps-status{align-items:flex-start;font-size:10px;line-height:1.4;margin-top:12px}
  .hole-lower{margin-top:12px}.field-pair{grid-template-columns:1fr 1fr;gap:8px}.label-row{margin-top:16px}
  .actions{gap:8px}.actions>*{width:100%}
  .shot-history{min-height:auto}.shot-row{padding:10px 0}
  .round-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 4px}.round-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.round-metrics span,.round-metrics span:nth-child(2){display:block;min-width:0;padding:7px 8px;border-radius:12px;background:rgba(8,23,45,.04)}.round-metrics b{font-size:18px}
  .stat-grid{gap:8px}.stat-card{padding:14px 11px;border-radius:16px}.stat-card strong{font-size:27px}
  .admin-metrics{gap:8px}.metric-panel{padding:14px 10px}.metric-panel strong{font-size:28px}
  .scorecard-scroll{margin-left:-4px;margin-right:-4px;-webkit-overflow-scrolling:touch}
  table{min-width:620px}th,td{padding:10px 8px}
  .friend-check{min-height:54px}.person-row{padding:14px 0}
  .group-grid{gap:12px}.player-card{padding:15px}.spectator-score{padding:18px 0 2px}.spectator-score strong{font-size:54px}
  .site-footer{margin-top:14px;padding-bottom:18px}
  .mobile-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:80;padding:6px;border:1px solid rgba(8,23,45,.12);border-radius:20px;background:rgba(247,244,239,.96);box-shadow:0 14px 40px rgba(8,23,45,.18);backdrop-filter:blur(18px)}
  .mobile-nav>a,.mobile-nav button{width:100%;min-height:52px;border:0;background:transparent;color:var(--navy);text-decoration:none;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.mobile-nav form{margin:0}.mobile-nav>a:active,.mobile-nav button:active{background:rgba(109,31,50,.08)}.mobile-nav-icon{width:23px;height:23px;border-radius:50%;background:rgba(8,23,45,.07);display:grid;place-items:center;font-family:Georgia,serif;font-size:12px;color:var(--maroon)}
  .mobile-nav:has(>a:nth-of-type(1):last-of-type){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){
  .shell{padding-left:10px;padding-right:10px}.panel{padding:14px}.home-hero h1{font-size:34px}.round-head h1,.summary-hero h1{font-size:34px}.shot-btn{min-height:72px}.shot-btn small{display:none}.distance-trio b{font-size:22px}.field-pair{grid-template-columns:1fr}
}


/* TeeUpCo v0.3.6 — uploaded logo integration */
.brand-logo{width:44px;height:44px;object-fit:contain;display:block;filter:drop-shadow(0 6px 12px rgba(8,23,45,.08))}.hero-logo{width:min(100%,360px);height:auto;display:block;margin:0 0 14px}.auth-hero{display:flex;flex-direction:column;align-items:flex-start}.logo-orbit{display:grid;place-items:center;background:rgba(255,255,255,.58);border-radius:32px;border:1px solid rgba(8,23,45,.08);padding:22px;box-shadow:var(--shadow)}.hero-orbit-logo{width:100%;max-width:240px;height:auto;display:block}
@media(max-width:700px){.brand-logo{width:38px;height:38px}.hero-logo{max-width:220px;margin-bottom:10px}.logo-orbit{display:none}}

/* TeeUpCo v0.4.0 — aerial map, aim planner and location consent */
.gps-diagnostics{margin:-10px 0 24px;border-left:4px solid var(--navy)}
.diagnostic-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.diagnostic-grid span{padding:12px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.58)}.diagnostic-grid small,.diagnostic-grid b{display:block}.diagnostic-grid small{font-size:8px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.diagnostic-grid b{margin-top:5px;color:var(--navy);font-size:12px}
.map-section-head{align-items:center}.map-panel-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.hole-map-body{display:block}.map-collapsed-bar{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(8,23,45,.04)}.map-collapsed-bar div b,.map-collapsed-bar div span{display:block}.map-collapsed-bar div span{font-size:10px;color:var(--muted);margin-top:2px}.map-collapsed-bar>strong{font-family:Georgia,serif;color:var(--maroon);font-size:18px}.hole-map-panel.is-minimized .map-section-head{margin-bottom:10px}.hole-map-panel.is-minimized #minimizeMap{display:none}
.map-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}.map-hud span{padding:9px 11px;border-radius:14px;background:var(--navy);color:white;min-width:0}.map-hud small,.map-hud b{display:block}.map-hud small{font-size:7px;letter-spacing:.12em;color:#d8c2c7}.map-hud b{font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aerial-shell{grid-template-columns:minmax(0,1fr) auto;align-items:start}.aerial-map-frame{position:relative;width:min(100%,430px);aspect-ratio:9/11;margin:0 auto;border-radius:24px;overflow:hidden;background:#d9ddd4;border:1px solid rgba(8,23,45,.14);touch-action:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}.aerial-image,.aerial-map-frame svg,.aerial-fallback{position:absolute;inset:0;width:100%;height:100%}.aerial-image{display:block;object-fit:fill;z-index:1}.aerial-map-frame svg{z-index:3;max-height:none!important;border-radius:0!important;cursor:crosshair}.aerial-fallback{z-index:0;display:grid;place-items:center;align-content:center;text-align:center;padding:24px;background:linear-gradient(160deg,#d9dfcf,#b9c9b3);color:var(--navy)}.aerial-fallback span{font-family:Georgia,serif;font-size:20px}.aerial-fallback small{margin-top:5px;color:var(--muted)}.aerial-map-frame.has-aerial .map-bg{fill:transparent}
.map-feature{opacity:.72}.map-feature.fairway{fill:rgba(160,190,124,.22);stroke:#e6f2cf;stroke-width:3}.map-feature.green{fill:rgba(82,151,82,.38);stroke:#f4ffe9;stroke-width:4}.map-feature.tee{fill:rgba(223,226,208,.28);stroke:#fff;stroke-width:3}.map-feature.bunker{fill:rgba(229,210,166,.52);stroke:#fff2cf;stroke-width:3}.map-feature.water_hazard,.map-feature.lateral_water_hazard{fill:rgba(99,164,190,.28);stroke:#cbefff;stroke-width:3}.hole-centerline{stroke:#f6e6eb;stroke-width:5;stroke-dasharray:12 10;opacity:.68}.gps-track{stroke:#5ad2ff;stroke-width:4;opacity:.75}.direct-green-line{fill:none;stroke:rgba(255,255,255,.65);stroke-width:3;stroke-dasharray:8 9}.aim-path{fill:none;stroke:var(--maroon2);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(255,255,255,.55))}.shot-marker{stroke-width:4}.shot-label{font-size:13px}.current-ring{stroke:rgba(255,255,255,.72);stroke-width:11}.current-marker{fill:#062b52;stroke:#fff;stroke-width:5}.current-label,.aim-label{fill:#fff;text-anchor:middle;font:900 14px/1 system-ui,sans-serif;paint-order:stroke;stroke:rgba(8,23,45,.9);stroke-width:5px;stroke-linejoin:round}.aim-ring{fill:rgba(109,31,50,.18);stroke:#fff;stroke-width:5}.aim-marker{fill:var(--maroon);stroke:#fff;stroke-width:4}.aim-marker-group{cursor:grab}.aim-marker-group:active{cursor:grabbing}.legend-aim{background:var(--maroon);border-radius:50%!important;box-shadow:0 0 0 2px #fff inset}.map-corner-controls{position:absolute;z-index:5;right:10px;bottom:10px}.map-icon-button{width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(8,23,45,.82);color:#fff;font-size:20px;cursor:pointer;box-shadow:0 4px 18px rgba(8,23,45,.22)}
.aim-planner{margin-top:13px;border-top:1px solid var(--line);padding-top:13px}.aim-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.aim-actions #aimHint{font-size:10px;color:var(--muted);flex:1;min-width:190px}.aim-actions .active{background:var(--maroon);color:#fff}.aim-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:10px}.aim-metrics span{position:relative;padding:10px 8px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.58);text-align:center}.aim-metrics small,.aim-metrics b,.aim-metrics i{display:block}.aim-metrics small{font-size:7px;letter-spacing:.09em;color:var(--muted)}.aim-metrics b{font-family:Georgia,serif;color:var(--navy);font-size:26px;line-height:1;margin-top:4px}.aim-metrics i{font-style:normal;color:var(--muted);font-size:8px}
.hole-map-panel.is-expanded{position:fixed;z-index:110;inset:8px;margin:0;background:#f6f2ec;padding:14px;border-radius:24px;overflow:auto;box-shadow:0 30px 90px rgba(8,23,45,.35)}body.map-expanded-open{overflow:hidden}.hole-map-panel.is-expanded .map-section-head{position:sticky;top:-14px;z-index:10;background:#f6f2ec;padding:10px 0;border-bottom:1px solid var(--line)}.hole-map-panel.is-expanded .aerial-shell{display:block}.hole-map-panel.is-expanded .aerial-map-frame{width:min(100%,720px);height:calc(100dvh - 330px);aspect-ratio:auto;min-height:450px}.hole-map-panel.is-expanded .map-legend{flex-direction:row;justify-content:center;margin-top:8px}.hole-map-panel.is-expanded .aim-planner{position:sticky;bottom:0;background:rgba(246,242,236,.96);backdrop-filter:blur(12px);padding:12px 0 4px}
.location-dialog{border:0;padding:0;background:transparent;max-width:min(92vw,560px);width:100%;color:var(--ink)}.location-dialog::backdrop{background:rgba(8,23,45,.64);backdrop-filter:blur(5px)}.location-dialog-card{margin:0;background:#f8f5f0;border:1px solid rgba(255,255,255,.6);border-radius:28px;padding:28px;box-shadow:0 30px 90px rgba(8,23,45,.34)}.location-dialog-card h2{font-size:31px}.location-dialog-card>p{color:var(--muted);line-height:1.6}.location-dialog-icon{width:54px;height:54px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:26px;margin-bottom:16px}.location-privacy-note{display:grid;gap:4px;padding:14px 16px;border-left:4px solid var(--maroon);border-radius:12px;background:rgba(109,31,50,.06)}.location-privacy-note b{color:var(--navy)}.location-privacy-note span{font-size:12px;line-height:1.5;color:var(--muted)}.dialog-actions{display:flex;gap:9px;margin-top:20px}.dialog-actions>*{flex:1}

@media(max-width:900px){.diagnostic-grid{grid-template-columns:repeat(3,1fr)}.aerial-shell{grid-template-columns:1fr}.map-legend{flex-direction:row}.aerial-map-frame{width:min(100%,410px)}}
@media(max-width:700px){
  .gps-controls{grid-template-columns:1fr 1fr}.gps-controls #gpsDiagnosticsButton{grid-column:1/-1}.diagnostic-grid{grid-template-columns:1fr 1fr}.map-section-head{align-items:flex-start}.map-panel-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.map-panel-actions>*{width:100%}.map-panel-actions #loadCourseMap{grid-column:1/-1}.map-collapsed-bar{grid-template-columns:1fr auto}.map-collapsed-bar>strong{grid-column:1}.map-collapsed-bar>button{grid-column:2;grid-row:1/3}.map-hud{gap:5px}.map-hud span{padding:8px 7px}.map-hud b{font-size:10px}.aerial-map-frame{width:min(100%,360px);border-radius:20px}.aim-actions{display:grid;grid-template-columns:1fr 1fr}.aim-actions #aimHint{grid-column:1/-1;min-width:0}.aim-metrics{grid-template-columns:1fr 1fr}.aim-metrics b{font-size:24px}.hole-map-panel.is-expanded{inset:0;border-radius:0;padding:10px}.hole-map-panel.is-expanded .map-section-head{top:-10px}.hole-map-panel.is-expanded .aerial-map-frame{width:min(100%,620px);height:auto;aspect-ratio:9/11;min-height:0}.hole-map-panel.is-expanded .aim-planner{position:relative}.location-dialog-card{padding:20px;border-radius:22px}.location-dialog-card h2{font-size:26px}.dialog-actions{flex-direction:column-reverse}.dialog-actions>*{width:100%}
}
@media(max-width:380px){.diagnostic-grid{grid-template-columns:1fr}.map-hud b{font-size:9px}.aerial-map-frame{width:min(100%,330px)}.aim-metrics b{font-size:22px}}
.aerial-fallback[hidden]{display:none!important}
