:root {
  --primary: #245fe8; --cyan: #009eaf;
  --body-gradient: radial-gradient(ellipse at 85% 0%, #d8f3f6 0, transparent 40%), linear-gradient(135deg,#f3f6fb,#e9eff8);
  font-size: 18px;
}
:root[data-theme="dark"] {
  --bg:#090e1b; --bg2:#0f192b; --panel:#101a2d; --panel-soft:#111f34;
  --text:#ecf3ff; --muted:#a7bbd7; --primary:#73a6ff; --primary-2:#5366ee;
  --cyan:#44d9d4; --line:rgba(131,178,226,.18); --line-strong:rgba(131,178,226,.3);
  --nav-bg:rgba(10,18,33,.94); --card-bg:linear-gradient(145deg,#14213a,#101a2d);
  --project-bg:radial-gradient(ellipse at 100% 0,rgba(54,147,179,.09),transparent 50%),linear-gradient(140deg,#14213a,#101a2d);
  --body-gradient:radial-gradient(ellipse at 88% 0%,rgba(40,129,150,.15),transparent 40%),radial-gradient(ellipse at 0 40%,rgba(78,66,155,.12),transparent 45%),linear-gradient(140deg,#080f1e,#10192a);
  --input-bg:#0c1728; --shadow:0 24px 64px #03081633; --shadow-soft:0 12px 32px #03081622;
}
body { font-size:18px; background:var(--body-gradient); color:var(--text); }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { touch-action:manipulation; }
button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid var(--cyan);outline-offset:4px; }
.nav { border-bottom:1px solid var(--line); backdrop-filter:blur(18px); }
.iconBtn,.btn,.btnPrimary,.filterSelect,.sortSelect { min-height:46px; font-size:16px; }
.card { border-radius:22px; }
.hero { position:relative; }
.missionKicker { display:flex;align-items:center;gap:10px;color:var(--cyan);font-size:13px;font-weight:800;letter-spacing:.18em;margin:24px 0 20px; }
.missionKicker span { width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 16px var(--cyan); }
.hero h1 { max-width:950px;font-size:clamp(38px,4.3vw,70px);font-weight:750;line-height:1.05;letter-spacing:-.055em;margin-bottom:16px; }
.headingDot { color:var(--cyan); }
.missionIntro { color:var(--muted);font-size:20px;margin:0 0 32px; }
.stats { gap:18px; }
.stat { position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--line);background:var(--card-bg);padding:26px; }
.stat:before { content:"";position:absolute;top:0;left:25px;width:38px;height:3px;background:var(--cyan); }
.stat h2 { font-size:46px;font-variant-numeric:tabular-nums;letter-spacing:-.05em; }
.stat span { font-size:16px; }
.chartCard h4,.sectionHead h3 { letter-spacing:-.025em; }
.chartCard h4 { font-size:21px; }
.chartRow,.chartCard,.updatesFeedCard,.chartWrap { min-width:0;max-width:100%; }
.dashboardSections { grid-template-columns:minmax(0,1fr); }
.chartWrap { position:relative; }
.chartWrap canvas { max-width:100%; }
.projectName { font-size:clamp(28px,2.6vw,40px); }
.projectNumber { font-size:16px;border-radius:9px;min-height:40px;font-variant-numeric:tabular-nums; }
.projectMeta,.projectLastEdited,.projectDescription { font-size:18px; }
.badge { font-size:16px;min-height:39px;border-radius:10px; }
.metaLabel { font-size:13px; }
.metaValue { font-size:19px; }
.filterLabel { font-size:15px; }
.projectDescription { height:auto;max-height:440px;min-height:180px;resize:vertical; }
.projectDescription .dashboardScrollBox { overflow:visible;flex:none; }
.projectDescription .previousUpdatesBox { flex:none; }
.projectCard,.project { border-color:var(--line); }
.updateSectionTitle { color:var(--cyan);font-size:14px;letter-spacing:.1em; }
/* The slide owns scrolling; comments never create a smaller inner viewport. */
.presentationOverlay { background:rgba(5,10,21,.92);padding:12px; }
.presentationShell,.presentationOverlay:fullscreen .presentationShell { width:100%;max-width:none;height:calc(100dvh - 24px);padding:20px;grid-template-rows:auto minmax(0,1fr); }
.presentationOverlay:fullscreen .presentationShell { height:100dvh; }
.presentationContent,.presentationOverlay:fullscreen .presentationContent { grid-template-columns:52px minmax(0,1fr) 52px;gap:12px; }
.presentationArrow,.presentationOverlay:fullscreen .presentationArrow { min-width:0;font-size:38px;border-radius:15px; }
.presentationViewport,.presentationOverlay:fullscreen .presentationViewport { padding:clamp(22px,3vw,48px);overscroll-behavior:contain;scrollbar-gutter:stable; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectNumber { font-size:clamp(24px,2vw,36px);min-height:50px;border-radius:12px;letter-spacing:.03em; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectName { font-size:clamp(36px,4vw,68px);line-height:1.08;margin:16px 0 0; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectHeader { grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:28px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationTopMeta { width:auto;min-width:0;max-width:none;gap:8px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectEngineer,.presentationOverlay:is(.isOpen,:fullscreen) .presentationLastEdited { font-size:clamp(19px,1.7vw,28px);line-height:1.45;white-space:normal; }
.presentationOverlay:is(.isOpen,:fullscreen) .badge { font-size:clamp(21px,1.8vw,30px);min-height:48px;padding:8px 16px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetaGrid { grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetaItem { padding:14px 18px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetaLabel { font-size:16px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetaValue { font-size:clamp(21px,1.8vw,29px); }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription { height:auto!important;max-height:none!important;min-height:0;overflow:visible!important;font-size:clamp(21px,1.8vw,30px);line-height:1.65;display:block;margin-top:16px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription .dashboardScrollBox,.presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription .previousUpdatesBox { height:auto;min-height:0;max-height:none;overflow:visible;display:block;flex:none; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription .updateSectionTitle { font-size:17px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription .latestUpdateBox { padding-bottom:24px;margin-bottom:24px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationHint,.presentationOverlay:is(.isOpen,:fullscreen) .presentationCounter { font-size:17px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationTopActions .iconBtn { font-size:16px; }
.focusNotesBtn { margin-top:20px; }
.presentationStage.notesFocused .presentationMetaGrid,.presentationStage.notesFocused .presentationTopMeta,.presentationStage.notesFocused .presentationBadgeRow { display:none; }
.presentationStage.notesFocused .presentationProjectHeader { display:block; }
.presentationStage.notesFocused .presentationProjectName { font-size:clamp(28px,2.8vw,44px); }
.presentationStage.notesFocused .presentationDescription { padding:24px 0;border:0;background:transparent; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetricValue { color:var(--cyan);font-size:clamp(42px,4vw,72px); }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetricDetail { font-size:20px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationMetricLabel,.presentationOverlay:is(.isOpen,:fullscreen) .presentationBarLabel,.presentationOverlay:is(.isOpen,:fullscreen) .presentationBarCount { font-size:17px; }
.presentationOverlay:is(.isOpen,:fullscreen) .presentationSummaryTitle { font-size:clamp(36px,4vw,66px); }
.loginPanel { max-width:620px;margin:12vh auto;padding:40px;background:var(--card-bg);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow); }
.loginPanel h1 { font-size:38px;letter-spacing:-.04em; }
.loginPanel p { color:var(--muted);line-height:1.7; }
.loginLinks { display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:26px; }
.loginLinks a { color:var(--primary); }
.loginLinks .signInLink { background:#315ee8;color:white;padding:15px 22px;border-radius:12px;text-decoration:none;font-weight:700; }
.loginPanel label { display:block;margin:20px 0 8px;font-weight:650; }
.loginPanel input { width:100%;padding:14px;border-radius:10px;border:1px solid var(--line-strong);background:var(--input-bg);color:var(--text); }
.loginLinks button { cursor:pointer;border:0; }
@media(max-width:900px) {
  .chartRow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectHeader { grid-template-columns:1fr;gap:15px; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationTopMeta { text-align:left; }
  .presentationShell,.presentationOverlay:fullscreen .presentationShell { padding:10px; }
  .presentationContent,.presentationOverlay:fullscreen .presentationContent { grid-template-columns:38px minmax(0,1fr) 38px;gap:6px; }
  .presentationViewport,.presentationOverlay:fullscreen .presentationViewport { padding:20px; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectNumber { font-size:25px; }
}
@media(max-width:600px) {
  .chartRow { grid-template-columns:minmax(0,1fr); }
  body { font-size:17px; }
  .presentationOverlay { padding:4px; }
  .presentationShell { height:calc(100dvh - 8px); }
  .presentationTitleGroup h2 { font-size:24px!important; }
  .presentationHint { display:none; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationMetaGrid { grid-template-columns:1fr; }
  .presentationContent,.presentationOverlay:fullscreen .presentationContent { grid-template-columns:28px minmax(0,1fr) 28px;gap:4px; }
  .presentationArrow { font-size:26px!important; }
  .presentationViewport,.presentationOverlay:fullscreen .presentationViewport { padding:14px; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationProjectName { font-size:31px;overflow-wrap:anywhere; }
  .presentationOverlay:is(.isOpen,:fullscreen) .badge { font-size:20px; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationDescription { font-size:21px; }
  .presentationOverlay:is(.isOpen,:fullscreen) .presentationMetricGrid,.presentationOverlay:is(.isOpen,:fullscreen) .presentationSummaryCharts { grid-template-columns:1fr; }
  .loginPanel { margin:30px 12px;padding:26px; }
}
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important;animation:none!important;transition:none!important; } }
@media print { .missionKicker,.focusNotesBtn { display:none; } }

