:root{--bg:#090d18;--panel:#11182a;--panel2:#172038;--line:#263354;--text:#eef3ff;--muted:#9eabc8;--accent:#6aa7ff;--good:#68d391;--warn:#f6c453;--bad:#ff7c7c}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 50% -10%,#152442 0,#090d18 38%);color:var(--text);min-height:100vh}
header{position:sticky;top:0;z-index:50;background:rgba(9,13,24,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06);padding:14px 16px 10px}.head{max-width:980px;margin:auto;display:flex;align-items:center;gap:12px}.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#6aa7ff,#7957ff);display:grid;place-items:center;font-size:22px}h1{font-size:20px;margin:0}.sub{font-size:12px;color:var(--muted);margin-top:2px}.logoImg{width:42px;height:42px;border-radius:12px;display:block;box-shadow:0 6px 18px rgba(74,101,255,.24)}.install{margin-left:auto;background:var(--accent);color:#06101f;border:0;border-radius:10px;padding:9px 12px;font-weight:800;display:none}
nav{max-width:980px;margin:10px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}nav button{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:10px;border-radius:10px;font-weight:700}nav button.active{background:#1b2b4a;color:#fff;border-color:#395889}@media(max-width:520px){nav{gap:5px}nav button{font-size:11px;padding:9px 4px}}
main{max-width:980px;margin:auto;padding:14px 14px 44px}.page{display:none}.page.active{display:block}.card{background:linear-gradient(180deg,rgba(24,33,57,.96),rgba(15,22,39,.96));border:1px solid var(--line);border-radius:16px;padding:16px;margin:0 0 14px;box-shadow:0 12px 30px rgba(0,0,0,.28)}h2{font-size:17px;margin:0 0 14px}h3{font-size:14px;margin:18px 0 9px;color:#dce6ff}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.compactGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.wide{grid-column:1/-1}@media(max-width:720px){.grid3,.compactGrid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.grid,.grid3,.compactGrid{grid-template-columns:1fr}}
label{font-size:12px;color:var(--muted);display:block;margin-bottom:5px}input,select,button,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid #33405e;background:#0d1424;color:#fff;border-radius:10px;padding:11px 12px;outline:none}textarea{min-height:78px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(106,167,255,.12)}button{cursor:pointer}button.primary{width:100%;border:0;border-radius:12px;background:linear-gradient(135deg,#6aa7ff,#7a65ff);color:#fff;padding:12px;font-weight:800}button.secondary{border:1px solid #3b4a70;background:#131d33;color:#dbe5ff;border-radius:10px;padding:10px 12px;font-weight:700}button.danger{border:1px solid #663a45;background:#2b1820;color:#ffb8c2;border-radius:9px;padding:7px 10px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.actions>*{flex:1;min-width:115px}.note{font-size:12px;color:var(--muted);line-height:1.5}.small{font-size:11px;color:var(--muted)}
.searchRow{display:grid;grid-template-columns:150px 1fr;gap:8px}@media(max-width:520px){.searchRow{grid-template-columns:1fr}}.searchWrap{position:relative}.results{display:none;position:absolute;z-index:70;left:0;right:0;top:calc(100% + 5px);max-height:360px;overflow:auto;background:#0d1424;border:1px solid #3b4a70;border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.5)}.results.show{display:block}.res{padding:11px 12px;border-bottom:1px solid #202d49}.res:last-child{border-bottom:0}.res:active,.res:hover{background:#182541}.res b{display:block}.res small{color:var(--muted)}.selected{margin-top:9px;border:1px solid #32476f;background:#0c1628;border-radius:11px;padding:10px 12px;font-size:12px}.catalogStatus{display:inline-flex;align-items:center;margin-top:10px;padding:5px 8px;border-radius:999px;background:#0b1425;border:1px solid #27385b;color:#91a3c7;font-size:11px}.catalogStatus.ok{color:#8ee0ab;border-color:#315d49}.catalogStatus.warn{color:#f6c453;border-color:#5f5330}.customTag{color:#c9b7ff}
.status{border-radius:12px;background:#0c1425;border:1px solid #27365b;padding:13px;margin-top:12px}.status strong{font-size:18px}.metricgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}@media(min-width:720px){.metricgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}.metric{background:#0b1221;border:1px solid #273452;border-radius:12px;padding:11px;min-height:78px}.metric .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.metric .v{font-size:17px;font-weight:800;margin-top:5px}.metric .s{font-size:11px;color:var(--muted);margin-top:2px}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}
canvas{display:block;width:100%;max-width:100%;height:clamp(220px,40vw,360px);background:#0b0b0a;border:1px solid rgba(232,220,188,.14);border-radius:12px;margin-top:12px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:7px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.health{display:none}
.project{border:1px solid #293856;background:#0c1424;border-radius:14px;padding:14px;margin-top:11px}.projecttop{display:flex;gap:10px;align-items:flex-start}.grow{flex:1}.projectname{font-weight:850;font-size:16px}.projectmeta{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}.progress{height:8px;background:#1e2941;border-radius:999px;overflow:hidden;margin-top:10px}.progress>div{height:100%;background:linear-gradient(90deg,#68d391,#6aa7ff);border-radius:999px}.material{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.material .chip{padding:5px 8px;border-radius:999px;background:#16223b;border:1px solid #2b3d61;color:#cbd7ef;font-size:11px}.statusBadge{padding:5px 8px;border-radius:999px;background:#1d2945;color:#c7d4ee;font-size:11px;white-space:nowrap}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#1d2945;color:#c7d4ee;font-size:11px;margin:2px 4px 2px 0}.badge.good{background:#16372a;color:#9ae5b6}.badge.warn{background:#3a3118;color:#ffe09a}.badge.bad{background:#3b1d25;color:#ffb5bf}.journalGroup{margin-top:10px;border:1px solid #293856;background:#0c1424;border-radius:14px;overflow:hidden}.journalGroup>summary{list-style:none;cursor:pointer;padding:14px}.journalGroup>summary::-webkit-details-marker{display:none}.journalGroup[open]>summary{border-bottom:1px solid #263554}.groupSummary{display:flex;justify-content:space-between;gap:10px;align-items:center}.journalInner{padding:4px 12px 12px}.journalCard{border:1px solid #273654;background:#0b1322;border-radius:11px;padding:11px;margin-top:9px}.journalTitle{display:flex;justify-content:space-between;gap:10px}.journalMeta{font-size:12px;color:var(--muted);line-height:1.55;margin-top:7px}.journalNote{margin-top:8px;padding:8px 10px;border-left:3px solid #385a91;background:#101a2d;border-radius:7px;font-size:12px;color:#d5def2}
.gearSection{margin-top:16px;padding-top:14px;border-top:1px solid #273554}.gearItem{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #202d49}.gearItem:last-child{border-bottom:0}.gearName{font-weight:800}.gearMeta{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}.gearForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}@media(max-width:650px){.gearForm{grid-template-columns:1fr 1fr}}@media(max-width:440px){.gearForm{grid-template-columns:1fr}}
details.inlineDetails{margin-top:10px;border:1px solid #283857;border-radius:11px;padding:10px;background:#0d1627}details.inlineDetails summary{cursor:pointer;font-weight:750;color:#dbe6ff}.empty{text-align:center;color:var(--muted);padding:24px 10px}.projectContext{margin-top:10px;padding:11px 12px;border:1px solid #2d4168;border-radius:11px;background:#0b1425;font-size:12px;line-height:1.55}.editGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}@media(max-width:520px){.editGrid{grid-template-columns:1fr}}.dataBox{border:1px dashed #3b4a70;border-radius:12px;padding:12px;margin-top:10px}.sectionTitleRow{display:flex;justify-content:space-between;gap:8px;align-items:center}.sectionTitleRow h3{margin:0}.darkMatch{margin-top:8px;padding:8px 10px;border-radius:9px;background:#0d1726;border:1px solid #2b3d5f;font-size:11px}.backupWarning{margin:10px 0;padding:12px;border:1px solid #705d2d;border-radius:11px;background:#2a2415;color:#f5dda0;font-size:12px;line-height:1.5}.backupWarning b{color:#ffe8a8}.geoStatus{margin-top:10px;padding:9px 10px;border-radius:9px;border:1px solid #5f5330;background:#2a2415;color:#f6c453;font-size:11px;line-height:1.45}.fieldLabelRow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.fieldLabelRow label{margin-bottom:0}.fieldLinkBtn{border:0;background:transparent;color:#8ab8ff;padding:2px 4px;font-size:11px;font-weight:750}.fieldLinkBtn:active{color:#c9ddff}.projectTargetInput[readonly]{color:#dce6ff;background:#101a2d}
.modalBackdrop{display:none;position:fixed;z-index:100;inset:0;background:rgba(3,6,12,.78);padding:14px;overflow:auto}.modalBackdrop.show{display:block}.modal{max-width:720px;margin:20px auto;background:#10182a;border:1px solid #33466d;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.65);padding:16px}.modalHead{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.modalHead h2{margin:0}.closeBtn{border:1px solid #3b4a70;background:#121d33;color:#e6eeff;border-radius:10px;padding:8px 11px}.sessiongrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}@media(max-width:520px){.sessiongrid{grid-template-columns:1fr}}
.toast{display:none;position:fixed;z-index:120;left:50%;bottom:24px;transform:translateX(-50%);background:#153727;color:#b7f2cb;border:1px solid #33704d;border-radius:999px;padding:10px 14px;font-size:12px;font-weight:750;box-shadow:0 8px 30px rgba(0,0,0,.4)}.toast.show{display:block}
footer{max-width:980px;margin:auto;padding:0 16px 30px;color:#72809e;font-size:11px;line-height:1.5}

.insightBox{margin-top:10px;padding:11px 12px;border-radius:11px;border:1px solid #2d4168;background:#0b1425;font-size:12px;line-height:1.55}.insightBox.good{border-color:#315d49;background:#0b1b18}.insightBox.warn{border-color:#5f5330;background:#211d0e}.insightBox.bad{border-color:#633742;background:#211217}.moonRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.moonRows>div{background:#0b1221;border:1px solid #273452;border-radius:9px;padding:8px}.browseBtn{width:100%;margin-top:7px}.darkQuick{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#0c1424}
.selectedLabel{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.journalProgressMeta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-top:7px}
.journalGroup summary{display:block}

.projectTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0 4px}.projectTabs button{border:1px solid var(--line);background:#0d1628;color:var(--muted);border-radius:10px;padding:9px 7px;font-weight:750}.projectTabs button.active{background:#1b2b4a;color:#fff;border-color:#3b5d91}.projectActionRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.projectActionRow>*{flex:1;min-width:110px}.calStatus{margin-top:8px;padding:8px 10px;border-radius:9px;background:#0d1726;border:1px solid #2b3d5f;font-size:11px}.calStatus.good{color:#98e8b5;border-color:#315d49}.calStatus.warn{color:#f6c453;border-color:#5f5330}.subtleBtn{font-size:11px;padding:7px 9px}.cameraKindBadge{display:inline-block;padding:3px 7px;border-radius:999px;background:#192642;color:#b7c8e8;font-size:11px;margin-left:5px}.historyHint{font-size:11px;color:var(--muted);margin-top:6px}.sessionCalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}@media(max-width:520px){.sessionCalGrid{grid-template-columns:1fr}}

.catalogBrowseHead{position:sticky;top:0;z-index:2;background:#111a2d;border-bottom:1px solid #2b3a5c;padding:9px 12px;font-size:11px;color:#b9c8e5}.catalogMore{padding:10px}.sessionEntry{border:1px solid #273654;background:#0b1322;border-radius:11px;margin-top:9px;overflow:hidden}.sessionEntry>summary{list-style:none;cursor:pointer;padding:11px}.sessionEntry>summary::-webkit-details-marker{display:none}.sessionEntry[open]>summary{border-bottom:1px solid #263554}.sessionEntryBody{padding:11px}.projectTime{font-variant-numeric:tabular-nums}.gearEditHint{font-size:11px;color:var(--muted);margin-top:5px}.gearItem .actionsMini{display:flex;gap:6px;flex-wrap:wrap}.gearItem .actionsMini button{padding:6px 8px}.createMode{display:grid;grid-template-columns:1fr 170px;gap:9px;margin-top:10px}@media(max-width:520px){.createMode{grid-template-columns:1fr}}.plannedTermFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.plannedTermLabel{font-size:11px;color:#b9c8e5;margin-top:5px}.sessionDetailSection{margin-top:10px;padding:10px;border:1px solid #263554;background:#0d1628;border-radius:10px}.sessionDetailSection h4{margin:0 0 8px;font-size:12px;color:#dce6fb}.sessionDetailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.detailPair{font-size:11px;color:var(--muted);line-height:1.35}.detailPair b{display:block;color:#edf3ff;font-size:12px;margin-top:2px;word-break:break-word}@media(max-width:520px){.plannedTermFields,.sessionDetailGrid{grid-template-columns:1fr}}.moonInsight{padding:0;overflow:hidden}.moonInsight>summary{list-style:none;cursor:pointer;padding:11px 12px}.moonInsight>summary::-webkit-details-marker{display:none}.moonInsight[open]>summary{border-bottom:1px solid rgba(255,255,255,.09)}.moonInsightSummaryTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.moonInsightSummaryMeta{margin-top:3px;color:#dce6fb}.moonInsightBody{padding:11px 12px}.moonEventGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.moonEventGrid>div{background:#0b1221;border:1px solid #273452;border-radius:9px;padding:8px}.moonWindowContext{margin-top:8px;padding:8px 9px;border-left:3px solid currentColor;background:rgba(0,0,0,.12);border-radius:7px}.sessionEntryHead{padding:11px}.sessionEntryActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 11px 11px}.sessionEntryActions button{width:100%}.sessionDetails{border-top:1px solid #263554}.sessionDetails>summary{list-style:none;cursor:pointer;padding:10px 11px;font-weight:750;color:#dbe6ff}.sessionDetails>summary::-webkit-details-marker{display:none}.sessionDetails>summary::before,.sessionDetailSection>summary::before{content:'▶';display:inline-block;margin-right:6px;transition:transform .15s ease}.sessionDetails[open]>summary::before,.sessionDetailSection[open]>summary::before{transform:rotate(90deg)}.sessionDetails[open]>summary{border-bottom:1px solid #263554}.sessionDetailSection{padding:0;overflow:hidden}.sessionDetailSection>summary{list-style:none;cursor:pointer;padding:10px;font-size:12px;font-weight:800;color:#dce6fb}.sessionDetailSection>summary::-webkit-details-marker{display:none}.sessionDetailSection[open]>summary{border-bottom:1px solid #263554}.sessionDetailContent{padding:10px}.sessionDetailSection .journalNote{margin-top:0}@media(max-width:520px){.sessionEntryActions{grid-template-columns:1fr 1fr}}

.materialPlanEditor{margin-top:10px;padding:10px;border:1px solid #2b3d61;border-radius:11px;background:#0b1425}.materialPlanRow{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(80px,.65fr) minmax(90px,.65fr) minmax(120px,1fr) minmax(150px,1.15fr);gap:8px;align-items:end}.materialComponentCard{margin-top:8px;border:1px solid #2b3d61;border-radius:11px;background:#0b1425;overflow:hidden}.materialComponentCard>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 10px;color:#dbe6ff}.materialComponentCard>summary::-webkit-details-marker{display:none}.materialComponentCard>summary:before{content:'▸';font-size:12px;color:#9eb6df;transition:transform .12s ease;flex:0 0 auto}.materialComponentCard[open]>summary:before{transform:rotate(90deg)}.materialComponentSummaryText{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}.materialComponentSummaryText b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.materialComponentSummaryText small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.materialComponentDelete{border:0;background:transparent;color:#d997a4;padding:5px 6px;font-size:11px;font-weight:750;flex:0 0 auto}.materialComponentDelete:active{color:#ffc0ca}.materialComponentBody{padding:10px;border-top:1px solid #243553}.mosaicPanelMaterialEditor{margin-top:10px;padding-top:9px;border-top:1px solid #243553}.mosaicPanelMaterialHead{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px}.mosaicPanelMaterialHead span{font-size:11px;color:var(--muted)}.mosaicAddMaterialBtn{width:100%;margin-top:8px}.materialPlanSummary{margin-top:10px;padding:9px 10px;border-radius:9px;background:#111d32;border:1px solid #30476f;font-size:12px}.materialPlanProgress{margin-top:10px;padding-top:9px;border-top:1px solid #243553}.materialPlanProgress:first-child{border-top:0;padding-top:0}.materialPlanProgressTop{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.materialPlanProgressMeta{font-size:11px;color:var(--muted);margin-top:4px}.projectBreakdown{margin-top:10px;border:1px solid #2b3d61;border-radius:11px;background:#0b1425;overflow:hidden}.projectBreakdown>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 12px;color:#dbe6ff}.projectBreakdown>summary::-webkit-details-marker{display:none}.projectBreakdown>summary:before{content:'▸';font-size:12px;color:#9eb6df;transition:transform .12s ease}.projectBreakdown[open]>summary:before{transform:rotate(90deg)}.projectBreakdownTitle{font-weight:800;white-space:nowrap}.projectBreakdownMeta{margin-left:auto;color:var(--muted);font-size:11px;text-align:right;line-height:1.35}.projectBreakdownBody{padding:0 10px 10px;border-top:1px solid #243553}.projectBreakdownBody .materialPlanProgress:first-child{margin-top:10px;padding-top:0}.framePlanRows{display:grid;gap:7px;margin-top:8px}.framePlanRow{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:8px 9px;border:1px solid #273452;border-radius:9px;background:#0b1221}.framePlanRow .framePlanMain{font-weight:750;color:#e6eeff}.framePlanRow .framePlanMeta{font-size:11px;color:var(--muted);text-align:right}.catalogCameraBox{margin:9px 0;padding:10px;border:1px solid #2d4168;border-radius:11px;background:#0b1425}.catalogCameraPreview{font-size:11px;color:#cbd7ef;line-height:1.55;margin-top:8px}.cameraSourceBadge{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:999px;background:#172845;border:1px solid #31517f;color:#a9caff;font-size:11px;vertical-align:middle}.termActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}@media(max-width:620px){.materialPlanRow{grid-template-columns:1fr 1fr}.materialPlanRow .mpName,.materialPlanRow .mpFilter,.materialPlanRow .mpSignal{grid-column:span 2}.materialComponentSummaryText small{white-space:normal}.framePlanRow{display:block}.framePlanRow .framePlanMeta{text-align:left;margin-top:3px}}
.goalReached{margin-top:10px;padding:10px 11px;border:1px solid #315d49;border-radius:11px;background:#0b1b18;display:flex;gap:10px;align-items:center;justify-content:space-between}.goalReachedText{font-size:12px;line-height:1.45;color:#cfeedd}.goalReachedText b{color:#98e8b5}.goalReached .secondary{flex:0 0 auto}@media(max-width:520px){.goalReached{align-items:stretch;flex-direction:column}.goalReached .secondary{width:100%}}.mosaicPanelRow{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:8px;align-items:end;margin-top:8px}.mosaicPanelRow .danger{height:42px}.projectTypeBadge{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:#16223b;border:1px solid #2b3d61;color:#cbd7ef;font-size:11px}.seasonPeak{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.seasonPeak>div{background:#0b1221;border:1px solid #273452;border-radius:10px;padding:9px 10px}.seasonPeak .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.seasonPeak .v{font-size:15px;font-weight:800;margin-top:3px}@media(max-width:520px){.mosaicPanelRow{grid-template-columns:1fr 1fr}.mosaicPanelRow .danger{grid-column:1/-1;height:auto}.seasonPeak{grid-template-columns:1fr}}@media(max-width:430px){.projectBreakdown>summary{align-items:flex-start;flex-wrap:wrap}.projectBreakdownMeta{width:100%;margin-left:20px;text-align:left}.projectBreakdownTitle{white-space:normal}}

/* Stars + DSO sky rendering */
.framingPreview{margin-top:10px;border:1px solid #2b3d61;border-radius:12px;background:#08111f;overflow:hidden}.framingPreviewHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-bottom:1px solid #22324e}.framingPreviewHead b{font-size:12px}.framingPreviewMeta{font-size:11px;color:var(--muted);text-align:right}.framingPreviewCanvas{height:150px;background:radial-gradient(circle at 50% 45%,rgba(49,73,112,.18),transparent 55%),#07101c}.framingPreviewCanvas svg{width:100%;height:100%;display:block}.framingPreviewFoot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:11px;color:var(--muted)}.framingPreviewFoot button{padding:7px 9px;font-size:11px}.framingStage{position:relative;height:min(54vh,520px);min-height:300px;border:1px solid #2a3c5d;border-radius:14px;background:radial-gradient(circle at 50% 45%,rgba(49,73,112,.18),transparent 58%),#07101c;overflow:hidden;touch-action:none;user-select:none;cursor:grab}.framingStage:active{cursor:grabbing}.framingStage svg{width:100%;height:100%;display:block}.framingInfo{margin-top:10px;padding:9px 10px;border:1px solid #2b3d5f;border-radius:10px;background:#0c1526;font-size:11px;line-height:1.55;color:#c8d5eb}.framingInfo.warn{border-color:#66572d;color:#f6cf70}.framingDataDetails{margin-top:10px;border:1px solid #2b3d61;border-radius:11px;background:#0b1425;overflow:hidden}.framingDataDetails>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 12px;color:#dbe6ff}.framingDataDetails>summary::-webkit-details-marker{display:none}.framingDataDetails>summary:before{content:'▸';font-size:12px;color:#9eb6df;transition:transform .12s ease}.framingDataDetails[open]>summary:before{transform:rotate(90deg)}.framingDataTitle{font-weight:800}.framingDataMeta{margin-left:auto;color:var(--muted);font-size:11px}.framingDataBody{padding:0 10px 10px;border-top:1px solid #243553}.framingDataHint{font-size:11px;color:var(--muted);line-height:1.45;margin-top:8px}.framingPanelList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.framingPanelCoord{padding:8px 9px;border:1px solid #263654;border-radius:9px;background:#0a1322;font-size:11px;color:var(--muted);user-select:text}.framingPanelCoord b{display:block;color:#e5edff;font-size:11px;margin-bottom:4px}.framingPanelCoord span{display:block;line-height:1.6}.framingPanelCoord code{font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace;color:#e5edff;background:transparent;padding:0}.framingLegend{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;font-size:11px;color:var(--muted)}.framingLegend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:0}.framingLegend .target:before{border:2px solid #68d391;background:transparent}.framingLegend .center:before{background:#f6c453}.framingLegend .stars:before{background:#e0ebff;box-shadow:0 0 5px rgba(200,220,255,.45)}.framingLegend .dso:before{background:transparent;border:1.5px solid #c9a8ff;border-radius:2px}.plannerMapDsoNote{font-size:11px;color:var(--muted);line-height:1.4;margin-top:6px}.framingHint{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.45}@media(max-width:650px){.framingPanelList{grid-template-columns:1fr}.framingStage{min-height:270px;height:44vh}}@media(max-width:430px){.framingPreviewCanvas{height:135px}}.framingMapControls{position:static;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.framingMapControls button{pointer-events:auto;min-width:0;padding:7px 10px;border-radius:9px;font-size:11px;line-height:1.1;background:rgba(12,21,38,.92);backdrop-filter:blur(4px)}.framingMoveMode,.framingZoomButtons{display:flex;gap:5px;align-items:center}.framingMoveMode button.active{border-color:#70a7ff;background:#172845;color:#eaf2ff}.framingZoomButtons output{min-width:45px;text-align:center;font-size:11px;color:#cbd7ef;font-weight:800;background:rgba(7,16,28,.78);padding:6px 5px;border-radius:8px}.framingZoomButtons button{font-size:17px;font-weight:800;padding:5px 11px}.frFrameHandle{cursor:move}


/* Embedded Planner map */
.plannerMapCard{display:none}.plannerMapStage{height:min(56vh,540px);min-height:330px}.plannerMapSetup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end;margin:0 0 10px}.plannerMapSetup .small{align-self:center}.plannerMapFrameTools{margin-top:10px;padding:10px;border:1px solid #293b5d;border-radius:11px;background:#0a1322}.plannerMapToolRow{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:9px;align-items:center}.plannerMapToolRow input[type=range]{padding:0;border:0;background:transparent;box-shadow:none;accent-color:#70a7ff}.plannerMapToolRow output{text-align:right;color:#dce8ff;font-weight:800;font-variant-numeric:tabular-nums}.plannerMapMosaicTools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}.plannerMapActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.plannerMapActions button{flex:1;min-width:130px}.plannerMapSaveNote{font-size:11px;color:var(--muted);line-height:1.45;margin-top:8px}.plannerMapCard .framingLegend{margin-top:8px}@media(max-width:650px){.plannerMapStage{height:46vh;min-height:300px}.plannerMapSetup{grid-template-columns:1fr}.plannerMapMosaicTools{grid-template-columns:1fr 1fr}}@media(max-width:430px){.plannerMapMosaicTools{grid-template-columns:1fr}.plannerMapActions button{min-width:100%}}


/* v1.0 — rekomendacje wewnątrz Planera */
.plannerRecommendationEntry{margin-top:12px;padding-top:12px;border-top:1px solid #253554}.plannerRecommendationEntry .secondary{width:100%}.plannerRecommendationEntry .small{margin-top:7px;line-height:1.5}.plannerRecommendationsWrap{margin-top:12px;padding:12px;border:1px solid #2a3a5b;border-radius:12px;background:#0a1322}.plannerRecommendationsWrap[hidden]{display:none}.recommendationSectionHead{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:8px}.recommendationSectionHead h3{margin:0;color:#eef3ff;font-size:15px}.recommendationCount{font-size:11px;color:var(--muted)}.recommendationStatus{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 10px}.recommendationContext{font-size:11px;color:#aebbd4;line-height:1.5;margin:0 0 10px;padding:8px 9px;border:1px solid #273856;border-radius:9px;background:#0b1425}.recommendationList{display:grid;gap:8px}.recommendationItem{border:1px solid #2a3a5b;border-radius:12px;background:#0b1425;overflow:hidden}.recommendationItem>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px}.recommendationItem>summary::-webkit-details-marker{display:none}.recommendationScore{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#15233c;border:1px solid #34537f;color:#e8f1ff;font-size:18px;font-weight:850;font-variant-numeric:tabular-nums}.recommendationMain{min-width:0}.recommendationMain b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recommendationMain span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.recommendationChevron{font-size:14px;color:#8fa6cc;transition:transform .12s ease}.recommendationItem[open] .recommendationChevron{transform:rotate(90deg)}.recommendationBody{border-top:1px solid #243553;padding:10px 12px 12px}.recommendationReason{font-size:12px;line-height:1.55;color:#d7e1f5}.recommendationReason b{color:#f0f5ff}.recommendationBody .secondary{width:100%;margin-top:9px}.recommendationEmpty{padding:20px 12px;text-align:center;border:1px dashed #334564;border-radius:12px;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:520px){.recommendationItem>summary{grid-template-columns:46px minmax(0,1fr) auto}.recommendationScore{width:42px;height:42px;font-size:17px}}
