	    *,*::before,*::after{box-sizing:border-box}
	    :where(input,select,textarea,button){max-width:100%}
	    :where(.sheet,.moduleSheet,.moduleCard,.panel,.accountPanel,.coachPanel,.coachUpdatesPanel,.coachDashboard,.coachList,.coachPlayer,.coachUpdate,.cards,.card,.row,details){min-width:0;max-width:100%}
	    :where(.sheet,.moduleSheet,.moduleCard,.accountPanel,.coachPanel,.coachUpdatesPanel,.coachDashboard,.coachList,.coachPlayer,.coachUpdate,.cards,.card,.row,details)>*{min-width:0}
	    :where(.moduleCard,.accountPanel,.coachPanel,.coachUpdatesPanel,.coachPlayer,.coachUpdate,.card,.row) :where(strong,span,p,small){overflow-wrap:anywhere}
	    html,body{margin:0;height:100%;overflow:hidden;background:#050806;color:white;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;user-select:none;-webkit-user-select:none}
	    html.gdAuthRouteBoot #shellHome,html.gdAuthRouteBoot #courseScreen,html.gdAuthRouteBoot #shellTop,html.gdAuthRouteBoot #shellDock,html.gdAuthRouteBoot .modulePanel,html.gdAuthRouteBoot .panel{display:none!important;visibility:hidden!important;pointer-events:none!important}
    #app{position:relative;width:100vw;height:100vh;overflow:hidden;background:#050806}
    #map{position:absolute;inset:-18%;background:#111;filter:saturate(.9) contrast(1.08) brightness(.82);transition:filter .25s ease,transform .35s ease;transform-origin:50% 55%;will-change:transform}
    #app.gdPreLockFrame:not(.framed)::after{content:"";position:absolute;inset:0;z-index:605;pointer-events:none;background:radial-gradient(ellipse 44% 76% at 50% 40%,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 42%,rgba(0,0,0,.22) 70%,rgba(0,0,0,.48) 100%);box-shadow:inset 0 0 54px rgba(0,0,0,.34),inset 0 0 118px rgba(0,0,0,.20);opacity:1;transition:opacity .22s ease}
    #app.gdPreLockFrame.gdPreLockCourseLane:not(.framed)::after{background:radial-gradient(ellipse 38% 76% at 50% 43%,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 38%,rgba(0,0,0,.16) 64%,rgba(0,0,0,.46) 100%);box-shadow:inset 0 0 70px rgba(0,0,0,.42),inset 0 0 140px rgba(0,0,0,.30)}
    #app.gdPreLockFrame:not(.framed) #map{filter:saturate(.88) contrast(1.10) brightness(.80)}
    #app.gdPreLockFrame:not(.framed) .depth{opacity:.38}
    #app.framed #map{filter:saturate(.86) contrast(1.14) brightness(.76)}
    .leaflet-control,.leaflet-control-attribution{display:none}
    .leaflet-gd-focus-pane{mix-blend-mode:multiply;pointer-events:none}
    .gdGpsFocusMask{transition:fill-opacity .22s ease}
    body:not(.shell-gps) .gdGpsFocusMask{display:none}
    .gdMappedFairwayReference,.gdMappedGreenReference{pointer-events:none;filter:drop-shadow(0 0 5px rgba(0,0,0,.34))}
    .topFade{position:absolute;left:0;right:0;top:0;height:150px;z-index:600;pointer-events:none;background:linear-gradient(to bottom,rgba(3,6,4,.82),rgba(3,6,4,.35),transparent)}
    .bottomFade{position:absolute;left:0;right:0;bottom:0;height:230px;z-index:600;pointer-events:none;background:linear-gradient(to top,rgba(3,6,4,.9),rgba(3,6,4,.45),transparent)}
    .depth{position:absolute;inset:0;z-index:610;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(ellipse at 50% 18%,rgba(255,255,255,.1),rgba(255,255,255,0) 56%),linear-gradient(to bottom,rgba(255,255,255,.06),transparent 35%,rgba(0,0,0,.22));mix-blend-mode:soft-light}
    #app.framed .depth{opacity:1}

    .playerBadge{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 56px);left:12px;z-index:1000;width:232px;border-radius:18px;overflow:hidden;background:rgba(6,12,16,.9);border:1px solid rgba(255,255,255,.15);box-shadow:0 12px 30px rgba(0,0,0,.38);backdrop-filter:blur(16px)}
    .badgeMain{display:grid;grid-template-columns:1fr auto;min-height:62px}
    .badgeName{padding:12px 14px 2px;font-size:24px;font-weight:950;line-height:1;letter-spacing:-.055em;text-transform:uppercase}
    #gdGpsPlayerBadgeName{margin:8px 10px 0;padding:5px 9px;border-radius:999px;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b;font-size:11px;font-weight:900;line-height:1.2;letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 20px)}
    #gdGpsPlayerBadgeName[hidden]{display:none}
    .badgeCourse{display:block;width:100%;padding:0 14px 9px;border:0;background:transparent;text-align:left;font:inherit;font-size:11px;font-weight:800;color:rgba(255,255,255,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;cursor:pointer}
    .badgeCourse:empty{display:none}
    .badgeCourse:hover,.badgeCourse:focus-visible{color:#b7ff3b;outline:0}
    .scoreBlock{width:68px;background:#f0182f;display:grid;grid-template-columns:18px 1fr 18px;align-items:center;justify-items:center}
    .scoreBtn{width:18px;height:100%;border:0;border-radius:0;background:rgba(255,255,255,.1);color:white;font-size:18px;font-weight:950;padding:0}
    .scoreValue{font-size:35px;line-height:1;font-weight:950;letter-spacing:-.04em}
    .badgeMeta{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:8px 14px;background:rgba(16,29,38,.82);border-top:1px solid rgba(255,255,255,.08);font-size:12px;font-weight:850;color:rgba(255,255,255,.78);white-space:nowrap}
    .gpsLive{display:flex;align-items:center;gap:5px}
    .gpsLive i{width:7px;height:7px;border-radius:50%;background:#1fd36d;animation:gpsPulse 1.65s infinite}
    .gpsLive.off i{background:#ff7a1a;animation:none}
    @keyframes gpsPulse{0%{box-shadow:0 0 0 0 rgba(31,211,109,.55)}70%{box-shadow:0 0 0 8px rgba(31,211,109,0)}100%{box-shadow:0 0 0 0 rgba(31,211,109,0)}}
    .holeMeta{color:#b7ff3b;font-weight:950}

    .topIcons{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:1000;display:flex;gap:8px}
    .iconBtn,.railBtn{width:44px;height:44px;border-radius:16px;border:1px solid rgba(255,255,255,.10);background:rgba(5,9,7,.66);backdrop-filter:blur(14px);color:rgba(255,255,255,.88);font-weight:950;box-shadow:0 8px 18px rgba(0,0,0,.22);display:grid;place-items:center;padding:0}
    .rightRail{position:absolute;right:12px;top:calc(max(12px,env(safe-area-inset-top)) + 112px);z-index:980;display:grid;gap:8px}
    .gdWindToolBtn{position:relative;overflow:hidden;font-size:24px;line-height:1}
    .gdWindToolBtn svg{width:31px;height:31px;display:block;filter:drop-shadow(0 6px 10px rgba(0,0,0,.42))}
    .gdWindToolBtn.windReady:not(.windActive){border-color:rgba(102,220,255,.58)!important;color:#dff8ff!important;box-shadow:0 0 0 1px rgba(102,220,255,.18),0 0 18px rgba(102,220,255,.28),0 8px 18px rgba(0,0,0,.22)!important}
    .gdWindToolBtn.windReady:not(.windActive):after{content:"";position:absolute;right:7px;top:7px;width:7px;height:7px;border-radius:50%;background:#66dcff;box-shadow:0 0 12px rgba(102,220,255,.8)}
    .gdWindToolBtn.windActive{background:linear-gradient(180deg,rgba(44,156,255,.72),rgba(3,25,44,.78))!important;border-color:rgba(120,206,255,.62)!important;color:#fff!important}
    .gdWindToolBtn .gdWindLevelText{display:grid;place-items:center;width:100%;height:100%;font-size:26px;font-weight:950;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.5)}
    .gdWindPicker{position:fixed;inset:0;z-index:2600;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.58);backdrop-filter:blur(2px);touch-action:none;cursor:crosshair}
    .gdWindPicker.hidden{display:none!important}
    .gdWindPickerCompass{position:relative;width:min(78vw,430px);height:min(78vw,430px);border-radius:50%;border:1px solid rgba(255,255,255,.18);background:radial-gradient(circle,rgba(255,255,255,.06) 0 1px,transparent 2px),rgba(255,255,255,.025);box-shadow:0 18px 60px rgba(0,0,0,.34),inset 0 0 0 42px rgba(255,255,255,.025);pointer-events:none}
    .gdWindPickerCompass:before,.gdWindPickerCompass:after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.22);transform:translate(-50%,-50%)}
    .gdWindPickerCompass:before{width:1px;height:100%}
    .gdWindPickerCompass:after{width:100%;height:1px}
    .gdWindPickerLabel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 14px;border-radius:999px;background:rgba(0,0,0,.44);border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78);white-space:nowrap}
    .gdWindAimDot{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,203,103,.96);background:rgba(255,203,103,.18);box-shadow:0 0 0 6px rgba(255,203,103,.08),0 7px 14px rgba(0,0,0,.35)}
    .toolIcon{width:31px;height:31px;display:block}
    .greenBtn{background:#1fd36d!important;color:#071008!important}
    .greenBtn .scanLine{opacity:.48}
    .gpsIcon .gpsRing{opacity:.36}
    .bag3d .bagSide{filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
    .scoreIcon line{stroke-linecap:round}
    .settingsStatsButton{margin-top:8px;width:100%;background:rgba(255,255,255,.08)}
    .gdSettingsGroup{margin:14px 2px 8px;color:rgba(255,255,255,.52);font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
    .gdSettingsSheet .row{border-radius:16px}
    .gdSettingsAdmin{margin-top:12px;background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.74)!important}
    .gdAdminOnlySetting{display:none!important}
    body[data-gd-permission="admin"] .gdAdminOnlySetting{display:flex!important}
    .gdSettingsRetired{display:none!important}
    .flagTool{position:absolute;right:18px;top:calc(max(12px,env(safe-area-inset-top)) + 58px);z-index:1000;font-size:48px;color:#ff3131;cursor:grab;touch-action:none;filter:drop-shadow(0 6px 12px rgba(0,0,0,.6));transition:.16s}
    .flagTool.grabbing{opacity:.35;transform:translateY(-6px) scale(1.1) rotate(-6deg)}
    .ghost{position:fixed;z-index:3000;display:none;color:#ff3131;font-size:54px;pointer-events:none;transform:translate(-50%,-78%) scale(1.18) rotate(-5deg);filter:drop-shadow(0 12px 18px rgba(0,0,0,.72))}
    .pulseDrop{position:fixed;z-index:2990;width:70px;height:70px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:rgba(255,255,255,.08);pointer-events:none;transform:translate(-50%,-50%) scale(.3);opacity:0}
    .pulseDrop.show{animation:dropPulse .55s ease-out forwards}
    @keyframes dropPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}18%{opacity:.95;transform:translate(-50%,-50%) scale(.75)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}

    .shotTile{position:absolute;left:12px;bottom:calc(94px + env(safe-area-inset-bottom));z-index:990;width:178px;min-height:86px;border-radius:22px;padding:12px;box-sizing:border-box;display:none;background:rgba(5,9,7,.78);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(16px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
    .shotTile.visible{display:block}
    .tileTop{display:none}
    .tileLabel{font-size:11px;color:rgba(255,255,255,.58);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
    .bagMini{display:none}
    .bagMini img{display:block;width:22px;height:24px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
    .tileMain{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"club dist";align-items:center;justify-content:space-between;column-gap:10px;row-gap:6px;line-height:1}
    .tileClub{font-size:29px;font-weight:950;letter-spacing:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .tileClub{grid-area:club}
    .tileDist{grid-area:dist;font-size:27px;font-weight:950;letter-spacing:0;white-space:nowrap;justify-self:end;text-align:right}
    .tileDist span{font-size:13px;color:rgba(255,255,255,.62);margin-left:1px}
    .tileDist small{display:block;margin-top:2px;font-size:9px;line-height:1;color:rgba(255,255,255,.58);font-weight:900;letter-spacing:0}
    .tileMain.hasSlope.slopeOver{grid-template-areas:"slopeLabel slopeValue" "club dist"}
    .tileMain.hasSlope.slopeUnder,.tileMain.hasSlope.slopeLevel{grid-template-areas:"club dist" "slopeLabel slopeValue"}
    .gdSlopeAdjustedLine{display:contents}
    .gdSlopeAdjustedLabel{grid-area:slopeLabel;justify-self:end;align-self:end;font-size:10px;line-height:1;font-weight:950;letter-spacing:.02em;text-transform:lowercase;color:rgba(255,255,255,.76)}
    .gdSlopeAdjustedValue{grid-area:slopeValue;justify-self:center;align-self:end;min-width:100%;text-align:center;font-size:13px;line-height:1;font-weight:950;letter-spacing:-.025em}
    .gdSlopeAdjustedValue .unit{font-size:9px;margin-left:1px}
    .tileMain.slopeUnder .gdSlopeAdjustedLabel,.tileMain.slopeUnder .gdSlopeAdjustedValue,.tileMain.slopeLevel .gdSlopeAdjustedLabel,.tileMain.slopeLevel .gdSlopeAdjustedValue{color:#27df79}
    .tileMain.slopeOver .gdSlopeAdjustedLabel,.tileMain.slopeOver .gdSlopeAdjustedValue{color:#ff4d58}
    .tileSub{margin-top:7px;color:rgba(255,255,255,.64);font-size:12px;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .tileSub.tilePrimary{color:rgba(255,255,255,.80);font-weight:850}
    .tileSub.tileMeta{margin-top:3px;color:rgba(255,255,255,.58);font-size:11px}
    .tileSub.tilePinMetric{margin-top:3px;color:rgba(255,255,255,.76);font-size:11px;font-weight:850}
    .tileStockDelta{font-weight:950}
    .tileStockDelta.plus{color:#ff4d58}
    .tileStockDelta.minus{color:#27df79}
    .tileStockDelta.even{color:rgba(255,255,255,.84)}
    .tileMetricRow{display:flex;align-items:center;gap:6px;min-width:0}
    .tileMetricRow span{min-width:0}

    .dock{position:absolute;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:1000;border-radius:24px;padding:10px;background:rgba(5,9,7,.86);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px);box-shadow:0 18px 42px rgba(0,0,0,.45)}
    .dockGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    button{border:0;border-radius:16px;padding:11px 8px;font-size:14px;font-weight:900;color:white;background:rgba(255,255,255,.105);touch-action:manipulation}
    button:active{transform:scale(.985)}
    .primary{background:#1fd36d;color:#071008}
    .dockAction{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px}
    .dockAction small{font-size:12px;font-weight:900}.dockIcon{font-size:20px}

    .hint{position:absolute;bottom:calc(98px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:950;padding:8px 14px;border-radius:999px;background:rgba(5,9,7,.55);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(10px);color:rgba(255,255,255,.72);font-size:13px;font-weight:800;pointer-events:none;opacity:0;transition:.2s;white-space:nowrap}
    .hint.visible{opacity:1;transform:translate(-50%,0)}
    .hint.gdMappedStartPill{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px;width:min(326px,calc(100vw - 40px));padding:4px;background:rgba(5,9,7,.72);border-color:rgba(255,255,255,.14);box-shadow:0 14px 30px rgba(0,0,0,.32);pointer-events:auto;color:#fff}
    .hint.gdMappedStartPill:not(.visible){pointer-events:none}
    .hint.gdMappedStartPill .gdMappedStartAction{min-height:38px;border-radius:999px;padding:8px 10px;background:rgba(255,255,255,.09);color:rgba(255,255,255,.9);font-size:12px;font-weight:950;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .hint.gdMappedStartPill .gdMappedStartAction.gdHeadToTee{background:#1fd36d;color:#06110b}
    .hint.gdMappedStartPill .gdMappedStartAction:focus-visible{outline:2px solid rgba(255,255,255,.86);outline-offset:2px}
    .toast{position:absolute;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:1600;transform:translate(-50%,8px);opacity:0;pointer-events:none;padding:9px 14px;border-radius:999px;background:rgba(5,9,7,.78);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px);box-shadow:0 10px 25px rgba(0,0,0,.28);font-size:13px;font-weight:850;color:rgba(255,255,255,.86);transition:.22s;white-space:nowrap}
    .toast.show{opacity:1;transform:translate(-50%,0)}
    .railBtn.activeTool{border-color:rgba(31,211,109,.38);background:rgba(31,211,109,.16);color:#fff}
    .railBtn.softActive{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.12)}
    #snapshotBtn.active{background:#1fd36d;color:#071008}
    #app.contrast-1 #map{filter:saturate(.75) contrast(1.35) brightness(.76)}
    #app.contrast-2 #map{filter:saturate(1.25) contrast(1.18) brightness(.82) hue-rotate(-8deg)}
    #app.contrast-3 #map{filter:saturate(.55) contrast(1.55) brightness(.72)}
    #app.contrast-4 #map{filter:saturate(1.45) contrast(1.08) brightness(.86)}

    .startDot,.targetDot{border-radius:50%;border:2px solid white;box-sizing:border-box}
    .startDot{width:20px;height:20px;background:#ff7a1a;box-shadow:0 0 0 8px rgba(255,122,26,.15),0 0 16px rgba(255,122,26,.55)}
    .startDot.pulse{animation:startPulse .55s ease-out}
    @keyframes startPulse{45%{transform:scale(1.25);box-shadow:0 0 0 16px rgba(255,122,26,.18),0 0 26px rgba(255,122,26,.75)}}
    .targetDot{width:11px;height:11px;background:transparent;border:0;box-shadow:none;opacity:0}
    .gdAimRecognitionFleck{width:4px;height:4px;transform:translate(-50%,-50%) rotate(45deg);background:rgba(245,252,255,.28);box-shadow:0 0 5px rgba(230,250,255,.16);pointer-events:none}
    .pinDot{position:relative;width:22px;height:30px}
    .pinDot:before{content:"";position:absolute;left:8px;top:4px;width:2px;height:23px;background:white;border-radius:2px;box-shadow:0 0 8px rgba(255,255,255,.5)}
    .pinDot:after{content:"";position:absolute;left:10px;top:3px;width:15px;height:10px;background:#ff3131;clip-path:polygon(0 0,100% 18%,0 100%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.55))}
    .gdPinLongPressArmed .pinDot{filter:drop-shadow(0 0 10px rgba(255,255,255,.38))}
    .gdPinDragUnlocked .pinDot{filter:drop-shadow(0 0 12px rgba(31,211,109,.75))}
    .lineLabel,.greenLabel,.yardLabel{font-size:13px;font-weight:950;text-shadow:0 2px 7px rgba(0,0,0,.85);white-space:nowrap;color:white}.greenLabel{color:#1fd36d}.remainingGreenLabel{color:#d8ffe9;background:rgba(8,32,19,.72);border:1px solid rgba(34,197,94,.36);border-radius:999px;padding:3px 7px;box-shadow:0 8px 18px rgba(0,0,0,.28)}.yardLabel{color:white}
    .gdMiddleGuideLabel{padding:2px 6px;border-radius:999px;background:rgba(4,8,6,.48);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.78);font-size:10px;font-weight:900;line-height:1;text-shadow:0 2px 6px rgba(0,0,0,.78);white-space:nowrap;box-shadow:0 6px 14px rgba(0,0,0,.22)}
    .yardLabel.edgeLabel{font-size:10px;font-weight:850;letter-spacing:.01em;color:rgba(242,247,244,.68);opacity:.78;text-shadow:0 1px 4px rgba(0,0,0,.82);transform:rotate(var(--label-rot,0deg));transform-origin:center;line-height:1;padding:0 2px;background:transparent;border:0}

    .panel{position:absolute;inset:0;z-index:3900;display:none;align-items:flex-end;background:rgba(0,0,0,.38);backdrop-filter:blur(4px);padding:12px;box-sizing:border-box;opacity:0;transition:opacity .18s ease}
    .panel.open{display:flex;opacity:1}
    .sheet{width:100%;max-height:78vh;overflow:auto;border-radius:28px;padding:16px;background:rgba(5,9,7,.94);border:1px solid rgba(255,255,255,.13);box-shadow:0 24px 60px rgba(0,0,0,.55);backdrop-filter:blur(18px);box-sizing:border-box;transform:translateY(12px);transition:transform .18s ease}
    .panel.open .sheet{transform:translateY(0)}
    .sheetHeader{display:flex;align-items:center;gap:10px;margin-bottom:14px}.backBtn{width:42px;height:42px;border-radius:16px;padding:0;font-size:22px;background:rgba(255,255,255,.1)}
    .sheetTitle{font-size:24px;font-weight:950;letter-spacing:-.055em;line-height:1}.sheetSub{margin-top:3px;color:rgba(255,255,255,.58);font-size:12px;font-weight:700}
    .row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.07);margin-bottom:9px}
    .row strong{display:block;font-size:15px;font-weight:900}.row span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:12px;font-weight:700}
    .toggle{min-width:72px;border-radius:999px;background:rgba(255,255,255,.12)}.toggle.active{background:#1fd36d;color:#071008}
    select{border:0;outline:0;border-radius:14px;padding:10px 12px;background:rgba(255,255,255,.12);color:white;font-weight:900;font-size:14px}
    .bagList{display:grid;gap:8px;margin-bottom:12px}.bagRow{display:flex;justify-content:space-between;padding:12px;border-radius:16px;background:rgba(255,255,255,.07);font-weight:850}.bagRow strong{color:#1fd36d}
    .gdStatsVisual{height:292px;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.10);overflow:hidden;margin-bottom:10px}
    .gdStatsVisual svg{display:block;width:100%;height:292px;min-height:0}
    .gdStatsTools{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}.gdStatsTools button{border-radius:15px;padding:11px 10px;background:rgba(255,255,255,.09);font-size:13px}.gdStatsTools .primary{background:linear-gradient(180deg,#d7b06b,#c58d35);color:#071008}
    .gdStatsControl{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;margin:0 0 10px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09)}.gdStatsControl label{display:block;color:rgba(255,255,255,.58);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.11em}.gdStatsControl strong{display:block;color:#fff;font-size:14px;margin-top:2px}.gdStatsControl span{align-self:end;color:#21d07b;font-size:11px;font-weight:950;text-align:right}.gdStatsControl input{grid-column:1/-1;width:100%;accent-color:#21d07b}
    .gdStatsFilters{display:grid;grid-template-columns:1.1fr .8fr .8fr 1.15fr;gap:7px;margin:0 0 10px}.gdStatsFilters label{display:grid;gap:4px;color:rgba(255,255,255,.56);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.09em}.gdStatsFilters select,.gdStatsFilters input{width:100%;min-width:0;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.075);color:#fff;padding:9px 8px;font-size:12px;font-weight:900;box-sizing:border-box}.gdStatsFilters input::placeholder{color:rgba(255,255,255,.32)}@media(max-width:520px){.gdStatsFilters{grid-template-columns:1fr 1fr}.gdStatsFilters label:last-child{grid-column:auto}}
    .gdStatsLegend{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 10px;color:rgba(255,255,255,.62);font-size:11px;font-weight:850}.gdStatsLegend span{display:inline-flex;align-items:center;gap:5px}.gdStatsLegend i{width:9px;height:9px;border-radius:999px;display:inline-block;background:#fff}.gdStatsLegend .presumed i{background:#1fd36d}.gdStatsLegend .result i{background:#d7b06b}.gdStatsLegend .shot i{background:#f4f7f4}.gdStatsLegend .excluded i{background:#8f9a96}
    body.gdShotDataOpen .shellTop,body.gdStatsOpen .shellTop{z-index:100260}
    .gdShotDataPanel.open{z-index:100200!important;background:linear-gradient(180deg,rgba(5,8,6,.96),rgba(3,5,4,.98));padding:max(116px,calc(98px + env(safe-area-inset-top))) 14px calc(84px + env(safe-area-inset-bottom));box-sizing:border-box;overflow:auto}
    .gdShotDataPanel.open .moduleSheet,.gdShotDataPanel.open .sheet{max-width:560px;margin:0 auto}
    #statsPanel.gdShotDataPanel.open{display:block;opacity:1;backdrop-filter:none}
    #statsPanel.gdShotDataPanel.open .sheet{max-height:none;height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;overflow:visible;transform:none}
    #statsPanel.gdShotDataPanel.open .sheetHeader{display:none}
    #statsPanel.gdStatsEmpty .gdStatsLegend,#statsPanel.gdStatsEmpty .gdStatsFilters,#statsPanel.gdStatsEmpty #shotLogList{display:none}
    body.gdStatsOpen #gdCourseLibraryOverlay,body:has(#statsPanel.open) #gdCourseLibraryOverlay{display:none!important;pointer-events:none!important}
    .gdScoreHolePickerBar{margin:4px 0 8px}.gdScoreHolePickerBar button{width:100%;height:44px;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.10);color:#fff;font-weight:950}.gdScoreHolePickerBar span{font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:rgba(183,255,59,.78)}.gdScoreHolePickerBar strong{font-size:16px;line-height:1;letter-spacing:0}.holeStrip{display:flex;gap:7px;overflow:auto;padding:4px 0 10px;-webkit-overflow-scrolling:touch}.holePill{min-width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.08);font-weight:950}.holePill.active{background:#1fd36d;color:#071008}.holePill.scored{border:1px solid rgba(31,211,109,.45)}.holePill.playing{box-shadow:0 0 0 2px rgba(31,211,109,.42),0 10px 24px rgba(0,0,0,.24)}#scorePanel.gdScoreHolePickerClosed .holeStrip{display:none}
    .gdScoreCourseHero{margin:10px 0 12px;padding:11px 14px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);box-shadow:none}
    .gdScoreCourseLabel{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(183,255,59,.78);font-weight:950}.gdScoreCourseName{margin-top:3px;font-size:18px;line-height:1.05;font-weight:950;letter-spacing:-.03em}.gdScoreCourseMeta{margin-top:4px;color:rgba(255,255,255,.50);font-size:11px;font-weight:800}
    .gdScoreEmpty{display:none;margin:10px 0 12px;padding:14px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.74);font-size:13px;font-weight:760;line-height:1.35}
    #scorePanel.gdScoreShell .scoreMeta{color:rgba(255,255,255,.52)}
    #scorePanel.gdScoreEmptyMode .gdScoreHolePickerBar,#scorePanel.gdScoreEmptyMode .holeStrip,#scorePanel.gdScoreEmptyMode .scoreCard,#scorePanel.gdScoreEmptyMode .scoreControls,#scorePanel.gdScoreEmptyMode .gdScoreSave{display:none}
    #scorePanel.gdScoreEmptyMode .gdScoreEmpty{display:block}
    .scoreCard{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;padding:14px;border-radius:20px;background:rgba(255,255,255,.075);margin-bottom:10px}.scoreTitle{font-size:22px;font-weight:950;letter-spacing:-.05em}.scoreMeta{margin-top:3px;color:rgba(255,255,255,.62);font-size:13px;font-weight:750}
    .scoreControls{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:12px}.scoreControls label{display:block;color:rgba(255,255,255,.58);font-size:12px;font-weight:800;margin:0 0 6px 4px}.stepper{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;border-radius:18px;background:rgba(255,255,255,.07);overflow:hidden}.stepper button{border-radius:0;padding:12px 0;font-size:18px}.stepper strong{text-align:center;font-size:22px;font-weight:950}
    .greenPanel{position:absolute;left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:1100;display:none;background:rgba(5,9,7,.92);border:1px solid rgba(31,211,109,.22);border-radius:24px;padding:12px;backdrop-filter:blur(18px);box-shadow:0 18px 42px rgba(0,0,0,.45)}
    .greenPanel.active{display:block}.greenTop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.greenTitle{font-size:18px;font-weight:950}.greenSub{margin-top:2px;color:rgba(255,255,255,.58);font-size:12px;font-weight:750}
    .tolRow{display:grid;grid-template-columns:48px 1fr 48px;gap:8px;align-items:center}.tolRow button{background:rgba(31,211,109,.18);font-size:22px;padding:10px 0}.tolValue{text-align:center;font-size:18px;font-weight:950}.tolSub{text-align:center;margin-top:2px;color:rgba(255,255,255,.52);font-size:11px;font-weight:750}.retryBtn{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:12px;padding:0;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);font-size:17px}

    .courseScreen{position:absolute;inset:0;z-index:7600;background:transparent;padding:max(16px,env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;display:flex;flex-direction:column;transition:opacity .22s ease,transform .22s ease;overflow:hidden;isolation:isolate}
    .courseScreen:before,.courseScreen:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}
    .courseScreen:before{background:linear-gradient(180deg,rgba(2,5,3,.46) 0%,rgba(2,5,3,.14) 42%,rgba(2,5,3,.58) 100%)}
    .courseScreen:after{background:linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:46px 46px;opacity:.16}
    .courseScreen>*{position:relative;z-index:1}
    .courseScreen.hidden{opacity:0;transform:translateY(-8px);pointer-events:none}
    .brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}.logo{width:38px;height:38px;border-radius:14px;background:linear-gradient(145deg,#ff7a1a,#1fd36d)}h1{margin:0;font-size:25px;letter-spacing:-.06em;line-height:1}.subtitle{color:rgba(255,255,255,.66);font-size:13px;font-weight:650;margin-top:3px}
    .courseHeader{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin-bottom:14px}.courseHeader .brand{min-width:0;margin:0}.courseHeader .brand h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courseNav{display:flex;gap:7px}.courseNav button{border:0;border-radius:18px;background:rgba(4,8,6,.76);border:1px solid rgba(255,255,255,.12);color:#fff;padding:10px 13px;font-size:14px;font-weight:900;box-shadow:0 12px 28px rgba(0,0,0,.28)}
    .search{display:flex;gap:8px;background:rgba(7,11,9,.84);border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:10px 10px 10px 14px;backdrop-filter:blur(18px)}input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:white;font-size:16px;font-weight:700}.search button,.courseAssumedBlock button{background:#1fd36d;color:#071008;border-radius:14px;padding:10px 12px;font-size:13px}.courseAssumed{display:grid;gap:8px;margin-bottom:0}.courseAssumedBlock{display:flex;gap:8px;align-items:center;background:rgba(7,11,9,.84);border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:10px 10px 10px 14px;backdrop-filter:blur(18px);cursor:pointer}.courseAssumedMain{min-width:0;flex:1}.courseAssumedLabel{color:#a8ff53;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.14em}.courseAssumedName{margin-top:3px;color:#fff;font-size:16px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courseAssumedMeta{margin-top:3px;color:rgba(255,255,255,.52);font-size:11px;font-weight:780;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courseSearchEdit{margin:8px 0 10px;padding:9px 9px 9px 12px}.courseSearchEdit input{font-size:14px}.courseSearchEdit button{padding:9px 11px}
    .courseCard{margin-top:auto;border-radius:28px;padding:14px;background:rgba(5,9,7,.72);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(16px);max-height:62vh;display:flex;flex-direction:column}.courseList{overflow:auto}.course{border-radius:20px;padding:14px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.08);margin-bottom:9px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.name{font-size:17px;font-weight:900}.meta{margin-top:5px;color:rgba(255,255,255,.58);font-size:12px;font-weight:680}.play{background:#1fd36d;color:#071008}.courseListDivider{margin:6px 4px 10px;color:rgba(255,255,255,.58);font-size:12px;font-weight:680}.course.selecting{opacity:.72}.course.selecting .play{background:rgba(255,255,255,.18);color:#fff}
    /* --- Admin / Developer tuning layer --- */
    .devPanel .sheet{max-height:86vh}
    .devIntro{padding:12px;border-radius:18px;background:rgba(31,211,109,.10);border:1px solid rgba(31,211,109,.18);margin-bottom:10px;color:rgba(255,255,255,.82);font-size:12px;font-weight:720;line-height:1.35}
    .devGroup{margin:12px 0 14px;padding:12px;border-radius:20px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}
    .devGroup h3{margin:0 0 4px;font-size:16px;letter-spacing:-.02em}
    .devGroup p{margin:0 0 10px;color:rgba(255,255,255,.58);font-size:12px;font-weight:700;line-height:1.35}
    .devTune{display:grid;grid-template-columns:1fr 112px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}
    .devTune:first-of-type{border-top:0}
    .devTune label{font-size:13px;font-weight:900;line-height:1.15}
    .devTune small{display:block;margin-top:4px;color:rgba(255,255,255,.56);font-size:11px;font-weight:700;line-height:1.25}
    .devTune input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(0,0,0,.18);color:#fff;font-weight:900;padding:9px 8px;text-align:right}
    .devMeta{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
    .devMeta span{padding:6px 7px;border-radius:10px;background:rgba(0,0,0,.16)}
    .devMeta .changed{color:#ffcf70;background:rgba(255,159,47,.13)}
    .devActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
    .devGroupSelect{margin:12px 0 10px;padding:10px 12px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}
    .devGroupSelect label{display:block;margin-bottom:6px;color:rgba(255,255,255,.58);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.11em}
    .devGroupSelect select{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(0,0,0,.2);color:#fff;padding:11px 10px;font-size:14px;font-weight:900}
    .devResetSmall{margin-top:7px;width:100%;font-size:12px;padding:9px;background:rgba(255,255,255,.08)}
    .gdAdminVisualCard{margin:12px 0 14px;padding:12px;border-radius:20px;background:linear-gradient(180deg,rgba(8,14,12,.88),rgba(255,255,255,.045));border:1px solid rgba(255,255,255,.10);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
    .gdAdminVisualCard strong{display:block;color:#fff;font-size:16px;font-weight:950;letter-spacing:-.02em}
    .gdAdminVisualCard span{display:block;margin-top:4px;color:rgba(255,255,255,.58);font-size:11px;font-weight:760;line-height:1.25}
    .gdAdminVisualCard button{min-width:92px;border-radius:999px;padding:9px 12px;background:rgba(255,255,255,.10);color:#fff;font-size:12px;font-weight:950}
    .gdAdminVisualCard button.active{background:#1fd36d;color:#06110b}
    .gdPermissionCard{margin:12px 0 14px;padding:12px;border-radius:20px;background:linear-gradient(180deg,rgba(31,211,109,.10),rgba(255,255,255,.045));border:1px solid rgba(31,211,109,.18)}
    .gdPermissionCard h3{margin:0 0 4px;font-size:17px;letter-spacing:-.02em}
    .gdPermissionCard p{margin:0 0 10px;color:rgba(255,255,255,.62);font-size:12px;font-weight:720;line-height:1.35}
    .gdPermissionGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .gdPermissionOption{min-height:78px;border-radius:16px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.065);color:#fff;text-align:left;padding:11px;display:flex;flex-direction:column;justify-content:space-between}
    .gdPermissionOption.active{background:linear-gradient(180deg,rgba(31,211,109,.30),rgba(31,211,109,.12));border-color:rgba(31,211,109,.52)}
    .gdPermissionOption strong{display:block;font-size:14px;line-height:1.1}
    .gdPermissionOption span{display:block;margin-top:4px;color:rgba(255,255,255,.62);font-size:11px;font-weight:720;line-height:1.25}
    .gdPermissionSummary{margin-top:10px;padding:9px 10px;border-radius:14px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.68);font-size:11px;font-weight:850;line-height:1.3}
    .gdCoachVisibility{margin-top:12px;padding:11px;border-radius:16px;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.08)}
    .gdCoachVisibility h4{margin:0 0 4px;font-size:14px}
    .gdCoachVisibility p{margin:0 0 9px;font-size:11px}
    .gdCoachVisibilityGrid{display:grid;gap:7px}
    .gdCoachVisibilityOption{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;padding:9px;border-radius:13px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);color:#fff;font-size:12px;font-weight:900}
    .gdCoachVisibilityOption input{width:18px;height:18px;accent-color:#1fd36d}
    .gdCoachVisibilityOption span{display:block;margin-top:2px;color:rgba(255,255,255,.58);font-size:10px;font-weight:760;line-height:1.25}
    .gdDeveloperSettings{margin:12px 0 0;padding:0;border-radius:20px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);overflow:hidden}
    .gdDeveloperSettings summary{list-style:none;cursor:pointer;padding:13px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:950;color:#fff}
    .gdDeveloperSettings summary::-webkit-details-marker{display:none}
    .gdDeveloperSettings summary span{font-size:17px;letter-spacing:-.02em}
    .gdDeveloperSettings summary small{color:rgba(255,255,255,.55);font-size:11px;font-weight:800;text-align:right;line-height:1.2}
    .gdDeveloperSettings summary:after{content:'v';color:rgba(255,255,255,.72);font-size:16px}
    .gdDeveloperSettings[open] summary{border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045)}
    .gdDeveloperSettings[open] summary:after{content:'^'}
    .gdDeveloperBody{padding:0 12px 12px}
    .gdPracticeTolerancePanel{margin:14px 0 0;padding:15px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
    .gdPracticeToleranceHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
    .gdPracticeToleranceHead strong{display:block;color:#fff;font-size:18px;font-weight:950}
    .gdPracticeToleranceHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:13px;font-weight:750;line-height:1.25}
    .gdPracticeToleranceBadge{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:7px 10px;color:rgba(255,255,255,.72);font-size:12px;font-weight:900;white-space:nowrap;background:rgba(255,255,255,.045)}
    .gdPracticeToleranceSections{display:grid;gap:14px}
    .gdPracticeToleranceSection{display:grid;gap:9px}
    .gdPracticeToleranceSectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.08)}
    .gdPracticeToleranceSectionHead strong{color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
    .gdPracticeToleranceSectionHead span{color:rgba(255,255,255,.50);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
    .gdPracticeToleranceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
    .gdPracticeTolerance{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center;gap:6px 10px}
    .gdPracticeTolerance label{color:rgba(255,255,255,.78);font-size:12px;font-weight:900;line-height:1.15}
    .gdPracticeTolerance label{grid-column:1/-1}
    .gdPracticeTolerance label span{display:block}
    .gdPracticeTolerance label small{display:block;margin-top:3px;color:rgba(255,255,255,.43);font-size:9.5px;font-weight:800;line-height:1.18;text-transform:none;letter-spacing:0}
    .gdPracticeTolerance input[type="range"]{grid-column:1;width:100%;accent-color:#d7b06b}
    .gdPracticeTolerance output{color:#fff;font-size:13px;font-weight:950;text-align:right}
    .gdPracticeTolerancePanel.locked{opacity:.72}
    .gdPracticeTolerancePanel.locked input{pointer-events:none}
    .gdPracticeProjectionControls,.gdPracticeRecommendationsPanel{margin:10px 0 0;padding:10px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
    .gdPracticeProjectionControls{display:grid;grid-template-columns:auto auto 34px minmax(0,1fr);gap:7px;align-items:center}
    .gdPracticeProjectionControls button{border:1px solid rgba(255,255,255,.10);border-radius:999px;background:rgba(255,255,255,.065);color:rgba(255,255,255,.76);padding:8px 10px;font-size:11px;font-weight:950}
    .gdPracticeProjectionControls button.active{background:linear-gradient(180deg,#37f28d,#20bd69);border-color:rgba(55,242,141,.58);color:#06100b}
    .gdPracticeProjectionControls button:disabled{opacity:.44;cursor:not-allowed;filter:grayscale(.28)}
    .gdPracticeProjectionControls>.gdPracticeProjectionStatus{min-width:0;color:rgba(255,255,255,.58);font-size:11px;font-weight:850;line-height:1.25;text-align:right}
    .gdPracticeProjectionControls.waiting>.gdPracticeProjectionStatus{color:rgba(255,210,135,.78)}
    .gdPracticeRecommendationsPanel[hidden]{display:none!important}
    .gdPracticeRecommendationsPanel{display:grid;gap:8px}
    .gdPracticeRecommendationsHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .gdPracticeRecommendationsHead strong{display:block;color:#fff;font-size:14px;font-weight:950;line-height:1.05}
    .gdPracticeRecommendationsHead span{display:block;margin-top:3px;color:rgba(255,255,255,.56);font-size:10px;font-weight:850;line-height:1.25}
    .gdPracticeRecommendationsBadge{border-radius:999px;padding:5px 8px;background:rgba(215,176,107,.12);border:1px solid rgba(215,176,107,.22);color:#ffd287;font-size:9px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdPracticeRecommendationRows{display:grid;gap:6px}
    .gdPracticeRecommendationRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border-radius:12px;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.07)}
    .gdPracticeRecommendationRow span{color:rgba(255,255,255,.56);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
    .gdPracticeRecommendationRow strong{color:#fff;font-size:12px;font-weight:950;text-align:right}
    @media(max-width:720px){.gdPracticeToleranceGrid{grid-template-columns:1fr}.gdPracticeTolerance{grid-template-columns:minmax(0,1fr) 48px}}
    @media (max-width:520px){.gdPermissionGrid{grid-template-columns:1fr}.gdPermissionOption{min-height:64px}}
    .gdLmAdmin{margin:12px 0 14px;padding:12px;border-radius:20px;background:linear-gradient(180deg,rgba(14,165,233,.12),rgba(255,255,255,.045));border:1px solid rgba(96,165,250,.18)}
    .gdLmAdmin h3{margin:0 0 4px;font-size:16px;letter-spacing:-.02em}
    .gdLmAdmin p{margin:0 0 10px;color:rgba(255,255,255,.6);font-size:12px;font-weight:700;line-height:1.35}
    .gdCoursePlayDebug{display:none;margin:12px 0 14px;padding:12px;border-radius:20px;background:linear-gradient(180deg,rgba(31,211,109,.10),rgba(255,255,255,.04));border:1px solid rgba(31,211,109,.18)}
    body[data-gd-permission="admin"] .gdCoursePlayDebug,body[data-gd-permission="developer"] .gdCoursePlayDebug,body.gdCoursePlayDebugOn .gdCoursePlayDebug,body.gdCourseMappingDebugOn .gdCourseMappingDebug{display:block}
    .gdCoursePlayDebugHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
    .gdCoursePlayDebugHead h3{margin:0;font-size:16px;letter-spacing:-.02em}
    .gdCoursePlayDebugHead p{margin:3px 0 0;color:rgba(255,255,255,.58);font-size:11px;font-weight:750;line-height:1.35}
    .gdCoursePlayDebugActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
    .gdCoursePlayDebugActions button{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.09);color:#fff;font-size:11px;font-weight:950}
    .gdCoursePlayDebugSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:7px;margin:8px 0 10px}
    .gdCoursePlayDebugMetric{min-width:0;padding:8px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}
    .gdCoursePlayDebugMetric span{display:block;color:rgba(255,255,255,.52);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
    .gdCoursePlayDebugMetric strong{display:block;margin-top:3px;color:#fff;font-size:13px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .gdCoursePlayDebugScroll{overflow:auto;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16);margin-top:8px}
    .gdCoursePlayDebugTable{min-width:960px;width:100%;border-collapse:collapse;font:800 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.76)}
    .gdCoursePlayDebugTable th,.gdCoursePlayDebugTable td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;vertical-align:top}
    .gdCoursePlayDebugTable th{position:sticky;top:0;background:#101713;color:rgba(255,255,255,.56);font-size:9px;text-transform:uppercase;letter-spacing:.05em;z-index:1}
    .gdCoursePlayDebugFlag{display:inline-flex;align-items:center;justify-content:center;min-width:22px;border-radius:999px;padding:2px 6px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.54);font-size:9px;font-weight:950}
    .gdCoursePlayDebugFlag.ok{background:rgba(31,211,109,.15);color:#73ffae}
    .gdCoursePlayDebugFlag.bad{background:rgba(255,94,94,.13);color:#ff9d9d}
    .gdCoursePlayDebugTimeline{max-height:190px;overflow:auto;margin-top:8px;padding:8px;border-radius:13px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);font:800 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.78)}
    .gdCoursePlayDebugEvent{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}
    .gdCoursePlayDebugEvent:last-child{border-bottom:0}
    .gdCoursePlayDebugEmpty{padding:9px;border-radius:12px;background:rgba(0,0,0,.16);color:rgba(255,255,255,.58);font-size:11px;font-weight:850}
    .gdCourseMappingDebug{display:none;background:linear-gradient(180deg,rgba(96,165,250,.11),rgba(255,255,255,.04));border-color:rgba(96,165,250,.20)}
    .gdCourseMappingToolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;margin:9px 0 10px}
    .gdCourseMappingToolbar select{min-width:0;width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22);color:#fff;padding:9px 10px;font-size:11px;font-weight:850}
    .gdCourseMappingToolbar #gdCourseMappingCopyStatus{min-width:64px;color:rgba(255,255,255,.62);font-size:11px;font-weight:950;text-align:right}
    .gdCourseMappingToolbar #gdCourseMappingCopyStatus.ok{color:#73ffae}.gdCourseMappingToolbar #gdCourseMappingCopyStatus.bad{color:#ff9d9d}
    .gdCourseMappingTabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}
    .gdCourseMappingTabs button{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.72);font-size:11px;font-weight:950}
    .gdCourseMappingTabs button.active{background:rgba(96,165,250,.24);color:#fff}
    .gdCourseMappingObserved{margin:0 0 8px;padding:8px;border-radius:12px;background:rgba(96,165,250,.10);border:1px solid rgba(96,165,250,.16);color:rgba(255,255,255,.76);font-size:11px;font-weight:850}
    .gdCourseMappingTable{min-width:760px}
    .gdCourseMappingTable details{margin-top:5px}.gdCourseMappingTable summary{cursor:pointer;color:#93c5fd;font-weight:950}.gdCourseMappingTable pre,.gdCourseMappingRaw{white-space:pre-wrap;overflow:auto;max-height:280px;margin:6px 0 0;padding:8px;border-radius:10px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.76);font:800 10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}
    .gdCourseMappingSection{margin-top:10px}.gdCourseMappingSection h4{margin:0 0 6px;font-size:12px;color:rgba(255,255,255,.72);text-transform:uppercase;letter-spacing:.06em}
    .gdCourseMappingHandoffRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;border-radius:10px;background:rgba(0,0,0,.17);border:1px solid rgba(255,255,255,.06);font-size:11px;font-weight:850;color:rgba(255,255,255,.74)}
    .gdCourseMappingHandoffRow+ .gdCourseMappingHandoffRow{margin-top:5px}.gdCourseMappingHandoffRow strong.ok{color:#73ffae}.gdCourseMappingHandoffRow strong.warn{color:#ffd287}
    .gdCourseMappingWarnings p{margin:6px 0 0;padding:8px;border-radius:10px;background:rgba(255,210,135,.10);border:1px solid rgba(255,210,135,.16);color:#ffd287;font-size:11px;font-weight:850}
    .gdCourseMappingEventList{display:grid;gap:7px}.gdCourseMappingEvent{padding:9px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}.gdCourseMappingEvent strong{display:block;font-size:12px;color:#fff}.gdCourseMappingEvent span{display:block;margin-top:3px;color:rgba(255,255,255,.56);font-size:10px;font-weight:900;text-transform:uppercase}
    .gdCourseMappingCheckpoints{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.gdCourseMappingCheckpoint{display:grid;gap:7px;padding:9px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}.gdCourseMappingCheckpoint strong{display:block;color:#fff;font-size:12px}.gdCourseMappingCheckpoint span{display:block;color:rgba(255,255,255,.56);font-size:10px;font-weight:850}.gdCourseMappingCheckpoint img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#07110c}.gdCourseMappingCheckpoint summary{cursor:pointer;color:#93c5fd;font-size:11px;font-weight:950}.gdCourseMappingCheckpoint button{justify-self:start;border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.09);font-size:11px;font-weight:950}.gdCourseMappingCheckpointFacts{display:grid;gap:5px}.gdCourseMappingCheckpointFacts div{display:grid;grid-template-columns:86px minmax(0,1fr);gap:6px;align-items:start;padding:5px 6px;border-radius:8px;background:rgba(255,255,255,.045)}.gdCourseMappingCheckpointFacts span{font-size:8px;text-transform:uppercase;letter-spacing:.05em}.gdCourseMappingCheckpointFacts strong{min-width:0;font-size:10px;line-height:1.25;overflow-wrap:anywhere}.gdCourseMappingCheckpointActions{display:flex;gap:6px;flex-wrap:wrap}.gdCourseMappingCheckpointError{border:1px dashed rgba(255,210,135,.3);color:#ffd287;background:rgba(255,210,135,.08)}
    .gdCourseMappingCheckpoint.missing{border-style:dashed;color:rgba(255,255,255,.56)}
    @media(max-width:720px){.gdCourseMappingToolbar{grid-template-columns:1fr}.gdCourseMappingToolbar .gdCoursePlayDebugActions{justify-content:flex-start}.gdCourseMappingToolbar #gdCourseMappingCopyStatus{text-align:left}}
    .gdAdminDatabase{display:none;margin:12px 0 14px;padding:12px;border-radius:20px;background:linear-gradient(180deg,rgba(215,176,107,.12),rgba(255,255,255,.04));border:1px solid rgba(215,176,107,.20)}
    body[data-gd-permission="admin"] .gdAdminDatabase{display:block}
    .gdAdminDatabaseHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
    .gdAdminDatabaseHead h3{margin:0;font-size:16px;letter-spacing:-.02em}
    .gdAdminDatabaseHead p{margin:3px 0 0;color:rgba(255,255,255,.58);font-size:11px;font-weight:750;line-height:1.35}
    .gdAdminDatabaseLive{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding:8px 11px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22)}
    .gdAdminDatabaseLive>span{font-size:12px;font-weight:850}
    .gdAdminDatabaseLive button{border-radius:999px;padding:7px 12px;background:rgba(255,255,255,.09);color:#fff;font-size:11px;font-weight:950;border:1px solid rgba(255,255,255,.10)}
    .gdAdminDatabaseLive button:disabled{opacity:.55}
    .gdAdminDatabaseActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
    .gdAdminDatabaseActions button,.gdAdminCourseRow button,.gdAdminPayloadToggle{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.09);color:#fff;font-size:11px;font-weight:950}
    .gdAdminDatabaseFilters{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(120px,1fr) minmax(120px,1fr);gap:8px;margin-bottom:10px}
    .gdAdminDatabaseFilters input,.gdAdminDatabaseFilters select{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22);color:#fff;padding:10px 11px;font-size:12px;font-weight:850}
    .gdAdminDatabaseSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:7px;margin:8px 0 10px}
    .gdAdminDatabaseSummary:empty{display:none}
    .gdAdminDatabaseMetric{min-width:0;padding:8px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}
    .gdAdminDatabaseMetric span{display:block;color:rgba(255,255,255,.52);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
    .gdAdminDatabaseMetric strong{display:block;margin-top:3px;color:#fff;font-size:13px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .gdAdminCourseList,.gdAdminCourseDetail{display:grid;gap:8px}
    .gdAdminCourseRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:14px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
    .gdAdminCourseRow strong{display:block;color:#fff;font-size:13px;font-weight:950;line-height:1.15}
    .gdAdminCourseRow span{display:block;margin-top:4px;color:rgba(255,255,255,.58);font-size:10px;font-weight:800;line-height:1.3}
    .gdAdminCourseBadges{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
    .gdAdminCourseBadge{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:2px 7px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.70);font-size:9px;font-weight:950}
    .gdAdminCourseBadge.ok{background:rgba(31,211,109,.15);color:#73ffae}
    .gdAdminCourseBadge.warn{background:rgba(255,210,135,.14);color:#ffd287}
    .gdAdminCourseDetail{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
    .gdAdminCourseDetail:empty{display:none}
    .gdAdminCourseDetailHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
    .gdAdminCourseDetailHead h4{margin:0;color:#fff;font-size:15px;font-weight:950}
    .gdAdminCourseDetailHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:10px;font-weight:800;line-height:1.3}
    .gdAdminCourseTabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
    .gdAdminCourseTabs button{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.72);font-size:10px;font-weight:950}
    .gdAdminCourseTabs button.active{background:rgba(31,211,109,.16);color:#82ffb6}
    .gdAdminCourseVisualGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}
    .gdAdminCourseVisualProducts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
    .gdAdminCourseVisualSlot{min-width:0;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);overflow:hidden}
    .gdAdminCourseVisualSlot.product{background:rgba(0,0,0,.22);border-color:rgba(255,255,255,.10)}
    .gdAdminCourseVisualSlot.wide{grid-column:1/-1}
    .gdAdminCourseVisualSlotHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px}
    .gdAdminCourseVisualSlot strong{color:#fff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    .gdAdminCourseVisualSlot small{color:rgba(255,255,255,.52);font-size:10px;font-weight:850;white-space:nowrap}
    .gdAdminCourseVisualFrame{display:grid;place-items:center;width:100%;height:clamp(180px,26vw,320px);overflow:auto;background:#10130f;overscroll-behavior:contain}
    .gdAdminCourseVisualSlot.product .gdAdminCourseVisualFrame{position:relative}
    .gdAdminCourseVisualSlot.product .gdAdminCourseVisualFrame{height:clamp(280px,42vw,620px)}
    .gdAdminCourseVisualFrame.stitch{height:clamp(280px,48vw,560px);background:#0b100e}
    .gdAdminCourseVisualFrame img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
    .gdAdminCourseVisualInline{display:grid;place-items:center;width:100%;height:100%;min-height:180px}
    .gdAdminCourseVisualInline svg{display:block;max-width:100%;max-height:100%;width:auto;height:auto}
    .gdAdminCourseVisualStitch{display:grid;place-items:center;width:100%;height:100%;min-height:260px;padding:10px;box-sizing:border-box}
    .gdAdminCourseVisualStitch svg{display:block;width:100%;height:100%;min-height:240px}
    .gdAdminCourseVisualFrame.scroll{place-items:start center}
    .gdAdminCourseVisualFrame.scroll img{width:100%;height:auto;max-width:none;max-height:none}
    .gdAdminCourseVisualFrame.scroll .gdAdminCourseVisualInline{place-items:start center}
    .gdAdminCourseVisualFrame.scroll .gdAdminCourseVisualInline svg{width:100%;height:auto;max-width:none;max-height:none}
    .gdAdminCourseVisualEmpty{display:grid;place-items:center;width:100%;height:100%;min-height:180px;color:rgba(255,255,255,.48);font-size:11px;font-weight:850;background:#10130f}
    .gdAdminCourseVisualMeta{display:flex;gap:6px;flex-wrap:wrap;padding:7px 9px;border-top:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.55);font-size:10px;font-weight:850}
    .gdAdminCourseVisualStages{display:flex;gap:5px;flex-wrap:wrap;padding:8px 9px;border-top:1px solid rgba(255,255,255,.06)}
    .gdAdminCourseVisualStage{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:2px 7px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.48);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
    .gdAdminCourseVisualStage.ready{background:rgba(31,211,109,.15);color:#76ffae}
    .gdAdminCourseVisualStage.pending{background:rgba(255,210,135,.12);color:#ffd287}
    .gdAdminCourseVisualNotice{padding:8px 9px;border-radius:10px;border:1px solid rgba(255,210,135,.18);background:rgba(255,210,135,.08);color:#ffd287;font-size:10px;font-weight:850;line-height:1.35}
    .gdAdminCourseVisualControls{display:grid;grid-template-columns:140px repeat(5,minmax(92px,1fr));gap:8px;align-items:end;margin:8px 0}
    .gdAdminCourseVisualControls label{display:grid;gap:4px;color:rgba(255,255,255,.56);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    .gdAdminCourseVisualControls select,.gdAdminCourseVisualControls input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(0,0,0,.22);color:#fff;padding:8px;font-size:11px;font-weight:850}
    .gdAdminCourseVisualControls label.gdAdminCourseVisualCheck{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(0,0,0,.16)}
    .gdAdminCourseVisualControls label.gdAdminCourseVisualCheck input{width:18px;height:18px;accent-color:#1fd36d}
    .gdAdminCourseVisualPresetRail{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px}
    .gdAdminCourseVisualPresetRail button{border-radius:12px;padding:8px 9px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.72);font-size:10px;font-weight:950;text-align:left}
    .gdAdminCourseVisualPresetRail button.active{background:rgba(31,211,109,.18);color:#7cffb3;box-shadow:inset 0 0 0 1px rgba(124,255,179,.24)}
    .gdAdminCourseVisualActions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}
    .gdAdminCourseVisualActions button{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.09);color:#fff;font-size:11px;font-weight:950}
    .gdAdminCourseVisualActions button.primary{background:#1fd36d;color:#07100a}
    .gdAdminCourseVisualActions span{color:rgba(255,255,255,.52);font-size:10px;font-weight:850}
    .gdAdminCourseVisualActions button[disabled]{opacity:.45;cursor:default}
    /* Active-recipe area: the dock's Recipe tab and the strip above the phone. */
    .gdAdminRecipeCenter{display:grid;gap:8px}
    .gdAdminRecipeUpdateBlock{display:grid;gap:6px;padding:9px;border-radius:12px;background:rgba(31,211,109,.07);border:1px solid rgba(31,211,109,.20)}
    .gdAdminRecipeUpdateBlock strong{color:#83ffb7;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    .gdAdminRecipeUpdateBlock .gdAdminCourseVisualActions{margin:0}
    .gdAdminCourseActiveRecipeStrip{margin:6px 0}
    .gdAdminCourseActiveRecipeStrip button{border-radius:999px;padding:4px 10px;min-height:22px;background:rgba(31,211,109,.18);color:#83ffb7;font-size:10px;font-weight:950}
    .gdAdminCourseActiveRecipeStrip button[disabled]{background:rgba(255,255,255,.07);color:rgba(255,255,255,.45);cursor:default}
    .gdAdminCourseActiveRecipeStrip button.gdAdminInlineLink{background:none;color:rgba(255,255,255,.62)}
    .gdAdminCourseVisualDiag{max-height:220px;overflow:auto;border-radius:12px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.07);padding:8px;font:800 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.72);white-space:pre-wrap}
    .gdAdminCourseHoleScroll{overflow:auto;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16)}
    .gdAdminCourseHoleTable{min-width:900px;width:100%;border-collapse:collapse;font:800 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.76)}
    .gdAdminCourseHoleTable th,.gdAdminCourseHoleTable td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;vertical-align:top}
    .gdAdminCourseHoleTable th{position:sticky;top:0;background:#15120d;color:rgba(255,255,255,.56);font-size:9px;text-transform:uppercase;letter-spacing:.05em;z-index:1}
    .gdAdminPayloadPreview{display:none;margin-top:8px;padding:9px;border-radius:13px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);max-height:280px;overflow:auto;color:rgba(255,255,255,.80);font:800 10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
    .gdAdminPayloadPreview.open{display:block}
    .gdAdminCourseTableWrap{overflow:auto;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.15)}
    .gdAdminCourseTable{min-width:820px;width:100%;border-collapse:collapse;font:850 10px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.78)}
    .gdAdminCourseTable th,.gdAdminCourseTable td{padding:8px 9px;border-bottom:1px solid rgba(255,255,255,.055);text-align:left;white-space:nowrap}
    .gdAdminCourseTable th{position:sticky;top:0;z-index:1;background:#17130c;color:rgba(255,255,255,.52);font-size:8.5px;text-transform:uppercase;letter-spacing:.07em}
    .gdAdminCourseTable tr{cursor:pointer}
    .gdAdminCourseTable tr:hover,.gdAdminCourseTable tr.active{background:rgba(31,211,109,.075)}
    .gdAdminCourseTable tr.active td:first-child{color:#fff}
    .gdAdminCourseNameCell{min-width:190px;max-width:260px;overflow:hidden;text-overflow:ellipsis;color:#fff;font:950 11px/1.25 Inter,system-ui,sans-serif}
    .gdAdminCourseStatusDot{display:inline-flex;align-items:center;gap:5px}
    .gdAdminCourseStatusDot:before{content:"";width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.34);box-shadow:0 0 0 2px rgba(255,255,255,.06)}
    .gdAdminCourseStatusDot.ok:before{background:#1fd36d;box-shadow:0 0 0 2px rgba(31,211,109,.15)}
    .gdAdminCourseStatusDot.warn:before{background:#ffd287;box-shadow:0 0 0 2px rgba(255,210,135,.13)}
    .gdAdminCourseStatusDot.bad:before{background:#ff7d7d;box-shadow:0 0 0 2px rgba(255,125,125,.13)}
    .gdAdminCourseCaret{display:inline-block;width:9px;color:rgba(255,255,255,.4);font-size:9px}
    .gdAdminCourseTable tr.expanded{background:rgba(31,211,109,.075)}
    .gdAdminCourseTable tr.expanded .gdAdminCourseCaret{color:#1fd36d}
    .gdAdminCourseTable tr.gdAdminCourseDiagRowHost{cursor:default;background:rgba(0,0,0,.22)}
    .gdAdminCourseTable tr.gdAdminCourseDiagRowHost:hover{background:rgba(0,0,0,.22)}
    .gdAdminCourseTable tr.gdAdminCourseDiagRowHost>td{padding:0}
    .gdAdminCourseDiag{display:grid;gap:9px;padding:11px 13px 13px;border-top:1px solid rgba(255,255,255,.07)}
    .gdAdminCourseDiagWhy{border-radius:10px;padding:9px 11px;font:800 11.5px/1.45 Inter,system-ui,sans-serif;border:1px solid rgba(255,210,135,.22);background:rgba(255,210,135,.08);color:#ffd287}
    .gdAdminCourseDiagWhy.bad{border-color:rgba(255,125,125,.26);background:rgba(255,125,125,.09);color:#ff9d9d}
    .gdAdminCourseDiagGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:5px 16px}
    .gdAdminCourseDiagRow{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05);font:700 10.5px/1.4 Inter,system-ui,sans-serif;color:rgba(255,255,255,.5)}
    .gdAdminCourseDiagRow strong{color:#fff;font-weight:850;text-align:right;word-break:break-word}
    .gdAdminCourseActionPanel{display:grid;gap:10px;margin-top:10px;padding:10px;border-radius:14px;background:rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.07)}
    .gdAdminCourseActionHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
    .gdAdminCourseActionHead h4{margin:0;color:#fff;font-size:15px;font-weight:950}
    .gdAdminCourseActionHead span{display:block;margin-top:3px;color:rgba(255,255,255,.56);font-size:10px;font-weight:850;line-height:1.3}
    .gdAdminCourseActionRail{display:flex;gap:6px;flex-wrap:wrap}
    .gdAdminCourseActionRail button{border-radius:999px;padding:8px 10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.74);font-size:10px;font-weight:950}
    .gdAdminCourseActionRail button.active{background:rgba(31,211,109,.18);color:#83ffb7}
    .gdAdminCourseActionRail button.danger{background:rgba(255,103,103,.11);color:#ffb0b0}
    .gdAdminCourseActionRail button.primary{background:#1fd36d;color:#06110b}
    /* Rebuild is a menu, not a button: the four maintenance modes are different entry points
       into the course pipeline and putting them on the rail as equal pills is what would make
       them read as aliases for one another. <details> rather than a scripted popover so the
       toggle, the keyboard behaviour and the close-on-second-click are the browser's. */
    .gdAdminRebuildMenu{position:relative}
    .gdAdminRebuildMenu>summary{list-style:none;cursor:pointer;border-radius:999px;padding:8px 10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.74);font-size:10px;font-weight:950}
    .gdAdminRebuildMenu>summary::-webkit-details-marker{display:none}
    .gdAdminRebuildMenu>summary::after{content:" \25BE";opacity:.6}
    .gdAdminRebuildMenu[open]>summary{background:rgba(31,211,109,.18);color:#83ffb7}
    .gdAdminRebuildMenuList{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:246px;display:flex;flex-direction:column;gap:3px;padding:6px;border-radius:12px;background:#0d1712;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 30px rgba(0,0,0,.55)}
    .gdAdminCourseActionRail .gdAdminRebuildMenuList button{display:block;width:100%;text-align:left;border-radius:8px;padding:8px 10px;background:transparent;color:rgba(255,255,255,.86)}
    .gdAdminCourseActionRail .gdAdminRebuildMenuList button:hover{background:rgba(255,255,255,.08)}
    .gdAdminCourseActionRail .gdAdminRebuildMenuList button.danger{color:#ffb0b0}
    .gdAdminCourseActionRail .gdAdminRebuildMenuList button.danger:hover{background:rgba(255,103,103,.13)}
    /* The scope line under each mode - what it leaves alone is the thing worth reading. */
    .gdAdminRebuildMenuList button small{display:block;margin-top:3px;font-size:9px;font-weight:700;line-height:1.35;color:rgba(255,255,255,.48);letter-spacing:0;text-transform:none;white-space:normal}
    .gdAdminCourseWorkspace{display:grid;gap:10px}
    /* Watch Map viewer - a plain inspection window, deliberately NOT a fake Apple Watch bezel
       (see the task's own instruction against drawing one). Fixed pixel box regardless of the
       image's own aspect ratio, because every hole bakes a different shape; the image is panned
       and scaled inside it with a CSS transform rather than resized. */
    .gdAdminWatchMapViewer{display:grid;gap:8px}
    .gdAdminWatchMapGallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}
    .gdAdminWatchMapCard{overflow:hidden;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(0,0,0,.16)}
    .gdAdminWatchMapCard.selected{border-color:rgba(131,255,183,.72);box-shadow:0 0 0 1px rgba(131,255,183,.2)}
    .gdAdminWatchMapCard button{display:block;width:100%;padding:0;background:#0a120c;cursor:pointer}
    .gdAdminWatchMapCard img{display:block;width:100%;aspect-ratio:4/5;object-fit:contain}
    .gdAdminWatchMapCard div{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;font:850 10px/1.2 Inter,system-ui,sans-serif;color:#fff}
    .gdAdminWatchMapCard a{color:#83ffb7;font-size:9px;text-decoration:none}
    .gdAdminWatchMapToolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font:800 10px/1.4 Inter,system-ui,sans-serif;color:rgba(255,255,255,.62)}
    .gdAdminWatchMapToolbar button{border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.74);font-size:10px;font-weight:950}
    .gdAdminWatchMapToolbar button.active{background:rgba(31,211,109,.18);color:#83ffb7}
    .gdAdminWatchMapToolbar select{border-radius:8px;padding:5px 8px;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.12);font-size:10px;font-weight:800}
    .gdAdminWatchMapStage{position:relative;overflow:hidden;border-radius:14px;background:#0a120c;border:1px solid rgba(255,255,255,.10);cursor:grab;touch-action:none;max-width:100%}
    .gdAdminWatchMapStage:active{cursor:grabbing}
    .gdAdminWatchMapStage img{position:absolute;left:0;top:0;transform-origin:0 0;image-rendering:pixelated;user-select:none;-webkit-user-drag:none}
    .gdAdminWatchMapDot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}
    .gdAdminWatchMapDot i{width:9px;height:9px;border-radius:999px;background:#ff5d8f;border:2px solid #fff;box-shadow:0 0 0 2px rgba(0,0,0,.4)}
    .gdAdminWatchMapDot span{font:900 9px/1 Inter,system-ui,sans-serif;color:#fff;background:rgba(0,0,0,.6);border-radius:4px;padding:2px 4px;white-space:nowrap}
    .gdAdminWatchMapDebugPanel{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 14px;padding:9px 11px;border-radius:10px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}
    .gdAdminWatchMapDebugPanel div{display:flex;justify-content:space-between;gap:8px;padding:2px 0;font:700 10px/1.4 Inter,system-ui,sans-serif;color:rgba(255,255,255,.5)}
    .gdAdminWatchMapDebugPanel div b{color:rgba(255,255,255,.8);font-weight:850;text-transform:uppercase;letter-spacing:.03em;font-size:9px}
    .gdAdminWatchMapDebugPanel div span{color:#fff;text-align:right;word-break:break-word}
    .gdAdminWatchMapErrorList{margin:6px 0 0;padding-left:16px;font:700 10px/1.5 Inter,system-ui,sans-serif;color:#ffd287}
    .gdAdminWatchMapStatusLine{margin-bottom:2px}
    /* Indeterminate - the bake is one blocking request with no midpoint to report (see
       gd-admin-watch-map-viewer.js's generate()), so this shows a sliding highlight rather than
       a fake percentage. The point is only to be visible the instant the button is clicked. */
    /* THE progress bar. One component for every long action in the Course Database - automap,
       Collect Extra Objects, Refine Shapes, the visual scan, the frame bake and the Watch map
       bake. It replaced two unrelated bars (a determinate pill that only the visual build had,
       and an indeterminate sweep that only the Watch bake had), because the question an admin
       is asking is identical in all six cases and so the answer should look identical too.
       Percentage lives on the right, always in the same place, so it can be compared against
       the last time you looked without re-reading the line. */
    .gdAdminProgressBar{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;margin-top:6px;min-height:24px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}
    .gdAdminProgressBarFill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(31,211,109,.28);transition:width .4s ease}
    .gdAdminProgressBarLabel{position:relative;z-index:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:850 10px/1.4 Inter,system-ui,sans-serif;letter-spacing:.03em;text-transform:uppercase;color:#d8ffe8}
    .gdAdminProgressBarPct{position:relative;z-index:1;flex:0 0 auto;font:850 10px/1.4 Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;color:#d8ffe8}
    /* No count and no known phase - the source genuinely cannot say how far along it is, so the
       fill sweeps instead of claiming a number. See gd-progress-core.js on why a time-based
       percentage is not offered as a substitute. */
    .gdAdminProgressBarIndeterminate .gdAdminProgressBarFill{width:40%;left:-40%;background:linear-gradient(90deg,rgba(31,211,109,0),rgba(31,211,109,.55),rgba(31,211,109,0));animation:gdAdminProgressBarSweep 1.1s ease-in-out infinite;transition:none}
    /* Stalled reads as amber and stops the fill animating - a bar that keeps easing while
       nothing is happening is the opposite of the signal wanted here. */
    .gdAdminProgressBarStalled{border-color:rgba(255,210,135,.35)}
    .gdAdminProgressBarStalled .gdAdminProgressBarFill{background:rgba(255,210,135,.26);transition:none;animation:none}
    .gdAdminProgressBarStalled .gdAdminProgressBarLabel,.gdAdminProgressBarStalled .gdAdminProgressBarPct{color:#ffd287}
    @keyframes gdAdminProgressBarSweep{0%{left:-40%}100%{left:100%}}
    @media (prefers-reduced-motion:reduce){.gdAdminProgressBarIndeterminate .gdAdminProgressBarFill{animation:none;left:0;width:100%;opacity:.35}}
    .gdAdminCourseDebugWindow{display:grid;gap:10px}
    .gdAdminCourseDebugWindow .gdCoursePlayDebug{display:block;margin:0}
    .gdAdminCourseStageLine{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
    .gdAdminCourseStageLine span{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:3px 8px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.62);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
    .gdAdminCourseStageLine span.ready{background:rgba(31,211,109,.14);color:#83ffb7}
    .gdAdminCourseStageLine span.warn{background:rgba(255,210,135,.12);color:#ffd287}
    /* Checkpoint captions under the bar - the two-stage story the visual pipeline tells that a
       single percentage cannot ("capture complete, treatment queued"). */
    .gdAdminProgressCheckpoints{display:block;margin-top:4px;font-size:9px;font-weight:800;letter-spacing:.03em;color:rgba(255,255,255,.5)}
    .gdAdminProgressCheckpoints span{display:block}
    .gdAdminBuildNudge{border:1px solid rgba(255,210,135,.35);background:rgba(255,210,135,.1);color:#ffd287;border-radius:999px;padding:3px 10px;min-height:22px;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
    .gdAdminBuildNudge:hover{background:rgba(255,210,135,.2)}
    /* Offline map offer. Sits above the bottom controls rather than over the map, and never
       blocks: a player seeing this is on a course, possibly mid-round. */
    .gdCourseOfflineOffer{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:520;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(14,18,13,.94);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.45)}
    .gdCourseOfflineOffer[hidden]{display:none}
    .gdCourseOfflineOfferText{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
    .gdCourseOfflineOfferText strong{color:#fff;font-size:12px;font-weight:900;letter-spacing:.01em}
    .gdCourseOfflineOfferText span{color:rgba(255,255,255,.6);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gdCourseOfflineOfferActions{display:flex;gap:8px;flex:0 0 auto}
    .gdCourseOfflineOfferActions button{border-radius:999px;padding:8px 14px;font-size:11px;font-weight:900;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.7)}
    .gdCourseOfflineDownload{border-color:transparent!important;background:linear-gradient(180deg,#f0b463,#e09441)!important;color:#1a1206!important}
    .gdCourseOfflineBar{flex:0 0 92px;height:6px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
    .gdCourseOfflineBar i{display:block;height:100%;background:#83ffb7;transition:width .3s ease}
    .gdAdminCourseVisualLifecycle b{color:rgba(255,255,255,.35);font-size:10px;font-weight:400}
    .gdAdminCourseHoleNote{color:rgba(255,255,255,.45);font-size:9px;text-transform:uppercase;letter-spacing:.04em;margin-left:4px}
    .gdAdminCourseSettings{border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.15);overflow:hidden}
    .gdAdminCourseSettings summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 11px;color:#fff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
    .gdAdminCourseSettings summary::-webkit-details-marker{display:none}
    .gdAdminCourseSettings summary:after{content:"v";color:rgba(255,255,255,.52);font-size:12px}
    .gdAdminCourseSettings[open] summary{border-bottom:1px solid rgba(255,255,255,.07)}
    .gdAdminCourseSettings[open] summary:after{content:"^"}
    .gdAdminCourseSettingsBody{display:grid;gap:10px;padding:10px}
    .gdAdminScorecardTable{min-width:620px;width:100%;border-collapse:collapse;font:850 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.76)}
    .gdAdminScorecardTable th,.gdAdminScorecardTable td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.055);text-align:left}
    .gdAdminScorecardTable th{position:sticky;top:0;background:#10130f;color:rgba(255,255,255,.55);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em}
    .gdAdminPhonePreviewShell{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}
    .gdAdminPhoneStage{display:flex;align-items:flex-start;gap:10px}
    .gdAdminPhoneStage .gdAdminPhone{flex:0 0 auto;width:min(300px,80vw)}
    .gdAdminPhoneInfo{display:grid;gap:8px}
    .gdAdminPhoneInfo strong{color:#fff;font-size:15px;font-weight:950}
    .gdAdminPhoneInfo span{color:rgba(255,255,255,.58);font-size:11px;font-weight:850;line-height:1.35}
    .gdAdminPhoneControls{display:flex;gap:7px;flex-wrap:wrap}
    .gdAdminPhoneControls button{border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.09);color:#fff;font-size:11px;font-weight:950}
    .gdAdminPhone{width:min(100%,360px);aspect-ratio:9/16;border-radius:32px;padding:12px;background:#050807;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 44px rgba(0,0,0,.42);box-sizing:border-box}
    .gdAdminPhoneScreen{position:relative;width:100%;height:100%;border-radius:24px;overflow:hidden;background:#10130f;border:1px solid rgba(255,255,255,.10)}
    .gdAdminPhoneScreen .gdAdminCourseVisualInline,.gdAdminPhoneScreen .gdAdminCourseVisualInline svg,.gdAdminPhoneScreen img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
    .gdAdminPhoneFrameCrop{position:absolute;inset:0;overflow:hidden;background:#10130f}
    .gdAdminPhoneFrameCrop>.gdAdminCourseVisualInline,.gdAdminPhoneFrameCrop>img{position:absolute;left:var(--gd-phone-frame-left,0);top:var(--gd-phone-frame-top,0);width:var(--gd-phone-frame-width,100%)!important;height:var(--gd-phone-frame-height,100%)!important;max-width:none;max-height:none}
    .gdAdminPhoneFrameCrop>.gdAdminCourseVisualInline svg{width:100%!important;height:100%!important;max-width:none;max-height:none}
    .gdAdminPhoneFrameCrop svg [data-role="gps-play-frame"],.gdAdminPhoneFrameCrop svg [data-role="capture-overflow-frame"]{display:none}
    .gdAdminPhoneHud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;gap:8px;padding:10px;background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,0));color:#fff;font-size:10px;font-weight:950;z-index:2}
    .gdAdminPhoneHud b{font-size:15px}
    .gdAdminPhoneNav{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;gap:8px;z-index:2}
    .gdAdminPhoneNav button{border-radius:999px;padding:8px 11px;background:rgba(0,0,0,.62);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:10px;font-weight:950}
    .gdAdminPhoneFrameHost{position:absolute;inset:0;touch-action:none}
    /* Effect switches: the on/off state of a group must be readable at a glance and
       flippable without knowing any slider's neutral value. */
    .gdAdminEffectToggle{display:flex;align-items:center;gap:8px;margin:2px 0 8px;cursor:pointer;user-select:none}
    .gdAdminEffectToggle input{position:absolute;opacity:0;pointer-events:none}
    .gdAdminEffectSwitch{flex:none;width:30px;height:17px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2);position:relative;transition:background .15s ease}
    .gdAdminEffectSwitch:after{content:"";position:absolute;left:2px;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;opacity:.75;transition:transform .15s ease,opacity .15s ease}
    .gdAdminEffectToggle input:checked+.gdAdminEffectSwitch{background:rgba(31,211,109,.55)}
    .gdAdminEffectToggle input:checked+.gdAdminEffectSwitch:after{transform:translateX(13px);opacity:1}
    .gdAdminEffectName{color:#fff;font-size:11px;font-weight:950}
    .gdAdminEffectState{margin-left:auto;color:rgba(255,255,255,.5);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    .gdAdminEffectToggle input:checked~.gdAdminEffectState{color:#83ffb7}
    .gdAdminEffectBody{display:grid;gap:inherit}
    .gdAdminEffectBodyOff{opacity:.38;pointer-events:none;filter:saturate(.4)}
    /* Slider zero-points: a notch on the track at the value that changes nothing, and a
       live readout that names the number - "· no effect" when the control sits on it. */
    .gdAdminRangeHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
    .gdAdminRangeValue{flex:none;color:#fff;font-size:10px;font-weight:950;letter-spacing:0;text-transform:none}
    .gdAdminRangeValue.neutral{color:rgba(255,255,255,.42)}
    .gdAdminRangeWrap{position:relative;display:block}
    .gdAdminRangeWrap input{position:relative;z-index:1;background:transparent}
    .gdAdminRangeZero{position:absolute;top:50%;left:0;width:2px;height:16px;transform:translate(-50%,-50%);border-radius:1px;background:rgba(255,255,255,.5);pointer-events:none}
    /* Zoom chip: appears only while zoomed, above the HUD, small enough to ignore. */
    .gdAdminPhoneZoomChip{position:absolute;right:10px;top:44px;z-index:3;display:flex;align-items:center;gap:7px;padding:4px 6px 4px 10px;border-radius:999px;background:rgba(0,0,0,.66);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:10px;font-weight:950}
    .gdAdminPhoneZoomChip[hidden]{display:none}
    .gdAdminPhoneZoomChip button{border-radius:999px;padding:3px 8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
    /* Recipe Lab donor picker: label+select compact enough to sit inside a stage line. */
    .gdAdminRecipeLabDonorField{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.62);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
    .gdAdminRecipeLabDonorField select{max-width:200px;padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:11px;font-weight:800}
    /* Preview status strip. The operator needs one place that says whether the control
       they just released has reached the picture in front of them, and the bar is the
       proof that anything at all is happening between the two. */
    .gdAdminVisualPreviewStatus{display:grid;gap:5px;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
    .gdAdminVisualPreviewStatusText{color:rgba(255,255,255,.72);font-size:10px;font-weight:950;letter-spacing:.03em}
    .gdAdminVisualPreviewBar{display:block;height:3px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
    .gdAdminVisualPreviewBar>i{display:block;height:100%;width:0;border-radius:999px;background:rgba(31,211,109,.55);transition:width .16s linear}
    .gdAdminVisualPreviewStatus[data-state="rendering"] .gdAdminVisualPreviewStatusText{color:#cfe3cf}
    .gdAdminVisualPreviewStatus[data-state="displayed"] .gdAdminVisualPreviewStatusText{color:#83ffb7}
    .gdAdminVisualPreviewStatus[data-state="displayed"] .gdAdminVisualPreviewBar>i{background:rgba(31,211,109,.75)}
    .gdAdminVisualPreviewStatus[data-state="failed"] .gdAdminVisualPreviewStatusText,
    .gdAdminVisualPreviewStatus[data-state="timed-out"] .gdAdminVisualPreviewStatusText{color:#ffd287}
    .gdAdminVisualPreviewStatus[data-state="failed"] .gdAdminVisualPreviewBar>i,
    .gdAdminVisualPreviewStatus[data-state="timed-out"] .gdAdminVisualPreviewBar>i{background:rgba(255,210,135,.6)}
    /* Ingredient chips. Green is reserved for "provably in the frame on screen"; work in
       progress is neutral-bright, unconfirmed is dim. Nothing here is green by intent. */
    .gdAdminVisualIngredients span.work{background:rgba(140,200,255,.14);color:#bfe0ff}
    .gdAdminVisualIngredients span.wait{background:rgba(255,255,255,.06);color:rgba(255,255,255,.5)}
    @media (prefers-reduced-motion:reduce){.gdAdminVisualPreviewBar>i{transition:none}}
    .gdAdminPhoneEmpty{display:grid;place-items:center;width:100%;height:100%;padding:18px;box-sizing:border-box;color:rgba(255,255,255,.52);font-size:11px;font-weight:850;text-align:center}
    .gdAdminPhoneScreen .gdAdminPhoneFrameCrop{transition:transform .42s cubic-bezier(.2,.7,.2,1)}
    .gdAdminPhoneScreen.gdAdminPhoneTilted .gdAdminPhoneFrameCrop{transform:perspective(560px) rotateX(var(--gd-phone-tilt,34deg)) scale(.99);transform-origin:50% 98%}
    .gdAdminPhoneScreen.gdAdminPhoneTilted .gdAdminPhoneFrameCrop:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(to top,rgba(0,0,0,0) 42%,rgba(6,10,7,.58))}
    .gdAdminPhoneTiltPanel{display:grid;gap:6px;padding:10px;border-radius:12px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.08)}
    .gdAdminPhoneTiltReadout{display:flex;justify-content:space-between;align-items:center;font-size:9px;font-weight:950;color:rgba(255,255,255,.56);text-transform:uppercase;letter-spacing:.05em}
    .gdAdminPhoneTiltReadout b{color:#fff;font-size:12px}
    .gdAdminPhoneTiltReadout b.ready{color:#7cffb3}
    .gdAdminPhoneTiltReadout b.warn{color:#ffcf7c}
    .gdAdminPhoneTiltBtn{margin-top:2px;border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:11px;font-weight:950;cursor:pointer}
    .gdAdminPhoneTiltBtn.active{background:rgba(31,211,109,.2);border-color:rgba(124,255,179,.4);color:#7cffb3}
    .gdAdminPhoneTiltNote{color:rgba(255,255,255,.44);font-size:9px;font-weight:800;line-height:1.35;text-transform:none;letter-spacing:0}
    .gdAdminCourseVisualTuningHint{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
    .gdAdminInlineLink{background:none;border:none;padding:0;font:inherit;color:#6fffa6;text-decoration:underline;cursor:pointer}
    .gdAdminCourseVisualControls.gdAdminPhoneToolDock{display:flex;flex-direction:row;align-items:flex-start;gap:8px;margin:0}
    .gdAdminPhoneToolRail{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
    .gdAdminPhoneTool{width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:19px;line-height:1;cursor:pointer}
    .gdAdminPhoneTool span{filter:grayscale(.15)}
    .gdAdminPhoneTool.active{background:rgba(111,255,166,.16);border-color:rgba(111,255,166,.5);box-shadow:0 0 0 1px rgba(111,255,166,.28)}
    .gdAdminPhoneToolFlyout{position:relative;flex:0 0 auto}
    .gdAdminPhoneToolDock:not(.gdAdminPhoneToolDockOpen) .gdAdminPhoneToolFlyout{display:none}
    .gdAdminPhoneToolPanel{width:236px;box-sizing:border-box;display:grid;gap:10px;padding:12px;border-radius:14px;background:rgba(11,15,11,.95);border:1px solid rgba(255,255,255,.14);box-shadow:0 16px 40px rgba(0,0,0,.4)}
    .gdAdminPhoneToolPanel[hidden]{display:none}
    .gdAdminPhoneToolPanel h4{margin:0;color:#fff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
    .gdAdminPhoneToolPanel label{display:grid;gap:4px;color:rgba(255,255,255,.56);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    .gdAdminPhoneToolPanel select,.gdAdminPhoneToolPanel input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(0,0,0,.22);color:#fff;padding:8px;font-size:11px;font-weight:850}
    .gdAdminPhoneToolPanel label.gdAdminCourseVisualCheck{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(0,0,0,.16)}
    .gdAdminPhoneToolPanel label.gdAdminCourseVisualCheck input{width:18px;height:18px;accent-color:#1fd36d}
    .gdAdminPhoneToolPanel .gdAdminCourseVisualPresetRail{grid-template-columns:1fr 1fr}
    .gdAdminPhoneToolPanel .gdAdminCourseVisualActions{margin:0}
    @media(max-width:720px){.gdAdminPhonePreviewShell{grid-template-columns:1fr}.gdAdminPhone{justify-self:center}.gdAdminPhoneStage{flex-wrap:wrap;justify-content:center}.gdAdminPhoneToolFlyout{flex:1 1 100%}.gdAdminPhoneToolPanel{width:100%}.gdAdminCourseActionHead{display:grid}.gdAdminCourseVisualProducts{grid-template-columns:1fr}}
    @media(max-width:620px){.gdAdminDatabaseFilters,.gdAdminCourseVisualGrid,.gdAdminCourseVisualControls{grid-template-columns:1fr}.gdAdminDatabaseHead,.gdAdminCourseDetailHead{display:grid}.gdAdminDatabaseActions{justify-content:flex-start}.gdAdminCourseRow{grid-template-columns:1fr}}
    #gdCoursePlayMonitor{display:none;position:fixed;left:max(10px,env(safe-area-inset-left));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 10px);z-index:2600;width:min(318px,calc(100vw - 20px));max-height:min(46vh,360px);overflow:hidden;padding:10px 11px;border-radius:16px;background:rgba(5,13,9,.90);border:1px solid rgba(31,211,109,.24);box-shadow:0 18px 42px rgba(0,0,0,.38);backdrop-filter:blur(12px);color:#fff;pointer-events:auto;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
    body[data-gd-permission="admin"].gdCoursePlayDebugOn #gdCoursePlayMonitor{display:block}
    #gdCoursePlayMonitor.gdCpmCollapsed{width:min(268px,calc(100vw - 20px));padding:8px 10px}
    #gdCoursePlayMonitor .gdCpmHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:7px}
    #gdCoursePlayMonitor.gdCpmCollapsed .gdCpmHead{margin-bottom:0}
    #gdCoursePlayMonitor .gdCpmHead strong{font-size:13px;font-weight:950;line-height:1.05}
    #gdCoursePlayMonitor .gdCpmHead span{display:block;margin-top:2px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:205px}
    #gdCoursePlayMonitor .gdCpmActions{display:flex;align-items:center;gap:6px}
    #gdCoursePlayMonitor .gdCpmBadge{border-radius:999px;padding:3px 7px;background:rgba(31,211,109,.14);border:1px solid rgba(31,211,109,.24);color:#8dffbc;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
    #gdCoursePlayMonitor .gdCpmToggle{width:25px;height:24px;border:0;border-radius:999px;background:rgba(255,255,255,.10);color:#fff;font-size:14px;font-weight:950;line-height:1;display:inline-grid;place-items:center;padding:0;cursor:pointer}
    #gdCoursePlayMonitor .gdCpmGrid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:7px}
    #gdCoursePlayMonitor .gdCpmMetric{min-width:0;padding:6px 7px;border-radius:10px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.065)}
    #gdCoursePlayMonitor .gdCpmMetric span{display:block;color:rgba(255,255,255,.48);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.055em}
    #gdCoursePlayMonitor .gdCpmMetric strong{display:block;margin-top:2px;color:#fff;font-size:12px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #gdCoursePlayMonitor .gdCpmLast{margin:0 0 6px;color:rgba(255,255,255,.74);font-size:10px;font-weight:850;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #gdCoursePlayMonitor .gdCpmEvents{max-height:96px;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);padding-top:5px}
    #gdCoursePlayMonitor .gdCpmEvent{color:rgba(255,255,255,.66);font:800 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    @media(max-width:520px){#gdCoursePlayMonitor{left:8px;bottom:calc(max(8px,env(safe-area-inset-bottom)) + 8px);width:min(286px,calc(100vw - 16px));padding:9px}#gdCoursePlayMonitor .gdCpmGrid{grid-template-columns:1fr 1fr}#gdCoursePlayMonitor .gdCpmMetric{padding:5px 6px}#gdCoursePlayMonitor .gdCpmHead span{max-width:170px}}
    .gdLmActions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}
    .gdLmActions button{border-radius:14px;padding:11px 10px;background:rgba(255,255,255,.09);font-size:13px}
    .gdLmActions .primary{background:linear-gradient(180deg,#d7b06b,#c58d35);color:#071008}
    .gdUploadFileButton{position:relative;display:grid;place-items:center;border-radius:14px;padding:12px 10px;background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.10);font-size:13px;font-weight:900;text-align:center;cursor:pointer;overflow:hidden}
    .gdLmActions .gdUploadFileButton{padding:11px 10px}
    #gdLmUploadInput,#gdLmGlobalUploadInput,.gdUploadFileInput{position:fixed;left:-10000px;top:0;width:1px;height:1px;opacity:0;pointer-events:none}
    .gdLmResult{display:grid;gap:8px}
    .gdLmSummary{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px;border-radius:15px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
    .gdLmSummary span{display:block;color:rgba(255,255,255,.6);font-size:11px;font-weight:800;line-height:1.3}
    .gdLmSummary strong{font-size:18px;color:#fff}
    .gdLmSummary.good strong{color:#21d07b}.gdLmSummary.warn strong{color:#ffcf70}.gdLmSummary.bad strong{color:#ff5a5f}
    .gdLmRows{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .gdLmRows .gdLmSummary strong{font-size:14px;text-align:right}
    .gdNativePracticeImport{display:grid;gap:10px;margin-top:10px;padding:12px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
    .gdNativePracticeHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .gdNativePracticeHead strong{display:block;color:#fff;font-size:14px;font-weight:950;line-height:1.1}
    .gdNativePracticeHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;line-height:1.3}
    .gdNativePracticeBadge{border-radius:999px;padding:5px 8px;background:rgba(33,208,123,.12);border:1px solid rgba(33,208,123,.22);color:#8cffbf;font-size:9px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdNativePracticeInput{width:100%;box-sizing:border-box;min-height:118px;resize:vertical;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22);color:#fff;padding:10px 11px;font:800 12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}
    .gdNativePracticeButtons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
    .gdNativePracticeButtons button{border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:11px 10px;background:rgba(255,255,255,.09);color:#fff;font-size:12px;font-weight:950}
    .gdNativePracticeButtons .primary{background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}
    .gdNativePracticeButtons button:disabled{opacity:.46;cursor:not-allowed}
    .gdNativePracticeSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
    .gdNativePracticeMetric{padding:8px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07)}
    .gdNativePracticeMetric span{display:block;color:rgba(255,255,255,.52);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
    .gdNativePracticeMetric strong{display:block;margin-top:3px;color:#fff;font-size:14px;font-weight:950}
    .gdNativePracticeFeedback{display:grid;gap:8px;border-radius:15px;padding:10px;background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.09)}
    .gdNativePracticeFeedbackHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .gdNativePracticeFeedbackHead strong{display:block;color:#fff;font-size:13px;font-weight:950;line-height:1.1}
    .gdNativePracticeFeedbackHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;line-height:1.3}
    .gdNativePracticeStatusPill{border-radius:999px;padding:5px 8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:rgba(255,255,255,.78);font-size:9px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdNativePracticeStatusPill.parsing,.gdNativePracticeStatusPill.file_selected,.gdNativePracticeStatusPill.photo_selected{color:#ffd287;border-color:rgba(215,176,107,.30);background:rgba(215,176,107,.12)}
    .gdNativePracticeStatusPill.parsed,.gdNativePracticeStatusPill.ready_to_save,.gdNativePracticeStatusPill.saved{color:#8cffbf;border-color:rgba(33,208,123,.28);background:rgba(31,211,109,.10)}
    .gdNativePracticeStatusPill.failed{color:#ffb5bd;border-color:rgba(255,90,95,.28);background:rgba(255,90,95,.12)}
    .gdNativePracticeFeedbackGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
    .gdNativePracticeFeedbackItem{min-width:0;border-radius:11px;padding:7px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07)}
    .gdNativePracticeFeedbackItem span{display:block;color:rgba(255,255,255,.48);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .gdNativePracticeFeedbackItem strong{display:block;margin-top:3px;color:#fff;font-size:11px;font-weight:950;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gdNativePracticeFeedbackLists{display:grid;gap:5px;color:rgba(255,255,255,.68);font-size:10px;font-weight:850;line-height:1.35}
    .gdNativePracticeFeedbackLists b{color:#fff;font-weight:950}
    .gdNativePracticeFeedbackLists .warn{color:#ffd287}
    .gdNativePracticeFeedbackLists .error{color:#ffb5bd}
    .gdNativePracticeFeedbackAction{margin-top:3px}
    .gdNativePracticeFeedbackAction button{width:100%;border:0;border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b;font-size:12px;font-weight:950}
    .gdNativePracticeTableWrap{overflow:auto;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16)}
    .gdNativePracticeTable{min-width:760px;width:100%;border-collapse:collapse;font:800 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.78)}
    .gdNativePracticeTable th,.gdNativePracticeTable td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;vertical-align:top}
    .gdNativePracticeTable th{position:sticky;top:0;background:#101713;color:rgba(255,255,255,.56);font-size:9px;text-transform:uppercase;letter-spacing:.05em;z-index:1}
    .gdNativePracticeTable tr.invalid td{color:#ffb3b3}
    .gdNativePracticeEmpty{padding:9px;border-radius:12px;background:rgba(0,0,0,.16);color:rgba(255,255,255,.58);font-size:11px;font-weight:850}
    .gdPracticePhotoDebugPanel[hidden]{display:none!important}
    .gdPracticePhotoDebugPanel{display:grid;gap:9px;margin-top:10px;padding:12px;border-radius:16px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.09)}
    .gdPracticeLiveDebugPanel[hidden]{display:none!important}
    .gdPracticeLiveDebugPanel{display:grid;gap:10px;margin-top:10px;padding:12px;border-radius:16px;background:linear-gradient(180deg,rgba(33,59,73,.16),rgba(0,0,0,.20));border:1px solid rgba(98,210,255,.16)}
    .gdPracticeLiveDebugHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .gdPracticeLiveDebugHead strong{display:block;color:#fff;font-size:14px;font-weight:950;line-height:1.08}
    .gdPracticeLiveDebugHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;line-height:1.25}
    .gdPracticeLiveDebugHeadActions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
    .gdPracticeLiveDebugBadge{border-radius:999px;padding:5px 8px;border:1px solid rgba(98,210,255,.20);background:rgba(98,210,255,.10);color:#bdefff;font-size:9px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdPracticeHardStopButton{border:1px solid rgba(255,132,92,.30);border-radius:999px;padding:6px 9px;background:rgba(255,132,92,.12);color:#ffd7cb;font-size:9px;font-weight:950;line-height:1;text-transform:uppercase;white-space:nowrap}
    .gdPracticeLiveDebugFeed{display:grid;gap:6px;max-height:220px;overflow:auto}
    .gdPracticeLiveDebugEvent{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:7px;align-items:start;padding:7px 8px;border-radius:11px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.075);color:rgba(255,255,255,.74);font:800 10px/1.32 ui-monospace,SFMono-Regular,Menlo,monospace}
    .gdPracticeLiveDebugEvent b{color:#fff;font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gdPracticeLiveDebugEvent span{min-width:0;white-space:normal;word-break:break-word}
    .gdPracticeLiveDebugEvent small{color:rgba(255,255,255,.48);font-size:9px;font-weight:950;text-transform:uppercase}
    .gdPracticeLiveDebugAdmin{border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);overflow:hidden}
    .gdPracticeLiveDebugAdmin>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;color:#fff}
    .gdPracticeLiveDebugAdmin>summary::-webkit-details-marker{display:none}
    .gdPracticeLiveDebugAdmin>summary strong{font-size:11px;font-weight:950}
    .gdPracticeLiveDebugAdmin>summary span{color:rgba(255,255,255,.55);font-size:9px;font-weight:850;text-align:right}
    .gdPracticeLiveDebugAdminBody{display:grid;gap:8px;padding:0 10px 10px}
    .gdPracticeLiveDebugAdminBody pre{max-height:220px;overflow:auto;margin:0;border-radius:10px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.075);padding:8px;color:rgba(255,255,255,.78);font:800 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}
    .gdPracticeStageSnapshot{display:grid;gap:6px}
    .gdPracticeStageSnapshot img{display:block;width:100%;max-height:280px;object-fit:contain;border-radius:10px;background:#050806;border:1px solid rgba(255,255,255,.08)}
    .gdPracticeStageSnapshot small{color:rgba(255,255,255,.52);font:850 9px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}
    .gdPracticePhotoDebugHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .gdPracticePhotoDebugHead strong{display:block;color:#fff;font-size:14px;font-weight:950;line-height:1.08}
    .gdPracticePhotoDebugHead span{display:block;margin-top:3px;color:rgba(255,255,255,.58);font-size:10px;font-weight:850;line-height:1.25}
    .gdPracticePhotoDebugBadge{border-radius:999px;padding:5px 8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:rgba(255,255,255,.74);font-size:9px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdPracticePhotoDebugBadge.processing{color:#ffd287;border-color:rgba(215,176,107,.28);background:rgba(215,176,107,.12)}
    .gdPracticePhotoDebugBadge.success{color:#8cffbf;border-color:rgba(33,208,123,.28);background:rgba(31,211,109,.10)}
    .gdPracticePhotoDebugBadge.failed{color:#ffb5bd;border-color:rgba(255,90,95,.28);background:rgba(255,90,95,.12)}
    .gdPracticePhotoDebugSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
    .gdPracticePhotoDebugMetric{min-width:0;border-radius:11px;padding:7px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.075)}
    .gdPracticePhotoDebugMetric span{display:block;color:rgba(255,255,255,.48);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .gdPracticePhotoDebugMetric strong{display:block;margin-top:3px;color:#fff;font-size:11px;font-weight:950;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gdPracticePhotoDebugSection{border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.075);overflow:hidden}
    .gdPracticePhotoDebugSection.failed{border-color:rgba(255,90,95,.28);background:rgba(255,90,95,.075)}
    .gdPracticePhotoDebugSection>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;color:#fff}
    .gdPracticePhotoDebugSection>summary::-webkit-details-marker{display:none}
    .gdPracticePhotoDebugSection>summary strong{min-width:0;font-size:11px;font-weight:950;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gdPracticePhotoDebugSection>summary span{border-radius:999px;padding:4px 6px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.68);font-size:8px;font-weight:950;text-transform:uppercase;white-space:nowrap}
    .gdPracticePhotoDebugSection>summary span.success{color:#8cffbf;background:rgba(31,211,109,.10)}
    .gdPracticePhotoDebugSection>summary span.warning,.gdPracticePhotoDebugSection>summary span.running{color:#ffd287;background:rgba(215,176,107,.12)}
    .gdPracticePhotoDebugSection>summary span.failed{color:#ffb5bd;background:rgba(255,90,95,.12)}
    .gdPracticePhotoDebugBody{display:grid;gap:6px;padding:0 10px 10px;color:rgba(255,255,255,.70);font-size:10px;font-weight:820;line-height:1.35}
    .gdPracticePhotoDebugBody b{color:#fff;font-weight:950}
    .gdPracticePhotoDebugBody pre{max-height:220px;overflow:auto;margin:0;border-radius:10px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.075);padding:8px;color:rgba(255,255,255,.78);font:800 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}
    .gdPracticePhotoDebugJson>summary{grid-template-columns:minmax(0,1fr) auto}
    .gdPracticePhotoDebugCopy{border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;padding:5px 8px;font-size:9px;font-weight:950}
    .gdPracticePhotoQaPanel[hidden]{display:none!important}
    .gdPracticePhotoQaPanel{margin-top:10px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);overflow:hidden}
    .gdPracticePhotoQaPanel>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;color:#fff}
    .gdPracticePhotoQaPanel>summary::-webkit-details-marker{display:none}
    .gdPracticePhotoQaPanel>summary strong{font-size:12px;font-weight:950}
    .gdPracticePhotoQaPanel>summary span{color:rgba(255,255,255,.56);font-size:9px;font-weight:850;text-align:right}
    .gdPracticePhotoQaBody{display:grid;gap:9px;padding:0 12px 12px}
    .gdPracticePhotoQaBody p{margin:0;color:rgba(255,255,255,.58);font-size:10px;font-weight:820;line-height:1.35}
    .gdPracticePhotoQaActions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
    .gdPracticePhotoQaActions button{border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.07);color:#fff;padding:8px 7px;font-size:10px;font-weight:950}
    .gdPracticePhotoQaActions button:disabled{opacity:.46;cursor:not-allowed}
    .gdPracticePhotoQaTableWrap{overflow:auto;border-radius:11px;border:1px solid rgba(255,255,255,.075);background:rgba(0,0,0,.16)}
    .gdPracticePhotoQaTable{min-width:720px;width:100%;border-collapse:collapse;font:800 9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.76)}
    .gdPracticePhotoQaTable th,.gdPracticePhotoQaTable td{padding:6px 7px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;vertical-align:top}
    .gdPracticePhotoQaTable th{color:rgba(255,255,255,.48);font-size:8px;text-transform:uppercase;letter-spacing:.06em}
    .gdPracticePhotoQaPass{color:#8cffbf}
    .gdPracticePhotoQaFail{color:#ffb5bd}
    @media(max-width:720px){.gdNativePracticeFeedbackGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:520px){.gdLmRows,.gdLmActions,.gdNativePracticeButtons,.gdNativePracticeSummary,.gdNativePracticeFeedbackGrid,.gdPracticePhotoDebugSummary,.gdPracticePhotoQaActions{grid-template-columns:1fr}.gdNativePracticeHead,.gdNativePracticeFeedbackHead,.gdPracticePhotoDebugHead{display:grid}}

  

/* --- Clarity Caddy App Shell Restore v20 --- */
.shellHome{position:absolute;inset:0;z-index:7000;padding:max(22px,env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box;background:radial-gradient(circle at 50% 8%,rgba(31,211,109,.22),transparent 32%),linear-gradient(180deg,rgba(5,8,6,.98),rgba(3,5,4,.96));display:flex;flex-direction:column;gap:14px;overflow:auto}.shellHome.hidden{display:none}.shellHero{padding:18px 4px 8px;text-align:center}.shellLogo{width:76px;height:76px;margin:0 auto 12px;border-radius:24px;background:linear-gradient(180deg,#14251a,#07100b);box-shadow:0 22px 56px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center}.shellLogo:before{content:none;display:none}.shellTitle{font-size:34px;font-weight:950;letter-spacing:-.04em}.shellSub{margin-top:4px;color:rgba(255,255,255,.68);font-size:13px}.shellModeRow{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shellTile{min-height:116px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:linear-gradient(180deg,rgba(20,35,30,.94),rgba(7,13,10,.98));color:#fff;text-align:left;padding:15px;box-shadow:0 18px 44px rgba(0,0,0,.36);display:flex;flex-direction:column;justify-content:space-between}.shellTile.primary{background:linear-gradient(180deg,rgba(38,139,73,.84),rgba(6,13,10,.98));border-color:rgba(163,230,53,.24)}.shellTile .ico{font-size:28px}.shellTile strong{font-size:17px}.shellTile span{display:block;color:rgba(255,255,255,.66);font-size:11px;line-height:1.25;margin-top:4px}.shellSectionTitle{margin-top:2px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.56)}
.shellDock{position:absolute;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:4550;display:none;grid-template-columns:repeat(5,1fr);gap:7px;padding:7px;border-radius:20px;background:rgba(4,8,6,.82);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.10);box-shadow:0 16px 42px rgba(0,0,0,.36)}.shellDock.visible{display:grid}.shellDock button{border:0;border-radius:15px;background:rgba(255,255,255,.07);color:#fff;padding:8px 4px;font-weight:850;font-size:10px}.shellDock button.active{background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}.shellTop{position:absolute;top:calc(10px + env(safe-area-inset-top));left:10px;right:10px;z-index:4560;display:none;gap:8px;pointer-events:none}.shellTop.visible{display:flex}.shellTop button{pointer-events:auto;width:auto;border:0;border-radius:999px;padding:9px 12px;background:rgba(4,8,6,.72);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.10);color:#fff;font-weight:900;box-shadow:0 12px 28px rgba(0,0,0,.30)}.shellTop .spacer{flex:1}.modulePanel{position:absolute;inset:0;z-index:5000;background:linear-gradient(180deg,rgba(5,8,6,.96),rgba(3,5,4,.98));padding:max(66px,calc(48px + env(safe-area-inset-top))) 14px calc(84px + env(safe-area-inset-bottom));box-sizing:border-box;overflow:auto;display:none}.modulePanel.open{display:block}.moduleSheet{max-width:560px;margin:0 auto}.moduleTitle{font-size:26px;font-weight:950;letter-spacing:-.03em}.moduleSub{margin-top:4px;color:rgba(255,255,255,.68);font-size:13px;line-height:1.35}.moduleCard{margin-top:12px;padding:14px;border-radius:20px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.10);box-shadow:0 16px 40px rgba(0,0,0,.28)}.moduleCard strong{display:block}.moduleCard span{display:block;margin-top:4px;color:rgba(255,255,255,.65);font-size:12px}.moduleCard input,.moduleCard select{width:100%;margin-top:8px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22);color:#fff;padding:12px}.moduleCard button{width:100%;margin-top:10px;border:0;border-radius:14px;padding:12px;font-weight:900;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}.moduleCard button.secondary{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.10)}
    .gdDataSplit{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.gdDataCard{min-height:152px;border:1px solid rgba(255,255,255,.11);border-radius:22px;background:linear-gradient(180deg,rgba(18,32,27,.96),rgba(7,13,10,.98));color:#fff;text-align:left;padding:16px;box-shadow:0 18px 44px rgba(0,0,0,.30);display:flex;flex-direction:column;justify-content:space-between}.gdDataCard.primary{background:linear-gradient(180deg,rgba(38,139,73,.86),rgba(6,13,10,.98));border-color:rgba(163,230,53,.25)}.gdDataCard.compare{grid-column:1/-1;min-height:112px;background:linear-gradient(180deg,rgba(33,59,73,.92),rgba(7,13,10,.98));border-color:rgba(98,210,255,.18)}.gdDataCard.compare.title{min-height:0;padding:12px 0 4px;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:default;pointer-events:none}.gdDataCard.compare.title .ico{font-size:18px;text-align:center;line-height:1}.gdDataCard.compare.title strong{font-size:22px}.gdDataCard.compare.title span{max-width:520px;margin-top:4px;color:rgba(255,255,255,.62)}.gdDataCard.widget{min-height:138px;padding:16px;border-radius:22px;background:linear-gradient(180deg,rgba(18,32,27,.96),rgba(7,13,10,.98));border-color:rgba(255,255,255,.12);box-shadow:0 18px 44px rgba(0,0,0,.30);display:grid;gap:10px}.gdDataCard.widget.primary{background:linear-gradient(180deg,rgba(28,72,52,.78),rgba(7,13,10,.98));border-color:rgba(163,230,53,.20)}.gdDataCard.widget.active{background:linear-gradient(180deg,rgba(33,59,73,.92),rgba(8,18,17,.98));border-color:rgba(98,210,255,.34);box-shadow:0 18px 44px rgba(0,0,0,.30),inset 0 0 0 1px rgba(98,210,255,.10)}.gdDataCard .ico{font-size:28px}.gdDataCard strong{display:block;font-size:19px;letter-spacing:-.02em}.gdDataCard span{display:block;margin-top:6px;color:rgba(255,255,255,.66);font-size:12px;line-height:1.32}.gdDataCard small{display:block;margin-top:8px;color:rgba(255,255,255,.55);font-size:11px;font-weight:850}.gdDataCard.widget span{margin-top:0;color:rgba(255,255,255,.62);font-size:13px}.gdDataCard.widget strong{margin-top:4px;font-size:24px}.gdDataCard.widget small{font-size:12px;color:rgba(255,255,255,.58)}.gdHubCompareExpansion{margin-top:8px}.gdHubCompareExpansion[hidden]{display:none}.gdDataStatus{margin-top:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-size:12px;font-weight:760;line-height:1.35}.gdPracticeVisual,.gdCompareVisual{min-height:250px;margin:12px 0;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.09);overflow:hidden}.gdPracticeVisual svg,.gdCompareVisual svg{display:block;width:100%;height:auto;min-height:250px}.gdPracticeResult{display:grid;gap:8px;margin-top:10px}.gdCompareCompact{display:grid;gap:4px;margin-top:0;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.gdCompareCompactGrid{display:grid;grid-template-columns:1fr;gap:3px}.gdCompareCompact label,.gdCompareCompactRow{display:grid;grid-template-columns:66px minmax(0,1fr);align-items:center;gap:8px;min-height:24px;padding:2px 0;border:0;border-radius:0;background:transparent;color:rgba(255,255,255,.52);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;text-align:left}.gdCompareCompact .gdCompactConsistency{grid-template-columns:66px 38px minmax(0,1fr)}.gdCompareCompact select,.gdCompareCompact input{width:100%;min-width:0;border:0;border-radius:0;background:transparent;color:#fff;padding:1px 0;font-size:11px;font-weight:850;box-sizing:border-box;text-transform:none;letter-spacing:0}.gdCompareCompact select{appearance:auto}.gdCompareCompact input::placeholder{color:rgba(255,255,255,.36)}.gdCompareCompact input[type=range]{padding:0;background:transparent;accent-color:#21d07b;height:16px}.gdCompareCompactValue{color:#fff;font-size:11px;font-weight:950;text-transform:none;letter-spacing:0;text-align:right}.gdDataCard.widget .gdCompareCompact{gap:2px;padding-top:7px}.gdDataCard.widget .gdCompareCompactRow{grid-template-columns:88px 42px minmax(86px,1fr);gap:6px;min-height:18px;padding:1px 0;font-size:8px;line-height:1.05;letter-spacing:.055em}.gdDataCard.widget .gdCompareCompactValue{display:block;margin:0;color:#fff;font-size:11px;font-weight:950;letter-spacing:0;line-height:1;text-align:right}.gdDataCard.widget .gdCompareCompact input[type=range]{height:12px}.gdCompareCompactActions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.gdCompareCompact .primary{background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}.gdPracticeActions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.gdPracticeActions button{border:0;border-radius:14px;padding:12px;font-weight:900;background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.10)}.gdPracticeActions .primary{background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}@media(max-width:520px){.gdDataSplit{grid-template-columns:1fr}.gdCompareCompact label{padding:2px 0;font-size:9px}.gdCompareCompactGrid,.gdCompareCompactActions{grid-template-columns:1fr}}
.gdPracticeScanner{display:none;margin-top:10px;padding:12px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.gdPracticeScanner.active{display:block}
.gdPracticeScanFrame{position:relative;overflow:hidden;border-radius:14px;background:#050806;border:1px solid rgba(255,255,255,.08)}
.gdPracticeScanner img{display:block;width:100%;max-height:270px;object-fit:contain;background:#050806}
.gdPracticeScanGuide{position:absolute;inset:10px;border:2px solid rgba(215,176,107,.82);border-radius:10px;pointer-events:none;box-shadow:0 0 0 999px rgba(0,0,0,.16),inset 0 0 0 1px rgba(255,255,255,.25)}
.gdPracticeScanGuide:before,.gdPracticeScanGuide:after{content:"";position:absolute;left:0;right:0;height:1px;background:rgba(255,255,255,.22)}
.gdPracticeScanGuide:before{top:28%}
.gdPracticeScanGuide:after{top:56%}
.gdPracticeScanGuide span{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);max-width:calc(100% - 20px);border-radius:999px;padding:5px 8px;background:rgba(5,8,6,.76);color:rgba(255,255,255,.88);font-size:9px;font-weight:950;white-space:nowrap}
.gdPracticeReview{display:none;margin-top:10px;padding:12px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.gdPracticeReview.active{display:block}
.gdPracticeReview.stripOnly textarea,.gdPracticeReview.stripOnly .gdPracticeReviewActions{display:none}
.gdPracticeReview.stripOnly .gdPracticeScanDebug{margin-top:0;padding:0;border:0;background:transparent}
.gdPracticeReview.stripOnly .gdPracticeScanDebugList{max-height:none;white-space:normal;background:transparent;padding:0}
.gdPracticeReview textarea{width:100%;min-height:150px;resize:vertical;box-sizing:border-box;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.28);color:#fff;padding:10px;font:800 11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;overflow:auto;overflow-wrap:normal;tab-size:4}
.gdPracticeScanCheckpoint[hidden],.gdPracticeScanDebugExpander[hidden]{display:none!important}
.gdPracticeScanCheckpoint{display:grid;gap:9px;margin:0 0 10px;padding:11px;border-radius:14px;background:linear-gradient(180deg,rgba(31,211,109,.10),rgba(255,255,255,.035));border:1px solid rgba(31,211,109,.20)}
.gdPracticeScanCheckpoint.warn{background:linear-gradient(180deg,rgba(215,176,107,.12),rgba(255,255,255,.035));border-color:rgba(215,176,107,.26)}
.gdPracticeScanCheckpointHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gdPracticeScanCheckpointHead strong{display:block;color:#fff;font-size:14px;font-weight:950;line-height:1.05}
.gdPracticeScanCheckpointHead span{display:block;margin-top:3px;color:rgba(255,255,255,.62);font-size:10px;font-weight:850;line-height:1.25}
.gdPracticeScanStats{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.gdPracticeScanStats b{display:grid;gap:2px;min-width:46px;border-radius:10px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.18);padding:5px 7px;text-align:center}
.gdPracticeScanStats span{margin:0;color:rgba(255,255,255,.48);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.gdPracticeScanStats strong{font-size:11px;line-height:1;color:#fff}
.gdPracticeScanSteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.gdPracticeScanStep{min-width:0;border-radius:10px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);padding:7px;color:rgba(255,255,255,.55);font-size:9px;font-weight:950;text-align:center;text-transform:uppercase;letter-spacing:.04em}
.gdPracticeScanStep.done{color:#37f28d;border-color:rgba(55,242,141,.25);background:rgba(31,211,109,.08)}
.gdPracticeScanStep.active{color:#ffd287;border-color:rgba(215,176,107,.28);background:rgba(215,176,107,.10)}
.gdPracticeScanStep.failed{color:#ffb5bd;border-color:rgba(255,90,95,.30);background:rgba(255,90,95,.10)}
.gdPracticeScanCheckpointBody{display:grid;gap:8px}
.gdPracticeScanCheckpointAction{border:0;border-radius:12px;padding:9px 11px;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b;font-size:11px;font-weight:950}
.gdPracticeScanDebugExpander{margin-top:10px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.20);overflow:hidden}
.gdPracticeScanDebugExpander>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;color:#fff}
.gdPracticeScanDebugExpander>summary::-webkit-details-marker{display:none}
.gdPracticeScanDebugExpander>summary strong{font-size:12px;font-weight:950}
.gdPracticeScanDebugExpander>summary span{color:rgba(255,255,255,.55);font-size:10px;font-weight:850;text-align:right}
.gdPracticeScanDebugExpander[open]>.gdPracticeScanDebug{border-top:1px solid rgba(255,255,255,.08)}
.gdPracticeDebugPreview{margin:10px 0;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);overflow:hidden}
.gdPracticeDebugPreview>summary{list-style:none;cursor:pointer;padding:8px 10px;color:rgba(255,255,255,.76);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.gdPracticeDebugPreview>summary::-webkit-details-marker{display:none}
.gdPracticeColumnStripCanvasWrap{max-height:260px}
.gdPracticeScanDebug{display:none;margin-top:10px;padding:10px;border-radius:16px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.09)}
.gdPracticeScanDebug.active{display:block}
.gdPracticeScanDebugHead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.gdPracticeScanDebugHead strong{font-size:13px;color:#fff}
.gdPracticeScanDebugHead span{color:rgba(255,255,255,.55);font-size:10px;font-weight:850;text-align:right}
.gdPracticeScanDebugCanvasWrap{overflow:auto;border-radius:12px;background:#050806;border:1px solid rgba(255,255,255,.08)}
.gdPracticeScanDebug canvas{display:block;width:100%;height:auto;min-width:640px}
.gdPracticeScanDebugSubhead{margin:10px 0 6px;color:rgba(255,255,255,.76);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.gdPracticeDebugPreview>.gdPracticeScanDebugSubhead{margin:0}
.gdPracticeScanDebugList{margin-top:8px;max-height:170px;overflow:auto;font:800 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.78);white-space:pre;border-radius:12px;background:rgba(255,255,255,.045);padding:8px}
.gdColumnImageGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:10px}
.gdColumnImagePreview{margin-top:10px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.gdColumnImagePreview>summary{list-style:none;cursor:pointer;padding:9px 10px;color:rgba(255,255,255,.78);font-size:11px;font-weight:950}
.gdColumnImagePreview>summary::-webkit-details-marker{display:none}
.gdColumnImagePreview .gdColumnImageGrid{padding:10px}
.gdClusterQuadCanvasWrap{padding:10px;overflow:auto;background:#050806}
.gdClusterQuadCanvasWrap canvas{display:block;width:100%;height:auto;min-width:640px;border-radius:10px;background:#050806}
.gdClusterQuadMeta{display:block;padding:0 10px 10px;color:rgba(255,255,255,.62);font:850 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
.gdTableSquareGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;padding:10px;background:#050806;overflow:auto}
.gdTableSquareCard{min-width:0;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.gdTableSquareCard strong{display:block;padding:7px 8px;background:rgba(0,0,0,.24);font:900 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;text-align:center}
.gdTableSquareCard canvas{display:block;width:100%;height:auto;min-width:280px;background:#050806}
.gdFlatTablePreview .gdTableSquareGrid{grid-template-columns:1fr}
.gdFlatTablePreview .gdTableSquareCard canvas{min-width:640px}
.gdParkedToolPreview>summary{color:rgba(255,210,135,.88)}
.gdColumnImageCard{min-width:0;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.gdColumnImageCard strong{display:block;padding:7px 8px;background:rgba(0,0,0,.22);font:900 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;text-align:center}
.gdColumnImageCard img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;background:#fff}
.gdDirectionDebugGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;padding:10px}
.gdDirectionDebugCard{min-width:0;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.gdDirectionDebugCard img{display:block;width:100%;height:46px;object-fit:contain;background:#fff}
.gdDirectionDebugCard span{display:block;padding:6px 7px;font:900 9px/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.74);white-space:normal}
.gdDirectionDebugCard[data-trusted="true"] span{color:#37f28d}
.gdDirectionDebugCard[data-direction="L"]{border-color:rgba(255,184,74,.38)}
.gdMaskDirectionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:10px;padding:10px}
.gdMaskDirectionCard{border-radius:12px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.10);overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.22)}
.gdMaskDirectionCard[data-trusted="true"]{border-color:rgba(55,242,141,.32)}
.gdMaskDirectionCard[data-trusted="false"]{border-color:rgba(255,184,74,.26)}
.gdMaskDirectionCardHead{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;border-bottom:1px solid rgba(255,255,255,.08);font:900 10px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;text-transform:none}
.gdMaskDirectionCardHead small{color:rgba(255,255,255,.62);font:800 9px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right}
.gdMaskDirectionSteps{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px}
.gdMaskDirectionStage{min-width:0;border-radius:9px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.gdMaskDirectionStage strong{display:block;padding:5px 6px 3px;color:#37f28d;font:900 8px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.04em}
.gdMaskDirectionStage img{display:block;width:100%;height:58px;object-fit:contain;background:#fff}
.gdMaskDirectionStage span{display:block;padding:4px 6px 6px;color:rgba(255,255,255,.72);font:800 8px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:normal}
.gdMaskDirectionResult{padding:0 9px 9px;color:rgba(255,255,255,.78);font:900 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdMaskDirectionResult b{color:#37f28d}.gdMaskDirectionResult .warn{color:#ffb84a}
.gdColumnOcrTableWrap{overflow:auto;padding:10px}
.gdColumnOcrTable{width:100%;min-width:860px;border-collapse:separate;border-spacing:0;font:900 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.86)}
.gdColumnOcrTable th,.gdColumnOcrTable td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.08);text-align:right;white-space:nowrap;background:rgba(255,255,255,.025)}
.gdColumnOcrTable th{position:sticky;top:0;background:rgba(18,25,22,.96);color:rgba(255,255,255,.62);text-transform:uppercase;font-size:9px;letter-spacing:.04em;z-index:1}
.gdColumnOcrTable th:first-child,.gdColumnOcrTable td:first-child{text-align:left;color:#37f28d;background:rgba(31,211,109,.045)}
.gdColumnOcrTable td.miss{color:rgba(255,255,255,.28)}
.gdColumnOcrSource{display:block;padding:0 10px 8px;color:rgba(255,255,255,.48);font:850 10px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdTemplateOutcomeTabs{margin:0 0 10px;border-radius:13px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);overflow:hidden}
.gdTemplateOutcomeTabButtons{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;padding:8px;background:rgba(0,0,0,.18);border-bottom:1px solid rgba(255,255,255,.08)}
.gdTemplateOutcomeTab{border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.68);padding:8px 9px;font:950 10px/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:left}
.gdTemplateOutcomeTab.active{background:rgba(31,211,109,.13);border-color:rgba(55,242,141,.30);color:#eafff2}
.gdTemplateOutcomeTab.failed{border-color:rgba(255,90,95,.26);color:#ffccd1}
.gdTemplateOutcomeTab.skipped{color:rgba(255,255,255,.42)}
.gdTemplateOutcomePanel{display:none;padding:10px}
.gdTemplateOutcomePanel.active{display:block}
.gdTemplateOutcomeCanvasWrap{overflow:auto;border-radius:11px;background:#050806;border:1px solid rgba(255,255,255,.08)}
.gdTemplateOutcomeCanvasWrap canvas{display:block;width:100%;height:auto;min-width:640px;background:#050806}
.gdTemplateOutcomeStats{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.gdTemplateOutcomeStats b{border-radius:999px;padding:5px 7px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.76);font:950 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdTemplateOutcomeText{display:block;margin-top:8px;color:rgba(255,255,255,.62);font:850 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
.gdOcrHeaderCandidateDetails{margin-top:8px;border-radius:10px;background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.09);overflow:hidden}
.gdOcrHeaderCandidateDetails summary{cursor:pointer;padding:8px 10px;color:#ffe3a3;font:950 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;text-transform:uppercase}
.gdOcrHeaderCandidateDetails table{width:100%;border-collapse:collapse;font:850 9px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.70)}
.gdOcrHeaderCandidateDetails th,.gdOcrHeaderCandidateDetails td{padding:6px 7px;border-top:1px solid rgba(255,255,255,.07);vertical-align:top;text-align:left}
.gdOcrHeaderCandidateDetails th{color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.04em}
.gdOcrHeaderCandidateDetails tr.best td{background:rgba(255,211,116,.08);color:#fff2c7}
.gdOcrHeaderCandidateText{max-width:420px;white-space:normal;overflow-wrap:anywhere}
.gdFlatTemplatePreview>summary{color:#eafff2}
.gdFlatFailurePreview{border-color:rgba(255,90,95,.28);background:rgba(255,90,95,.055)}
.gdFlatFailurePreview>summary{color:#ffccd1}
.gdFlatFailureCanvasWrap{padding:10px;overflow:auto;background:#050806}
.gdFlatFailureCanvasWrap canvas{display:block;width:100%;height:auto;min-width:640px;border-radius:10px;background:#050806}
.gdFlatFailureRows{display:grid;gap:5px;padding:0 10px 10px}
.gdFlatFailureRow{display:grid;grid-template-columns:44px minmax(0,1fr) 58px;gap:7px;align-items:center;border-radius:9px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.075);padding:6px 7px;font:850 10px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.72)}
.gdFlatFailureRow b{color:#fff}
.gdFlatFailureRow.accepted{border-color:rgba(55,242,141,.24);background:rgba(31,211,109,.07)}
.gdFlatFailureRow.rejected{border-color:rgba(255,184,74,.22);background:rgba(215,176,107,.07)}
.gdFlatFailureRow em{font-style:normal;color:rgba(255,255,255,.48);text-align:right}
.gdFlatTemplateOutput .gdColumnOcrTable td{padding:4px 5px;vertical-align:middle}
.gdFlatTemplateOutput .gdColumnOcrTable img{display:block;width:92px;height:34px;object-fit:contain;background:#fff;border-radius:5px;margin-left:auto}
.gdFlatTemplateOutput .gdColumnOcrTable td:first-child{padding:7px 8px}
.gdFlatTemplateOutput .gdCellOcrValue{display:block;margin:0 0 3px;color:#37f28d;font:950 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right}
.gdFlatTemplateOutput .gdCellOcrValue.warn{color:#ffd287}
.gdOcrColumnCutoutReview{border-color:rgba(55,242,141,.22);background:rgba(31,211,109,.055)}
.gdOcrColumnCutoutReview>summary{color:#eafff2}
.gdOcrColumnCutoutGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:10px;overflow:auto}
.gdOcrColumnCutoutCard{min-width:0;border-radius:10px;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.09);overflow:hidden}
.gdOcrColumnCutoutCard[data-allocated="true"]{border-color:rgba(55,242,141,.28);background:rgba(31,211,109,.07)}
.gdOcrColumnCutoutHead{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.08);font:900 9px/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.74)}
.gdOcrColumnCutoutHead b{color:#fff}
.gdOcrColumnCutoutHead span{text-align:right;color:#37f28d}
.gdOcrColumnCutoutCard[data-allocated="false"] .gdOcrColumnCutoutHead span{color:#ffd287}
.gdOcrColumnCutoutCard img{display:block;width:100%;height:46px;object-fit:contain;background:#fff}
.gdOcrColumnCutoutCard small{display:block;min-height:38px;padding:6px 7px;color:rgba(255,255,255,.58);font:850 8px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:normal;overflow-wrap:anywhere}
.gdDigitizedTablePreview>summary{color:#eafff2}
.gdDigitizedTablePreview .gdColumnOcrTable td.good .gdDigitizedValue{color:#37f28d}
.gdDigitizedTablePreview .gdColumnOcrTable td.warn .gdDigitizedValue{color:#ffd287}
.gdDigitizedTablePreview .gdColumnOcrTable td.bad .gdDigitizedValue{color:#ff8d98}
.gdDigitizedTablePreview .gdColumnOcrTable td.miss .gdDigitizedValue{color:rgba(255,255,255,.28)}
.gdDigitizedValue{display:block;font:950 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdDigitizedRaw{display:block;margin-top:3px;color:rgba(255,255,255,.42);font:850 8px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdDigitizedTableStats{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 10px}
.gdDigitizedTableStats b{border-radius:999px;padding:5px 7px;background:rgba(31,211,109,.08);border:1px solid rgba(31,211,109,.18);color:rgba(255,255,255,.74);font:950 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.gdCellCropPreview{margin-top:10px;border-radius:12px;background:rgba(31,211,109,.055);border:1px solid rgba(31,211,109,.16);overflow:hidden}
.gdCellCropPreview>summary{list-style:none;cursor:pointer;padding:9px 10px;color:#eafff2;font-size:11px;font-weight:950}
.gdCellCropPreview>summary::-webkit-details-marker{display:none}
.gdCellCropScroller{overflow:auto;padding:10px}
.gdCellCropGrid{display:grid;grid-template-columns:34px repeat(10,minmax(72px,1fr));gap:6px;min-width:820px}
.gdCellCropHead,.gdCellCropRowLabel{display:grid;place-items:center;min-height:24px;border-radius:8px;background:rgba(0,0,0,.24);color:rgba(255,255,255,.66);font:900 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.gdCellCropRowLabel{min-height:42px;color:#37f28d}
.gdCellCropCard{min-width:0;border-radius:8px;background:#fff;border:1px solid rgba(255,255,255,.10);overflow:hidden}
.gdCellCropCard img{display:block;width:100%;height:42px;object-fit:contain;background:#fff}
.gdManualQuadTool{display:none;margin-top:10px;padding:12px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.gdManualQuadTool.active{display:block}
.gdManualQuadHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.gdManualQuadHead strong{display:block;color:#fff;font-size:15px;font-weight:950}
.gdManualQuadHead span{display:block;margin-top:3px;color:rgba(255,255,255,.62);font-size:11px;font-weight:850;line-height:1.25}
.gdManualQuadBadge{flex:0 0 auto;border-radius:999px;padding:6px 8px;background:rgba(215,176,107,.16);border:1px solid rgba(215,176,107,.28);color:#ffd287;font:950 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.04em}
.gdManualQuadCanvasWrap{overflow:auto;border-radius:14px;background:#050806;border:1px solid rgba(255,255,255,.09);touch-action:none}
.gdManualQuadCanvasWrap canvas{display:block;width:100%;height:auto;min-width:640px;background:#050806;cursor:crosshair}
.gdManualQuadTool .gdPracticeScannerActions{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
#practiceDataPanel.gdPracticePhotoProcessing .gdPracticeScanner,
#practiceDataPanel.gdPracticePhotoProcessing .gdManualQuadTool{display:none!important}
#practiceDataPanel.gdPracticePhotoProcessing .gdNativePracticeDrawer,
#practiceDataPanel.gdPracticePhotoProcessing .gdPracticeEmailBox{display:none!important}
#gdPracticeScanner .gdPracticeScanStatus,#gdPracticeManualQuadStatus{display:none!important}
.gdPracticeReviewActions,.gdPracticeScannerActions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}
.gdPracticeReviewActions button,.gdPracticeScannerActions button{border:0;border-radius:14px;padding:11px;font-weight:950;background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.10)}
.gdPracticeScannerActions button[hidden]{display:none!important}
.gdPracticeReviewActions .primary,.gdPracticeScannerActions .primary{background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}
.gdPracticeScanClubField{display:grid;grid-template-columns:auto minmax(82px,1fr);gap:8px;align-items:center;margin-top:10px;padding:8px 10px;border-radius:13px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.66);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.gdPracticeScanClubField input{min-width:0;border:0;border-radius:10px;background:rgba(0,0,0,.24);color:#fff;padding:8px 9px;font-size:13px;font-weight:950;text-transform:none;letter-spacing:0;outline:none}
.gdPracticeScanClubField input:focus{box-shadow:0 0 0 2px rgba(215,176,107,.35)}
.gdPracticeGridExperiments[hidden]{display:none!important}
.gdPracticeGridExperiments{display:grid;gap:8px;margin-top:10px;padding:10px;border-radius:14px;background:rgba(31,211,109,.055);border:1px solid rgba(31,211,109,.14)}
.gdPracticeGridExperimentHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gdPracticeGridExperimentHead strong{display:block;color:#fff;font-size:12px;font-weight:950}
.gdPracticeGridExperimentHead span{display:block;color:rgba(255,255,255,.55);font-size:10px;font-weight:850;text-align:right;line-height:1.25}
.gdPracticeGridExperiments .gdPracticeScannerActions{margin-top:0}
.gdPracticeEmailRow{display:grid;gap:6px;margin-bottom:6px}
.gdPracticeEmailRowMain{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:9px 10px;background:rgba(255,255,255,.045);color:rgba(255,255,255,.86);font-size:11px;font-weight:820;line-height:1.25}
.gdPracticeEmailRowMain b{flex:0 0 auto;color:#fff;font-weight:950}
.gdPracticeEmailRow.unapproved>.gdPracticeEmailRowMain{border-color:rgba(215,176,107,.34)}
.gdPracticeEmailRow.unapproved>button:first-child{border-color:rgba(215,176,107,.34)}
.gdPracticeEmailFlag{width:100%;border:1px solid rgba(215,176,107,.30);border-radius:12px;padding:7px 9px;background:rgba(215,176,107,.10);color:rgba(255,255,255,.86);font-size:11px;font-weight:900;text-align:left}
.gdPracticeBetaNote{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;border-radius:12px;background:rgba(215,176,107,.10);border:1px solid rgba(215,176,107,.24);color:rgba(255,255,255,.72);font-size:11px;font-weight:820;line-height:1.3}
.gdPracticeBetaChip{flex:0 0 auto;border-radius:999px;padding:3px 8px;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}
.gdPracticeScanStatus{margin-top:9px;color:rgba(255,255,255,.62);font-size:11px;font-weight:820;line-height:1.25}
.gdPracticeScanStatus.scanning,.gdPracticeScanStatus.ready,.gdPracticeScanStatus.error{display:flex;align-items:center;gap:8px;border-radius:12px;padding:9px 10px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);color:#fff;font-weight:950}
.gdPracticeScanStatus.scanning:before{content:"";width:9px;height:9px;border-radius:50%;background:#d7b06b;box-shadow:0 0 0 0 rgba(215,176,107,.55);animation:gdPracticeScanPulse 1.15s ease-out infinite;flex:0 0 auto}
.gdPracticeScanStatus.ready:before{content:"";width:9px;height:9px;border-radius:50%;background:#37f28d;flex:0 0 auto}
.gdPracticeScanStatus.error:before{content:"";width:9px;height:9px;border-radius:50%;background:#ff6b7a;flex:0 0 auto}
.gdPracticeDebugStatus{display:none;margin:0 0 10px}
.gdPracticeDebugStatus.active{display:flex}
.gdNativeProcessingStack{display:grid;gap:6px;width:100%;min-width:0}
.gdNativeProcessingBadge{display:grid;grid-template-columns:minmax(132px,1fr) auto;gap:9px;align-items:center;min-width:0;width:100%;color:rgba(255,255,255,.84);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:0}
.gdNativeProcessingClub{justify-self:start;min-width:34px;padding:4px 7px;border-radius:999px;background:rgba(215,176,107,.14);border:1px solid rgba(215,176,107,.24);color:#ffd287;font-size:9px;font-weight:950;line-height:1;text-align:center;text-transform:none}
.gdNativeProcessingTrack{position:relative;display:block;align-items:center;height:20px;border-radius:999px;overflow:visible}
.gdNativeProcessingRail,.gdNativeProcessingFill{position:absolute;left:8px;right:8px;top:50%;height:3px;border-radius:999px;transform:translateY(-50%)}
.gdNativeProcessingRail{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}
.gdNativeProcessingFill{right:auto;width:0;background:linear-gradient(90deg,#1fbf68,#37f28d);box-shadow:0 0 14px rgba(55,242,141,.24);transition:width .35s ease}
.gdNativeProcessingNodes{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;height:20px}
.gdNativeProcessingNode{position:relative;z-index:1;justify-self:center;display:grid;place-items:center;width:18px;height:18px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#101614;color:rgba(255,255,255,.62);font-size:9px;line-height:1;font-weight:950;box-shadow:0 0 0 3px rgba(0,0,0,.22)}
.gdNativeProcessingNode.done{border-color:rgba(55,242,141,.52);background:#37f28d;color:#06100b}
.gdNativeProcessingNode.done:after{content:"\2713"}
.gdNativeProcessingNode.done span{display:none}
.gdNativeProcessingNode.active{border-color:rgba(55,242,141,.76);background:#37f28d;color:#06100b;box-shadow:0 0 0 4px rgba(55,242,141,.12)}
.gdNativeProcessingLabel{min-width:0;white-space:nowrap;color:rgba(255,255,255,.82)}
.gdNativeProcessingStop{justify-self:end;border:1px solid rgba(255,132,92,.30);border-radius:999px;padding:5px 9px;background:rgba(255,132,92,.12);color:#ffd7cb;font-size:9px;font-weight:950;line-height:1;text-transform:uppercase;white-space:nowrap}
.gdNativeProcessingSpinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.22);border-top-color:#d7b06b;animation:gdPracticeSpin .72s linear infinite;flex:0 0 auto}
@keyframes gdPracticeScanPulse{0%{box-shadow:0 0 0 0 rgba(215,176,107,.55)}100%{box-shadow:0 0 0 9px rgba(215,176,107,0)}}
@keyframes gdPracticeSpin{to{transform:rotate(360deg)}}
@media(max-width:520px){.gdDataSplit{grid-template-columns:1fr}.gdDataCard{min-height:124px}.gdPracticeActions{grid-template-columns:1fr}}
/* === Data Hub accordion: three sections expand/squash in place. ===
   The .gdHubSection wrapper IS the border of an expanded section - the tab
   card becomes its header, the content lives inside the same rounded box. */
.gdHubSection{display:grid;min-width:0;align-content:start}
.gdHubSection>.gdDataCard{width:100%;box-sizing:border-box}
.gdHubSection[data-hub-section="compare"]{grid-column:1/-1}
#dataHubPanel.gdHubSectionExpanded .gdHubSection{grid-column:1/-1}
.gdHubAccordion .gdDataCard{transition:min-height .3s ease,padding .3s ease,opacity .3s ease}
#dataHubPanel.gdHubSectionExpanded .gdDataSplit{grid-template-columns:1fr !important;grid-template-areas:none !important}
#dataHubPanel.gdHubSectionExpanded .gdDataCard{min-height:0;padding:12px 16px;flex-direction:row;align-items:center;gap:10px;justify-content:flex-start;cursor:pointer}
#dataHubPanel.gdHubSectionExpanded .gdDataCard .ico{font-size:18px}
#dataHubPanel.gdHubSectionExpanded .gdDataCard span,#dataHubPanel.gdHubSectionExpanded .gdDataCard small{display:none}
#dataHubPanel.gdHubSectionExpanded .gdDataCard strong{font-size:15px}
#dataHubPanel.gdHubSectionExpanded .gdHubSection:not(.gdHubActive) .gdDataCard{opacity:.6}
.gdHubSection.gdHubActive{border:1px solid rgba(98,210,255,.32);border-radius:22px;background:linear-gradient(180deg,rgba(18,32,27,.96),rgba(7,13,10,.98));box-shadow:0 18px 44px rgba(0,0,0,.30)}
.gdHubSection.gdHubActive>.gdDataCard{opacity:1;border:0;border-radius:22px 22px 0 0;background:transparent;box-shadow:none;min-height:0}
.gdHubSection.gdHubActive>.gdHubSectionBody{padding:0 12px 12px}
.gdHubSectionBody{overflow:hidden;max-height:0;opacity:0;transition:max-height .36s ease,opacity .3s ease}
.gdHubSectionBody[hidden]{display:none}
.gdHubSectionBody.gdHubSectionOpen{max-height:12000px;opacity:1;overflow:visible}
/* The active wrapper already draws the border - strip the legacy attached
   chrome from the compare expansion so it doesn't double up. */
#dataHubPanel .gdHubSection.gdHubActive #gdHubCompareExpansion{border:0 !important;box-shadow:none !important;background:transparent !important;border-radius:0 !important;overflow:visible !important}
.gdCompareSourceSwitch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 2px}
.gdCompareSourceSwitch button{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px;font-weight:900;font-size:12px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.72)}
.gdCompareSourceSwitch button.active{background:linear-gradient(180deg,rgba(33,59,73,.92),rgba(8,18,17,.98));border-color:rgba(98,210,255,.34);color:#fff}
.gdComparePracticeProjector{margin-top:10px}
.gdComparePracticeProjector[hidden]{display:none}
/* Embedded course/practice panels living inside the hub accordion */
.gdHubEmbedded{position:static !important;inset:auto !important;display:none;padding:0 !important;background:transparent !important;overflow:visible !important;z-index:auto !important}
.gdHubEmbedded.open{display:block}
.gdHubEmbedded>.sheet,.gdHubEmbedded>.moduleSheet{max-width:none;margin:0;display:block !important}
.gdHubEmbedded .sheetHeader{display:none}
.gdHubEmbedded [data-gd-offset-hub]{display:none}
/* Custom club/ball data gates */
.gdPracticeGateList{display:grid;gap:6px;margin-top:8px}
.gdPracticeGateRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.045);font-size:12px;font-weight:800}
.gdPracticeGateRow.off{opacity:.45}
.gdPracticeGateRowActions{display:flex;gap:6px;align-items:center}
.gdPracticeGateToggle{border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:4px 10px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);font-weight:900;font-size:11px}
.gdPracticeGateToggle.on{background:rgba(55,242,141,.16);border-color:rgba(55,242,141,.4);color:#9df5c4}
.gdPracticeGateEmpty{padding:10px 12px;border:1px dashed rgba(255,255,255,.14);border-radius:14px;color:rgba(255,255,255,.55);font-size:12px;line-height:1.35}
.gdPracticeGateForm{display:grid;gap:8px;margin-top:10px;padding:11px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(255,255,255,.035)}
.gdPracticeGateFormRow{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.gdPracticeGateFormRow select,.gdPracticeGateFormRow input[type=number]{flex:1;min-width:96px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(0,0,0,.28);color:#fff;padding:9px 10px;font-size:12px;font-weight:800}
.gdPracticeGateFormRow [data-gd-gate-val2]{flex:1;min-width:96px}
.gdPracticeGateFormRow [data-gd-gate-val2][hidden]{display:none}
.gdPracticeGateFormRow [data-gd-gate-val2] input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(0,0,0,.28);color:#fff;padding:9px 10px;font-size:12px;font-weight:800}
.gdPracticeGateAbs{display:flex;gap:6px;align-items:center;color:rgba(255,255,255,.7);font-size:12px;font-weight:800}
.gdPracticeGateForm button.primary{border:0;border-radius:12px;padding:10px 16px;font-weight:900;background:linear-gradient(180deg,#d7b06b,#b88d42);color:#06100b}
.gdPracticeGateClubs summary{cursor:pointer;color:rgba(255,255,255,.66);font-size:12px;font-weight:850;list-style:none}
.gdPracticeGateClubs summary::-webkit-details-marker{display:none}
.gdPracticeGateClubGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;margin-top:8px}
.gdPracticeGateClub{display:flex;gap:5px;align-items:center;padding:6px 8px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(255,255,255,.045);font-size:11px;font-weight:850}
.gdPracticeUploadSource{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid rgba(98,210,255,.28);background:rgba(98,210,255,.10);color:#9fdcf5;font-size:10px;font-weight:900;letter-spacing:.03em}
.gdCourseLibraryClub{border:0;margin:0}
.gdCourseLibraryClub summary{list-style:none;cursor:pointer}
.gdCourseLibraryClub summary::-webkit-details-marker{display:none}
.gdCourseLibraryClubRows{display:grid;gap:4px;margin:4px 0 8px;padding-left:6px}
.gdClubShotRow.filtered{opacity:.5}
    #dataHubPanel .moduleSheet{max-width:760px}
    #dataHubPanel:not(.gdHubSectionExpanded) .gdDataSplit{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
    #dataHubPanel:not(.gdHubSectionExpanded) .gdDataCard{min-height:136px;padding:14px}
    #dataHubPanel:not(.gdHubSectionExpanded) .gdDataCard.compare{grid-column:auto;min-height:136px}
    #dataHubPanel:not(.gdHubSectionExpanded) .gdHubSection[data-hub-section="compare"]{grid-column:auto}
    #dataHubPanel.gdCompareExpanded #gdHubCompareExpansion{margin-top:0}
    #dataHubPanel.gdCompareExpanded .gdDataCard.compare{grid-column:auto}
    #dataHubPanel.gdCompareExpanded .gdDataCard.compare.title{padding:4px 0 0}
    #dataHubPanel.gdCompareExpanded .gdDataCard.compare.title .ico{font-size:15px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.compare.title strong{font-size:20px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.compare.title span{font-size:11px;line-height:1.25}
    #dataHubPanel.gdCompareExpanded .gdCompareVisual{margin:6px 0 0;min-height:250px}
    #dataHubPanel.gdCompareExpanded .gdCompareVisual svg{min-height:250px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget{padding:13px;gap:8px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget:not(.active){min-height:250px;padding:12px 9px;overflow:hidden}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget:not(.active) span{font-size:10px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget:not(.active) small{font-size:10px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget:not(.active) strong{font-size:17px;overflow-wrap:anywhere}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget.active{min-height:250px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget .gdCompareCompactRow{grid-template-columns:78px 36px minmax(72px,1fr);gap:5px;font-size:7.5px;min-height:17px}
    #dataHubPanel.gdCompareExpanded .gdDataCard.widget .gdCompareCompactValue{font-size:10px}
    @media(max-width:760px){
      #dataHubPanel:not(.gdCompareExpanded) .gdDataSplit{grid-template-columns:1fr}
      #dataHubPanel.gdCompareExpanded.gdCompareSourcePractice .gdDataSplit,
      #dataHubPanel.gdCompareExpanded.gdCompareSourceCourse .gdDataSplit{grid-template-columns:1fr;grid-template-areas:"course" "compareTitle" "compareVisual" "practice"}
      #dataHubPanel.gdCompareExpanded .gdDataCard.widget:not(.active),
      #dataHubPanel.gdCompareExpanded .gdDataCard.widget.active{min-height:0}
    }
    #practiceDataPanel.open .moduleSheet,#statsPanel.gdShotDataPanel.open .sheet{max-width:860px;display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(260px,.76fr);gap:12px;align-items:start}
    #practiceDataPanel.open .moduleSheet{max-width:min(1080px,calc(100vw - 28px))}
    #practiceDataPanel.open .gdShotDataHubCard,#statsPanel.gdShotDataPanel.open .gdShotDataHubCard{grid-column:1/-1}
    #practiceDataPanel.open .gdShotDataTabs,#statsPanel.gdShotDataPanel.open .gdShotDataTabs{grid-column:1/-1}
    #practiceDataPanel.open .gdPracticeVisualStack{grid-column:1;grid-row:2/span 8;display:flex;flex-direction:column;gap:8px;min-height:0;order:1}
    #practiceDataPanel.open #gdPracticeDataVisual{margin:0;min-height:360px;height:auto}
    #statsPanel.gdShotDataPanel.open #gdStatsVisual{grid-column:1;grid-row:2/span 8;margin:0;min-height:360px;height:auto}
    #practiceDataPanel.open #gdPracticeDataVisual svg,#statsPanel.gdShotDataPanel.open #gdStatsVisual svg{min-height:360px;height:auto}
    #practiceDataPanel.open .gdPracticeActions,#practiceDataPanel.open .gdPracticeScanner,#practiceDataPanel.open .gdPracticeReview,#practiceDataPanel.open .gdManualQuadTool,#practiceDataPanel.open .gdPracticeProjectionControls,#practiceDataPanel.open .gdPracticeResult,#practiceDataPanel.open .gdPracticeExtractCheckpoint,#practiceDataPanel.open .gdPracticeEvidenceList,#practiceDataPanel.open .gdPracticeMasterTolerance,#practiceDataPanel.open .gdPracticeRecommendationsPanel,#practiceDataPanel.open .gdPracticeAdminExpander,#practiceDataPanel.open .gdPracticeTolerancePanel,#statsPanel.gdShotDataPanel.open .gdCourseDataLanding,#statsPanel.gdShotDataPanel.open .gdStatsLegend,#statsPanel.gdShotDataPanel.open .gdStatsControl,#statsPanel.gdShotDataPanel.open .gdStatsFilters,#statsPanel.gdShotDataPanel.open #shotLogList,#statsPanel.gdShotDataPanel.open .gdCourseAdminExpander,#statsPanel.gdShotDataPanel.open .gdShotDataAdminPanel{grid-column:2;margin-top:0}
    #statsPanel.gdShotDataPanel.open .gdStatsLegend{display:none!important}
    #practiceDataPanel.open .gdPracticeActions{margin-top:0}
    #practiceDataPanel.open .gdPracticeLiveDebugPanel{grid-column:2;margin-top:0;order:6}
    #practiceDataPanel.open .gdPracticeReview.stripOnly{grid-column:1/-1}
    #practiceDataPanel.open .gdPracticeReview.stripOnly .gdPracticeScanDebugCanvasWrap{overflow:hidden}
    #practiceDataPanel.open .gdPracticeReview.stripOnly .gdPracticeScanDebug canvas{min-width:0;max-width:100%}
    #statsPanel.gdShotDataPanel.open .gdStatsLegend{align-self:start}
    #statsPanel.gdShotDataPanel.open #shotLogList:empty{min-height:150px;border:1px dashed rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.035)}
    #statsPanel.gdShotDataPanel.open #shotLogList:empty:before{content:"Course shot data will appear here once paired shots exist.";display:block;padding:14px;color:rgba(255,255,255,.56);font-size:12px;font-weight:850;line-height:1.3}
    #statsPanel.gdShotDataPanel.open #shotLogList .bagRow{gap:8px}
    #statsPanel.gdShotDataPanel.open #shotLogList .gdClubGroupRow{cursor:pointer}
    #statsPanel.gdShotDataPanel.open #shotLogList .gdClubGroupRow.active{border-color:rgba(98,210,255,.28);background:rgba(98,210,255,.10)}
    #statsPanel.gdShotDataPanel.open #shotLogList .gdClubShotRow{padding-left:16px;background:rgba(255,255,255,.035)}
    .gdShotDeleteBtn{border:0;border-radius:12px;background:rgba(255,90,95,.16);border:1px solid rgba(255,90,95,.25);color:#fff;padding:7px 9px;font-size:10px;font-weight:950}
    #statsPanel.gdShotDataPanel.open .gdStatsFilters{grid-template-columns:1fr 1fr;gap:8px}
    @media(max-width:760px){
      #practiceDataPanel.open .moduleSheet,#statsPanel.gdShotDataPanel.open .sheet{grid-template-columns:1fr}
      #practiceDataPanel.open .gdPracticeVisualStack{grid-column:1;grid-row:auto;min-height:0}
      #practiceDataPanel.open #gdPracticeDataVisual,#statsPanel.gdShotDataPanel.open #gdStatsVisual{grid-column:1;grid-row:auto;min-height:280px}
      #practiceDataPanel.open #gdPracticeDataVisual svg,#statsPanel.gdShotDataPanel.open #gdStatsVisual svg{min-height:280px}
	      #practiceDataPanel.open .gdPracticeActions,#practiceDataPanel.open .gdPracticeScanner,#practiceDataPanel.open .gdPracticeReview,#practiceDataPanel.open .gdManualQuadTool,#practiceDataPanel.open .gdPracticeProjectionControls,#practiceDataPanel.open .gdPracticeResult,#practiceDataPanel.open .gdPracticeExtractCheckpoint,#practiceDataPanel.open .gdPracticeEvidenceList,#practiceDataPanel.open .gdPracticeMasterTolerance,#practiceDataPanel.open .gdPracticeRecommendationsPanel,#practiceDataPanel.open .gdPracticeAdminExpander,#practiceDataPanel.open .gdPracticeLiveDebugPanel,#practiceDataPanel.open .gdPracticeTolerancePanel,#statsPanel.gdShotDataPanel.open .gdCourseDataLanding,#statsPanel.gdShotDataPanel.open .gdStatsLegend,#statsPanel.gdShotDataPanel.open .gdStatsControl,#statsPanel.gdShotDataPanel.open .gdStatsFilters,#statsPanel.gdShotDataPanel.open #shotLogList,#statsPanel.gdShotDataPanel.open .gdCourseAdminExpander,#statsPanel.gdShotDataPanel.open .gdShotDataAdminPanel{grid-column:1}
    }

body.shell-home .shellDock,body.shell-home .shellTop{display:none!important}body.shell-home .courseScreen{pointer-events:none;opacity:0!important}body.shell-home #gdV62UndoDock,body.shell-home #gdV62ModeSwitch,body.shell-home #gdV62GpsBadge,body.shell-home #gdV62Distance,body.shell-module #gdV62UndoDock,body.shell-module #gdV62ModeSwitch,body.shell-module #gdV62GpsBadge,body.shell-module #gdV62Distance{display:none!important;visibility:hidden!important;pointer-events:none!important}.topIcons{display:none!important}.dock{bottom:calc(76px + env(safe-area-inset-bottom))!important}



/* --- Clarity Caddy Shell Visibility Fix v21 ---
   GPS is now a module. When another module/home is active, all GPS map layers
   are hard-hidden so Leaflet/canvas/absolute controls cannot bleed through. */
body:not(.shell-gps) #map,
body:not(.shell-gps) .depth,
body:not(.shell-gps) .topFade,
body:not(.shell-gps) .bottomFade,
body:not(.shell-gps) .playerBadge,
body:not(.shell-gps) .rightRail,
body:not(.shell-gps) .flagTool,
body:not(.shell-gps) #flagTool,
body:not(.shell-gps) .shotTile,
body:not(.shell-gps) .dock,
body:not(.shell-gps) .hint {
  opacity:0!important;
  pointer-events:none!important;
  visibility:hidden!important;
}
body:not(.shell-gps) .courseScreen{
  opacity:0!important;
  pointer-events:none!important;
  visibility:hidden!important;
}
body.shell-gps #map,
body.shell-gps .depth,
body.shell-gps .topFade,
body.shell-gps .bottomFade{
  visibility:visible;
}
body.shell-gps .courseScreen:not(.hidden){
  visibility:visible;
}
.modulePanel.open{z-index:7200!important;}
.shellHome{z-index:7300!important;}
.shellTop,.shellDock{z-index:7400!important;}

/* --- Shell navigation hardening v22 --- */
.shellTop{align-items:center!important;}
.shellTop .shellLogoBtn{pointer-events:auto;width:42px;height:42px;border-radius:16px;padding:0!important;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#14251a,#07100b)!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 14px 30px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05)!important;}
.shellTop .shellLogoBtn:before{content:none;display:none}
.shellTop .shellRouteLabel{pointer-events:none;align-self:center;padding:9px 12px;border-radius:999px;background:rgba(4,8,6,.46);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.78);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis;}
.shellTop .homeTextBtn{font-size:11px;}
.shellTop .profileReturnBtn{display:none!important;width:40px;height:40px;padding:0!important;align-items:center;justify-content:center;background:rgba(215,176,107,.20)!important;border-color:rgba(215,176,107,.36)!important;font-size:0!important;}
.shellTop .profileReturnBtn.visible{display:inline-flex!important;}
.shellTop .profileReturnBtn:before{content:"";width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,#fff,#d7b06b);box-shadow:0 11px 0 -4px #d7b06b;}
.shellHome .shellLogo{cursor:pointer;}
.gdQuickSignOut{
  position:fixed;
  top:calc(14px + env(safe-area-inset-top));
  right:14px;
  z-index:7700;
  display:none;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(4,8,6,.74);
  color:#fff;
  font-size:12px;
  font-weight:950;
  letter-spacing:0;
  box-shadow:0 14px 32px rgba(0,0,0,.34);
  backdrop-filter:blur(14px);
}
.gdQuickSignOut.visible{display:inline-flex}
body.shell-home .gdQuickSignOut{top:calc(58px + env(safe-area-inset-top))}
@media(max-width:620px){
  .gdQuickSignOut{top:calc(12px + env(safe-area-inset-top));right:12px;min-height:36px;padding:0 12px;font-size:11px}
  body.shell-home .gdQuickSignOut{top:calc(12px + env(safe-area-inset-top))}
}
@media(max-width:380px){.shellTop .shellRouteLabel{display:none}.shellTop button{padding:9px 10px!important}.shellTop .shellLogoBtn{width:40px;height:40px}}

/* --- Profiles v27 --- */
.profileSummary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.profileMetric{border-radius:16px;padding:11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}.profileMetric strong{font-size:17px}.profileMetric span{display:block;margin-top:3px;font-size:10px;color:rgba(255,255,255,.58);letter-spacing:.08em;text-transform:uppercase}.profileBadgeHome{margin-top:8px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.78);font-size:12px}.profileBadgeHome strong{color:#fff}.miniInput{width:100%;margin-top:8px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.22);color:#fff;padding:12px;font-weight:850}.bagEditor{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.bagEditRow{display:grid;grid-template-columns:1fr 62px 62px;gap:7px;align-items:center;padding:8px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}.bagEditRow input{min-width:0;margin:0;border-radius:10px;padding:8px}.bagEditRow input[type="number"]{text-align:center}.trialCallout{margin-top:12px;padding:14px;border-radius:20px;background:linear-gradient(180deg,rgba(31,211,109,.16),rgba(255,255,255,.045));border:1px solid rgba(124,255,170,.16)}@media(max-width:430px){.profileSummary,.bagEditor{grid-template-columns:1fr}}

.dashboard-badge-bottom,
.player-badge-bottom,
.badge-strip{
background: linear-gradient(180deg,#ef4444,#991b1b) !important;
border-top: 1px solid rgba(255,255,255,.12);
}


.profile-ready,
.profiles-ready,
.ready-pill,
.dashboard-status,
.badge-status{
background: linear-gradient(180deg,#ef4444,#991b1b) !important;
color:#fff !important;
border:1px solid rgba(255,255,255,.14) !important;
box-shadow:0 8px 18px rgba(239,68,68,.28);
}


/* Force red GPS-style ready pill */
.profile-ready,
.profiles-ready,
.ready-pill{
background: linear-gradient(180deg,#ef4444 0%, #991b1b 100%) !important;
color:#ffffff !important;
border:1px solid rgba(255,255,255,.16) !important;
box-shadow:0 10px 24px rgba(239,68,68,.28) !important;
}

/* Specific text badge styling */
.status-pill,
.ready-count,
.profile-count,
.profiles-pill{
background: linear-gradient(180deg,#ef4444 0%, #991b1b 100%) !important;
padding:6px 10px !important;
border-radius:999px !important;
color:#fff !important;
font-weight:800 !important;
}


/* --- Clarity Caddy v35 Brand Icon Layer --- */
:root{
  --gd-icon-size-tile: 38px;
  --gd-icon-size-dock: 22px;
}
.gdBrandIcon{
  width:var(--gd-icon-size-tile);
  height:var(--gd-icon-size-tile);
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.32));
}
.gdBrandIconWrap,
.ico{
  display:flex;
  align-items:center;
  justify-content:center;
}
.gdIconTextFallback{display:none}
.gdAdminIconGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:10px;
}
.gdIconRow{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:10px;
  align-items:center;
  padding:10px;
  border-radius:16px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
.gdIconPreview{
  width:46px;
  height:46px;
  border-radius:14px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
}
.gdIconPreview img{width:34px;height:34px;object-fit:contain}
.gdIconRow label{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted, rgba(230,238,233,.68));
  margin-bottom:5px;
}
.gdIconRow select{
  width:100%;
}
.gdAdminIconActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}


/* --- Clarity Caddy v36 Icon Usage Variants --- */
.gdIconHome{background:transparent!important;box-shadow:none!important;filter:drop-shadow(0 8px 14px rgba(0,0,0,.26));opacity:.96}
.gdIconHome img,img.gdIconHome{width:42px!important;height:42px!important;object-fit:contain}
.gdIconModule img,img.gdIconModule{width:24px!important;height:24px!important;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(0,0,0,.32))}
.gdIconAdmin img,img.gdIconAdmin{width:20px!important;height:20px!important;object-fit:contain;opacity:.9}
.gdBrandSlotTag{display:inline-flex;align-items:center;gap:6px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--muted,rgba(230,238,233,.68));font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-left:6px}
.gdAdminIconGrid.slotBased{grid-template-columns:1fr}
@media(min-width:680px){.gdAdminIconGrid.slotBased{grid-template-columns:1fr 1fr}}


/* --- v37 Brand Adoption Cleanup --- */
.gdAdoptedIcon{display:inline-block;vertical-align:middle;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 7px 14px rgba(0,0,0,.32))}
.gdAdoptedIcon.home{width:42px;height:42px;margin-right:10px}
.gdAdoptedIcon.module{width:24px;height:24px;margin-right:7px}
.gdAdoptedIcon.admin{width:20px;height:20px;margin-right:7px;opacity:.92}
.ico.gdIconReplaced{background:transparent!important;border-color:rgba(255,255,255,.06)!important}
.ico.gdIconReplaced .gdAdoptedIcon{margin-right:0!important}
.gdIconInline{display:inline-flex!important;align-items:center!important;gap:8px!important}


/* --- v39 YOUR ICONS ONLY: self-contained, no live observers --- */
.gdAdoptedIcon{
  display:inline-block;
  vertical-align:middle;
  object-fit:contain;
  flex:0 0 auto;
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.32));
}
.gdAdoptedIcon.home{width:44px;height:44px;margin-right:12px}
.gdAdoptedIcon.module{width:25px;height:25px;margin-right:8px}
.gdAdoptedIcon.admin{width:20px;height:20px;margin-right:7px;opacity:.94}
.ico.gdIconReplaced{background:transparent!important;border-color:rgba(255,255,255,.06)!important}
.ico.gdIconReplaced .gdAdoptedIcon{margin-right:0!important}
.gdIconInline{display:inline-flex!important;align-items:center!important;gap:8px!important}
.gdYourIconTile{
  display:grid;
  grid-template-columns:86px 1fr 24px;
  align-items:center;
  gap:14px;
}
.gdYourIconTile .gdAdoptedIcon.home{width:70px;height:70px;margin:0}


/* --- v40 Clean Brand Baseline --- */
.gdAdoptedIcon{
  display:inline-block;
  vertical-align:middle;
  object-fit:contain;
  flex:0 0 auto;
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.32));
}
.gdAdoptedIcon.home{width:44px;height:44px;margin-right:12px}
.gdAdoptedIcon.module{width:25px;height:25px;margin-right:8px}
.gdAdoptedIcon.admin{width:20px;height:20px;margin-right:7px;opacity:.94}
.ico.gdIconReplaced{background:transparent!important;border-color:rgba(255,255,255,.06)!important}
.ico.gdIconReplaced .gdAdoptedIcon{margin-right:0!important}
.gdIconInline{display:inline-flex!important;align-items:center!important;gap:8px!important}
.gdYourIconTile{
  display:grid;
  grid-template-columns:86px 1fr 24px;
  align-items:center;
  gap:14px;
}
.gdYourIconTile .gdAdoptedIcon.home{width:70px;height:70px;margin:0}


/* --- v41 restored Bubble HUD from liked sandbox --- */
.gdBubbleHudWrap{max-width:980px;margin:0 auto;padding:10px}
.gdBubbleHudWrap .stage{position:relative;width:100%;aspect-ratio:1.18/1;min-height:560px;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:radial-gradient(circle at 50% 24%,rgba(55,214,103,.33),rgba(5,18,11,.72) 30%,#020504 75%);box-shadow:0 24px 70px rgba(0,0,0,.50);touch-action:none;user-select:none}
.gdBubbleHudWrap .stage:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 18%,rgba(0,0,0,.12) 42%,rgba(0,0,0,.50) 100%),radial-gradient(circle at 50% 15%,rgba(124,255,170,.16),transparent 35%);pointer-events:none;z-index:1}
.gdBubbleHudWrap .forest{position:absolute;left:-5%;right:-5%;top:14%;height:25%;opacity:.34;background:linear-gradient(180deg,transparent,rgba(0,0,0,.55)),repeating-linear-gradient(110deg,transparent 0 22px,rgba(0,0,0,.55) 22px 36px,transparent 36px 54px);filter:blur(.5px);clip-path:polygon(0 70%,5% 50%,9% 65%,15% 38%,20% 72%,25% 42%,31% 74%,39% 37%,47% 68%,54% 39%,61% 70%,70% 38%,78% 68%,85% 46%,92% 72%,100% 48%,100% 100%,0 100%);z-index:1}
.gdBubbleHudWrap .grid{position:absolute;left:-20%;right:-20%;bottom:-8%;height:76%;transform-origin:50% 100%;transform:perspective(700px) rotateX(62deg);background:linear-gradient(rgba(46,204,102,.30) 1px,transparent 1px) 0 0/100% 54px,linear-gradient(90deg,rgba(46,204,102,.30) 1px,transparent 1px) 0 0/54px 100%,radial-gradient(ellipse at 50% 0%,rgba(46,204,102,.18),transparent 58%);box-shadow:0 -25px 90px rgba(35,197,94,.10) inset;opacity:.92;z-index:2}
.gdBubbleHudWrap .greenWrap{position:absolute;left:50%;top:39%;width:62%;height:28%;transform:translate(-50%,-50%) rotateX(62deg);transform-origin:50% 52%;z-index:4;filter:drop-shadow(0 26px 22px rgba(0,0,0,.56));pointer-events:auto}
.gdBubbleHudWrap .surround{position:absolute;border-radius:50%;left:50%;transform:translateX(-50%);pointer-events:none}
.gdBubbleHudWrap .s2{width:126%;height:116%;top:9%;background:radial-gradient(ellipse at 50% 44%,rgba(100,176,94,.24),rgba(30,78,38,.28) 58%,rgba(4,18,9,.16) 78%,transparent 88%);filter:blur(3px)}
.gdBubbleHudWrap .s1{width:116%;height:108%;top:6%;background:radial-gradient(ellipse at 50% 40%,rgba(118,196,108,.20),rgba(34,88,43,.25) 62%,rgba(5,20,11,.16) 82%,transparent 92%);filter:blur(1px)}
.gdBubbleHudWrap .collar{position:absolute;left:50%;top:2.2%;width:108%;height:101%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse at 50% 45%,rgba(130,170,96,.16) 0 54%,rgba(145,178,103,.28) 66%,rgba(78,109,60,.46) 77%,rgba(25,50,25,.10) 86%,transparent 92%);filter:blur(.4px)}
.gdBubbleHudWrap .plinth{position:absolute;left:50%;width:104%;height:34%;bottom:-7%;transform:translateX(-50%);border-radius:0 0 50% 50%;background:linear-gradient(180deg,rgba(56,118,61,.42),rgba(15,39,20,.94));box-shadow:0 10px 0 rgba(145,210,122,.10) inset,0 22px 40px rgba(0,0,0,.52),0 0 22px rgba(20,120,46,.14)}
.gdBubbleHudWrap .shelf{position:absolute;left:50%;width:98%;height:12%;bottom:-1.2%;transform:translateX(-50%);border-radius:0 0 50% 50%;background:linear-gradient(180deg,rgba(164,235,146,.16),rgba(32,72,36,.10) 42%,transparent 100%)}
.gdBubbleHudWrap .green{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 48% 38%,rgba(205,255,212,.78),rgba(118,232,136,.54) 22%,rgba(67,192,96,.56) 44%,rgba(37,138,66,.70) 62%,rgba(16,80,38,.84) 82%,rgba(7,34,18,.88));border:2px solid rgba(98,255,134,.86);box-shadow:inset 0 0 64px rgba(255,255,255,.08),inset 0 -20px 34px rgba(0,0,0,.18),0 0 55px rgba(56,214,102,.18)}
.gdBubbleHudWrap .slope{position:absolute;inset:2.5%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.03) 26%,rgba(0,0,0,.03) 58%,rgba(0,0,0,.18));mix-blend-mode:screen;opacity:.46}
.gdBubbleHudWrap .cross{position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,rgba(124,255,170,.10),rgba(124,255,170,.62),rgba(124,255,170,.10));transform:translateY(-50%);z-index:2}
.gdBubbleHudWrap .cross.v{top:0;bottom:0;left:50%;right:auto;width:2px;height:auto;background:linear-gradient(180deg,rgba(124,255,170,.10),rgba(124,255,170,.62),rgba(124,255,170,.10));transform:translateX(-50%)}
.gdBubbleHudWrap .ring{position:absolute;left:21%;right:21%;top:25%;bottom:25%;border-radius:50%;border:1px solid rgba(255,255,255,.18);z-index:2}
.gdBubbleHudWrap .bubble{position:absolute;left:50%;top:50%;width:26%;height:36%;border-radius:50%;transform:translate(-50%,-50%) rotate(4deg);border:2px solid rgba(255,159,47,.95);background:radial-gradient(ellipse at 50% 18%,rgba(239,68,68,.70) 0 10%,rgba(239,68,68,.25) 20%,rgba(255,255,255,.16) 46%,rgba(255,255,255,.10) 72%,rgba(96,165,250,.30) 88%,rgba(96,165,250,.52) 100%);box-shadow:0 0 22px rgba(255,159,47,.28);z-index:3;pointer-events:auto;cursor:grab;transition:left .06s linear,top .06s linear,width .06s linear,height .06s linear,transform .06s linear,box-shadow .10s ease}
.gdBubbleHudWrap .bull{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);z-index:5;pointer-events:none}
.gdBubbleHudWrap .bull:before,.gdBubbleHudWrap .bull:after{content:"";position:absolute;background:white;border-radius:9px;box-shadow:0 0 12px rgba(255,255,255,.5)}
.gdBubbleHudWrap .bull:before{width:22px;height:3px;left:0;top:9.5px}.gdBubbleHudWrap .bull:after{height:22px;width:3px;left:9.5px;top:0}
.gdBubbleHudWrap .aim{position:absolute;left:50%;bottom:8%;width:3px;height:0;background:linear-gradient(180deg,rgba(255,159,47,.95),rgba(255,159,47,.72));transform-origin:50% 100%;z-index:6;border-radius:999px;box-shadow:0 0 10px rgba(255,159,47,.35)}
.gdBubbleHudWrap .ball{position:absolute;left:50%;bottom:8%;width:22px;height:22px;transform:translate(-50%,50%);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,#e9e9e9 55%,#a8a8a8);box-shadow:0 0 24px rgba(255,255,255,.75),0 18px 28px rgba(0,0,0,.5);z-index:8}
.gdBubbleHudWrap .label{position:absolute;z-index:10;padding:8px 12px;border-radius:999px;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.14);font-size:13px;font-weight:800;white-space:nowrap;box-shadow:0 12px 24px rgba(0,0,0,.28);pointer-events:none}
.gdBubbleHudWrap .overlay{position:absolute;left:0;right:0;bottom:8%;height:38%;z-index:14;pointer-events:none}
.gdBubbleHudWrap .stack{position:absolute;display:flex;flex-direction:column;gap:10px;pointer-events:auto}.gdBubbleHudWrap .left{left:8%;bottom:8%}.gdBubbleHudWrap .right{right:8%;bottom:8%}
.gdBubbleHudWrap .tile{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;width:210px;min-height:62px;padding:9px 10px;border-radius:15px;background:linear-gradient(180deg,rgba(13,24,20,.86),rgba(4,8,7,.76));border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(10px);box-shadow:0 16px 30px rgba(0,0,0,.30)}
.gdBubbleHudWrap .tile .ico{width:34px;height:34px;border-radius:11px;background:rgba(124,255,170,.08);border:1px solid rgba(124,255,170,.12);display:flex;align-items:center;justify-content:center;color:#7cffaa;font-size:20px}
.gdBubbleHudWrap .tile label{display:block;margin:0;color:rgba(238,246,242,.78);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:900}
.gdBubbleHudWrap .tile input,.gdBubbleHudWrap .tile select{width:100%;background:transparent;border:0;color:#fff;font-size:21px;font-weight:900;outline:none;padding:0;margin:2px 0 0}
.gdBubbleHudWrap .unit{font-size:18px;color:#fff;font-weight:900}.gdBubbleHudWrap .hint{position:absolute;left:50%;bottom:2%;transform:translateX(-50%);z-index:20;color:rgba(238,246,242,.58);font-size:11px;text-align:center;pointer-events:none}
.gdBubbleHudWrap .panel{margin-top:10px;border-radius:18px;padding:12px;background:linear-gradient(180deg,rgba(14,24,20,.92),rgba(6,11,9,.94));border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 48px rgba(0,0,0,.36)}
.gdBubbleHudWrap .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.gdBubbleHudWrap .status{padding:10px;border-radius:13px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);margin-top:8px}.gdBubbleHudWrap .muted{color:rgba(230,238,233,.68)}.gdBubbleHudWrap .mini{font-size:12px}
.gdBubbleHudWrap .action{width:100%;border:0;border-radius:12px;margin-top:8px;padding:11px 12px;background:linear-gradient(180deg,#ff9f2f,#c97917);color:#07100b;font-weight:900}
.gdBubbleHudWrap textarea{width:100%;min-height:132px;border:0;border-radius:12px;margin-top:6px;padding:11px;background:linear-gradient(180deg,#111c17,#0b1310);color:#fff;border:1px solid rgba(255,255,255,.09);font-family:ui-monospace,Menlo,monospace;font-size:11px}
@media(max-width:720px){.gdBubbleHudWrap .stage{min-height:610px;aspect-ratio:.72/1}.gdBubbleHudWrap .greenWrap{width:82%;height:22%;top:34%}.gdBubbleHudWrap .left{left:4%;bottom:9%}.gdBubbleHudWrap .right{right:4%;bottom:9%}.gdBubbleHudWrap .tile{width:150px;min-height:56px;grid-template-columns:30px 1fr 14px;gap:7px;padding:8px}.gdBubbleHudWrap .tile .ico{width:28px;height:28px;font-size:16px}.gdBubbleHudWrap .tile input,.gdBubbleHudWrap .tile select{font-size:17px}.gdBubbleHudWrap .row3{grid-template-columns:1fr}.gdBubbleHudWrap .label{font-size:11px;max-width:80%;overflow:hidden;text-overflow:ellipsis}}


/* --- v42 Beta GPS/Profile/Wand cleanup --- */
.gpsModeSwitch{
  position:absolute;
  top:calc(88px + env(safe-area-inset-top));
  left:50%;
  transform:translateX(-50%);
  z-index:1250;
  display:flex;
  gap:6px;
  padding:5px;
  border-radius:999px;
  background:rgba(4,8,6,.74);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(14px);
  box-shadow:0 12px 30px rgba(0,0,0,.34);
}
.gpsModeSwitch button{
  width:auto;
  border:0;
  border-radius:999px;
  padding:8px 11px;
  color:#fff;
  background:rgba(255,255,255,.07);
  font-size:11px;
  font-weight:950;
  letter-spacing:.04em;
  white-space:nowrap;
}
.gpsModeSwitch button.active{
  background:linear-gradient(180deg,#1fd36d,#12823f);
  color:#031009;
}
.gpsModeSwitch .live.active{
  background:linear-gradient(180deg,#ff3131,#a10f1e);
  color:#fff;
}
#gpsModeSwitch,
.gpsModeSwitch{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  opacity:0!important;
}
.shotTile{
  bottom:calc(154px + env(safe-area-inset-bottom))!important;
  left:12px!important;
  width:176px!important;
}
.shotTile .tileSub.tileMeta{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.18;
}
.dock{
  left:auto!important;
  right:72px!important;
  width:118px!important;
  padding:7px!important;
  border-radius:18px!important;
}
.dockGrid{grid-template-columns:1fr!important}
.dockAction:first-child{display:none!important}
.dockAction{min-height:42px!important}
body[data-gd-permission="player"] .gdCourseAdminExpander,
body[data-gd-permission="subscribedPlayer"] .gdCourseAdminExpander,
body[data-gd-permission="player"] .gdPracticeAdminExpander,
body[data-gd-permission="subscribedPlayer"] .gdPracticeAdminExpander{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.shell-home .panel:not(.open),
body.shell-home .modulePanel:not(.open),
body.shell-home .courseScreen:not(.open),
body.shell-home #developerPanel:not(.open){
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.rightRail .railBtn.gpsRailBtn{
  border-color:rgba(255,49,49,.28);
  background:rgba(255,49,49,.13);
}
.profileLocked .miniInput,
.profileLocked .bagEditor input{
  pointer-events:none!important;
  opacity:.62!important;
}
.profileLocked .moduleCard button.profileEditOnly{display:inline-flex!important}
.profileLocked .moduleCard button:not(.profileEditOnly):not(.secondary){display:none!important}
.profileEditUnlocked .moduleCard button.profileEditOnly{display:none!important}
.profileEditHint{
  margin-top:8px;
  padding:9px 11px;
  border-radius:14px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.68);
  font-size:12px;
  font-weight:760;
}
#profileConsistencyInput{display:none!important}
#profileConsistencyInput + *{display:none!important}
@media(max-width:720px){
  .gpsModeSwitch{top:calc(76px + env(safe-area-inset-top))}
  .shotTile{bottom:calc(128px + env(safe-area-inset-bottom))!important;width:160px!important}
  .dock{right:62px!important;width:104px!important}
  .bshud-stack-left,.gdBubbleHudWrap .left{left:3%!important;bottom:5%!important}
  .bshud-stack-right,.gdBubbleHudWrap .right{right:3%!important;bottom:5%!important}
  .bshud-tile,.gdBubbleHudWrap .tile{
    width:132px!important;
    min-height:50px!important;
    grid-template-columns:24px 1fr 12px!important;
    gap:5px!important;
    padding:7px!important;
  }
  .bshud-tile .bshud-ico,.gdBubbleHudWrap .tile .ico{
    width:24px!important;
    height:24px!important;
    font-size:13px!important;
  }
  .bshud-tile input,.bshud-tile select,.gdBubbleHudWrap .tile input,.gdBubbleHudWrap .tile select{
    font-size:14px!important;
  }
  .bshud-unit,.gdBubbleHudWrap .unit{font-size:13px!important}
  .bshud-overlay,.gdBubbleHudWrap .overlay{bottom:4%!important}
}


/* Removed obsolete v43-v61 patch layers; v62+ owns the flattened shell/GPS/home/profile baseline. */

/* --- v62 Flattened Beta Baseline Layer --- */

/* Use body states instead of multiple competing UI patches */
body.gdGpsActive .dock,
body.gdGpsActive nav.dock,
body.gdGpsActive .bottomDock,
body.gdGpsActive .bottomNav,
body.gdGpsActive .moduleDock,
body.gdGpsActive #bottomDock,
body.gdGpsActive #moduleDock,
body.gdGpsActive .gdHiddenGpsDock,
body.gdGpsActive .gdGpsModuleDock{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  opacity:0!important;
}

/* Hide old GPS player badge during GPS. v62 owns the stable badge. */
body.shell-gps .playerBadge,
body.shell-gps #playerBadge,
body.shell-gps .gpsPlayerBadge,
body.gdGpsActive .playerBadge,
body.gdGpsActive #playerBadge,
body.gdGpsActive .gpsPlayerBadge,
body.gps-active .playerBadge,
body.gps-active #playerBadge,
body.gps-active .gpsPlayerBadge{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

#gdV62GpsBadge{
  position:fixed;
  left:12px;
  top:calc(max(12px,env(safe-area-inset-top)) + 116px);
  width:184px;
  min-height:58px;
  max-width:calc(100vw - 88px);
  border-radius:14px;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) 56px;
  grid-template-rows:1fr 23px;
  padding:0;
  margin:0;
  background:linear-gradient(180deg,rgba(13,23,27,.96),rgba(6,12,16,.96));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 24px rgba(0,0,0,.30);
  color:#fff;
  z-index:1800;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  transition:transform .22s ease,opacity .22s ease;
  touch-action:pan-y;
}
body:not(.gdGpsActive) #gdV62GpsBadge{display:none!important}
#gdV62GpsBadge.gdTucked{transform:translateX(calc(-100% + 30px));opacity:1;overflow:hidden}
#gdV62GpsBadge.gdTucked .main,
#gdV62GpsBadge.gdTucked .offset,
#gdV62GpsBadge.gdTucked .status{opacity:0;pointer-events:none}
#gdV62GpsBadge.gdTucked:after{
  content:"";
  position:absolute;
  right:0;
  width:30px;
  top:0;
  bottom:0;
  background:transparent;
}
#gdV62GpsBadge.gdTucked:before{
  content:"";
  position:absolute;
  right:10px;
  top:50%;
  width:12px;
  height:24px;
  transform:translateY(-50%);
  border-left:3px solid rgba(255,255,255,.86);
  border-right:3px solid rgba(255,255,255,.86);
  z-index:1;
}
#gdV62GpsBadge .main{grid-column:1;grid-row:1;padding:8px 9px 5px;min-width:0}
#gdV62GpsBadge .courseTop{margin-bottom:3px;color:#b7ff3b;font-size:8px;line-height:1;font-weight:950;text-transform:uppercase;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gdV62GpsBadge .name{font-size:15px;line-height:.95;font-weight:950;letter-spacing:0;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gdV62GpsBadge .sub{margin-top:4px;font-size:10px;color:rgba(230,238,233,.66);font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gdV62GpsBadge .offset{grid-column:2;grid-row:1 / span 2;min-width:56px;background:linear-gradient(90deg,#ef233c,#ff3151);display:grid;grid-template-rows:1fr 1.75fr 1fr;align-items:center;justify-items:center;font-size:15px;font-weight:950;color:#fff;touch-action:manipulation;user-select:none;cursor:pointer;position:relative}
#gdV62GpsBadge .offset[data-score-tone="negative"]{background:linear-gradient(90deg,#0b62d8,#1597ff)}
#gdV62GpsBadge .offset .swipeMark{font-size:10px;line-height:1;opacity:.54;letter-spacing:0}
#gdV62GpsBadge .offset .swipeMark.top{align-self:end}
#gdV62GpsBadge .offset .swipeMark.bottom{align-self:start}
#gdV62GpsBadge .offset .mid{font-size:25px;line-height:1;white-space:nowrap}
#gdV62GpsBadge .status{grid-column:1;grid-row:2;padding:5px 9px;border-top:1px solid rgba(255,255,255,.08);background:rgba(3,10,15,.74);color:rgba(230,238,233,.78);font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:space-between}
#gdV62GpsBadge .dot{width:5px;height:5px;border-radius:50%;background:#ff8a1f;display:inline-block;margin-right:4px}

/* Stable right rail and vertical mode switch */
.rightRail{
  right:10px!important;
  top:calc(max(10px,env(safe-area-inset-top)) + 58px)!important;
  gap:8px!important;
  z-index:1810!important;
}
.rightRail .railBtn,
#flagTool{
  width:58px!important;
  height:58px!important;
  border-radius:20px!important;
  background:rgba(0,0,0,.34)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(10px)!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
}
.rightRail img,
#flagTool img{
  width:40px!important;
  height:40px!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.34));
}

#gdV62ModeSwitch{
  position:relative;
  right:auto;
  top:auto;
  left:auto;
  bottom:auto;
  z-index:1850;
  display:grid;
  width:58px;
  height:58px;
  padding:0;
  border-radius:20px;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  overflow:hidden;
}
body:not(.gdGpsActive) #gdV62ModeSwitch{display:none!important}
body.shell-gps .rightRail #gdV62ModeSwitch{
  order:8!important;
  position:relative!important;
  right:auto!important;
  top:auto!important;
  left:auto!important;
  bottom:auto!important;
  transform:none!important;
}
#gdV62ModeSwitch button{
  width:58px;
  min-width:58px;
  height:58px;
  border:0;
  border-radius:20px;
  padding:0 5px;
  color:#fff;
  font-size:11px;
  line-height:1.08;
  white-space:normal;
  text-align:center;
  font-weight:950;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.08);
  cursor:pointer;
}
#gdV62ModeSwitch button.twoTap{background:linear-gradient(180deg,#1fd36d,#12823f);color:#031009}
#gdV62ModeSwitch button.live{background:linear-gradient(180deg,#ff3131,#a10f1e);color:#fff;font-size:10px}

#gdV62UndoDock{
  position:fixed;
  inset:0;
  z-index:1900;
  display:block;
  pointer-events:none;
}
body:not(.gdGpsActive):not(.shell-gps):not(.gps-active) #gdV62UndoDock{display:none!important}
#gdV62NewShotBtn,
#gdV62LogShotBtn,
#gdV62UndoBtn{
  pointer-events:auto;
  min-width:96px;
  height:48px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.54);
  color:#fff;
  font-weight:950;
  box-shadow:0 14px 30px rgba(0,0,0,.38);
  backdrop-filter:blur(12px);
}
#gdV62NewShotBtn{
  position:fixed;
  left:50%;
  bottom:calc(16px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  min-width:92px;
  height:42px;
  border-radius:16px;
  background:rgba(0,0,0,.54);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 12px;
  font-size:13px;
}
#gdV62LogShotBtn{
  position:fixed;
  right:14px;
  bottom:calc(14px + env(safe-area-inset-bottom));
  transform:none;
  width:118px;
  min-width:118px;
  height:118px;
  border-radius:26px;
  background:rgba(0,0,0,.72);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1px;
  padding:7px 5px 8px;
  border-color:rgba(255,255,255,.18);
}
#gdV62LogShotBtn.pending{
  background:rgba(0,0,0,.82);
  color:#fff;
  border-color:rgba(255,255,255,.30);
}
#gdV62LogShotBtn .gdLogShotIcon{
  width:104px;
  height:92px;
  flex:0 0 92px;
  display:none;
  color:#fff;
  filter:drop-shadow(0 7px 10px rgba(0,0,0,.35));
  transform:translateY(-4px);
}
#gdV62LogShotBtn .gdLogShotIcon *{
  vector-effect:non-scaling-stroke;
}
#gdV62LogShotBtn .gdLogShotIcon{
  display:block;
}
#gdV62LogShotBtn .gdLogShotText{
  display:block;
  line-height:1;
  white-space:nowrap;
  font-size:13px;
  letter-spacing:0;
  margin-top:-4px;
}
#gdV62LogShotBtn .gdShakeEcho{
  fill:none;
  stroke:rgba(247,251,248,.58);
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#gdV62LogShotBtn .gdShakeEcho.faint{
  stroke:rgba(247,251,248,.32);
}
#gdV62LogShotBtn .gdPhoneFace{
  fill:none;
  stroke:#f7fbf8;
  stroke-width:2.5;
  stroke-linejoin:round;
}
#gdV62LogShotBtn .gdPhoneIsland,
#gdV62LogShotBtn .gdSideButton,
#gdV62LogShotBtn .gdTopArrowHead{
  fill:#f7fbf8;
}
#gdV62LogShotBtn .gdCameraLens{
  fill:#030504;
}
#gdV62LogShotBtn .gdTopArrow{
  fill:none;
  stroke:#f7fbf8;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#gdV62LogShotBtn{
  min-width:118px;
}
#gdV62LogShotBtn:hover,
#gdV62LogShotBtn:focus-visible{
  box-shadow:0 14px 30px rgba(0,0,0,.38),0 0 0 3px rgba(255,255,255,.14);
  outline:none;
}
body.gdMappedStartPromptActive #gdV62UndoDock{
  inset:0;
}
body.gdMappedStartPromptActive #gdV62NewShotBtn{
  min-width:92px;
  height:42px;
  border-radius:15px;
  padding:0 12px;
  font-size:13px;
}
body.gdMappedStartPromptActive #gdV62NewShotBtn{
  left:50%;
  bottom:calc(16px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
}
body.gdMappedStartPromptActive #gdV62LogShotBtn{
  right:14px;
  bottom:calc(14px + env(safe-area-inset-bottom));
  transform:none;
  width:118px;
  min-width:118px;
  height:118px;
  border-radius:26px;
  flex-direction:column;
  padding:7px 5px 8px;
}
body.gdMappedStartPromptActive #gdV62LogShotBtn .gdLogShotIcon{
  width:104px;
  height:92px;
  flex-basis:92px;
}
body.gdMappedStartPromptActive #hint.gdMappedStartPill{
  bottom:calc(76px + env(safe-area-inset-bottom));
}

#gdV62Distance{
  display:none!important;
  position:fixed;
  left:12px;
  bottom:calc(194px + env(safe-area-inset-bottom));
  z-index:1880;
  min-width:132px;
  max-width:210px;
  padding:9px 11px;
  border-radius:18px;
  background:rgba(0,0,0,.54);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.34);
  backdrop-filter:blur(12px);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
body:not(.gdGpsActive) #gdV62Distance{display:none!important}
#gdV62Distance .label{font-size:10px;line-height:1;letter-spacing:.11em;text-transform:uppercase;color:rgba(230,238,233,.62);font-weight:950;margin-bottom:5px}
#gdV62Distance .value{font-size:29px;line-height:.95;letter-spacing:-.05em;font-weight:950}
#gdV62Distance .unit{font-size:15px;margin-left:3px;color:rgba(255,255,255,.82)}
#gdV62Distance .sub{margin-top:5px;font-size:11px;color:rgba(230,238,233,.68);font-weight:800}

.shotTile{
  bottom:calc(98px + env(safe-area-inset-bottom))!important;
  left:12px!important;
  width:min(178px,calc(100vw - 132px))!important;
  height:132px!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  padding:9px!important;
  border-radius:18px!important;
  background:rgba(6,10,8,.74)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.32)!important;
  backdrop-filter:blur(14px);
  display:none;
  position:absolute!important;
}
.shotTile.visible{display:block!important}
.shotTile .tileTop,.shotTile .tileLabel,.shotTile .bagMini{display:none!important}
.shotTile .gdShotHoleChip{
  display:none!important;
}
.shotTile .tileBack,
.shotTile .tileFront,
.shotTile .tilePlays,
.shotTile .tileClub,
.shotTile .tileDist,
.shotTile .tileSub{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#f6f8fb!important;
  box-sizing:border-box;
  overflow:visible;
  text-align:center;
}
.shotTile .tileBack,.shotTile .tileFront{
  position:absolute!important;
  left:50%!important;
  transform:translateX(-50%);
  width:max-content;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
.shotTile .tileBack{top:6px!important}
.shotTile .tileFront{bottom:6px!important}
.shotTile .tilePlays{
  position:absolute!important;
  top:56px!important;
  right:8px!important;
  transform:none;
  min-width:46px;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  font-size:9px;
  text-align:center;
}
.shotTile .tilePlays.slopeOver .tileMetricValue,
.shotTile .tilePlays.slopeUnder .tileMetricValue,
.shotTile .tilePlays.slopeLevel .tileMetricValue{color:#fff!important}
.shotTile .tileMain{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  min-width:0;
  min-height:0;
  line-height:1;
}
.shotTile .tileClub{
  position:absolute!important;
  left:18px!important;
  top:50%!important;
  transform:translateY(-50%);
  width:58px!important;
  height:58px!important;
  display:flex!important;
  flex-direction:column;
  align-items:center!important;
  justify-content:center!important;
  min-width:0;
  white-space:normal!important;
}
.shotTile .tileDist{
  position:absolute!important;
  left:68px!important;
  right:46px!important;
  top:56px!important;
  display:flex!important;
  flex-direction:column;
  align-items:center!important;
  justify-content:center!important;
  min-width:0;
  white-space:normal!important;
}
.shotTile .tilePrimary{
  position:absolute!important;
  left:18px!important;
  right:auto!important;
  top:84px!important;
  width:58px!important;
}
.shotTile .tileMeta{
  display:none!important;
}
.shotTile .tileSub{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
  min-height:0;
  font-size:9px!important;
  line-height:1.08!important;
  font-weight:850!important;
  white-space:normal!important;
  text-overflow:clip!important;
}
.shotTile .tilePinMetric{display:none!important}
.shotTile .tileMetricLabel,.shotTile .tileSmallLabel{
  display:none!important;
  color:rgba(246,248,251,.76);
  font-size:9px;
  line-height:1;
  font-weight:850;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.shotTile .tilePlays .tileMetricLabel{
  display:block!important;
  color:rgba(246,248,251,.72);
  font-size:8px;
  line-height:1;
  font-weight:900;
  letter-spacing:0;
  text-transform:none;
}
.shotTile .tileBack .tileMetricLabel,.shotTile .tileFront .tileMetricLabel{
  display:block!important;
  color:rgba(246,248,251,.66);
  font-size:8px;
  line-height:1;
  font-weight:900;
  letter-spacing:0;
  text-transform:none;
  margin-right:3px;
}
.shotTile .tileMetricValue{
  display:block;
  color:#fff;
  font-size:15px;
  line-height:.98;
  font-weight:950;
  letter-spacing:0;
}
.shotTile .tileClub .tileMetricValue{font-size:23px}
.shotTile .tileDist .tileMetricValue{font-size:21px}
.shotTile .tileBack .tileMetricValue,.shotTile .tileFront .tileMetricValue{font-size:13px}
.shotTile .tileMetricValue span{font-size:.42em;color:rgba(246,248,251,.72);margin-left:1px}
.shotTile .tileMetricValue .dashUnit{display:none}
.shotTile .tileSmallValue{
  display:block;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:950;
  letter-spacing:0;
}
.shotTile .tileSmallValue span{font-size:.56em;color:rgba(246,248,251,.72);margin-left:1px}
.shotTile .tileSmallValue.plus,.shotTile .tileSmallValue.even,.shotTile .tileSmallValue.minus{color:#fff!important}
.shotTile .tileMetricValue.missing,.shotTile .tileSmallValue.missing{color:rgba(246,248,251,.54)!important}
.shotTile .tilePlays .tileMetricValue{font-size:13px}
.shotTile.noBag{display:none}
.shotTile.noBag.visible{display:block!important}
.gdSetBagLink{
  width:58px;
  height:58px;
  min-width:58px;
  min-height:58px;
  border-radius:20px;
  padding:0;
  display:grid;
  align-items:center;
  justify-content:center;
  place-items:center;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:#fff;
  line-height:1;
  cursor:pointer;
}
.gdSetBagLink img{
  display:block!important;
  width:48px;
  height:48px;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.34));
}

/* Home */
#gdV62Home{
  max-width:470px;
  margin:0 auto;
  padding:18px 14px 28px;
  color:#f4f7f5;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
#gdV62Home .top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
#gdV62Home .logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.11);box-shadow:0 18px 48px rgba(0,0,0,.34);display:grid;place-items:center;color:#fff;font-weight:950;letter-spacing:-.08em}
#gdV62Home .settings{border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.055);color:#fff;border-radius:999px;padding:10px 13px;font-size:12px;font-weight:950}
#gdV62Home .player{border-radius:24px;padding:16px;background:radial-gradient(circle at 84% 24%,rgba(255,159,47,.14),transparent 36%),linear-gradient(180deg,rgba(14,26,21,.94),rgba(5,10,8,.96));border:1px solid rgba(255,255,255,.11);box-shadow:0 18px 48px rgba(0,0,0,.38);display:grid;grid-template-columns:1fr 112px;gap:14px;align-items:center;margin-bottom:16px;overflow:hidden}
#gdV62Home .kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(230,238,233,.68);font-weight:950}
#gdV62Home .name{font-size:28px;line-height:1;font-weight:950;letter-spacing:-.05em;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gdV62Home .meta{margin-top:8px;color:rgba(230,238,233,.68);font-size:13px;font-weight:800;line-height:1.25}
#gdV62Home .miniBubble{position:relative;height:88px;border-radius:18px;background:radial-gradient(circle at 50% 50%,rgba(34,197,94,.18),rgba(0,0,0,.22) 64%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.16));border:1px solid rgba(255,255,255,.08);overflow:hidden}
#gdV62Home .miniBubble:before{content:"";position:absolute;left:50%;top:54%;width:78px;height:42px;transform:translate(-50%,-50%) rotate(-9deg);border-radius:50%;border:2px solid rgba(34,197,94,.80)}
#gdV62Home .miniBubble:after{content:"";position:absolute;left:var(--x,52%);top:50%;width:var(--w,42px);height:var(--h,62px);transform:translate(-50%,-50%) rotate(var(--t,6deg));border-radius:50%;border:2px solid rgba(255,159,47,.95);background:radial-gradient(ellipse at 50% 20%,rgba(255,255,255,.20),rgba(255,255,255,.10) 52%,rgba(96,165,250,.32) 100%)}
#gdV62Home .strip{grid-column:1 / -1;margin:2px -16px -16px;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,#ef233c,#991b1b);border-top:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:950}
#gdV62Home .section{display:flex;align-items:center;justify-content:space-between;margin:15px 2px 10px}
#gdV62Home .section strong{font-size:15px;letter-spacing:-.02em}
#gdV62Home .section span{font-size:11px;color:rgba(230,238,233,.58);font-weight:850}
#gdV62Home .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#gdV62Home .tile{position:relative;aspect-ratio:1/1;border:1px solid rgba(255,255,255,.11);border-radius:24px;padding:14px;background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.07),transparent 30%),linear-gradient(180deg,rgba(12,22,18,.92),rgba(4,8,6,.98));box-shadow:0 18px 48px rgba(0,0,0,.36);color:#f4f7f5;text-align:left;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
#gdV62Home .tile.primary{background:radial-gradient(circle at 70% 16%,rgba(34,197,94,.22),transparent 34%),linear-gradient(180deg,rgba(30,110,58,.82),rgba(4,8,6,.98));border-color:rgba(124,255,170,.20)}
#gdV62Home .tile img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(0,0,0,.36))}
#gdV62Home .title{font-size:23px;line-height:.95;font-weight:950;letter-spacing:-.05em;margin-bottom:6px}
#gdV62Home .sub{color:rgba(230,238,233,.66);font-size:11.5px;line-height:1.22;font-weight:780}
#gdV62Home .bubbleScene{position:relative;height:82px;border-radius:18px;background:radial-gradient(ellipse at 55% 40%,rgba(34,197,94,.28),transparent 54%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(0,0,0,.18));border:1px solid rgba(255,255,255,.08);margin-bottom:auto}
#gdV62Home .bubbleScene:before{content:"";position:absolute;left:50%;top:50%;width:82px;height:42px;transform:translate(-50%,-50%) rotate(-8deg);border-radius:50%;border:2px solid rgba(34,197,94,.85)}
#gdV62Home .bubbleScene:after{content:"";position:absolute;left:52%;top:50%;width:38px;height:56px;transform:translate(-50%,-50%) rotate(8deg);border-radius:50%;border:2px solid rgba(255,159,47,.95);background:radial-gradient(ellipse at 50% 20%,rgba(255,255,255,.2),rgba(255,255,255,.09) 55%,rgba(96,165,250,.32))}
#gdV62Home .bagPrompt{margin-top:14px;border-radius:18px;padding:12px 14px;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#ef233c,#991b1b);border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 32px rgba(239,68,68,.20);font-size:13px;font-weight:950}
#gdV62Home .bagPrompt.ready{background:linear-gradient(180deg,rgba(12,22,18,.92),rgba(4,8,6,.98))}
#gdV62Home .bagPrompt img{width:34px;height:34px;object-fit:contain}
#gdV62Home .miniActions{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
#gdV62Home .miniActions button{border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);color:#fff;border-radius:16px;padding:12px 10px;font-weight:950}

/* Profile lock */
#profilePanel.gdLocked input,#profilePanel.gdLocked select{pointer-events:none!important;opacity:.62!important}
.gdProfileLockNotice{margin:10px 0;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:rgba(230,238,233,.72);font-size:12px;font-weight:800}
.gdProfileEditBtn{width:100%;margin-top:10px;border:0;border-radius:14px;padding:12px;background:linear-gradient(180deg,#ff9f2f,#c97917);color:#07100b;font-weight:950}

@media(max-width:720px){
  #gdV62GpsBadge{left:10px;top:calc(max(10px,env(safe-area-inset-top)) + 58px);width:184px;min-height:58px;grid-template-columns:minmax(0,1fr) 56px}
  #gdV62GpsBadge .name{font-size:15px}
  #gdV62GpsBadge .offset .mid{font-size:25px}
  #gdV62ModeSwitch{width:58px;height:58px}
  #gdV62ModeSwitch button{width:58px;min-width:58px;height:58px}
  #gdV62UndoDock{right:78px;bottom:calc(16px + env(safe-area-inset-bottom))}
  body.gdMappedStartPromptActive #gdV62UndoDock{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))}
  #gdV62Home .player{grid-template-columns:1fr 98px}
  #gdV62Home .tile img{width:62px;height:62px}
  #gdV62Home .title{font-size:20px}
}


/* --- v63 Profile + Player Setup Cleanup --- */

#gdV63ProfileOverlay{
  position:fixed;
  inset:0;
  z-index:2600;
  background:
    radial-gradient(circle at 50% 0%,rgba(34,197,94,.16),transparent 35%),
    linear-gradient(180deg,#07100a,#020403);
  color:#f4f7f5;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  overflow:auto;
  padding:calc(16px + env(safe-area-inset-top)) 14px calc(28px + env(safe-area-inset-bottom));
}
#gdV63ProfileOverlay.hidden{
  display:none!important;
}
#gdV63ProfileOverlay .wrap{
  max-width:480px;
  margin:0 auto;
}
#gdV63ProfileOverlay .top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
}
#gdV63ProfileOverlay .nav{
  display:flex;
  gap:8px;
}
#gdV63ProfileOverlay .nav button,
#gdV63ProfileOverlay .ghostBtn{
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.055);
  color:#fff;
  border-radius:999px;
  padding:10px 13px;
  font-size:12px;
  font-weight:950;
}
#gdV63ProfileOverlay .titleBlock{
  margin:4px 2px 14px;
}
#gdV63ProfileOverlay .kicker{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(230,238,233,.68);
  font-weight:950;
}
#gdV63ProfileOverlay h1{
  margin:5px 0 4px;
  font-size:34px;
  line-height:.95;
  letter-spacing:-.06em;
}
#gdV63ProfileOverlay .sub{
  color:rgba(230,238,233,.68);
  font-size:13px;
  font-weight:780;
}
#gdV63ProfileOverlay .hero{
  border-radius:26px;
  padding:16px;
  background:
    radial-gradient(circle at 82% 22%,rgba(255,159,47,.13),transparent 34%),
    linear-gradient(180deg,rgba(14,26,21,.94),rgba(5,10,8,.96));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 18px 48px rgba(0,0,0,.38);
  display:grid;
  grid-template-columns:1fr 120px;
  gap:14px;
  align-items:center;
  overflow:hidden;
}
#gdV63ProfileOverlay .playerName{
  font-size:30px;
  line-height:.95;
  font-weight:950;
  letter-spacing:-.055em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#gdV63ProfileOverlay .meta{
  margin-top:8px;
  color:rgba(230,238,233,.70);
  font-size:13px;
  font-weight:850;
  line-height:1.35;
}
#gdV63ProfileOverlay .bubblePreview{
  position:relative;
  height:104px;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 50%,rgba(34,197,94,.18),rgba(0,0,0,.22) 64%),
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.16));
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}
#gdV63ProfileOverlay .bubblePreview:before{
  content:"";
  position:absolute;
  left:50%;
  top:54%;
  width:88px;
  height:46px;
  transform:translate(-50%,-50%) rotate(-9deg);
  border-radius:50%;
  border:2px solid rgba(34,197,94,.82);
  box-shadow:0 0 22px rgba(34,197,94,.22);
}
#gdV63ProfileOverlay .bubblePreview:after{
  content:"";
  position:absolute;
  left:var(--x,52%);
  top:50%;
  width:var(--w,42px);
  height:var(--h,64px);
  transform:translate(-50%,-50%) rotate(var(--t,6deg));
  border-radius:50%;
  border:2px solid rgba(255,159,47,.96);
  background:radial-gradient(ellipse at 50% 20%,rgba(255,255,255,.20),rgba(255,255,255,.10) 52%,rgba(96,165,250,.32) 100%);
  box-shadow:0 0 22px rgba(255,159,47,.25);
}
#gdV63ProfileOverlay .statusStrip{
  grid-column:1 / -1;
  margin:2px -16px -16px;
  padding:10px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(180deg,#ef233c,#991b1b);
  border-top:1px solid rgba(255,255,255,.12);
  font-size:12px;
  font-weight:950;
}
#gdV63ProfileOverlay .statusStrip.ready{
  background:linear-gradient(180deg,rgba(18,79,43,.95),rgba(7,36,20,.96));
}
#gdV63ProfileOverlay .cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}
#gdV63ProfileOverlay .card{
  border:1px solid rgba(255,255,255,.10);
  border-radius:22px;
  padding:14px;
  background:linear-gradient(180deg,rgba(12,22,18,.92),rgba(4,8,6,.98));
  box-shadow:0 16px 38px rgba(0,0,0,.30);
}
#gdV63ProfileOverlay .card img{
  width:44px;
  height:44px;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.34));
  margin-bottom:10px;
}
#gdV63ProfileOverlay .card strong{
  display:block;
  font-size:18px;
  line-height:1;
  letter-spacing:-.04em;
}
#gdV63ProfileOverlay .card span{
  display:block;
  margin-top:5px;
  color:rgba(230,238,233,.66);
  font-size:12px;
  font-weight:760;
  line-height:1.28;
}
#gdV63ProfileOverlay .editPanel{
  margin-top:14px;
  border-radius:24px;
  padding:14px;
  background:linear-gradient(180deg,rgba(13,24,20,.90),rgba(4,8,6,.96));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 16px 38px rgba(0,0,0,.30);
}
#gdV63ProfileOverlay .editPanel.locked .form{
  display:none!important;
}
#gdV63ProfileOverlay .lockNotice{
  padding:11px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(230,238,233,.72);
  font-size:12px;
  font-weight:820;
  line-height:1.35;
}
#gdV63ProfileOverlay .form{
  display:grid;
  gap:10px;
}
#gdV63ProfileOverlay label{
  display:grid;
  gap:6px;
  color:rgba(230,238,233,.72);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:950;
}
#gdV63ProfileOverlay input,
#gdV63ProfileOverlay select{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.28);
  color:#fff;
  border-radius:15px;
  padding:13px 12px;
  font-size:16px;
  font-weight:850;
  outline:none;
}
#gdV63ProfileOverlay .primaryBtn{
  width:100%;
  border:0;
  border-radius:16px;
  padding:13px 12px;
  margin-top:12px;
  background:linear-gradient(180deg,#ff9f2f,#c97917);
  color:#07100b;
  font-weight:950;
}
#gdV63ProfileOverlay .dangerLite{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:12px;
  margin-top:10px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.82);
  font-weight:900;
}
#gdV63ProfileOverlay .smallNote{
  margin-top:10px;
  color:rgba(230,238,233,.58);
  font-size:12px;
  line-height:1.4;
}

@media(max-width:390px){
  #gdV63ProfileOverlay .hero{grid-template-columns:1fr 104px}
  #gdV63ProfileOverlay .playerName{font-size:27px}
  #gdV63ProfileOverlay .cards{gap:10px}
  #gdV63ProfileOverlay .card{padding:12px}
}


/* --- v65 Clean Brand/Icon Baseline --- */

:root{
  --gd-orange:#ff9f2f;
  --gd-green:#22c55e;
  --gd-red:#ef233c;
  --gd-black:#030504;
  --gd-white:#f4f7f5;
}

.gdBrandIcon,
.gdBaseIcon,
.gdTileIcon,
.rightRail img,
#flagTool img,
#gdV62Home img,
#gdV63ProfileOverlay img{
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.34));
}

.gdBrandMarkFallback{
  display:grid!important;
  place-items:center!important;
  width:48px!important;
  height:48px!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02))!important;
  border:1px solid rgba(255,255,255,.11)!important;
  color:#fff!important;
  font-weight:950!important;
  letter-spacing:-.08em!important;
}

#flagTool img,
.rightRail img{
  width:40px!important;
  height:40px!important;
}

#bagRailBtn img{
  width:48px!important;
  height:48px!important;
}

#gdV62Home .tile img,
#gdV63ProfileOverlay .card img{
  width:76px!important;
  height:76px!important;
}

#gdV63ProfileOverlay .card img{
  width:44px!important;
  height:44px!important;
}

.shotTile .gdShotBagButton img,
#gdV62UndoDock img{
  background:transparent!important;
}


/* --- v66 GPS shell/rail brand cleanup --- */

/* Top shell must only be Back, Home, GPS, Settings. No flag/home duplicate. */
body.gdGpsActive .gdShellFlagDuplicate,
body.gdGpsActive button.gdShellFlagDuplicate,
body.gdGpsActive .topFlag,
body.gdGpsActive #topFlag,
body.gdGpsActive .flagHomeBtn,
body.gdGpsActive #flagHomeBtn{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  opacity:0!important;
}

/* If the top shell has a small icon-only flag button, kill it. */
body.gdGpsActive .shellTop button:not(.gdKeepShellButton),
body.gdGpsActive .topShell button:not(.gdKeepShellButton),
body.gdGpsActive .shellBar button:not(.gdKeepShellButton){
  /* JS tags exact duplicate only. */
}

/* Right rail is the only place for tool icons. */
.rightRail{
  right:10px!important;
  top:calc(max(10px,env(safe-area-inset-top)) + 58px)!important;
  gap:8px!important;
  z-index:1810!important;
  display:flex!important;
  flex-direction:column!important;
}
.rightRail .railBtn,
#flagTool,
#gpsRailBtn,
#bagRailBtn,
#scorecardRailBtn{
  width:58px!important;
  height:58px!important;
  border-radius:20px!important;
  background:rgba(0,0,0,.34)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
}
.rightRail img,
#flagTool img,
#gpsRailBtn img,
#bagRailBtn img,
#scorecardRailBtn img{
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.34));
}
#flagTool img,
#gpsRailBtn img,
#scorecardRailBtn img{
  width:40px!important;
  height:40px!important;
}
#gpsRailBtn img.gdCgGpsIcon{
  width:46px!important;
  height:46px!important;
  transform:translateY(1px);
}
#bagRailBtn img{
  width:48px!important;
  height:48px!important;
}
#flagTool{
  position:relative!important;
  right:auto!important;
  top:auto!important;
  z-index:auto!important;
  cursor:pointer!important;
  touch-action:none!important;
  user-select:none!important;
  font-size:0!important;
}
#flagTool.grabbing{
  opacity:.55!important;
  transform:scale(.96)!important;
}

/* Mode switch sits below the final rail. */
#gdV62ModeSwitch{
  right:10px!important;
}

/* GPS chrome refinement pass */
body.gdGpsActive #gdV62GpsBadge,
body.gps-active #gdV62GpsBadge{
  top:calc(max(10px,env(safe-area-inset-top)) + 58px)!important;
  left:10px!important;
  grid-template-rows:1fr 23px!important;
}
body.gdGpsActive #gdV62GpsBadge .status{
  gap:10px!important;
}
body.gdGpsActive #gdV62GpsBadge .statusText{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.gdGpsActive #gdV62GpsBadge .modeText{
  flex:0 0 auto;
  white-space:nowrap;
}
body.gdGpsActive #gdV62GpsBadge{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
body.gdGpsActive #gdV62GpsBadge.gdTucked{
  transform:translateX(calc(-100% + 30px))!important;
  opacity:1!important;
}
body.gdGpsActive #shellBackBtn{
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  padding:0!important;
  border-radius:999px!important;
  font-size:0!important;
  display:grid!important;
  place-items:center!important;
}
body.gdGpsActive #shellBackBtn::before{
  content:"<";
  font-size:25px;
  line-height:1;
  font-weight:950;
}
body.gdGpsActive #shellTop .homeTextBtn{
  position:relative;
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  padding:0!important;
  border-radius:999px!important;
  font-size:0!important;
  display:grid!important;
  place-items:center!important;
}
body.gdGpsActive #shellTop .homeTextBtn::before{
  content:"⌂";
  color:#fff;
  font-size:27px;
  line-height:1;
  transform:translateY(-1px);
}
body.gdGpsActive #shellTop .homeTextBtn::after{
  content:"GD";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-22%);
  font-size:7px;
  line-height:1;
  font-weight:950;
  letter-spacing:0;
  color:#061009;
  background:#fff;
  border-radius:999px;
  padding:2px 3px;
}
body.gdGpsActive #shellRouteLabel{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#gdV62ModeSwitch{
  box-sizing:border-box!important;
  width:58px!important;
  height:98px!important;
  border-radius:20px!important;
  padding:3px!important;
  background:rgba(5,9,6,.42)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 12px 26px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  overflow:visible!important;
}
#gdV62ModeSwitch::before{
  content:"GPS MODE";
  position:absolute;
  left:50%;
  top:-18px;
  transform:translateX(-50%);
  color:rgba(255,255,255,.78);
  font-size:8px;
  line-height:1;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-shadow:0 2px 8px rgba(0,0,0,.55);
  white-space:nowrap;
  pointer-events:none;
}
#gdV62ModeSwitch button.gdModeToggle{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  border-radius:17px!important;
  padding:0!important;
  background:rgba(255,255,255,.08)!important;
  border:0!important;
  color:#031009!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16)!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
#gdV62ModeSwitch .gdModeTrack{
  position:relative;
  width:44px;
  height:84px;
  margin:3px auto;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.32);
  display:block;
}
#gdV62ModeSwitch .gdModeKnob{
  position:absolute;
  left:0;
  top:0;
  width:44px;
  height:44px;
  border-radius:999px;
  display:grid;
  place-items:center;
  box-shadow:0 8px 18px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.30);
  transition:background .18s ease, transform .18s ease, color .18s ease;
}
#gdV62ModeSwitch button.twoTap .gdModeKnob{
  background:linear-gradient(180deg,#2ee777,#12a752);
  color:#061009;
  transform:translateY(40px);
}
#gdV62ModeSwitch button.live .gdModeKnob{
  background:linear-gradient(180deg,#ff4747,#b81424);
  color:#fff;
  transform:translateY(0);
}
#gdV62ModeSwitch .gdModeText{
  display:block;
  font-size:9px;
  line-height:1.02;
  font-weight:950;
  letter-spacing:0;
  text-align:center;
}


/* --- v67 Profile System Cleanup --- */

#gdProfileV67{
  position:fixed;
  inset:0;
  z-index:7600;
  background:
    radial-gradient(circle at 50% 0%,rgba(34,197,94,.16),transparent 35%),
    radial-gradient(circle at 86% 14%,rgba(255,159,47,.10),transparent 24%),
    linear-gradient(180deg,#07100a,#020403);
  color:#f4f7f5;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  overflow:auto;
  padding:calc(16px + env(safe-area-inset-top)) 14px calc(32px + env(safe-area-inset-bottom));
}
#gdProfileV67.hidden{display:none!important}
#gdProfileV67 .wrap{max-width:500px;margin:0 auto}
#gdProfileV67 .coachDirectoryWrap{max-width:880px}
#gdProfileV67 .topbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;
}
#gdProfileV67 .nav{display:flex;gap:8px;align-items:center}
#gdProfileV67 button{
  font-family:inherit;
}
#gdProfileV67 .pillBtn{
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.055);
  color:#fff;
  border-radius:999px;
  padding:10px 13px;
  font-size:12px;
  font-weight:950;
}
#gdProfileV67 .editBtn{
  border:0;
  background:linear-gradient(180deg,#ff9f2f,#c97917);
  color:#07100b;
  border-radius:999px;
  padding:10px 14px;
  font-size:12px;
  font-weight:950;
}
#gdProfileV67 .heading{margin:4px 2px 14px}
#gdProfileV67 .kicker{
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(230,238,233,.68);font-weight:950;
}
#gdProfileV67 h1{
  margin:5px 0 5px;font-size:36px;line-height:.93;letter-spacing:-.065em;
}
#gdProfileV67 .coachPortalTitle{
  display:flex;
  align-items:center;
  gap:12px;
  margin:5px 0 5px;
}
#gdProfileV67 .coachPortalTitle h1{
  margin:0;
}
#gdProfileV67 .coachTitleMark{
  width:54px;
  height:54px;
  flex:0 0 54px;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.28));
}
#gdProfileV67 .coachTitleMark svg{
  width:54px;
  height:54px;
  display:block;
}
#gdProfileV67 .coachTitleMark img{
  width:54px;
  height:54px;
  display:block;
  object-fit:contain;
}
#gdProfileV67 .heading p{
  margin:0;color:rgba(230,238,233,.68);font-size:13px;font-weight:780;line-height:1.35;
}
#gdProfileV67 .authHeading{
  margin:6px 2px 18px;
}
#gdProfileV67 .authBrand{
  display:flex;
  align-items:center;
  gap:12px;
}
#gdProfileV67 .authMark{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
#gdProfileV67 .authMark svg{
  width:34px;
  height:34px;
  display:block;
}
#gdProfileV67 .authMark img{
  width:34px;
  height:34px;
  display:block;
  object-fit:contain;
}
#gdProfileV67 .authTitle{
  color:#fff;
  font-size:28px;
  line-height:.98;
  font-weight:950;
  letter-spacing:-.04em;
}
#gdProfileV67 .authMode{
  margin-top:10px;
  color:rgba(230,238,233,.70);
  font-size:12px;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* Player identity hero */
#gdProfileV67 .hero{
  border-radius:18px;
  overflow:hidden;
  background:
    radial-gradient(circle at 84% 24%,rgba(255,159,47,.13),transparent 36%),
    linear-gradient(180deg,rgba(14,26,21,.94),rgba(5,10,8,.96));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 12px 30px rgba(0,0,0,.28);
}
#gdProfileV67 .heroMain{
  padding:12px 14px;
  display:grid;
  grid-template-columns:1fr 92px;
  gap:12px;
  align-items:center;
}
#gdProfileV67 .name{
  font-size:25px;line-height:.95;font-weight:950;letter-spacing:-.045em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#gdProfileV67 .meta{
  margin-top:7px;color:rgba(230,238,233,.70);font-size:12px;font-weight:850;line-height:1.32;
}
#gdProfileV67 .bubblePreview{
  position:relative;height:78px;border-radius:15px;
  background:
    radial-gradient(circle at 50% 50%,rgba(34,197,94,.18),rgba(0,0,0,.22) 64%),
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.16));
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}
#gdProfileV67 .bubblePreview:before{
  content:"";position:absolute;left:50%;top:54%;width:70px;height:36px;
  transform:translate(-50%,-50%) rotate(-9deg);
  border-radius:50%;border:2px solid rgba(34,197,94,.82);
  box-shadow:0 0 22px rgba(34,197,94,.22);
}
#gdProfileV67 .bubblePreview:after{
  content:"";position:absolute;left:var(--x,52%);top:50%;width:calc(var(--w,42px) * .76);height:calc(var(--h,64px) * .76);
  transform:translate(-50%,-50%) rotate(var(--t,6deg));
  border-radius:50%;border:2px solid rgba(255,159,47,.96);
  background:radial-gradient(ellipse at 50% 20%,rgba(255,255,255,.20),rgba(255,255,255,.10) 52%,rgba(96,165,250,.32) 100%);
  box-shadow:0 0 22px rgba(255,159,47,.25);
}
#gdProfileV67 .profileIconPreview{
  appearance:none;
  width:100%;
  height:78px;
  border-radius:15px;
  background:
    radial-gradient(circle at 50% 42%,rgba(34,197,94,.18),transparent 66%),
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(0,0,0,.18));
  border:1px solid rgba(255,255,255,.08);
  display:grid;
  place-items:center;
  overflow:hidden;
  cursor:pointer;
  padding:0;
  color:#fff;
}
#gdProfileV67 .profileIconPreview img{
  width:74px;
  height:74px;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.34));
}
#gdProfileV67 .profileIconPreview.hasPhoto img{
  width:84px;
  height:84px;
  border-radius:26px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.16);
}
#gdProfileV67 .profileIconPreview:focus-visible{
  outline:2px solid rgba(255,159,47,.85);
  outline-offset:3px;
}
#gdProfileV67 .statusStrip{
  padding:8px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  border-top:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,#ef233c,#991b1b);
  font-size:11px;font-weight:950;
}
#gdProfileV67 .statusStrip.ready{
  background:linear-gradient(180deg,rgba(18,79,43,.95),rgba(7,36,20,.96));
}
#gdProfileV67 .setupStrip{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid rgba(255,255,255,.12);
  overflow:hidden;
}
#gdProfileV67 .setupStrip button{
  min-height:34px;
  border:0;
  border-radius:0;
  padding:8px 12px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:11px;
  font-weight:950;
  box-shadow:none;
}
#gdProfileV67 .setupStrip button + button{
  border-left:1px solid rgba(255,255,255,.18);
}
#gdProfileV67 .setupStrip .setupBag{
  background:linear-gradient(180deg,#ef233c,#9f1239);
}
#gdProfileV67 .setupStrip .setupShot{
  background:linear-gradient(180deg,#f59e0b,#b45309);
}
#gdProfileV67 .setupStrip .done{
  background:linear-gradient(180deg,rgba(18,79,43,.95),rgba(7,36,20,.96));
}
#gdProfileV67 .dot{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block;margin-right:6px}

/* quick cards */
#gdProfileV67 .cards{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
#gdProfileV67 .card{
  min-height:86px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:10px;
  background:linear-gradient(180deg,rgba(9,18,14,.88),rgba(4,8,6,.94));
  box-shadow:0 8px 18px rgba(0,0,0,.20);
  color:#fff;
  text-align:left;
  display:grid;
  grid-template-columns:44px 1fr;
  gap:10px;
  align-items:center;
}
#gdProfileV67 .card img{
  width:40px;height:40px;object-fit:contain;background:transparent;border:0;box-shadow:none;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.34));
}
#gdProfileV67 .card strong{
  display:block;font-size:17px;line-height:1;letter-spacing:-.035em;
}
#gdProfileV67 .card span{
  display:block;margin-top:4px;color:rgba(230,238,233,.66);font-size:11px;font-weight:760;line-height:1.22;
}
#gdProfileV67 .card.good{border-color:rgba(34,197,94,.22)}
#gdProfileV67 .card.warn{border-color:rgba(239,68,68,.24)}

/* locked/edit panel */
#gdProfileV67 .editPanel{
  margin-top:14px;
  border-radius:24px;
  padding:14px;
  background:linear-gradient(180deg,rgba(13,24,20,.90),rgba(4,8,6,.96));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 16px 38px rgba(0,0,0,.30);
}
#gdProfileV67 .lockNotice{
  padding:11px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(230,238,233,.72);
  font-size:12px;
  font-weight:820;
  line-height:1.35;
}
#gdProfileV67 .authOptions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 0;
}
#gdProfileV67 .authKeep{
  display:flex;
  grid-template-columns:none;
  align-items:center;
  gap:8px;
  width:auto;
  color:rgba(230,238,233,.72);
  font-size:12px;
  font-weight:850;
  letter-spacing:0;
  text-transform:none;
}
#gdProfileV67 .authKeep input{
  width:16px;
  height:16px;
  margin:0;
  padding:0;
  accent-color:#d7b06b;
}
#gdProfileV67 .textLink{
  width:auto;
  border:0;
  background:transparent;
  color:rgba(230,238,233,.82);
  padding:0;
  font-size:12px;
  font-weight:900;
  text-decoration:underline;
  box-shadow:none;
}
#gdProfileV67 .authHelp{
  min-height:18px;
  margin-top:8px;
  color:rgba(230,238,233,.66);
  font-size:12px;
  font-weight:780;
  line-height:1.35;
}
#gdProfileV67 .authHelp.error{
  color:#ffb4a8;
}
#gdProfileV67 .authHelp.success{
  color:#76f2a2;
}
/* The way out of the sign-in panel. App Store guideline 5.1.1(v) means a player
   who does not want an account must be able to leave this screen, and a reviewer
   has to be able to SEE that they can - so this is a plainly worded button at
   the top of the panel, at full touch-target height, not a subtle × in a
   corner. */
#gdProfileV67 .authDismiss{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  min-height:44px;
  margin:2px 0 14px;
  padding:0;
  border:0;
  background:none;
  color:rgba(230,238,233,.82);
  font-size:14px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
#gdProfileV67 .authDismiss:active{ opacity:.6; }
#gdProfileV67 .authSwitch{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-top:12px;
  color:rgba(230,238,233,.66);
  font-size:12px;
  font-weight:800;
}
#gdProfileV67 .form{
  margin-top:12px;
  display:grid;
  gap:10px;
}
#gdProfileV67 .locked .form{display:none!important}
#gdProfileV67 label{
  display:grid;gap:6px;
  color:rgba(230,238,233,.72);
  font-size:11px;text-transform:uppercase;letter-spacing:.10em;font-weight:950;
}
#gdProfileV67 input,
#gdProfileV67 select{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.28);
  color:#fff;
  border-radius:15px;
  padding:13px 12px;
  font-size:16px;
  font-weight:850;
  outline:none;
}
#gdProfileV67 .saveBtn{
  width:100%;
  border:0;
  border-radius:16px;
  padding:13px 12px;
  margin-top:12px;
  background:linear-gradient(180deg,#ff9f2f,#c97917);
  color:#07100b;
  font-weight:950;
}
#gdProfileV67 .secondaryBtn{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:12px;
  margin-top:10px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.82);
  font-weight:900;
}
#gdProfileV67 .smallNote{
  margin-top:10px;
  color:rgba(230,238,233,.58);
  font-size:12px;
  line-height:1.4;
}
#gdProfileV67 .accountPanel,
#gdProfileV67 .coachPanel,
#gdProfileV67 .coachUpdatesPanel{
  margin-top:14px;
  border-radius:20px;
  padding:13px;
  background:linear-gradient(180deg,rgba(9,18,14,.90),rgba(3,7,5,.96));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 12px 28px rgba(0,0,0,.24);
}
#gdProfileV67 .coachDashboard{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-width:0;
}
#gdProfileV67 .panelHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:11px;
}
#gdProfileV67 .panelHead strong{
  display:block;
  font-size:16px;
  line-height:1;
}
#gdProfileV67 .panelHead span{
  display:block;
  margin-top:4px;
  color:rgba(230,238,233,.62);
  font-size:11px;
  font-weight:780;
}
#gdProfileV67 .gdProfileAdminSubHead{
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
}
#gdProfileV67 .accountGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
#gdProfileV67 .accountGrid label.full{
  grid-column:1/-1;
}
#gdProfileV67 .accountActions{
  display:flex;
  gap:8px;
  margin-top:10px;
  flex-wrap:wrap;
}
#gdProfileV67 .accountActions button{
  flex:1;
  min-width:118px;
}
#gdProfileV67 .photoUpload{
  margin-top:0;
  display:grid;
  gap:8px;
}
#gdProfileV67 .photoUpload input{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:15px;
  padding:10px;
  background:rgba(0,0,0,.24);
  color:rgba(255,255,255,.78);
}
.gdPlayerSettingsSheet .moduleCard{
  margin-bottom:12px;
}
.gdPlayerSettingsList{
  display:grid;
  gap:10px;
}
.gdPlayerSettingsRow{
  appearance:none;
  width:100%;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:16px!important;
  padding:13px 14px!important;
  background:rgba(255,255,255,.045)!important;
  color:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  text-align:left!important;
  box-shadow:none!important;
  cursor:pointer;
}
.gdPlayerSettingsRow strong{
  display:block;
  font-size:16px;
  line-height:1.1;
}
.gdPlayerSettingsRow span{
  display:block;
  margin-top:4px!important;
  color:rgba(255,255,255,.58)!important;
  font-size:12px!important;
  line-height:1.25;
}
.gdPlayerSettingsRow:after{
  content:">";
  color:rgba(255,255,255,.45);
  font-weight:950;
}
.gdPlayerSettingsToggleList{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.gdPlayerSettingsToggleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.09);
}
.gdPlayerSettingsToggleRow strong{
  display:block;
  font-size:15px;
  line-height:1.05;
}
.gdPlayerSettingsToggleRow span{
  display:block;
  margin-top:4px!important;
  color:rgba(255,255,255,.58)!important;
  font-size:12px!important;
  line-height:1.25;
}
.gdPlayerSettingsToggleRow button{
  width:auto!important;
  min-width:72px;
  margin:0!important;
  padding:9px 12px!important;
  border-radius:999px!important;
  box-shadow:none!important;
}
.gdPlayerSettingsToggleRow button.active{
  background:linear-gradient(180deg,#ff9f2f,#d88516)!important;
  color:#06110b!important;
}
.gdPlayerSettingsEmailStatus{
  display:block;
  min-height:18px;
  margin-top:10px!important;
  color:rgba(255,255,255,.58)!important;
  font-size:12px!important;
  line-height:1.3;
}
.gdPlayerSettingsSubPage[hidden]{
  display:none!important;
}
.gdPlayerSettingsSubBack{
  width:auto!important;
  margin:0 0 12px!important;
  padding:9px 12px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  background:rgba(255,255,255,.055)!important;
  color:#fff!important;
  font-weight:950!important;
  box-shadow:none!important;
}
.gdPlayerSettingsProfileBody{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(170px,190px);
  gap:18px;
  align-items:start;
}
.gdPlayerSettingsGrid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:10px;
  margin-top:12px;
  min-width:0;
}
.gdPlayerSettingsGrid label,
.gdPlayerSettingsFull{
  display:grid;
  gap:6px;
  min-width:0;
  box-sizing:border-box;
  color:rgba(255,255,255,.66);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.gdPlayerSettingsGrid label.full,
.gdPlayerSettingsFull{
  grid-column:1/-1;
}
.gdPlayerSettingsGrid input,
.gdPlayerSettingsFull input{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:12px;
  background:rgba(0,0,0,.22);
  color:#fff;
  font-size:15px;
  font-weight:850;
  letter-spacing:0;
  text-transform:none;
}
.gdPlayerSettingsPhotoInput{
  display:none!important;
}
.gdPlayerSettingsActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
.gdPlayerSettingsActions button{
  width:100%;
}
.gdPlayerSettingsSheet .moduleCard button.gdPlayerSettingsPhotoPreview{
  appearance:none;
  width:100%;
  min-height:190px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12)!important;
  background:
    radial-gradient(circle at 50% 35%,rgba(34,197,94,.16),transparent 62%),
    linear-gradient(180deg,rgba(23,36,30,.92),rgba(5,10,8,.96))!important;
  color:#fff!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px;
  box-sizing:border-box;
  margin-top:0;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 14px 28px rgba(0,0,0,.24);
}
.gdPlayerSettingsSheet .moduleCard button.gdPlayerSettingsPhotoPreview img{
  width:92px;
  height:92px;
  object-fit:contain;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.36));
}
.gdPlayerSettingsSheet .moduleCard button.gdPlayerSettingsPhotoPreview.hasPhoto img{
  width:112px;
  height:112px;
  border-radius:28px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.16);
}
.gdPlayerSettingsSheet .moduleCard button.gdPlayerSettingsPhotoPreview span{
  margin:0!important;
  color:rgba(255,255,255,.72)!important;
  font-size:12px!important;
  font-weight:900!important;
  text-align:center;
}
@media(max-width:560px){
  .gdPlayerSettingsProfileBody,
  .gdPlayerSettingsGrid,
  .gdPlayerSettingsActions{grid-template-columns:1fr}
}
#gdProfileV67 .accountSettings{
  margin-top:10px;
}
#gdProfileV67 .accountSettings summary{
  cursor:pointer;
  list-style:none;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:12px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.86);
  font-weight:950;
}
#gdProfileV67 .accountSettings summary::-webkit-details-marker{display:none}
#gdProfileV67 .accountSettingsBody{
  margin-top:10px;
  display:grid;
  gap:9px;
}
#gdProfileV67 .roleSwitch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
#gdProfileV67 .roleSwitch button,
#gdProfileV67 .coachPlayer button{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.045);
  color:#fff;
  border-radius:14px;
  padding:11px 10px;
  font-weight:950;
}
#gdProfileV67 .roleSwitch button.active{
  background:linear-gradient(180deg,rgba(34,197,94,.24),rgba(18,79,43,.36));
  border-color:rgba(124,255,170,.22);
}
#gdProfileV67 .coachList{
  display:grid;
  gap:8px;
  margin-top:10px;
  min-width:0;
}
#gdProfileV67 .gdProfileRosterTools{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-end;
  margin:8px 0 8px;
  min-width:0;
  position:relative;
}
#gdProfileV67 .gdProfileRosterTool{
  position:relative;
}
#gdProfileV67 .gdProfileRosterTool summary{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.11);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  color:#f4fff7;
  cursor:pointer;
  list-style:none;
}
#gdProfileV67 .gdProfileRosterTool summary::-webkit-details-marker{
  display:none;
}
#gdProfileV67 .gdProfileRosterTool[open] summary,
#gdProfileV67 .gdProfileRosterTool summary:hover,
#gdProfileV67 .gdProfileRosterTool summary:focus-visible{
  border-color:rgba(108,238,137,.34);
  background:rgba(108,238,137,.13);
  outline:none;
}
#gdProfileV67 .gdProfileRosterTool svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:2.4;
  fill:none;
}
#gdProfileV67 .gdProfileRosterPopover{
  position:absolute;
  right:0;
  top:44px;
  z-index:20;
  width:min(260px,calc(100vw - 42px));
  padding:10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:12px;
  background:rgba(8,14,11,.96);
  box-shadow:0 18px 38px rgba(0,0,0,.34);
}
#gdProfileV67 .gdProfileRosterPopover label{
  display:grid;
  min-width:0;
  gap:6px;
  color:rgba(230,238,233,.62);
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
#gdProfileV67 .gdProfileRosterPopover input,
#gdProfileV67 .gdProfileRosterPopover select{
  height:40px;
  border-radius:10px;
  padding:9px 10px;
  font-size:13px;
  font-weight:850;
  width:100%;
  box-sizing:border-box;
}
#gdProfileV67 .gdProfileRoster{
  display:grid;
  gap:0;
  min-width:0;
  max-height:min(56vh,520px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  background:rgba(0,0,0,.16);
}
#gdProfileV67 .gdProfileRoster.gdRosterRecentMode{
  max-height:none;
  overflow:hidden;
}
#gdProfileV67 .gdProfileRosterRow{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  min-width:0;
  border-bottom:1px solid rgba(255,255,255,.075);
}
#gdProfileV67 .gdProfileRosterRow:last-child{
  border-bottom:0;
}
#gdProfileV67 .gdProfileRosterRow[hidden]{
  display:none!important;
}
#gdProfileV67 .gdProfileRosterMain{
  appearance:none;
  min-width:0;
  width:100%;
  display:grid;
  grid-template-columns:minmax(120px,1.05fr) minmax(150px,1.05fr) minmax(168px,1.25fr) minmax(82px,.55fr) minmax(86px,.55fr);
  gap:8px;
  align-items:center;
  text-align:left;
  border:0;
  border-radius:0;
  padding:10px 11px;
  background:transparent;
  color:#fff;
  box-shadow:none;
}
#gdProfileV67 button.gdProfileRosterMain{
  cursor:pointer;
}
#gdProfileV67 button.gdProfileRosterMain:hover,
#gdProfileV67 button.gdProfileRosterMain:focus-visible{
  background:rgba(255,159,47,.07);
  outline:none;
}
#gdProfileV67 .gdProfileRosterMain.static{
  cursor:default;
}
#gdProfileV67 .gdProfileRosterRow.active{
  background:rgba(255,159,47,.075);
}
#gdProfileV67 .gdProfileRosterRow.active .gdProfileRosterMain{
  box-shadow:inset 3px 0 0 rgba(255,159,47,.88);
}
#gdProfileV67 .gdProfileRosterName{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff;
  font-size:13px;
  font-weight:950;
}
#gdProfileV67 .gdProfileRosterEmail,
#gdProfileV67 .gdProfileRosterMeta{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(230,238,233,.62);
  font-size:11px;
  font-weight:780;
}
#gdProfileV67 .gdProfileRosterActivity{
  min-width:0;
  display:grid;
  gap:2px;
  color:rgba(230,238,233,.78);
}
#gdProfileV67 .gdProfileRosterActivity b,
#gdProfileV67 .gdProfileRosterActivity small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#gdProfileV67 .gdProfileRosterActivity b{
  color:#f4fff7;
  font-size:12px;
  font-weight:950;
}
#gdProfileV67 .gdProfileRosterActivity small{
  color:rgba(230,238,233,.54);
  font-size:10px;
  font-weight:760;
}
#gdProfileV67 .gdProfileRosterRow[data-activity-kind="booking"] .gdProfileRosterActivity b{
  color:#7dd3fc;
}
#gdProfileV67 .gdProfileRosterRow[data-activity-kind="bag"] .gdProfileRosterActivity b{
  color:#f9c76a;
}
#gdProfileV67 .gdProfileRosterRow[data-activity-kind="shot"] .gdProfileRosterActivity b{
  color:#6cee89;
}
#gdProfileV67 .gdProfileRosterStatus{
  justify-self:end;
  max-width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  padding:5px 8px;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.04);
  font-size:10px;
  font-weight:950;
  white-space:nowrap;
}
#gdProfileV67 .gdProfileRosterRemove{
  width:auto;
  min-width:72px;
  margin:0;
  border:0;
  border-left:1px solid rgba(255,255,255,.075);
  border-radius:0;
  padding:0 10px;
  background:rgba(127,29,29,.16);
  color:rgba(255,225,225,.92);
  font-size:11px;
  font-weight:950;
}
#gdProfileV67 .gdProfileRosterRemove:hover,
#gdProfileV67 .gdProfileRosterRemove:focus-visible{
  background:rgba(127,29,29,.28);
  outline:none;
}
/* An admin row carries two actions - Email and Remove - and the base row is a
   two-column grid, so a third child would auto-place onto a second row under
   the name. Widened here rather than in the base rule so every other roster
   (players, coaches) keeps the layout it already has. */
#gdProfileV67 .gdProfileRosterRow.hasEmailAction{
  grid-template-columns:minmax(0,1fr) auto auto;
}
/* Changing an email is not a destructive act, so it does not wear the
   destructive colour. It shares the button geometry and nothing else. */
#gdProfileV67 .gdProfileRosterEmailAction{
  background:rgba(255,255,255,.05);
  color:rgba(230,238,233,.88);
}
#gdProfileV67 .gdProfileRosterEmailAction:hover,
#gdProfileV67 .gdProfileRosterEmailAction:focus-visible{
  background:rgba(255,255,255,.12);
}
/* Expanded row detail. Spans the whole row whether it has one action button or
   two, so it sits under the name rather than beside it. */
#gdProfileV67 .gdProfileRosterDetail{
  grid-column:1/-1;
  display:grid;
  gap:10px;
  padding:10px 11px 12px;
  border-top:1px solid rgba(255,255,255,.075);
  background:rgba(0,0,0,.22);
}
/* display:grid above outranks the browser's own [hidden] rule, which is what
   left every row expanded on load. */
#gdProfileV67 .gdProfileRosterDetail[hidden]{
  display:none;
}
#gdProfileV67 .gdProfileRosterRow.isExpanded{
  background:rgba(255,255,255,.03);
}
#gdProfileV67 .gdRosterDetailGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:8px 14px;
  margin:0;
}
#gdProfileV67 .gdRosterDetailGrid dt{
  color:rgba(230,238,233,.52);
  font-size:10px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
#gdProfileV67 .gdRosterDetailGrid dd{
  display:flex;
  gap:6px;
  align-items:center;
  min-width:0;
  margin:2px 0 0;
  color:rgba(240,247,243,.9);
  font-size:11px;
  font-weight:780;
}
#gdProfileV67 .gdRosterDetailGrid code{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11px;
  user-select:all;
}
#gdProfileV67 .gdRosterDetailCopy{
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.14);
  border-radius:6px;
  padding:2px 7px;
  background:rgba(255,255,255,.05);
  color:rgba(230,238,233,.88);
  font-size:10px;
  font-weight:950;
  cursor:pointer;
}
#gdProfileV67 .gdRosterDetailActions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#gdProfileV67 .gdRosterDetailAction{
  border:1px solid rgba(255,159,47,.34);
  border-radius:8px;
  padding:7px 11px;
  background:rgba(255,159,47,.12);
  color:#ffe9cd;
  font-size:11px;
  font-weight:950;
  cursor:pointer;
}
#gdProfileV67 .gdRosterDetailCopy:hover,
#gdProfileV67 .gdRosterDetailAction:hover{
  background:rgba(255,159,47,.22);
}
#gdProfileV67 .gdProfileRosterEmpty{
  display:block;
  padding:12px;
  color:rgba(230,238,233,.58);
  font-size:12px;
  font-weight:850;
}
#gdProfileV67 .gdProfileRosterPrompt{
  display:none;
  padding:12px;
  color:rgba(230,238,233,.58);
  font-size:12px;
  font-weight:850;
}
#gdProfileV67 .gdProfileRoster.isDashboardEmpty .gdProfileRosterPrompt,
#gdProfileV67 .gdProfileRoster.isFilteredEmpty .gdProfileRosterPrompt{
  display:block;
}
#gdProfileV67 .gdProfileRoster.isFilteredEmpty:after{
  content:"";
  display:none;
}
#gdProfileV67 .coachDirectoryTabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:4px 0 12px;
}
#gdProfileV67 .coachDirectoryTabs button{
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:12px 10px;
  background:rgba(255,255,255,.045);
  color:#fff;
  font-weight:950;
}
#gdProfileV67 .coachDirectoryTabs button.active{
  background:linear-gradient(180deg,#ff9f2f,#c97917);
  border-color:transparent;
  color:#07100b;
}
/* ---- Coach viewing a player ---------------------------------------------
   Deliberately unlike the own-profile surface above. That screen is green and
   orange and full of edit affordances; this one is blue-tinted, banner-first,
   and reads as a record you are inspecting. The difference IS the feature -
   a coach mistaking a player's data for their own is what this replaced. */
#gdProfileV67 .coachViewBanner{
  display:flex;
  align-items:center;
  gap:9px;
  margin:2px 0 12px;
  padding:10px 12px;
  border-radius:13px;
  border:1px solid rgba(96,165,250,.34);
  background:linear-gradient(180deg,rgba(30,58,95,.55),rgba(12,24,42,.62));
  color:rgba(226,238,255,.92);
  font-size:12px;
  font-weight:850;
  line-height:1.35;
}
#gdProfileV67 .coachViewBanner i{
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#60a5fa;
  box-shadow:0 0 12px rgba(96,165,250,.7);
}
#gdProfileV67 .coachViewBanner b{
  color:#fff;
  font-weight:950;
}
#gdProfileV67 .coachPlayerHero{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:12px;
  align-items:center;
  padding:13px;
  border-radius:18px;
  border:1px solid rgba(96,165,250,.20);
  background:
    radial-gradient(circle at 88% 18%,rgba(96,165,250,.14),transparent 42%),
    linear-gradient(180deg,rgba(12,22,32,.94),rgba(5,9,13,.96));
  box-shadow:0 12px 30px rgba(0,0,0,.28);
}
#gdProfileV67 .coachPlayerAvatar{
  width:64px;
  height:64px;
  border-radius:20px;
  display:grid;
  place-items:center;
  overflow:hidden;
  font-size:22px;
  font-weight:950;
  letter-spacing:-.03em;
  color:#dbeafe;
  border:1px solid rgba(96,165,250,.30);
  background:linear-gradient(180deg,rgba(37,74,122,.55),rgba(12,24,42,.75));
}
#gdProfileV67 .coachPlayerAvatar.hasPhoto{
  border-color:rgba(255,255,255,.18);
}
#gdProfileV67 .coachPlayerAvatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
#gdProfileV67 .coachPlayerName{
  font-size:24px;
  line-height:.98;
  font-weight:950;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
}
#gdProfileV67 .coachPlayerEmail{
  margin-top:5px;
  color:rgba(226,238,255,.62);
  font-size:12px;
  font-weight:800;
  overflow-wrap:anywhere;
}
#gdProfileV67 .coachPlayerTags{
  margin-top:9px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
#gdProfileV67 .coachPlayerTags span{
  border-radius:999px;
  padding:4px 9px;
  font-size:10px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:rgba(226,238,255,.80);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
}
#gdProfileV67 .coachPlayerTags span.warn{
  color:#ffd7a8;
  border-color:rgba(255,159,47,.42);
  background:rgba(255,159,47,.12);
}
#gdProfileV67 .coachPlayerMetaRow{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
#gdProfileV67 .coachPlayerMetaRow > div{
  padding:10px 8px;
  border-radius:13px;
  text-align:center;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.035);
}
#gdProfileV67 .coachPlayerMetaRow b{
  display:block;
  font-size:14px;
  font-weight:950;
  letter-spacing:-.02em;
}
#gdProfileV67 .coachPlayerMetaRow span{
  display:block;
  margin-top:3px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(226,238,255,.55);
}
#gdProfileV67 .coachPlayerCards{
  margin-top:12px;
  display:grid;
  gap:10px;
}
#gdProfileV67 .coachPlayerCard{
  padding:12px;
  border-radius:15px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg,rgba(9,16,22,.90),rgba(4,7,10,.94));
  box-shadow:0 8px 18px rgba(0,0,0,.20);
}
#gdProfileV67 .coachPlayerCard.ready{
  border-color:rgba(34,197,94,.24);
}
#gdProfileV67 .coachPlayerCard.empty{
  border-color:rgba(255,159,47,.26);
}
#gdProfileV67 .coachPlayerCard.booking{
  border-color:rgba(96,165,250,.30);
}
#gdProfileV67 .coachPlayerCardHead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
}
#gdProfileV67 .coachPlayerCardHead strong{
  font-size:12px;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(230,238,233,.74);
}
#gdProfileV67 .coachPlayerCardState{
  font-size:10px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(230,238,233,.52);
}
#gdProfileV67 .coachPlayerCard.ready .coachPlayerCardState{color:#5ee08a}
#gdProfileV67 .coachPlayerCard.empty .coachPlayerCardState{color:#ffb457}
#gdProfileV67 .coachPlayerCardBody{
  margin-top:8px;
}
#gdProfileV67 .coachPlayerCardBody b{
  display:block;
  font-size:19px;
  font-weight:950;
  letter-spacing:-.03em;
}
#gdProfileV67 .coachPlayerCardBody span{
  display:block;
  margin-top:3px;
  font-size:12px;
  font-weight:800;
  color:rgba(230,238,233,.60);
}
#gdProfileV67 .coachPlayerCardAction{
  margin-top:11px;
  width:100%;
  min-height:40px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055);
  color:#fff;
  font-size:13px;
  font-weight:950;
}
#gdProfileV67 .coachPlayerCardAction:hover,
#gdProfileV67 .coachPlayerCardAction:focus-visible{
  border-color:rgba(96,165,250,.45);
  background:rgba(96,165,250,.12);
}
#gdProfileV67 .coachPlayerNote{
  margin:12px 0 0;
  color:rgba(226,238,255,.52);
  font-size:11px;
  font-weight:800;
  line-height:1.4;
}
#gdProfileV67 .coachPlayerExit{
  margin-top:10px;
  width:100%;
  min-height:46px;
  border-radius:999px;
  border:1px solid rgba(96,165,250,.34);
  background:rgba(96,165,250,.12);
  color:#dbeafe;
  font-size:14px;
  font-weight:950;
}
#gdProfileV67 .coachUpdatesPanel .panelHead{
  margin-bottom:8px;
}
#gdProfileV67 .coachUpdatesList{
  display:grid;
  gap:8px;
}
#gdProfileV67 .coachUpdate{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:9px;
  align-items:start;
  padding:10px;
  border-radius:14px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
#gdProfileV67 .coachUpdate i{
  width:9px;
  height:9px;
  border-radius:50%;
  margin-top:4px;
  background:#d7b06b;
  box-shadow:0 0 18px rgba(215,176,107,.25);
}
#gdProfileV67 .coachUpdate.bag i{background:#ef233c}
#gdProfileV67 .coachUpdate.shot i{background:#f59e0b}
#gdProfileV67 .coachUpdate.profile i{background:#1fd36d}
#gdProfileV67 .coachUpdate strong{
  display:block;
  color:#fff;
  font-size:13px;
  line-height:1.1;
}
#gdProfileV67 .coachUpdate span{
  display:block;
  margin-top:3px;
  color:rgba(230,238,233,.62);
  font-size:11px;
  font-weight:760;
  line-height:1.3;
}
#gdProfileV67 .coachInviteCard{
  margin-top:10px;
  display:grid;
  grid-template-columns:92px 1fr;
  gap:10px;
  align-items:center;
  padding:10px;
  border-radius:16px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
#gdProfileV67 .coachInviteQr{
  width:88px;
  height:88px;
  border-radius:12px;
  background:#fff;
  padding:6px;
  object-fit:contain;
}
#gdProfileV67 .coachInviteCode{
  display:inline-flex;
  margin-top:6px;
  padding:7px 9px;
  border-radius:12px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  font-size:17px;
  font-weight:950;
  letter-spacing:1px;
}
#gdProfileV67 .coachInviteCard span{
  display:block;
  margin-top:5px;
  color:rgba(230,238,233,.62);
  font-size:11px;
  font-weight:760;
  line-height:1.3;
}
#gdProfileV67 .coachChangePlayer{
  width:100%;
  border:1px solid rgba(255,159,47,.30);
  border-radius:16px;
  padding:14px 12px;
  margin-top:12px;
  background:linear-gradient(180deg,rgba(255,159,47,.18),rgba(201,121,23,.12));
  color:#fff;
  font-weight:950;
}
#gdProfileV67 .coachAddPlayer,
#gdProfileV67 .coachInvite,
#gdProfileV67 .coachAdminTab{
  margin-top:10px;
}
#gdProfileV67 .coachAddPlayer summary,
#gdProfileV67 .coachInvite summary,
#gdProfileV67 .coachAdminTab summary{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border:1px solid rgba(255,159,47,.28);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,159,47,.18),rgba(201,121,23,.12));
  color:#fff;
  font-size:13px;
  font-weight:950;
  cursor:pointer;
  list-style:none;
}
#gdProfileV67 .coachAddPlayer summary::-webkit-details-marker,
#gdProfileV67 .coachInvite summary::-webkit-details-marker,
#gdProfileV67 .coachAdminTab summary::-webkit-details-marker{
  display:none;
}
#gdProfileV67 .coachAddPlayer[open] summary,
#gdProfileV67 .coachInvite[open] summary,
#gdProfileV67 .coachAdminTab[open] summary{
  background:linear-gradient(180deg,rgba(255,159,47,.30),rgba(201,121,23,.18));
  border-color:rgba(255,159,47,.42);
}
#gdProfileV67 .coachAddPlayer .accountGrid{
  margin-top:10px;
}
#gdProfileV67 .coachAdminTab > .accountPanel{
  margin-top:10px;
}
#gdProfileV67 .coachAdminTab .accountGrid{
  margin-top:10px;
}
/* "Include a comped month" on Create Player Account. A real tick target, not a bare
   checkbox: the whole row is the <label>, so the copy explaining what the comp IS is also
   what you tap. Admin-only - the markup is not emitted for a coach. */
#gdProfileV67 .coachCompRow{
  /* The surrounding .accountGrid uppercases its <label>s, which is right for one-word field
     captions and wrong for a sentence. Reset it here rather than at the grid, so nothing else
     in that form changes. */
  text-transform:none;
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid rgba(255,159,47,.28);
  border-radius:14px;
  background:rgba(255,159,47,.07);
  cursor:pointer;
}
#gdProfileV67 .coachCompRow input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:1px 0 0;
  flex:0 0 auto;
  accent-color:#ff9f2f;
}
#gdProfileV67 .coachCompRow span{
  display:block;
  min-width:0;
}
#gdProfileV67 .coachCompRow strong{
  display:block;
  font-size:13.5px;
  color:#fff;
}
#gdProfileV67 .coachCompRow em{
  display:block;
  margin-top:2px;
  font-style:normal;
  font-size:11.5px;
  line-height:1.35;
  color:rgba(255,255,255,.62);
}
#gdProfileV67 .coachAddPlayer:not([open]) > :not(summary),
#gdProfileV67 .coachInvite:not([open]) > :not(summary),
#gdProfileV67 .coachAdminTab:not([open]) > :not(summary){
  display:none;
}
#gdProfileV67 .authTabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}
#gdProfileV67 .authTabs button{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.045);
  color:#fff;
  border-radius:14px;
  padding:11px 10px;
  font-weight:950;
}
#gdProfileV67 .authTabs button.active{
  background:linear-gradient(180deg,#ff9f2f,#c97917);
  color:#07100b;
  border-color:transparent;
}
@media(max-width:430px){
  #gdProfileV67 .accountGrid{grid-template-columns:1fr}
  #gdProfileV67 .coachPlayer{grid-template-columns:1fr}
  #gdProfileV67 .gdProfileRosterRow{grid-template-columns:1fr}
  /* Beats the widened admin rule above on specificity only if it repeats the
     class, so it does. Stacked actions are correct at this width. */
  #gdProfileV67 .gdProfileRosterRow.hasEmailAction{grid-template-columns:1fr}
  #gdProfileV67 .gdProfileRosterMain{
    grid-template-columns:minmax(0,1fr) auto;
    gap:5px 8px;
  }
  #gdProfileV67 .gdProfileRosterEmail,
  #gdProfileV67 .gdProfileRosterActivity,
  #gdProfileV67 .gdProfileRosterMeta{
    grid-column:1/-1;
  }
  #gdProfileV67 .gdProfileRosterStatus{
    grid-column:2;
    grid-row:1;
  }
  #gdProfileV67 .gdProfileRosterRemove{
    min-height:36px;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.075);
  }
}
@media(max-width:720px){
  #gdProfileV67 .coachDashboard{grid-template-columns:1fr}
  #gdProfileV67 .coachDirectoryWrap{max-width:500px}
}

/* Hide older profile panels while v67 is open */
body.gdProfileOpen #profilePanel,
body.gdProfileOpen .profilePanel{
  display:none!important;
}

@media(max-width:390px){
  #gdProfileV67 .heroMain{grid-template-columns:1fr 82px}
  #gdProfileV67 .name{font-size:23px}
  #gdProfileV67 .cards{gap:9px}
  #gdProfileV67 .card{padding:9px;min-height:82px;grid-template-columns:40px 1fr}
  #gdProfileV67 .card img{width:36px;height:36px}
  #gdProfileV67 .card strong{font-size:16px}
}

/* --- Bubble Lock Behaviour v1 --- */
body.gd-frame-hard-locked #map{cursor:default!important;}
body.gd-frame-hard-locked .leaflet-control-zoom{opacity:.28;pointer-events:none;}
body.gd-frame-hard-locked .targetDot{width:18px;height:18px;border:0!important;background:transparent!important;box-shadow:none!important;opacity:0!important;}
body.gd-frame-hard-locked .targetDot:after{content:none!important;display:none!important;}


/* Simple green zoom: one optional camera button, no separate locked toolbar/mode. */
.rightRail .gdGreenZoomBtn{display:none!important;color:#1fd36d!important;}
body.gdGpsActive .rightRail .gdGreenZoomBtn,
body.shell-gps .rightRail .gdGreenZoomBtn{display:grid!important;}
body.gd-green-zoom-active .rightRail .gdGreenZoomBtn{background:linear-gradient(180deg,rgba(31,211,109,.92),rgba(10,142,70,.86))!important;color:#061009!important;box-shadow:0 0 0 1px rgba(255,255,255,.22),0 14px 34px rgba(31,211,109,.34)!important;}
/* Keep green geometry as a very subtle guide, not hidden and not visually dominant. */
.gdSubtleGreenOutline{opacity:.22!important;stroke-width:.75!important;}
.gdSubtleGreenSoft{opacity:.12!important;}

/* --- Course Picker Pin Prompt v1 --- */
.courseScreen.gdCoursePinMode .courseAssumed,
.courseScreen.gdCoursePinMode .courseCard,
.courseScreen.gdCoursePinMode #gdCourseResumeRound{display:none!important}
.gdCoursePinScreen{position:absolute;inset:0;z-index:5;display:flex;align-items:flex-end;justify-content:center;padding:0 0 calc(18px + env(safe-area-inset-bottom));box-sizing:border-box;pointer-events:none}
.gdCoursePinScreen.hidden{display:none!important}
.gdCoursePinCrosshair{position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:999px;border:2px solid #1fd36d;box-shadow:0 0 0 5px rgba(31,211,109,.22),0 16px 36px rgba(0,0,0,.44);background:rgba(3,9,6,.38);pointer-events:none}
.gdCoursePinCrosshair:before,.gdCoursePinCrosshair:after{content:"";position:absolute;background:#1fd36d;border-radius:99px}
.gdCoursePinCrosshair:before{left:50%;top:-12px;bottom:-12px;width:2px;transform:translateX(-50%)}
.gdCoursePinCrosshair:after{left:-12px;right:-12px;top:50%;height:2px;transform:translateY(-50%)}
/* The tappable nine. Sized to a comfortable touch target rather than to the
   numeral, and pointer-events on because the overlay above it is not - a pin
   the player cannot hit is the whole screen failing. Picked pins carry their
   tap order so "which is my front nine" is answered by looking at it. */
.gdPlayOrderPin{pointer-events:auto;display:flex;align-items:center;justify-content:center;border-radius:999px;border:2px solid #1fd36d;background:rgba(3,9,6,.72);color:#fff;font-weight:700;font-size:15px;box-shadow:0 0 0 4px rgba(31,211,109,.18),0 10px 24px rgba(0,0,0,.44);cursor:pointer}
.gdPlayOrderPin.picked{background:#1fd36d;color:#04150c;box-shadow:0 0 0 6px rgba(31,211,109,.3),0 12px 28px rgba(0,0,0,.5)}
.gdCoursePinPanel{width:min(350px,calc(100vw - 32px));padding:14px;border-radius:22px;background:rgba(5,9,7,.9);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 70px rgba(0,0,0,.52);backdrop-filter:blur(18px);pointer-events:auto;color:#fff}
.gdCoursePinKicker{color:#a8ff53;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.14em}
.gdCoursePinTitle{margin-top:5px;font-size:22px;font-weight:950;line-height:1;letter-spacing:-.02em}
.gdCoursePinText{margin-top:7px;color:rgba(255,255,255,.68);font-size:13px;font-weight:760;line-height:1.28}
.gdCoursePinActions{display:grid;grid-template-columns:.82fr 1fr;gap:8px;margin-top:12px}
.gdCoursePinActions button{min-height:44px;border-radius:15px;font-size:13px;font-weight:950;border:1px solid rgba(255,255,255,.11)}
.gdCoursePinSecondary{background:rgba(255,255,255,.08);color:#fff}
.gdCoursePinPrimary{background:#1fd36d;color:#071008}
