/* One shared grid for every edge panel; only subject controls float in the scene. */
:root{--rail:220px;--bar:72px;--foot:64px;--gap:12px;--panel-pad:16px}
.edge-grid{position:absolute;inset:var(--bar) 0 var(--foot);display:grid;grid-template-columns:var(--rail) minmax(0,1fr) var(--rail);grid-template-rows:104px minmax(0,1fr) 190px;pointer-events:none!important;gap:0}
.edge-grid>.left-rail,.edge-grid>.controls,.edge-grid>.coach,.edge-grid>.compass{pointer-events:auto}
.header{height:var(--bar);padding:0 var(--panel-pad);border-bottom:1px solid #ffffff55;border-radius:0;background:#eaf1ec42}
.header-actions{gap:8px}.header-actions button{min-height:34px}
.edge-grid .mission{position:relative;inset:auto;grid-column:1/3;grid-row:1;width:auto;margin:0;padding:12px var(--panel-pad);display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:6px 10px}
.edge-grid .mission .chapter{margin:0;grid-column:1;grid-row:1;align-self:center}.mission .chapter>.eyebrow{display:none}
.edge-grid .mission-info{grid-column:2;grid-row:1;max-width:none;width:auto}.edge-grid .mission h1{font-size:22px;line-height:1.2}.edge-grid .mission-info p{width:min(360px,70vw);margin-top:6px}
.edge-grid .mission-progress{grid-column:2;grid-row:2;width:min(220px,100%);margin:2px 0 0}.edge-grid .progress-caption{display:none}.edge-grid .mission-actions{position:static;grid-column:2;grid-row:3;margin:0}
.left-rail{grid-column:1;grid-row:2;display:flex;flex-direction:column;align-self:start;max-height:100%;overflow-y:auto;background:#e1ecedb8;border-top:1px solid #fff8;border-right:1px solid #fff8;scrollbar-width:thin}
.edge-grid .wind-instrument,.edge-grid .instruments{position:relative;inset:auto;width:100%;margin:0;padding:var(--panel-pad);border:0;border-bottom:1px solid #fff8;background:transparent;border-radius:0;backdrop-filter:none;box-shadow:none}
.wind-instrument #wind-dial strong,.speed-number{font-size:49px}.wind-lower{justify-content:space-between}.wind-lower button{min-width:30px}
.edge-grid .controls{position:relative;inset:auto;grid-column:3;grid-row:1/3;align-self:stretch;min-height:0;max-height:none;width:100%;margin:0;padding:var(--panel-pad);border:0;border-left:1px solid #fff8;border-bottom:1px solid #fff8;border-radius:0;background:#e1ecedb8;overflow-y:auto;display:block}
.edge-grid .controls>.control{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #24496724}.edge-grid .controls>.control:last-child{border-bottom:0}.choice-track{gap:8px}.choice-card{flex-basis:calc(100% - 24px);min-width:calc(100% - 24px)}.choice-card img{height:112px}.choice-control label{margin-bottom:10px}.boat-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.boat-tabs button{padding:6px 2px;min-width:0}
.card-art{position:relative;isolation:isolate}.card-art img{position:absolute;inset:0;z-index:1}.lesson-mark{position:absolute;z-index:2;right:11px;top:10px;width:38px;height:38px;border:2px solid #f8f5ec;border-radius:50%;filter:drop-shadow(0 2px 3px #18364a66);opacity:.92}.lesson-mark-principles{border-radius:4px;background:linear-gradient(90deg,#d7695f 0 46%,transparent 46% 54%,#599ac1 54%);transform:rotate(45deg)}.lesson-mark-wind{border-color:#dceeff;border-left-color:#d4a466;border-top-color:#d4a466}.lesson-mark-wind:after{content:'';position:absolute;inset:8px;border:2px solid #397fb4;border-radius:50%;border-right-color:transparent}.lesson-mark-compass{border-color:#f0d090}.lesson-mark-compass:before{content:'';position:absolute;left:17px;top:3px;width:2px;height:28px;background:#f0d090;transform:rotate(36deg);transform-origin:bottom}.lesson-mark-sail{border-radius:0 100% 0 0;transform:rotate(-28deg);border-width:0 2px 2px 0;background:#f8f5ecaa}.lesson-mark-trim{border-color:#f8f5ec;border-style:dashed}.lesson-mark-keel{border-radius:0 0 50% 50%;border-top:0;background:#4b95b3bb}.lesson-mark-wake{border-radius:50%;border-left-color:transparent;border-right-color:transparent;transform:rotate(24deg)}.lesson-mark-gust{border-radius:50% 50% 12px 12px;border-color:#f6dfaa;box-shadow:0 8px 0 -4px #f6dfaa,0 16px 0 -8px #f6dfaa}.lesson-mark-kite{border-radius:4px;transform:rotate(45deg);background:linear-gradient(135deg,#ee8569 0 25%,#f5ead2 25% 50%,#7698b8 50% 75%,#f5ead2 75%)}.lesson-mark-home{border-radius:50% 50% 4px 4px;border-color:#dcefe1}.lesson-mark-home:after{content:'';position:absolute;left:10px;bottom:6px;width:14px;height:13px;background:#dcefe1;clip-path:polygon(50% 0,100% 45%,100% 100%,0 100%,0 45%)}
.edge-grid .coach{position:relative;inset:auto;grid-column:1;grid-row:3;align-self:stretch;width:100%;max-height:none;margin:0;padding:var(--panel-pad);background:#eaf1ece8;border:0;border-top:1px solid #fff8;border-right:1px solid #fff8;border-radius:0;overflow-y:auto}.coach p{line-height:1.5}.coach .eyebrow{color:#815c2f}
.edge-grid .compass{position:relative;inset:auto;grid-column:3;grid-row:3;width:100%;margin:0;padding:8px var(--panel-pad);transform:none;border-left:1px solid #fff8;background:#e1eced73;display:flex;flex-direction:column;align-items:center;justify-content:center}.compass svg{width:150px;height:150px}.compass-caption{font-size:15px;line-height:1.15;margin-top:-16px}.compass-heading{font-size:10px;line-height:1.1}.compass-heading b{display:inline;margin-left:5px;font-size:12px}
.footer{height:var(--foot);min-height:0;padding:0;display:grid;grid-template-columns:var(--rail) minmax(0,1fr) var(--rail);gap:0;border-top:1px solid #fff8;background:#eaf1ec59}.views{grid-column:1;justify-content:center;gap:6px}.footer>.weather-toggle{position:static;inset:auto;grid-column:3;grid-row:1;width:100%;height:100%;margin:0;justify-content:center;border:0;border-left:1px solid #fff8;border-radius:0;background:#e1ecedb8;font-size:11px}.footer-tools{display:none}
.airflow-key{bottom:15px;z-index:21;max-width:calc(100% - var(--rail)*2 - 24px);background:transparent;border:0;padding:0;backdrop-filter:none}
.weather-panel{inset:var(--bar) 0 var(--foot) auto;width:var(--rail);max-height:none;border-radius:0;padding:var(--panel-pad);background:#eaf1ecf5;z-index:26}.weather-title h3{font-size:18px}.weather-title{gap:5px}.settings-tools{display:grid;grid-template-columns:1fr;width:100%;gap:0}.settings-tools button{border-radius:0;border:0;border-top:1px solid var(--line);text-align:left;padding:12px 0;background:none}.layers-popover{right:var(--rail);top:var(--bar);bottom:var(--foot);width:var(--rail);max-height:none;border-radius:0;overflow-y:auto}.force-legend{top:calc(var(--bar) + 85px);max-width:calc(100% - var(--rail)*2 - 24px)}
.theory-mode .edge-grid .controls{max-height:none}.theory-mode .left-rail{display:none}.success{left:calc(var(--rail) + 12px);bottom:calc(var(--foot) + 12px);width:min(330px,calc(100% - var(--rail)*2 - 24px))}
@media(max-width:760px){
 :root{--rail:120px;--bar:60px;--foot:56px;--panel-pad:10px}
 .edge-grid{grid-template-rows:88px minmax(0,1fr) 175px}
 .header-actions{gap:3px}.header-actions button{font-size:9px;padding:5px;min-height:30px}.brand-name{font-size:15px}.brand-sub{font-size:6px;max-width:105px}
 .edge-grid .mission{grid-column:1/4;padding:9px 10px;z-index:9}.edge-grid .mission h1{font-size:16px}.edge-grid .mission-info{display:block}.edge-grid .mission .chapter{display:flex}.edge-grid .mission-actions{gap:5px}.mission-actions button{font-size:9px}
 .edge-grid .controls{grid-row:2;max-height:none;padding:10px;z-index:10}.edge-grid .controls>.eyebrow{font-size:8px}.edge-grid .controls>.control{padding-bottom:10px;margin-bottom:10px}.control label{font-size:9px}.choice-card{flex-basis:100%;min-width:100%;padding:3px}.choice-card img{height:72px}.choice-card span{font-size:9px}.boat-tabs{gap:1px}.boat-tabs button{font-size:8px;padding:5px 0}
 .wind-instrument #wind-dial strong,.speed-number{font-size:35px}.wind-instrument .eyebrow,.instruments .eyebrow{font-size:8px;letter-spacing:.1em}.wind-lower{font-size:12px}.wind-lower button{min-width:22px;padding:0 3px}.reading-value{font-size:18px}
 .edge-grid .compass{grid-row:3;padding:5px 2px;justify-content:start}.compass svg{width:115px;height:115px}.compass-caption{font-size:12px;margin-top:-10px}.compass-heading{font-size:8px}.compass-heading b{font-size:10px;display:block;margin:0}
 .edge-grid .coach{grid-column:1/3;align-self:end;height:auto;min-height:80px;max-height:175px;padding:10px}.coach p{font-size:11px;margin-top:5px}.coach .eyebrow{font-size:8px}
 .views{gap:1px}.view-button{min-width:28px;padding:6px}.view-button svg{width:15px;height:15px}.footer>.weather-toggle{font-size:9px;padding:6px}
 .airflow-key{bottom:17px;left:calc(var(--rail) + 5px);right:calc(var(--rail) + 5px);transform:none;max-width:none;grid-template-columns:auto 1fr auto;gap:2px 4px;font-size:7px}.airflow-key small{font-size:6px;line-height:1.1}.airflow-key i{min-width:12px}
 .weather-panel{inset:var(--bar) 0 var(--foot) auto;width:calc(var(--rail)*2);max-width:90vw;padding:12px}.layers-popover{inset:var(--bar) 0 var(--foot) auto;width:calc(var(--rail)*2);max-width:90vw}.weather-title h3{font-size:19px}.force-legend{top:calc(var(--bar) + 77px);left:10px;max-width:90%;font-size:7px}
 .theory-mode .edge-grid .controls{width:100%;max-height:none}.success{inset:auto 10px calc(var(--foot) + 10px) 10px;width:auto;z-index:30}
}
.wind-angles{display:grid;gap:0;margin-top:12px;border-top:1px solid var(--line)}
.wind-angle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.wind-angle:last-child{border-bottom:0;padding-bottom:0}.wind-angle>span{font-size:10px;line-height:1.25;font-weight:650}.wind-angle small{display:block;font-size:9px;letter-spacing:.1em;margin-top:2px}.wind-angle strong{font-size:27px;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.true-angle{color:#725426}.apparent-angle{color:#20567d}
@media(max-width:760px){.wind-angle{gap:4px;padding:7px 0}.wind-angle>span{font-size:8px}.wind-angle strong{font-size:21px}.wind-angle small{font-size:8px}.wind-angles{margin-top:8px}}
