/* Astrolytics v1.0.1 — structural UI shell. Final theme lives in ui-theme.css. */


html{background:var(--ui-bg)}
body{
  background:
    radial-gradient(circle at 50% -12%,rgba(60,98,168,.22),transparent 38%),
    linear-gradient(180deg,#0a0f1c 0%,#080c16 55%,#070a12 100%);
  color:var(--ui-text);
  padding-bottom:calc(var(--ui-nav-h) + env(safe-area-inset-bottom,0px));
}
body[data-page="home"]{padding-bottom:0}

/* The legacy sticky top navigation is intentionally hidden. */
header{display:none}
main{max-width:980px;padding:18px 14px 40px}
body:not([data-page="home"]) main{padding-bottom:30px}

/* Foundation: calmer hierarchy and fewer heavy boxes. */
.card{
  background:linear-gradient(180deg,rgba(20,29,48,.95),rgba(13,20,34,.96));
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  box-shadow:var(--ui-shadow);
}
.project,.journalGroup,.sessionEntry,.inlineDetails,.projectBreakdown,.materialPlanEditor,.catalogCameraBox{
  border-color:var(--ui-border);
}
input,select,textarea{
  min-height:44px;
  border-color:rgba(137,161,205,.28);
  background:#0b1321;
  border-radius:var(--ui-radius-sm);
  font-size:14px;
}
textarea{min-height:88px}
label{font-size:12px}
button.primary,button.secondary,button.danger{min-height:42px}
button.primary{box-shadow:0 8px 24px rgba(83,121,255,.22)}
.small,.note{line-height:1.5}

/* Start page */
.homePage{min-height:100dvh;margin:-18px -14px -40px;padding:0;position:relative;overflow:hidden}
.homePage::before,.homePage::after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(1px)}
.homePage::before{width:360px;height:360px;top:-160px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(86,134,255,.24),rgba(86,134,255,0) 70%)}
.homePage::after{width:260px;height:260px;bottom:-100px;right:-100px;background:radial-gradient(circle,rgba(131,91,255,.12),rgba(131,91,255,0) 70%)}
.homeStars{position:absolute;inset:0;opacity:.55;pointer-events:none;background-image:radial-gradient(circle at 14% 18%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 78% 14%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 66% 33%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),radial-gradient(circle at 26% 62%,rgba(255,255,255,.65) 0 1px,transparent 1.5px),radial-gradient(circle at 88% 72%,rgba(255,255,255,.6) 0 1px,transparent 1.5px),radial-gradient(circle at 47% 81%,rgba(255,255,255,.55) 0 1px,transparent 1.5px)}
.homeHero{position:relative;z-index:1;min-height:100dvh;max-width:560px;margin:auto;padding:clamp(46px,9vh,88px) 22px 30px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:0}
.homeLogoWrap{position:relative;flex-shrink:0;width:192px;height:192px;border-radius:48px;padding:9px;background:linear-gradient(145deg,rgba(117,169,255,.22),rgba(139,120,255,.11));border:1px solid rgba(157,187,255,.24);box-shadow:0 20px 60px rgba(46,80,164,.32),inset 0 1px 0 rgba(255,255,255,.12)}
.homeLogo{width:100%;height:100%;display:block;border-radius:38px}
.homeAppName{margin-top:22px;font-size:22px;font-weight:800;letter-spacing:.01em;color:#f3f7ff}
.homeVersion{font-size:11px;letter-spacing:.06em;color:#6f7d99}
.homeTagline{max-width:290px;margin:10px 0 0;color:var(--ui-muted);font-size:13px;line-height:1.6;font-weight:400}
#homePlanBtn.homePlanBtn{display:flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;gap:16px;width:220px;max-width:100%;min-height:46px;margin:25px auto 0;padding:11px 20px;font-size:14px}
.homePlanBtn>.homePlanLabel{display:block;min-width:0;font-size:inherit;font-weight:inherit;line-height:20px}
.homePlanBtn>.homePlanArrow{display:block;flex:0 0 20px;width:20px;height:20px}
.homeLinks{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 14px;margin-top:12px}
.homeLinks>a,.homeLinks>button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 5px;border:0;background:transparent;box-shadow:none;color:var(--ui-muted);font:inherit;font-size:12px;line-height:1.4;text-decoration:none;cursor:pointer}
.homeLinks>a:hover,.homeLinks>button:hover{color:var(--ui-text);text-decoration:underline;text-underline-offset:4px}
.homeLinks>a:focus-visible,.homeLinks>button:focus-visible,.homePlanBtn:focus-visible{outline:2px solid var(--ui-gold-bright);outline-offset:4px}
/* Optional support on the home screen; no payment widget or application-state changes. */
.homeSupport{width:min(100%,300px);margin-top:22px;padding-top:16px;border-top:1px solid var(--ui-border);text-align:center}
.homeSupportCopy{margin:0;color:var(--ui-muted);font-size:12px;font-weight:400;line-height:1.6}
/* Native gold support link; no external image, widget or loading handlers. */
.homeCoffeeLink{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:150px;max-width:100%;min-height:44px;margin-top:10px;padding:10px 16px;border:1px solid var(--ui-gold-dark);border-radius:var(--ui-radius-sm);background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface));color:var(--ui-gold-bright);font-size:13px;font-weight:700;line-height:1.4;text-decoration:none;vertical-align:middle;box-shadow:inset 0 1px 0 rgba(226,200,120,.05);transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .08s ease}
.homeCoffeeIcon{display:block;flex:0 0 20px;width:20px;height:20px}
.homeCoffeeLink:hover{border-color:var(--ui-gold);background:var(--ui-surface-elevated);box-shadow:0 4px 16px rgba(201,168,90,.09);text-decoration:none}
.homeCoffeeLink:active{transform:translateY(1px);border-color:var(--ui-gold-bright)}
.homeCoffeeLink:focus-visible{outline:2px solid var(--ui-gold-bright);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.homeCoffeeLink{transition:none}.homeCoffeeLink:active{transform:none}}
@media(forced-colors:active){.homeCoffeeLink{background:Canvas;color:LinkText;border-color:LinkText;box-shadow:none}.homeCoffeeLink:focus-visible{outline-color:Highlight}}
@media(max-height:650px){.homeSupport{margin-top:16px;padding-top:12px}}
.homeFooter{position:absolute;bottom:22px;left:22px;right:22px;text-align:center}
#gearAbout{scroll-margin-top:16px}
.homeAboutCopy{font-size:12px;line-height:1.6;color:var(--ui-muted);margin-bottom:13px}
.homeAboutCopy p{margin:0 0 10px}
.homeAboutCopy a{color:var(--ui-gold-bright);text-underline-offset:3px}
@media(max-height:650px){
  .homeLogoWrap{width:160px;height:160px;border-radius:40px}
  .homeLogo{border-radius:30px}
  .homeAppName{margin-top:15px}
  #homePlanBtn.homePlanBtn{margin-top:18px}
}

/* Fixed bottom navigation — the only persistent navigation. */
.bottomNav{
  position:fixed;
  z-index:90;
  left:0;right:0;bottom:0;
  width:100%;max-width:none;
  margin:0;
  padding:7px max(10px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-right));
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  background:rgba(8,12,22,.92);
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 -12px 34px rgba(0,0,0,.30);
  backdrop-filter:blur(18px) saturate(125%);
  transition:opacity .16s ease,transform .16s ease;
}
body[data-page="home"] .bottomNav{opacity:0;pointer-events:none;transform:translateY(110%)}
.bottomNav .tab{
  min-width:0;min-height:55px;
  margin:0;padding:6px 4px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  border:0;border-radius:12px;
  background:transparent;color:#7787a7;
  font-size:11px;font-weight:700;line-height:1.1;
  transition:background .14s ease,color .14s ease,transform .14s ease;
}
.bottomNav .tab:active{transform:scale(.97)}
.bottomNav .tab.active{background:rgba(105,151,241,.12);color:#dce9ff}
.bottomNav .navIcon{width:22px;height:22px;display:block;stroke:currentColor;stroke-width:1.85;fill:none;stroke-linecap:round;stroke-linejoin:round}
.bottomNav .tab.active .navIcon{color:#82b2ff}
.bottomNav .navLabel{display:block;white-space:nowrap}

/* Shared UI utility classes. */
.uiSectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.uiIcon{width:19px;height:19px;display:inline-block;vertical-align:-4px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.uiSurface{background:var(--ui-surface-3);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm)}

@media(min-width:760px){
  .bottomNav{left:50%;right:auto;width:min(620px,calc(100% - 32px));transform:translateX(-50%);bottom:14px;border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:7px}
  body[data-page="home"] .bottomNav{transform:translate(-50%,110%)}
  body:not([data-page="home"]){padding-bottom:96px}
}

/* Projects hub */
.projectsHub{padding:14px}
.projectsTitleRow{align-items:flex-start}
.projectsTitleRow h2{margin-bottom:3px}
.projectsLead{max-width:420px}
.projectNewBtn{flex:0 0 auto;min-height:38px;padding:8px 12px}
.projectsList{display:grid;gap:10px;margin-top:12px}
.projectCardV2{margin:0;padding:13px;border-radius:14px;background:linear-gradient(180deg,rgba(13,21,36,.92),rgba(10,17,30,.96));box-shadow:none}
.projectCardHead{display:flex;align-items:flex-start;gap:10px}
.projectNameRow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.projectCardV2 .projectname{font-size:16px;line-height:1.2;letter-spacing:-.012em}
.projectCardTarget{margin-top:4px;font-size:12px;color:#c8d4ea;line-height:1.4}
.projectCardTarget span{color:var(--ui-muted)}
.projectCardV2 .statusBadge{flex:0 0 auto;margin:0;padding:4px 8px;border:1px solid var(--ui-border);background:#172136;color:#bdc9df;font-size:11px;letter-spacing:.025em}
.projectCardV2 .status-planned{border-color:rgba(117,169,255,.30);background:rgba(74,118,196,.14);color:#a9caff}
.projectCardV2 .status-active{border-color:rgba(104,211,145,.28);background:rgba(54,145,91,.13);color:#9de3b8}
.projectCardV2 .status-paused{border-color:rgba(246,196,83,.25);background:rgba(149,111,28,.12);color:#f0d58c}
.projectCardV2 .status-done{border-color:rgba(154,165,191,.20);background:rgba(111,124,151,.10);color:#b4bfd4}
.projectProgressTop{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:12px;font-variant-numeric:tabular-nums}
.projectProgressTop strong{font-size:14px;color:#eff4ff}
.projectProgressTop strong span{font-weight:650;color:var(--ui-muted)}
.projectProgressTop b{font-size:13px;color:#b9caff}
.projectProgressBar{height:7px;margin-top:6px}
.projectProgressFoot{display:flex;justify-content:flex-end;margin-top:4px;font-size:11px;color:var(--ui-muted)}
.projectCompactMeta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.projectCompactMeta span{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border:1px solid var(--ui-border);border-radius:999px;background:rgba(17,28,48,.72);font-size:11px;color:#bdcae2;line-height:1.2}
.projectQuickActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.projectQuickActions button{width:100%;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px}
.projectQuickActions .projectArchiveDelete{grid-column:1/-1;min-height:38px;background:rgba(43,24,32,.52);box-shadow:none}
.projectActionIcon{width:17px;height:17px;display:inline-block;flex:0 0 auto;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.projectDetailsV2{margin-top:9px;border-top:1px solid rgba(157,181,225,.11)}
.projectDetailsV2>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:11px 2px 2px;color:#cbd7ec;font-size:12px;font-weight:760}
.projectDetailsV2>summary::-webkit-details-marker{display:none}
.projectDetailsV2>summary .projectActionIcon{width:15px;height:15px;transition:transform .14s ease}
.projectDetailsV2[open]>summary .projectActionIcon{transform:rotate(180deg)}
.projectDetailsHint{margin-left:auto;font-size:11px;font-weight:500;color:#7f8eaa}
.projectDetailsBody{padding-top:9px}
.projectDetailSummary{padding:9px 10px;border-radius:10px;background:rgba(11,20,35,.70);border:1px solid rgba(157,181,225,.11)}
.projectDetailSummary .plannedTermLabel:first-child{margin-top:0}
.projectDetailActions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:9px}
.projectDetailActions button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%}
.projectEditDetails{margin-top:10px;border:1px solid var(--ui-border);border-radius:11px;background:rgba(11,19,33,.66);overflow:hidden}
.projectEditDetails>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:10px 11px;color:#d7e2f5;font-size:12px;font-weight:760}
.projectEditDetails>summary::-webkit-details-marker{display:none}
.projectEditDetails>summary .projectActionIcon{width:15px;height:15px}
.projectEditDetails[open]>summary{border-bottom:1px solid var(--ui-border)}
.projectEditBody{padding:10px}
.projectEditActions{margin-top:10px}
.projectCreateIntent{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:10px 11px;border:1px solid rgba(117,169,255,.22);border-radius:11px;background:rgba(49,84,143,.10)}
.projectCreateIntent .uiIcon{flex:0 0 auto;margin-top:1px;color:#8eb9ff}
.projectCreateIntent b{display:block;font-size:12px;color:#e3ecff}
.projectCreateIntent span{display:block;margin-top:2px;font-size:11px;line-height:1.45;color:var(--ui-muted)}
.projectEmptyState{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 16px 20px;color:var(--ui-muted)}
.projectEmptyState .projectEmptyIcon{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--ui-border);border-radius:14px;background:rgba(117,169,255,.07);color:#93baff;font-size:19px;margin-bottom:11px}
.projectEmptyState b{font-size:14px;color:#e9f0ff}
.projectEmptyState span{max-width:330px;margin-top:5px;font-size:12px;line-height:1.55}
.projectEmptyState button{margin-top:14px;width:min(100%,280px)}
@media(max-width:520px){
  .projectsHub{padding:12px}
  .projectsLead{display:none}
  .projectNewBtn{font-size:12px}
  .projectTabs{gap:5px}
  .projectTabs button{font-size:11px;padding:9px 5px}
  .projectCardV2{padding:12px}
  .projectNameRow{gap:7px}
  .projectCardV2 .projectname{font-size:15px}
  .projectQuickActions button{font-size:12px;padding-left:7px;padding-right:7px}
  .projectDetailsHint{display:none}
}
.projectEmptyIcon .projectActionIcon{width:22px;height:22px}

/* Planner hero + progressive disclosure */
#planner{max-width:820px;margin:0 auto}
.plannerTargetCard{padding:14px}
.plannerTargetCard h2{font-size:18px;margin-bottom:12px}
.plannerMapEmpty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px;color:var(--ui-muted);box-shadow:none;background:linear-gradient(180deg,rgba(15,24,42,.86),rgba(10,17,30,.92))}
.plannerMapEmptyIcon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:4px;border:1px solid rgba(117,169,255,.26);border-radius:14px;background:rgba(74,118,196,.10);color:#8ebaff}
.plannerMapEmptyIcon .uiIcon{width:23px;height:23px}
.plannerMapEmpty b{font-size:15px;color:#ecf2ff}
.plannerMapEmpty span{max-width:350px;font-size:12px;line-height:1.5}
#plannerMapCard{padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.30)}
#plannerMapCard>.sectionTitleRow{padding:1px 2px 8px}
#plannerMapCard>.sectionTitleRow h2{font-size:18px;margin:0}
.plannerMapStage{min-height:330px;border-radius:13px}
.plannerMapAdvanced{margin-top:10px;padding:0;overflow:hidden;border-color:rgba(157,181,225,.14);background:rgba(8,16,29,.68)}
.plannerMapAdvanced>summary{list-style:none;cursor:pointer;padding:10px 11px;font-size:12px;font-weight:780;color:#d9e5fb;display:flex;align-items:center;justify-content:space-between}
.plannerMapAdvanced>summary::-webkit-details-marker{display:none}
.plannerMapAdvanced>summary::after{content:'+';font-size:18px;font-weight:500;color:#8da6cd;line-height:1}
.plannerMapAdvanced[open]>summary{border-bottom:1px solid var(--ui-border)}
.plannerMapAdvanced[open]>summary::after{content:'−'}
.plannerMapAdvanced>div,.plannerMapAdvanced>.plannerMapMosaicTools,.plannerMapAdvanced>.plannerMapActions,.plannerMapAdvanced>.plannerMapSaveNote{margin-left:10px;margin-right:10px}
.plannerMapAdvanced>div:first-of-type{margin-top:10px}
.plannerMapAdvanced>.plannerMapSaveNote{margin-bottom:10px}
.plannerMapActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.plannerMapActions button{min-width:0;width:100%}
.plannerPanel{padding:0;overflow:hidden;box-shadow:none}
.plannerPanel>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:14px 15px;color:#e6eeff}
.plannerPanel>summary::-webkit-details-marker{display:none}
.plannerPanel>summary>span{grid-column:1;grid-row:1;font-size:15px;font-weight:820}
.plannerPanel>summary>small{grid-column:1;grid-row:2;font-size:11px;font-weight:550;color:var(--ui-muted);text-align:left;line-height:1.45}
.plannerPanel>summary::after{content:'+';grid-column:2;grid-row:1 / span 2;align-self:center;font-size:20px;font-weight:400;color:#8498bd}
.plannerPanel[open]>summary{border-bottom:1px solid var(--ui-border)}
.plannerPanel[open]>summary::after{content:'−'}
.plannerPanelBody{padding:13px 14px 15px}
.plannerCreatePanel .projectCreateIntent{margin-top:12px}
@media(max-width:520px){
  .plannerTargetCard{padding:12px}
  #plannerMapCard{padding:10px}
  .plannerMapStage{height:48vh;min-height:300px}
  .plannerPanel>summary{padding:13px 12px}
  .plannerPanel>summary>small{display:none}
  .plannerPanel>summary::after{grid-row:1;}
  .plannerPanelBody{padding:12px}
  .plannerMapActions{grid-template-columns:1fr 1fr}
}

/* Static DSS2 project snapshots (binary cache in IndexedDB) */
.projectSnapshotHost{position:relative;width:100%;height:100%;min-height:120px;overflow:hidden;background:#07101c}
.projectSnapshotFallback,.projectSnapshotImage{position:absolute;inset:0;width:100%;height:100%}
.projectSnapshotFallback{opacity:1;transition:opacity .16s ease}
.projectSnapshotFallback svg{display:block;width:100%;height:100%}
.projectSnapshotImage{display:block;object-fit:cover;opacity:0;transition:opacity .16s ease}
.projectSnapshotHost.snapshotReady .projectSnapshotImage{opacity:1}
.projectSnapshotHost.snapshotReady .projectSnapshotFallback{opacity:0}
.framingPreviewCanvas>.projectSnapshotHost{height:100%}
.journalProjectSnapshot{height:auto;aspect-ratio:36/17;min-height:0;margin:10px 0 3px;border:1px solid rgba(157,181,225,.14);border-radius:11px}


/* Compact session entry */
.sessionModalV2{max-width:650px;padding:14px 14px 0;overflow:visible}
.sessionModalHead{align-items:flex-start;margin-bottom:13px}
.sessionModalHead h2{margin-bottom:3px}
.sessionCoreGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.sessionCoreGrid .sessionProjectField,.sessionCoreGrid .sessionWide{grid-column:1/-1}
.sessionCoreGrid label{margin-bottom:5px}
.sessionIntegrationPreview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:9px 11px;border:1px solid rgba(117,169,255,.18);border-radius:11px;background:rgba(52,86,145,.08);font-size:11px;color:var(--ui-muted)}
.sessionIntegrationPreview b{font-size:12px;color:#e6efff;font-variant-numeric:tabular-nums}
.sessionIntegrationPreview span{text-align:right;color:#aebedb}
.sessionDisclosure{margin-top:9px;border:1px solid var(--ui-border);border-radius:11px;background:rgba(10,18,31,.72);overflow:hidden}
.sessionDisclosure>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 11px;color:#dce7fb}
.sessionDisclosure>summary::-webkit-details-marker{display:none}
.sessionDisclosure>summary>span{font-size:12px;font-weight:800}
.sessionDisclosure>summary>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:11px;font-weight:550;color:#8293b1}
.sessionDisclosure>summary::after{content:'+';font-size:17px;line-height:1;color:#8196ba}
.sessionDisclosure[open]>summary{border-bottom:1px solid var(--ui-border)}
.sessionDisclosure[open]>summary::after{content:'−'}
.sessionDisclosureBody{padding:10px}
.sessionDisclosureBody .darkMatch{margin-top:0}
.sessionNoteField{margin-top:10px}
.sessionNoteField textarea{min-height:70px}
.sessionSaveBar{position:sticky;z-index:3;bottom:0;margin:12px -14px 0;padding:9px 14px calc(9px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);align-items:center;gap:10px;border-top:1px solid rgba(157,181,225,.14);background:linear-gradient(180deg,rgba(16,24,41,.93),rgba(10,16,29,.99) 24%);backdrop-filter:blur(14px)}
.sessionSaveBar .primary{width:100%;margin:0;min-height:46px}
.sessionSaveMeta{font-size:11px;line-height:1.35;color:var(--ui-muted);font-variant-numeric:tabular-nums}
@media(max-width:520px){
  .sessionModalV2{margin:8px auto 0;padding:12px 12px 0;border-radius:16px 16px 0 0;min-height:calc(100dvh - 8px)}
  .sessionCoreGrid{gap:8px}
  .sessionIntegrationPreview{padding:8px 9px}
  .sessionSaveBar{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px;grid-template-columns:1fr auto}
  .sessionSaveBar .primary{min-width:150px}
}
@media(max-width:360px){
  .sessionCoreGrid{grid-template-columns:1fr}
  .sessionCoreGrid .sessionProjectField,.sessionCoreGrid .sessionWide{grid-column:auto}
  .sessionIntegrationPreview{display:block}
  .sessionIntegrationPreview span{display:block;margin-top:3px;text-align:left}
  .sessionSaveBar{grid-template-columns:1fr}
  .sessionSaveMeta{display:none}
}


/* Equipment hub */
.equipmentHub{padding:14px}
.equipmentIntro{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.equipmentIntro h2{margin-bottom:4px}
.equipmentSections{display:grid;gap:9px}
.equipmentSection{margin:0;border:1px solid var(--ui-border);border-radius:14px;background:linear-gradient(180deg,rgba(13,21,36,.92),rgba(10,17,30,.96));overflow:hidden;box-shadow:none}
.equipmentSection>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:38px minmax(0,1fr) auto 12px;align-items:center;gap:10px;padding:11px 12px;color:#e6eefc;user-select:none}
.equipmentSection>summary::-webkit-details-marker{display:none}
.equipmentSection>summary::after{content:'';width:7px;height:7px;border-right:1.8px solid #7f91b2;border-bottom:1.8px solid #7f91b2;transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s ease}
.equipmentSection[open]>summary{background:rgba(105,151,241,.055);border-bottom:1px solid rgba(157,181,225,.12)}
.equipmentSection[open]>summary::after{transform:rotate(225deg) translate(-1px,-1px)}
.equipmentSectionIcon{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(117,169,255,.17);border-radius:11px;background:rgba(117,169,255,.07);color:#8eb9ff}
.equipmentSectionIcon svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.equipmentSectionTitle{min-width:0}
.equipmentSectionTitle b{display:block;font-size:13px;line-height:1.25}
.equipmentSectionTitle small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3;font-weight:500;color:#8191ae}
.equipmentCount{min-width:27px;padding:4px 7px;border:1px solid rgba(157,181,225,.16);border-radius:999px;background:rgba(17,28,48,.74);text-align:center;font-size:11px;font-weight:800;color:#b8c8e2;font-variant-numeric:tabular-nums}
.equipmentUtilitySection>summary{grid-template-columns:38px minmax(0,1fr) 12px}
.equipmentUtilitySection>summary .equipmentCount{display:none}
.equipmentSectionBody{padding:11px 12px 12px}
.equipmentHint{margin:0 0 9px;font-size:11px;line-height:1.45;color:#8797b4}
.equipmentList{display:grid;gap:7px}
.equipmentSection .gearItem{margin:0;padding:10px;border:1px solid rgba(157,181,225,.11);border-radius:11px;background:rgba(9,16,28,.56)}
.equipmentSection .gearItem:last-child{border-bottom:1px solid rgba(157,181,225,.11)}
.equipmentSection .gearName{font-size:12.5px}
.equipmentSection .gearMeta{font-size:11px;line-height:1.45}
.equipmentSection .empty{padding:15px 10px;border:1px dashed rgba(157,181,225,.14);border-radius:10px;background:rgba(9,16,28,.34);font-size:11px}
.equipmentSection .actionsMini{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.equipmentSection .actionsMini button,.equipmentSection .gearItem>.danger{min-height:34px;padding:7px 9px;font-size:11px}
.equipmentAddBtn{width:100%;margin-top:9px;min-height:40px;display:flex;align-items:center;justify-content:center}
.equipmentFormPanel{margin-top:10px;padding:11px;border:1px solid rgba(117,169,255,.22);border-radius:12px;background:rgba(13,23,40,.88)}
.equipmentFormPanel[hidden]{display:none!important}
.equipmentFormHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.equipmentFormHead b{display:block;font-size:13px;color:#edf3ff}
.equipmentFormHead span{display:block;margin-top:2px;font-size:11px;line-height:1.4;color:#8999b7}
.equipmentFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.equipmentFormGrid .wide{grid-column:1/-1}
.equipmentFormGrid label{font-size:11px;margin-bottom:4px}
.equipmentFormGrid input,.equipmentFormGrid select{min-height:42px;font-size:13px}
.cameraFormGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.equipmentCatalogBox{margin:0 0 10px;padding:9px;border-radius:10px;background:rgba(9,17,30,.68)}
.equipmentFormActions{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.45fr);gap:8px;margin-top:10px}
.equipmentFormActions button{width:100%;min-height:42px}
.equipmentSection .backupWarning{margin-top:0}
.equipmentSection .dataBox{margin-top:0}
@media(min-width:760px){.cameraFormGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){
  .equipmentHub{padding:12px}
  .equipmentSection>summary{grid-template-columns:36px minmax(0,1fr) auto 10px;gap:8px;padding:10px}
  .equipmentUtilitySection>summary{grid-template-columns:36px minmax(0,1fr) 10px}
  .equipmentSectionIcon{width:34px;height:34px}
  .equipmentSectionTitle small{font-size:11px}
  .equipmentSectionBody{padding:10px}
  .equipmentSection .gearItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .equipmentFormGrid{grid-template-columns:1fr}
  .equipmentFormGrid .wide{grid-column:auto}
  .equipmentFormActions{grid-template-columns:1fr 1fr}
}
@media(max-width:360px){
  .equipmentSectionTitle small{display:none}
  .equipmentFormActions{grid-template-columns:1fr}
}


/* Journal */
.journalHub{padding:14px}
.journalHeader{align-items:flex-start;margin-bottom:12px}
.journalHeader h2{margin:0 0 3px;font-size:18px}
.journalLead{max-width:420px}
.journalCountBadge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid var(--ui-border);border-radius:999px;background:rgba(117,169,255,.08);color:#b9d2ff;font-size:11px;font-weight:780;font-variant-numeric:tabular-nums}
.journalSearchField{margin-top:2px}
.journalSearchField label{margin-bottom:5px}
.journalNotice{min-height:18px;margin:8px 1px 2px;color:#8292ae;font-size:11px;line-height:1.4}
.journalGroup{margin-top:9px;border-color:rgba(157,181,225,.14);border-radius:13px;background:linear-gradient(180deg,rgba(12,20,35,.90),rgba(9,16,29,.94));box-shadow:none}
.journalGroup>summary{padding:12px;transition:background .14s ease}
.journalGroup>summary:hover{background:rgba(117,169,255,.035)}
.journalGroup[open]>summary{border-bottom-color:rgba(157,181,225,.12);background:rgba(117,169,255,.035)}
.journalGroupMain{min-width:0}
.journalGroupMain>b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#edf3ff;font-size:14px}
.journalGroupRight{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:#dce7fb;font-variant-numeric:tabular-nums}
.journalGroupRight>b{font-size:12px}
.journalGroupRight .projectActionIcon{width:15px;height:15px;color:#8298bd;transition:transform .16s ease}
.journalGroup[open] .journalGroupRight .projectActionIcon{transform:rotate(180deg)}
.journalGroupProgress{height:6px;margin-top:8px}
.journalPlanMini{margin-top:7px}
.journalPlanMini .chip{font-size:11px;padding:4px 7px}
.journalInner{padding:5px 10px 10px}
.journalProjectSnapshot{margin:8px 0 4px}
.journalSessionCard{margin-top:8px;border-color:rgba(157,181,225,.12);border-radius:10px;background:rgba(9,17,30,.82)}
.journalSessionCard .sessionEntryHead{padding:10px 11px 7px}
.journalSessionCard .journalTitle{align-items:flex-start}
.journalSessionCard .journalTitle>div{min-width:0}
.journalSessionCard .journalTitle .projectmeta{white-space:normal;line-height:1.4}
.sessionHours{font-size:12px;white-space:nowrap;color:#dbe7fb;font-variant-numeric:tabular-nums}
.journalSessionCard .sessionEntryActions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:0 10px 9px}
.journalSessionCard .sessionEntryActions button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 10px;font-size:11px}
.journalSessionCard .sessionEntryActions .projectActionIcon{width:15px;height:15px}
.journalSessionCard .sessionEntryActions .sessionDeleteBtn{min-width:84px;background:rgba(43,24,32,.52);box-shadow:none}
.journalSessionCard .sessionDetails>summary{padding:9px 11px;font-size:11px;color:#bfcee7}
.journalSessionCard .sessionEntryBody{padding:9px 10px 10px}
.journalSessionCard .sessionDetailSection{margin-top:7px}
.journalSessionCard .sessionDetailSection:first-child{margin-top:0}
.sessionHighlight{border-color:rgba(117,169,255,.48);box-shadow:0 0 0 2px rgba(117,169,255,.09)}
.journalEmptyState{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 14px 20px;color:var(--ui-muted)}
.journalEmptyState b{font-size:14px;color:#e9f0ff}
.journalEmptyState span{max-width:330px;margin-top:5px;font-size:12px;line-height:1.5}
@media(max-width:520px){
  .journalHub{padding:12px}
  .journalLead{display:none}
  .journalGroup>summary{padding:11px}
  .journalGroupMain>b{font-size:13px}
  .journalGroupRight{gap:6px}
  .journalGroupRight>b{font-size:11px}
  .journalInner{padding:4px 8px 9px}
  .journalProjectSnapshot{margin:7px 0 3px}
}

/* v0.14 R&D — install action and compact mosaic editor */
.homeInstallBtn{margin-top:22px;min-width:210px;padding:11px 18px}
.homeInstallBtn[hidden]{display:none!important}

.mosaicSectionSummary{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mosaicSectionSummary small{font-size:11px;font-weight:650;color:var(--muted);white-space:nowrap}
.mosaicSectionHint{margin:7px 2px 2px;line-height:1.4}
.mosaicEditorHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}
.mosaicEditorHead>span{font-size:11px;color:var(--muted);white-space:nowrap}

.mosaicPanelCard{margin-top:7px;padding:0;border:1px solid #2b3d61;border-radius:11px;background:#0a1322;overflow:hidden}
.mosaicPanelCard:first-child{margin-top:6px}
.mosaicPanelSummary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 10px;background:#0d1728}
.mosaicPanelSummary::-webkit-details-marker{display:none}
.mosaicPanelSummary::after{content:'›';font-size:20px;line-height:1;color:#8fa7d1;transform:rotate(90deg);transition:transform .14s ease}
.mosaicPanelCard[open]>.mosaicPanelSummary{background:#101d32;border-bottom:1px solid #253755}
.mosaicPanelCard[open]>.mosaicPanelSummary::after{transform:rotate(-90deg)}
.mosaicPanelSummaryText{min-width:0;display:flex;align-items:baseline;gap:8px}
.mosaicPanelSummaryText b{font-size:13px;color:#edf3ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mosaicPanelSummaryText small{font-size:11px;color:var(--muted);white-space:nowrap}
.mosaicPanelDelete,.mosaicMiniDelete{border:1px solid rgba(255,124,124,.28);background:rgba(78,27,38,.54);color:#ffb8c2;border-radius:8px;font-size:11px;font-weight:750;padding:6px 8px;line-height:1}
.mosaicPanelDelete{justify-self:end}

.mosaicPanelBody{padding:9px}
.mosaicPanelRow{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:7px;align-items:end;margin:0}
.mosaicPanelRow label,.mosaicPanelMaterialRow label{font-size:11px;margin-bottom:3px}
.mosaicGoalLabel{display:flex;align-items:center;justify-content:space-between;gap:5px}
.mosaicGoalLabel span{font-size:11px;color:#8fa7d1;white-space:nowrap}
.mosaicGoalLabel span[hidden]{display:none!important}
.mosaicPanelRow input,.mosaicPanelMaterialRow input,.mosaicPanelMaterialRow select{min-height:38px;padding:8px 9px;border-radius:9px}
.mosaicDerivedGoal{color:#c6d4ee;background:#101a2b;border-style:dashed}

.mosaicPanelMaterialEditor{margin-top:8px;padding-top:8px;border-top:1px solid #243553}
.mosaicPanelMaterialHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:2px}
.mosaicPanelMaterialHead b{font-size:11px;color:#e4ecff}
.mosaicPanelMaterialHead span{font-size:11px;color:var(--muted)}
.mosaicPanelMaterialRow{display:grid;grid-template-columns:minmax(100px,1.15fr) minmax(130px,1.35fr) 76px 86px auto;grid-template-areas:'name filter goal exp remove';gap:6px;align-items:end;margin-top:6px;padding:7px;border:1px solid #223452;border-radius:9px;background:#091321}
.mosaicMaterialName{grid-area:name}.mosaicMaterialFilter{grid-area:filter}.mosaicMaterialGoal{grid-area:goal}.mosaicMaterialExp{grid-area:exp}.mosaicMiniDelete{grid-area:remove;align-self:end;height:38px;padding:0 8px}
.mosaicAddMaterialBtn{width:100%;margin-top:6px;padding:8px 10px;font-size:11px}
.mosaicPanelAddActions{margin-top:7px}
.mosaicPanelAddActions .secondary{padding:8px 10px;font-size:11px}
.mosaicPanelListEditor{padding:9px}

.mosaicNestedProgress{margin-top:9px;padding:8px;border:1px solid #263654;border-radius:9px;background:#091220}
.mosaicNestedProgressItem{padding:8px 0;border-top:1px solid #202f4b}
.mosaicNestedProgressItem:first-child{padding-top:0;border-top:0}
.mosaicNestedProgressItem:last-child{padding-bottom:0}
.mosaicNestedProgressItem .progress{height:6px;margin-top:7px}
.mosaicPanelProgress>.materialPlanProgressMeta{margin-bottom:2px}

@media(max-width:650px){
  .mosaicPanelMaterialRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 62px;grid-template-areas:'name filter filter' 'goal exp remove'}
  .mosaicPanelSummary{padding:8px 9px;gap:6px}
  .mosaicPanelSummaryText{display:block}
  .mosaicPanelSummaryText b,.mosaicPanelSummaryText small{display:block}
  .mosaicPanelSummaryText small{margin-top:2px}
}
@media(max-width:520px){
  .homeInstallBtn{width:min(100%,260px)}
  .mosaicPanelBody{padding:8px}
  .mosaicPanelRow{grid-template-columns:minmax(0,1fr) 100px}
  .mosaicPanelMaterialRow{padding:6px;gap:5px}
  .mosaicPanelMaterialRow input,.mosaicPanelMaterialRow select,.mosaicPanelRow input{min-height:36px;padding:7px 8px}
  .mosaicMiniDelete{height:36px;padding:0 6px}
  .mosaicPanelDelete{padding:5px 7px}
  .mosaicSectionSummary small,.mosaicEditorHead>span{font-size:11px}
}


/* v0.14 R&D — flat, peer-level project detail sections */
.projectPeerStack{display:grid;gap:8px;margin-top:10px}
.projectPeerDetails{margin:0;border:1px solid var(--ui-border);border-radius:11px;background:rgba(11,19,33,.66);overflow:hidden}
.projectPeerDetails>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:10px 11px;color:#d7e2f5;font-size:12px;font-weight:760}
.projectPeerDetails>summary::-webkit-details-marker{display:none}
.projectPeerDetails>summary .projectActionIcon{width:15px;height:15px}
.projectPeerDetails>summary::after{content:'›';font-size:18px;line-height:1;color:#8fa7d1;transform:rotate(90deg);transition:transform .14s ease}
.projectPeerDetails[open]>summary{border-bottom:1px solid var(--ui-border);background:rgba(18,30,50,.5)}
.projectPeerDetails[open]>summary::after{transform:rotate(-90deg)}
.projectPeerMeta{font-size:11px;font-weight:560;color:var(--ui-muted);white-space:nowrap}
.projectPeerBody{padding:10px}
.projectPeerBody .editGrid:first-child{margin-top:0}
.projectPeerBody .projectManageActions{margin-top:0}
.projectPeerBody .projectManageActions button{display:flex;align-items:center;justify-content:center;gap:7px}
.projectPeerPlanWrap{padding:8px}
.projectPeerPlanBody{margin:0;padding:0;border:0;background:transparent}
.projectPeerPlanBody>.actions{margin-top:7px}
.projectPeerPlanBody .materialPlanSummary{margin-top:8px}
.projectPeerPlanBody .mosaicPanelCard:first-child{margin-top:0}
.projectPeerMaterial{margin-top:0}
.projectPeerMaterial .chip{font-size:11px}
.projectDetailActions{display:none}
@media(max-width:520px){
  .projectPeerStack{gap:7px;margin-top:8px}
  .projectPeerDetails>summary{padding:9px 10px;gap:6px}
  .projectPeerMeta{font-size:11px;max-width:122px;overflow:hidden;text-overflow:ellipsis}
  .projectPeerBody{padding:8px}
  .projectPeerPlanWrap{padding:7px}
}

/* v0.14 R&D — FOV with profile or ad-hoc gear */
.setupChooser{min-width:0;padding-top:4px}
.setupChooserHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}
.setupChooserHead b{font-size:12px;color:#e5edfc}
.setupChooserHead span{font-size:11px;color:var(--ui-muted);white-space:nowrap}
.setupProfileField{margin-top:0}
.setupChooserDivider{display:flex;align-items:center;gap:8px;margin:7px 0 6px;color:#7889a7;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.setupChooserDivider::before,.setupChooserDivider::after{content:'';height:1px;flex:1;background:rgba(157,181,225,.12)}
.setupGearGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:7px}
.setupChooser label{font-size:11px;margin-bottom:3px}
.setupChooser select{min-height:39px;padding:8px 9px;border-radius:9px;font-size:12px}
.setupChooserPreview{margin-top:7px;padding:7px 9px;border-radius:8px;background:rgba(8,15,27,.46);color:#91a1bc;font-size:11px;line-height:1.45}
.setupChooserPreview.good{color:#b9d7ff;background:rgba(38,70,116,.17)}
.newProjectSetupChooser{grid-column:1/-1;padding:8px 0 2px;border-top:1px solid rgba(157,181,225,.10)}
.projectEditSetupChooser{padding:8px 0 2px;border-top:1px solid rgba(157,181,225,.10);border-bottom:1px solid rgba(157,181,225,.08)}
.plannerMapSetup{display:block;grid-template-columns:none;padding:8px 0 2px;border-top:1px solid rgba(157,181,225,.10)}
.plannerMapSaveStatus{display:inline-flex;align-items:center;width:auto;margin-top:8px;padding:6px 9px;border:1px solid rgba(104,211,145,.28);border-radius:999px;background:rgba(35,92,64,.16);color:#9fe0b8;font-size:11px;font-weight:750;line-height:1.2}
@media(max-width:650px){
  .setupGearGrid{grid-template-columns:1fr 1fr}
  .setupCameraField{grid-column:1/-1}
}
@media(max-width:430px){
  .setupChooserHead{margin-bottom:6px}
  .setupChooser select{min-height:37px;padding:7px 8px}
  .setupChooserPreview{margin-top:6px;padding:6px 8px}
}
