:root {
  --ink: #071522;
  --ink-2: #0b2335;
  --ink-3: #12364a;
  --paper: #eef5f3;
  --paper-2: #dce8e6;
  --white: #f8fbfa;
  --teal: #56d6ca;
  --teal-deep: #188d87;
  --amber: #ffb15c;
  --coral: #e8775f;
  --muted: #8da7ad;
  --line: rgba(20, 62, 74, .18);
  --display: 'Barlow Condensed', sans-serif;
  --body: 'IBM Plex Sans', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --shell: min(1180px, calc(100vw - 64px));
  --header-height: 76px;
  --shadow: 0 26px 70px rgba(3, 16, 27, .16);
  --cine-progress: 0;
  --hero-exit: 0;
  --hero-shift: 0;
  --hero-zoom: 0;
  --pointer-x: 0;
  --pointer-y: 0;
  --briefing-shift: 0;
  --orbit-turn: 0deg;
}

[hidden] { display: none !important; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.switcher-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; }
img { max-width: 100%; }
::selection { color: var(--ink); background: var(--teal); }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: 10px 16px;
  color: var(--ink);
  background: var(--white);
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: none; }
.shell { width: var(--shell); margin-inline: auto; }
.page-noise {
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.scroll-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 120;
  height: 2px;
  background: rgba(255,255,255,.08);
}
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--amber); }

/* Cinematic viewport: a port control-room narrative guided by scroll */
.cinematic-frame {
  position: fixed;
  inset: 0;
  z-index: 92;
  overflow: hidden;
  pointer-events: none;
}
.cinematic-bar {
  position: absolute;
  right: 0;
  left: 0;
  height: clamp(5px, .75vw, 10px);
  background: #020810;
  box-shadow: 0 0 30px rgba(0,0,0,.4);
}
.cinematic-bar--top { top: 0; }
.cinematic-bar--bottom { bottom: 0; }
.cinematic-vignette {
  position: absolute;
  inset: 0;
  opacity: .45;
  box-shadow: inset 0 0 110px rgba(0,8,18,.22);
}
.cinematic-scanline {
  position: absolute;
  top: -18%;
  right: 0;
  left: 0;
  height: 18%;
  opacity: .1;
  background: linear-gradient(180deg, transparent, rgba(86,214,202,.2), transparent);
  animation: cinematicScan 8s linear infinite;
  mix-blend-mode: screen;
}
@keyframes cinematicScan { to { transform: translateY(660%); } }

.cinematic-chapters {
  position: fixed;
  top: 50%;
  right: 18px;
  z-index: 96;
  display: grid;
  gap: 11px;
  transform: translateY(-50%);
}
.cinematic-chapters a {
  position: relative;
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.48);
  background: rgba(4,18,30,.56);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  backdrop-filter: blur(9px);
  font-family: var(--mono);
  font-size: 7px;
  text-decoration: none;
  transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}
.cinematic-chapters a::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px solid transparent;
  border-radius: inherit;
}
.cinematic-chapters a span {
  position: absolute;
  top: 50%;
  right: 39px;
  width: max-content;
  padding: 5px 8px;
  opacity: 0;
  color: var(--white);
  background: rgba(4,18,30,.88);
  border: 1px solid rgba(255,255,255,.13);
  transform: translate(8px, -50%);
  pointer-events: none;
  transition: opacity .2s ease, transform .25s ease;
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cinematic-chapters a:hover span,
.cinematic-chapters a:focus-visible span,
.cinematic-chapters a.active span { opacity: 1; transform: translate(0, -50%); }
.cinematic-chapters a.active {
  color: var(--ink);
  background: var(--teal);
  border-color: var(--teal);
  transform: scale(1.13);
  box-shadow: 0 0 0 5px rgba(86,214,202,.1), 0 0 22px rgba(86,214,202,.24);
}
.cinematic-chapters a.active::before { border-color: rgba(7,21,34,.34); }
.cine-scene { --scene-proximity: 0; }

.eyebrow {
  display: block;
  color: var(--teal-deep);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.section-pad { padding: 130px 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; line-height: .94; }
h2 { font-size: clamp(52px, 6.5vw, 90px); letter-spacing: -.035em; }
h2 em { color: var(--teal-deep); font-family: inherit; font-style: normal; }

/* Global header */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: var(--header-height);
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 0 32px;
  color: var(--white);
  background: linear-gradient(180deg, rgba(4, 15, 26, .84), rgba(4, 15, 26, .28) 70%, transparent);
  border-bottom: 1px solid transparent;
  transition: height .35s ease, background .35s ease, border-color .35s ease;
}
.site-header.compact {
  height: 66px;
  background: rgba(7, 21, 34, .94);
  border-color: rgba(255,255,255,.1);
  backdrop-filter: blur(14px);
}
.wordmark {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: inherit;
  font-family: var(--display);
  font-size: 17px;
  font-weight: 600;
  line-height: .78;
  letter-spacing: .01em;
  text-decoration: none;
  text-transform: uppercase;
}
.epusp-seal {
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  border: 3px solid rgba(255,255,255,.84);
  border-radius: 50%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.1);
}
.course-trigger {
  min-width: 142px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 0 7px 18px;
  color: inherit;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.28);
  text-align: left;
}
.course-trigger small, .course-trigger strong { display: block; }
.course-trigger small { color: rgba(255,255,255,.58); font-family: var(--mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.course-trigger strong { margin-top: 2px; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; }
.trigger-arrow { color: var(--teal); font-size: 16px; transition: transform .3s ease; }
.course-trigger[aria-expanded="true"] .trigger-arrow { transform: rotate(180deg); }
.header-nav { display: flex; justify-content: center; gap: 30px; }
.header-nav a, .icon-link {
  color: rgba(255,255,255,.72);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .2s ease;
}
.header-nav a:hover, .icon-link:hover { color: var(--white); }
.header-actions { display: flex; align-items: center; gap: 18px; }
.access-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 14px;
  color: var(--white);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 2px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.access-button:hover { background: rgba(255,255,255,.14); }
.status-led { width: 6px; height: 6px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 4px rgba(255,177,92,.12); }
.is-authenticated .status-led { background: var(--teal); box-shadow: 0 0 0 4px rgba(86,214,202,.12); }

/* Course switcher */
.course-switcher {
  position: fixed;
  inset: 0 0 auto;
  z-index: 115;
  min-height: 465px;
  padding: 40px max(32px, calc((100vw - 1180px)/2));
  color: var(--white);
  background: var(--ink);
  box-shadow: 0 24px 80px rgba(0,0,0,.38);
  animation: switcherIn .35s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes switcherIn { from { opacity: 0; transform: translateY(-20px); } }
.switcher-scrim { position: fixed; inset: 0; z-index: 110; background: rgba(3,12,20,.68); backdrop-filter: blur(4px); }
.switcher-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 26px; }
.switcher-head h2 { margin: 5px 0 0; font-size: 42px; }
.close-button, .dialog-close {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: inherit;
  background: transparent;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  font-size: 22px;
}
.switcher-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.course-option {
  position: relative;
  min-height: 275px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  padding: 24px;
  color: var(--white);
  background: #102a3c center/cover;
  border: 1px solid rgba(255,255,255,.14);
  text-align: left;
  isolation: isolate;
}
.course-option::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5,18,30,.05), rgba(5,18,30,.94)); }
.course-option::after { content: ''; position: absolute; inset: auto 24px 19px; height: 1px; background: var(--course-accent, var(--teal)); transform: scaleX(.18); transform-origin: left; transition: transform .35s ease; }
.course-option:hover::after, .course-option.active::after { transform: scaleX(1); }
.course-option .option-top { position: absolute; inset: 20px 20px auto; display: flex; justify-content: space-between; font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.course-option .option-top i { width: 8px; height: 8px; border-radius: 50%; background: var(--course-accent, var(--teal)); }
.course-option strong { max-width: 310px; margin-bottom: 24px; font-family: var(--display); font-size: 27px; line-height: 1; }
.course-option small { margin-bottom: 6px; color: var(--course-accent, var(--teal)); font-family: var(--mono); font-size: 10px; letter-spacing: .12em; }

/* Cinematic hero */
.cinematic-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--white);
  background: var(--ink);
  isolation: isolate;
}
.hero-media, .briefing-photo {
  position: absolute;
  inset: -5%;
  z-index: -4;
  background: center/cover no-repeat;
  will-change: transform;
}
.hero-media {
  transform: translate3d(
    calc(var(--pointer-x) * -9px),
    calc((var(--hero-shift) * 1px) + (var(--pointer-y) * -6px)),
    0
  ) scale(calc(1.06 + var(--hero-zoom)));
  filter: saturate(calc(.84 + (var(--hero-exit) * .2))) contrast(1.04);
}
.hero-media video { width: 100%; height: 100%; display: block; object-fit: cover; opacity: 0; transition: opacity .65s ease; }
.hero-media.video-active video { opacity: 1; }
.hero-media video[hidden], .course-cover-editor video[hidden] { display: none; }
.briefing-photo {
  transform: translate3d(0, calc(var(--briefing-shift) * 1px), 0) scale(1.1);
  will-change: transform;
}
.hero-shade { position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(4,15,26,.97) 0%, rgba(4,15,26,.76) 36%, rgba(4,15,26,.14) 71%), linear-gradient(0deg, rgba(4,15,26,.74), transparent 38%); }
.chart-grid {
  position: absolute;
  inset: 0;
  z-index: -2;
  opacity: .14;
  background-image: linear-gradient(rgba(102,213,203,.3) 1px, transparent 1px), linear-gradient(90deg, rgba(102,213,203,.3) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(90deg, #000, transparent 72%);
}
.hero-content { display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: end; gap: 74px; padding-top: 110px; padding-bottom: 120px; }
.hero-copy { max-width: 810px; }
.hero-kicker { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.hero-kicker span:first-child { padding: 6px 9px; color: var(--ink); background: var(--teal); font-weight: 500; }
.hero-kicker span:last-child { color: rgba(255,255,255,.64); }
.hero-copy h1 { max-width: 840px; margin-bottom: 22px; font-size: clamp(54px, 5.7vw, 82px); letter-spacing: -.03em; line-height: .92; text-transform: uppercase; text-wrap: balance; }
.hero-copy p { max-width: 640px; margin-bottom: 34px; color: rgba(255,255,255,.72); font-size: clamp(16px, 1.6vw, 21px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 24px; }
.primary-button, .secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 49px;
  padding: 0 20px;
  color: var(--ink);
  background: var(--teal);
  border: 1px solid var(--teal);
  border-radius: 2px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .25s ease, background .25s ease, transform .25s ease;
}
.primary-button:hover { background: var(--white); border-color: var(--white); transform: translateY(-2px); }
.primary-button.light { background: var(--white); border-color: var(--white); }
.primary-button.light:hover { background: var(--teal); border-color: var(--teal); }
.text-button { padding: 8px 0; color: inherit; background: transparent; border: 0; border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.signal-panel {
  position: relative;
  min-height: 360px;
  padding: 19px;
  background: rgba(5, 21, 34, .42);
  border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(14px);
}
.signal-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; color: rgba(255,255,255,.66); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.signal-head span:last-child { color: var(--teal); }
.live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); animation: pulse 2s ease infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 8px rgba(86,214,202,0); } 0% { box-shadow: 0 0 0 0 rgba(86,214,202,.42); } }
.signal-radar { position: relative; width: 190px; height: 190px; margin: 23px auto 18px; overflow: hidden; border: 1px solid rgba(86,214,202,.36); border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 30px, rgba(86,214,202,.15) 31px 32px); }
.signal-radar::before, .signal-radar::after { content: ''; position: absolute; background: rgba(86,214,202,.18); }
.signal-radar::before { inset: 50% 0 auto; height: 1px; }
.signal-radar::after { inset: 0 auto 0 50%; width: 1px; }
.radar-sweep { position: absolute; width: 50%; height: 50%; top: 0; left: 50%; background: conic-gradient(from 270deg at 0 100%, rgba(86,214,202,.48), transparent 35%); transform-origin: 0 100%; animation: sweep 5s linear infinite; }
@keyframes sweep { to { transform: rotate(360deg); } }
.ping { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 12px var(--amber); }
.ping.p1 { left: 30%; top: 42%; }.ping.p2 { left: 62%; top: 27%; }.ping.p3 { left: 68%; top: 67%; }
.signal-panel dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0; }
.signal-panel dl div { padding: 10px 9px 0; border-left: 1px solid rgba(255,255,255,.14); }
.signal-panel dl div:first-child { border-left: 0; }
.signal-panel dt { color: rgba(255,255,255,.5); font-family: var(--mono); font-size: 7px; line-height: 1.3; text-transform: uppercase; }
.signal-panel dd { margin: 5px 0 0; color: var(--white); font-family: var(--mono); font-size: 10px; }
.inline-ok { display: inline-block; width: 5px; height: 5px; margin-right: 3px; border-radius: 50%; background: var(--teal); }
.inline-ok.pending { background: var(--amber); }
.hero-foot { position: absolute; inset: auto 0 25px; display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,.48); font-family: var(--mono); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.scroll-cue { display: flex; align-items: center; gap: 12px; }
.scroll-cue > span { width: 38px; height: 1px; overflow: hidden; background: rgba(255,255,255,.24); }
.scroll-cue > span::after { content: ''; display: block; width: 50%; height: 1px; background: var(--teal); animation: cue 2s ease-in-out infinite; }
@keyframes cue { 50% { transform: translateX(100%); } }
.coordinates { display: flex; align-items: center; gap: 10px; }
.coordinates i { width: 4px; height: 4px; border-radius: 50%; background: var(--teal); }

/* Reveal */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.in-view { opacity: 1; transform: none; }
.cinematic-ready .hero-copy.reveal.in-view {
  opacity: calc(1 - (var(--hero-exit) * .72));
  transform: translate3d(
    calc(var(--pointer-x) * -8px),
    calc(var(--hero-exit) * -38px),
    0
  );
}
.cinematic-ready .signal-panel.reveal.in-view {
  opacity: calc(1 - (var(--hero-exit) * .45));
  transform: perspective(900px)
    translate3d(calc(var(--pointer-x) * 11px), calc(var(--hero-exit) * 26px), 0)
    rotateY(calc(var(--pointer-x) * -1.1deg));
}
.cinematic-ready .hero-foot {
  opacity: calc(1 - (var(--hero-exit) * 1.2));
  transform: translateY(calc(var(--hero-exit) * 18px));
}
.cinematic-ready .chart-grid {
  background-position: calc(var(--hero-exit) * -45px) calc(var(--hero-exit) * 32px);
}

/* Next class: a two-act call sheet */
.next-class-section {
  position: relative;
  overflow: hidden;
  background: #dbe8e5;
}
.next-class-section::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .22;
  pointer-events: none;
  background-image: linear-gradient(rgba(14,76,83,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(14,76,83,.14) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(90deg, #000, transparent 78%);
}
.next-class-heading {
  position: relative;
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) 300px;
  gap: 54px;
  align-items: end;
}
.next-class-heading h2 { margin: 10px 0 0; }
.next-class-rule { margin: 0 0 10px; color: #5f7c81; font-size: 13px; line-height: 1.65; }
.class-call-sheet {
  position: relative;
  display: grid;
  grid-template-columns: 174px minmax(0, 1fr);
  margin-top: 55px;
  overflow: hidden;
  color: var(--white);
  background: var(--ink-2);
  box-shadow: 0 28px 70px rgba(7,30,40,.2);
}
.class-call-sheet::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .16;
  pointer-events: none;
  background: repeating-linear-gradient(125deg, transparent 0 28px, rgba(255,255,255,.08) 29px 30px);
}
.class-date-block {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 520px;
  padding: 28px 18px;
  color: var(--ink);
  background: var(--amber);
  text-align: center;
}
.class-date-block > span { font-family: var(--mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.class-date-block strong { margin: 9px 0 4px; font-family: var(--display); font-size: 92px; font-weight: 600; line-height: .8; }
.class-date-block i { width: 1px; height: 66px; margin: 25px 0; background: rgba(7,21,34,.3); }
.class-date-block small { font-family: var(--mono); font-size: 18px; font-weight: 500; }
.class-call-main { position: relative; z-index: 1; min-width: 0; padding: 34px; }
.call-title { display: flex; justify-content: space-between; align-items: start; gap: 30px; padding-bottom: 27px; border-bottom: 1px solid rgba(255,255,255,.15); }
.call-title h3 { max-width: 750px; margin: 8px 0 0; font-size: clamp(40px, 4.2vw, 66px); line-height: .92; }
.call-title > p { margin: 4px 0 0; color: rgba(255,255,255,.5); font-family: var(--mono); font-size: 9px; text-align: right; text-transform: uppercase; }
.two-act-grid { display: grid; grid-template-columns: .9fr 1.1fr; border-bottom: 1px solid rgba(255,255,255,.15); }
.class-act { position: relative; min-height: 285px; padding: 28px 30px 25px 0; }
.class-act + .class-act { padding-left: 30px; border-left: 1px solid rgba(255,255,255,.15); }
.act-number { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; color: rgba(255,255,255,.42); font-family: var(--mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.act-number strong { color: rgba(255,255,255,.12); font-family: var(--display); font-size: 48px; line-height: .7; }
.class-act h4 { margin: 12px 0 3px; font-family: var(--display); font-size: 32px; font-weight: 600; line-height: 1; }
.class-act > p:last-child { max-width: 430px; margin: 16px 0 0; color: rgba(255,255,255,.65); font-size: 12px; line-height: 1.55; }
.act-role { margin: 0 !important; color: var(--amber) !important; font-family: var(--mono); font-size: 8px !important; letter-spacing: .07em; text-transform: uppercase; }
.next-article-list { display: grid; gap: 8px; margin-top: 15px; }
.next-article {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid rgba(255,255,255,.12);
}
.next-article:first-child { border-top: 0; }
.next-article > span { color: var(--teal); font-family: var(--mono); font-size: 9px; }
.next-article strong { display: block; font-size: 11px; font-weight: 500; line-height: 1.35; }
.next-article small { display: block; margin-top: 5px; color: rgba(255,255,255,.5); font-size: 9px; }
.presenter-line { color: var(--amber) !important; }
.next-article-empty { padding: 20px 0; color: rgba(255,255,255,.46); font-size: 12px; }
.call-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-top: 25px; }
.class-access-stack { display: grid; gap: 13px; min-width: min(100%, 420px); }
.class-access-stack > p { display: flex; align-items: center; gap: 8px; margin: 0; color: rgba(255,255,255,.46); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.class-access-stack > p strong { color: var(--white); font-weight: 500; }
.meeting-gate { min-height: 61px; }
.meeting-locked, .meeting-link {
  width: min(100%, 420px);
  min-height: 61px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  color: var(--white);
  background: rgba(3,15,25,.4);
  border: 1px solid rgba(86,214,202,.28);
  text-align: left;
  text-decoration: none;
  backdrop-filter: blur(8px);
  transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.meeting-locked[hidden], .meeting-link[hidden] { display: none; }
.meeting-locked:hover, .meeting-link:hover { background: rgba(86,214,202,.1); border-color: var(--teal); transform: translateY(-2px); }
.meeting-locked > span:first-child, .meeting-camera { width: 32px; height: 32px; display: grid; place-items: center; color: var(--teal); border: 1px solid rgba(86,214,202,.28); border-radius: 50%; font-size: 19px; }
.meeting-locked strong, .meeting-locked small, .meeting-link strong, .meeting-link small { display: block; }
.meeting-locked strong, .meeting-link strong { font-family: var(--mono); font-size: 9px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.meeting-locked small, .meeting-link small { margin-top: 3px; color: rgba(255,255,255,.47); font-size: 9px; }
.meeting-locked.not-published { border-color: rgba(255,255,255,.13); }
.meeting-camera { position: relative; border-radius: 4px; }
.meeting-camera::before { content: ''; width: 13px; height: 10px; border: 1px solid currentColor; }
.meeting-camera::after { content: ''; position: absolute; right: 5px; width: 5px; height: 7px; border: 1px solid currentColor; clip-path: polygon(0 25%, 100% 0, 100% 100%, 0 75%); }
.meeting-link b { color: var(--amber); font-family: var(--mono); font-size: 16px; font-weight: 400; }
.next-class-empty { margin-top: 45px; padding: 45px; color: var(--white); background: var(--ink-2); }
.next-class-empty h3 { margin: 8px 0 12px; font-size: 42px; }.next-class-empty p { margin: 0; color: rgba(255,255,255,.55); }
.upload-note { color: #718a90 !important; font-family: var(--mono); font-size: 9px !important; text-transform: uppercase; }
.upload-progress { display: flex; align-items: center; gap: 12px; padding: 12px; background: #dbe9e6; }
.upload-progress span { width: 15px; height: 15px; border: 2px solid rgba(24,141,135,.2); border-top-color: var(--teal-deep); border-radius: 50%; animation: uploadSpin .8s linear infinite; }
.upload-progress p { margin: 0; color: #56747a; font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
@keyframes uploadSpin { to { transform: rotate(360deg); } }

/* Manifest */
.manifest-section { color: var(--ink); background: var(--paper); }
.manifest-layout { display: grid; grid-template-columns: 84px minmax(0, 1.25fr) minmax(280px, .75fr); gap: 54px; align-items: start; }
.section-index { display: flex; align-items: center; gap: 10px; color: var(--muted); font-family: var(--mono); font-size: 10px; writing-mode: vertical-rl; transform: rotate(180deg); }
.section-index span { color: var(--teal-deep); font-size: 12px; font-weight: 500; }
.section-index i { width: 1px; height: 55px; background: var(--line); }
.section-index small { font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.section-index.light { color: rgba(255,255,255,.44); }.section-index.light span { color: var(--teal); }.section-index.light i { background: rgba(255,255,255,.2); }
.manifest-copy h2 { margin: 10px 0 0; }
.manifest-body { padding-top: 36px; }
.manifest-body > p { color: #4c686f; font-size: 18px; line-height: 1.75; }
.course-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 44px 0 0; border-top: 1px solid var(--line); }
.course-facts div { padding: 16px 10px 0 0; }
.course-facts dt { color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.course-facts dd { margin: 5px 0 0; font-family: var(--display); font-size: 28px; }

/* Trail */
.course-map { overflow: hidden; background: #e4efed; }
.section-heading { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 54px; align-items: end; }
.section-heading h2 { margin: 10px 0 0; }
.trail-legend { display: flex; gap: 18px; padding-bottom: 8px; color: #6f898e; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.trail-legend span { display: flex; align-items: center; gap: 6px; }
.trail-legend i { width: 8px; height: 8px; border: 1px solid #8da4a8; border-radius: 50%; }
.trail-legend i.done { background: var(--ink-3); border-color: var(--ink-3); }.trail-legend i.current { background: var(--amber); border-color: var(--amber); box-shadow: 0 0 0 4px rgba(255,177,92,.2); }
.route-canvas { position: relative; min-height: 650px; margin-top: 54px; }
.route-line { position: absolute; inset: 20px 0 auto; width: 100%; height: 520px; overflow: visible; }
.route-line path { fill: none; vector-effect: non-scaling-stroke; }
.route-shadow { stroke: rgba(8,35,48,.07); stroke-width: 18; }
.route-track { stroke: rgba(8,35,48,.28); stroke-width: 1.3; stroke-dasharray: 4 8; }
.route-glow { stroke: var(--teal-deep); stroke-width: 2.2; stroke-linecap: round; filter: drop-shadow(0 0 7px rgba(24,141,135,.5)); }
.module-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.module-card {
  --node-color: #94aaa9;
  position: relative;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  padding: 21px;
  background: rgba(247,251,250,.88);
  border: 1px solid rgba(11,51,65,.13);
  box-shadow: 0 14px 35px rgba(10,45,57,.07);
  backdrop-filter: blur(8px);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.module-card:nth-child(2), .module-card:nth-child(6) { margin-top: 92px; }
.module-card:nth-child(3), .module-card:nth-child(7) { margin-top: 178px; }
.module-card:nth-child(4), .module-card:nth-child(8) { margin-top: 72px; }
.module-card.done { --node-color: var(--teal-deep); }.module-card.current { --node-color: var(--amber); border-color: rgba(255,177,92,.8); box-shadow: 0 24px 50px rgba(108,67,17,.14); }
.module-card:hover { transform: translateY(-7px); border-color: var(--node-color); box-shadow: 0 26px 55px rgba(10,45,57,.12); }
.module-node { position: absolute; top: -10px; left: 21px; width: 19px; height: 19px; display: grid; place-items: center; border: 5px solid #e4efed; border-radius: 50%; background: var(--node-color); }
.module-node::after { content: ''; width: 3px; height: 3px; border-radius: 50%; background: #fff; }
.module-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; color: var(--teal-deep); font-family: var(--mono); font-size: 8px; letter-spacing: .09em; text-transform: uppercase; }
.module-number { color: #a1b4b5; font-size: 17px; }
.module-card h3 { margin-bottom: 12px; font-size: 30px; line-height: 1; }
.module-card p { margin-bottom: 24px; color: #688087; font-size: 13px; line-height: 1.55; }
.module-meta { display: flex; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); color: #789096; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.module-action { position: absolute; inset: 0; border: 0; background: transparent; color: transparent; }

/* Briefing */
.briefing-section { position: relative; min-height: 780px; display: flex; align-items: center; overflow: hidden; color: var(--white); background: var(--ink); isolation: isolate; }
.briefing-photo { background-position: center; filter: saturate(.65) brightness(.62); }
.briefing-section::before { content: ''; position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(4,18,30,.92), rgba(4,18,30,.46) 58%, rgba(4,18,30,.72)); }
.briefing-layout { display: grid; grid-template-columns: 84px minmax(0, 720px); gap: 54px; }
.briefing-panel { padding: 54px; background: rgba(6,26,40,.76); border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(15px); }
.briefing-panel h2 { margin: 10px 0 30px; }
.briefing-panel > p { color: rgba(255,255,255,.7); font-size: 16px; line-height: 1.75; }
.objective-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; margin-top: 32px; counter-reset: objective; }
.objective-item { position: relative; min-height: 70px; padding: 16px 0 16px 35px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.8); font-size: 12px; }
.objective-item::before { counter-increment: objective; content: counter(objective, decimal-leading-zero); position: absolute; left: 0; color: var(--teal); font-family: var(--mono); font-size: 9px; }
.professor-line { display: flex; justify-content: space-between; gap: 20px; margin: 24px 0 0 !important; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.16); font-family: var(--mono); font-size: 9px !important; text-transform: uppercase; }
.professor-line span { color: rgba(255,255,255,.46); }.professor-line strong { color: var(--white); font-weight: 500; }

/* Materials */
.materials-section { background: var(--paper); }
.sync-stamp { min-width: 170px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; padding: 13px 15px; border: 1px solid var(--line); }
.sync-icon { grid-row: 1 / 3; color: var(--teal-deep); font-size: 21px; }
.sync-stamp small { color: var(--muted); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.sync-stamp strong { font-family: var(--mono); font-size: 10px; font-weight: 500; }
.materials-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr); gap: 22px; margin-top: 54px; }
.folder-browser { overflow: hidden; background: #f8fbfa; border: 1px solid var(--line); box-shadow: var(--shadow); }
.browser-bar { height: 52px; display: flex; align-items: center; gap: 7px; padding: 0 18px; background: var(--ink-2); color: rgba(255,255,255,.7); }
.browser-bar > span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.18); }.browser-bar > span:first-child { background: var(--coral); }.browser-bar > span:nth-child(2) { background: var(--amber); }.browser-bar > span:nth-child(3) { background: var(--teal); }
.browser-bar p { margin: 0 0 0 10px; font-family: var(--mono); font-size: 9px; }.browser-bar strong { color: var(--white); font-weight: 500; }
.folder-list { padding: 8px 20px 20px; }
.folder-row { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 14px; padding: 16px 5px; border-bottom: 1px solid var(--line); }
.folder-row:last-child { border-bottom: 0; }
.folder-icon { position: relative; width: 28px; height: 20px; background: #d2e3df; border-radius: 1px; }.folder-icon::before { content: ''; position: absolute; left: 0; top: -5px; width: 12px; height: 6px; background: #d2e3df; border-radius: 1px 1px 0 0; }
.folder-row strong { display: block; font-size: 13px; }.folder-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.folder-count { color: var(--teal-deep); font-family: var(--mono); font-size: 9px; }
.reading-desk { padding: 28px; color: var(--white); background: var(--ink-2); }
.desk-head { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.15); }
.desk-head > span { color: var(--muted); font-family: var(--mono); font-size: 9px; }
.reading-row { padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.reading-row small { display: flex; justify-content: space-between; color: var(--teal); font-family: var(--mono); font-size: 8px; letter-spacing: .05em; }
.reading-row strong { display: block; margin-top: 7px; font-family: var(--display); font-size: 18px; font-weight: 500; line-height: 1.15; }
.reading-row p { margin: 5px 0 0; color: rgba(255,255,255,.48); font-size: 10px; }
.secondary-button { width: 100%; margin-top: 22px; color: var(--white); background: transparent; border-color: rgba(255,255,255,.24); }
.secondary-button:hover { color: var(--ink); background: var(--teal); border-color: var(--teal); }

/* Presentation */
.presentation-section { position: relative; overflow: hidden; color: var(--white); background: var(--ink-3); }
.presentation-section::before { content: ''; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 55px 55px; }
.presentation-layout { position: relative; z-index: 2; display: grid; grid-template-columns: 84px minmax(0, 1fr) 370px; gap: 54px; align-items: center; }
.presentation-copy h2 { margin: 10px 0 25px; }.presentation-copy h2 em { color: var(--amber); }.presentation-copy > p { max-width: 600px; color: rgba(255,255,255,.66); font-size: 17px; }.presentation-copy .primary-button { margin-top: 17px; }
.tip-reel { padding: 27px; background: rgba(5,20,32,.5); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(10px); }
.tip-reel ol { margin: 20px 0 0; padding: 0; list-style: none; counter-reset: tips; }
.tip-reel li { position: relative; padding: 15px 0 15px 36px; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.76); font-size: 12px; line-height: 1.45; }
.tip-reel li::before { counter-increment: tips; content: counter(tips, decimal-leading-zero); position: absolute; left: 0; color: var(--amber); font-family: var(--mono); font-size: 9px; }
.presentation-orbit { position: absolute; right: -14vw; top: 50%; width: 52vw; aspect-ratio: 1; border: 1px solid rgba(86,214,202,.15); border-radius: 50%; transform: translateY(-50%) rotate(var(--orbit-turn)); will-change: transform; }
.presentation-orbit::before, .presentation-orbit::after { content: ''; position: absolute; inset: 16%; border: 1px solid rgba(86,214,202,.1); border-radius: 50%; }.presentation-orbit::after { inset: 34%; }
.presentation-orbit span, .presentation-orbit i, .presentation-orbit b { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 18px var(--teal); }.presentation-orbit span { left: 16%; top: 18%; }.presentation-orbit i { right: 12%; top: 48%; }.presentation-orbit b { left: 39%; bottom: 4%; background: var(--amber); }

/* Footer */
.site-footer { padding: 62px 0 28px; color: rgba(255,255,255,.68); background: #04101c; }
.footer-grid { display: grid; grid-template-columns: 180px 1fr 240px; gap: 60px; align-items: start; }
.footer-grid > p { max-width: 470px; margin: 0; font-size: 13px; }.footer-grid > div a { display: block; margin-top: 10px; color: var(--white); font-family: var(--mono); font-size: 10px; text-decoration: none; text-transform: uppercase; }.footer-meta { grid-column: 1 / -1; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.34); font-family: var(--mono); font-size: 8px !important; letter-spacing: .1em; text-transform: uppercase; }

/* Dialogs and feedback */
.app-dialog {
  width: min(620px, calc(100vw - 30px));
  max-width: calc(100vw - 30px);
  max-height: min(88dvh, 760px);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  color: var(--ink);
  background: var(--paper);
  border: 0;
  box-shadow: 0 40px 120px rgba(0,0,0,.45);
}
.presentation-dialog, .upload-dialog, .access-dialog { width: min(720px, calc(100vw - 30px)); }
.app-dialog::backdrop { background: rgba(3,14,23,.74); backdrop-filter: blur(8px); }
.dialog-card { position: relative; width: 100%; min-width: 0; display: grid; gap: 16px; padding: 38px; }
.dialog-card.wide { width: 100%; }
.dialog-card > * { min-width: 0; }
.dialog-card h2 { max-width: 100%; margin: 0; padding-right: 54px; overflow-wrap: anywhere; font-size: 48px; }.dialog-card > p { margin: 0; color: #607a81; font-size: 14px; }.dialog-close { position: absolute; top: 18px; right: 18px; color: var(--ink); border-color: var(--line); }
.access-card { gap: 17px; padding: 42px; border-top: 4px solid var(--teal); background-image: linear-gradient(90deg, transparent 0 31px, rgba(24,141,135,.11) 31px 32px, transparent 32px); }
.access-card::after { content: 'PEA · USP / CREDENCIAL TEMPORÁRIA'; position: absolute; right: -93px; bottom: 122px; color: rgba(13,59,72,.17); font-family: var(--mono); font-size: 8px; letter-spacing: .14em; transform: rotate(-90deg); }
.credential-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 9px 12px; color: #4d6d75; background: #deebe8; border: 1px solid rgba(24,141,135,.15); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.credential-head b { color: var(--ink-2); font-weight: 500; }.credential-head small { color: var(--teal-deep); font-size: 8px; }.credential-pulse { width: 6px; height: 6px; border-radius: 50%; background: var(--teal-deep); box-shadow: 0 0 0 5px rgba(24,141,135,.1); }
.access-identity-field input { min-height: 58px; padding-left: 17px; font-size: 17px; border-left: 3px solid var(--teal-deep); }
.token-contract { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.token-contract span { min-width: 0; padding: 11px 12px; border-left: 1px solid var(--line); }.token-contract span:first-child { border-left: 0; }
.token-contract small, .token-contract strong { display: block; }.token-contract small { color: #7b9297; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.token-contract strong { margin-top: 3px; color: var(--ink-2); font-size: 10px; font-weight: 500; overflow-wrap: anywhere; }
.access-submit { width: 100%; grid-template-columns: 1fr auto; justify-content: stretch; text-align: left; }.access-submit b { font-size: 18px; font-weight: 400; }.access-submit:disabled { cursor: wait; opacity: .7; }.access-submit.is-loading span { animation: access-blink 1s ease-in-out infinite; }
@keyframes access-blink { 50% { opacity: .38; } }
.clone-course-box { display: grid; gap: 12px; padding: 17px; background: #e1ece9; border-left: 3px solid var(--teal-deep); }.clone-course-box > p { margin: 0; color: #607a81; font-size: 11px; }.clone-course-box .eyebrow { color: var(--teal-deep); }
.dialog-card label, .admin-field { display: grid; gap: 7px; color: #527079; font-family: var(--mono); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.dialog-card input, .dialog-card textarea, .dialog-card select, .admin-field input, .admin-field textarea, .admin-field select {
  width: 100%;
  padding: 13px 14px;
  color: var(--ink);
  background: #fff;
  border: 1px solid rgba(13,59,72,.2);
  border-radius: 0;
  outline: 0;
  font-family: var(--body);
  font-size: 14px;
  text-transform: none;
}
.dialog-card input:focus, .dialog-card textarea:focus, .dialog-card select:focus, .admin-field input:focus, .admin-field textarea:focus, .admin-field select:focus { border-color: var(--teal-deep); box-shadow: 0 0 0 3px rgba(24,141,135,.1); }
.form-hint { padding: 10px 12px; background: #deebe8; font-size: 11px !important; }.form-error { min-height: 18px; color: #a73e2f !important; font-family: var(--mono); font-size: 9px !important; }
.form-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }.dialog-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 22px; margin-top: 10px; }
.toast { position: fixed; z-index: 180; right: 24px; bottom: 24px; max-width: 370px; padding: 14px 18px; color: var(--white); background: var(--ink-2); border-left: 3px solid var(--teal); box-shadow: var(--shadow); font-size: 13px; opacity: 0; transform: translateY(15px); pointer-events: none; transition: opacity .25s ease, transform .25s ease; }.toast.show { opacity: 1; transform: none; }

/* Shared profile for teacher and students */
.profile-page { min-height: 100vh; color: var(--ink-2); background: #e8efed; background-image: radial-gradient(circle at 78% 18%, rgba(86,214,202,.13), transparent 27%); }
.profile-header { height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 clamp(20px, 4vw, 64px); color: var(--white); background: var(--ink); }.profile-header .wordmark { justify-self: start; }.profile-header-label { color: rgba(255,255,255,.45); font-family: var(--mono); font-size: 8px; letter-spacing: .09em; text-transform: uppercase; }.profile-header .admin-button { justify-self: end; color: var(--white); border-color: rgba(255,255,255,.22); text-decoration: none; }
.profile-shell { width: min(1240px, calc(100% - 40px)); margin: 0 auto; padding: 55px 0 90px; }.profile-intro { display: grid; grid-template-columns: 1fr minmax(320px, 480px); gap: 50px; align-items: end; margin-bottom: 32px; }.profile-intro h1 { margin: 5px 0 0; font-size: 66px; line-height: .9; text-transform: uppercase; }.profile-intro p { margin: 0; color: #657f85; font-size: 14px; line-height: 1.6; }
.profile-workspace { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; align-items: start; }.profile-identity-card { position: sticky; top: 22px; min-height: 410px; display: flex; flex-direction: column; align-items: center; padding: 38px 28px; color: var(--white); background: #0a2936; text-align: center; }.profile-identity-card::after { content: 'PEA · USP / IDENTIDADE'; position: absolute; left: 20px; bottom: 18px; color: rgba(255,255,255,.15); font-family: var(--mono); font-size: 7px; letter-spacing: .13em; }.profile-avatar-large { width: 92px; height: 92px; display: grid; place-items: center; margin-bottom: 22px; color: var(--ink); background: var(--amber); border-radius: 50%; box-shadow: 0 0 0 9px rgba(255,177,92,.08); font-family: var(--display); font-size: 39px; }.profile-identity-card > small { color: var(--teal); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.profile-identity-card h2 { margin: 9px 0 5px; font-size: 31px; line-height: 1; }.profile-identity-card > p { margin: 0; color: rgba(255,255,255,.48); font-size: 9px; }.profile-identity-card dl { width: 100%; display: grid; grid-template-columns: 1fr 1fr; margin: auto 0 15px; border: 1px solid rgba(255,255,255,.12); text-align: left; }.profile-identity-card dl div { padding: 12px; }.profile-identity-card dl div + div { border-left: 1px solid rgba(255,255,255,.12); }.profile-identity-card dt { color: rgba(255,255,255,.38); font-family: var(--mono); font-size: 6px; text-transform: uppercase; }.profile-identity-card dd { margin: 4px 0 0; color: var(--amber); font-family: var(--display); font-size: 17px; }
.profile-forms { display: grid; gap: 22px; }.profile-panel { background: rgba(250,252,251,.92); border: 1px solid rgba(20,62,74,.13); }.profile-panel > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 22px 25px; border-bottom: 1px solid rgba(20,62,74,.12); }.profile-panel > header h2 { margin: 4px 0 0; font-size: 34px; line-height: 1; }.profile-status { color: var(--teal-deep); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.profile-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; padding: 25px; }.profile-full { grid-column: 1 / -1; }.profile-form-grid .admin-button { justify-self: start; }.profile-form-message { min-height: 18px; margin: 0; color: var(--teal-deep); font-size: 10px; }.profile-form-hint { margin: -5px 0 0; color: #71898f; font-size: 9px; }.profile-credential-body { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 25px; }.profile-credential-body > p { margin: 0; color: #647e84; font-size: 11px; line-height: 1.55; }.profile-secret { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 17px; color: var(--white); background: #0a2936; }.profile-secret small { grid-column: 1 / -1; color: var(--teal); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.profile-secret code { min-width: 0; padding: 11px; overflow-wrap: anywhere; background: rgba(255,255,255,.07); font-family: var(--mono); font-size: 10px; }.profile-secret .admin-button { color: var(--white); border-color: rgba(255,255,255,.2); }.profile-gate { min-height: 280px; display: grid; grid-template-columns: 70px 1fr auto; gap: 24px; align-items: center; padding: 42px; background: #f8fbfa; border: 1px dashed rgba(20,62,74,.25); }.profile-gate > span { width: 66px; height: 66px; display: grid; place-items: center; color: var(--teal-deep); border: 1px solid rgba(24,141,135,.35); border-radius: 50%; font-size: 25px; }.profile-gate strong { font-family: var(--display); font-size: 30px; }.profile-gate p { margin: 5px 0 0; color: #71898f; font-size: 11px; }.profile-gate .primary-button { text-decoration: none; }

/* Admin shell */
.admin-page { min-height: 100vh; overflow-x: hidden; color: #15343f; background: #e8efed; }
.admin-locked .admin-shell { filter: blur(7px) saturate(.65); pointer-events: none; user-select: none; }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 264px 1fr; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 25px 20px; color: var(--white); background: var(--ink); }
.admin-sidebar .wordmark { margin-bottom: 38px; }.admin-sidebar .epusp-seal { width: 39px; height: 39px; flex-basis: 39px; }
.admin-profile { display: flex; align-items: center; gap: 11px; padding: 14px 0 20px; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.12); text-decoration: none; }.admin-profile-arrow { margin-left: auto; color: var(--teal); transition: transform .2s ease; }.admin-profile:hover .admin-profile-arrow { transform: translateX(4px); }
.admin-avatar { width: 34px; height: 34px; display: grid; place-items: center; color: var(--ink); background: var(--amber); border-radius: 50%; font-family: var(--mono); font-size: 10px; font-weight: 500; }
.admin-profile strong, .admin-profile small { display: block; }.admin-profile strong { font-size: 12px; }.admin-profile small { color: rgba(255,255,255,.48); font-size: 9px; }
.admin-nav { display: grid; gap: 5px; margin-top: 28px; }
.admin-nav a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; color: rgba(255,255,255,.56); border-left: 2px solid transparent; font-family: var(--mono); font-size: 9px; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }.admin-nav a:hover, .admin-nav a.active { color: var(--white); background: rgba(255,255,255,.06); border-color: var(--teal); }.admin-nav a span { width: 19px; text-align: center; color: var(--teal); font-size: 13px; }
.sidebar-foot { margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); }.sidebar-foot a { color: rgba(255,255,255,.6); font-family: var(--mono); font-size: 9px; text-decoration: none; text-transform: uppercase; }
.admin-main { min-width: 0; }
.admin-topbar { height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 35px; background: rgba(247,250,249,.86); border-bottom: 1px solid rgba(20,62,74,.12); backdrop-filter: blur(12px); }
.admin-breadcrumb { color: #779096; font-family: var(--mono); font-size: 9px; text-transform: uppercase; }.admin-breadcrumb strong { color: var(--ink-2); font-weight: 500; }
.admin-top-actions { display: flex; align-items: center; gap: 10px; }.admin-button { min-height: 38px; padding: 0 15px; color: var(--ink-2); background: transparent; border: 1px solid rgba(20,62,74,.2); font-family: var(--mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }.admin-button:hover { background: #fff; }.admin-button.primary { color: var(--ink); background: var(--teal); border-color: var(--teal); }
.admin-content { width: 100%; max-width: 1540px; padding: 36px clamp(36px, 3vw, 56px) 70px; }
.admin-welcome { display: flex; justify-content: space-between; align-items: end; margin-bottom: 27px; }.admin-welcome h1 { margin: 4px 0 0; font-size: 48px; text-transform: uppercase; }.admin-welcome p { max-width: 520px; margin: 0; color: #6d868c; font-size: 13px; }
.admin-course-browser { margin: 34px 0 38px; }
.course-browser-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 16px; }.course-browser-heading h2 { margin: 2px 0 0; font-size: 43px; line-height: 1; text-transform: uppercase; }.course-browser-heading p { margin: 6px 0 0; color: #71898f; font-size: 11px; }
.course-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 0; }
.admin-course-tab { position: relative; min-width: 0; min-height: 112px; overflow: hidden; padding: 17px; color: var(--white); background: var(--ink-2) center/cover; border: 2px solid transparent; text-align: left; isolation: isolate; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }.admin-course-tab::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(6,23,36,.97), rgba(6,23,36,.52)); }.admin-course-tab::after { content: ''; position: absolute; inset: auto 17px 10px; z-index: -1; height: 1px; background: linear-gradient(90deg, var(--teal), transparent); opacity: .55; }.admin-course-tab:hover { border-color: rgba(86,214,202,.55); transform: translateY(-2px); box-shadow: 0 16px 35px rgba(5,27,39,.18); }.admin-course-tab.active { border-color: var(--teal); }.admin-course-tab strong { display: block; max-width: 330px; margin-top: 8px; font-family: var(--display); font-size: 24px; line-height: .98; }.course-card-code { display: block; color: var(--teal); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.course-card-state { position: absolute; right: 13px; top: 13px; padding: 4px 6px; background: rgba(0,0,0,.42); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.course-card-action { position: absolute; left: 17px; bottom: 17px; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.64); font-family: var(--mono); font-size: 7px; letter-spacing: .05em; text-transform: uppercase; }.course-card-action b { color: var(--teal); font-size: 13px; font-weight: 400; transition: transform .2s ease; }.admin-course-tab:hover .course-card-action b { transform: translateX(4px); }
.admin-course-tab.course-inactive { cursor: not-allowed; filter: grayscale(1); opacity: .38; border-color: rgba(20,62,74,.2); }.admin-course-tab.course-inactive::before { background: linear-gradient(90deg, rgba(20,31,36,.97), rgba(43,51,54,.78)); }.admin-course-tab.course-inactive:hover { border-color: rgba(20,62,74,.2); box-shadow: none; transform: none; }.admin-course-tab.course-inactive .course-card-code, .admin-course-tab.course-inactive .course-card-action b { color: rgba(255,255,255,.55); }
body[data-admin-active-view="visao"] .course-tabs { gap: 18px; }
body[data-admin-active-view="visao"] .admin-course-tab { min-height: 226px; padding: 26px; background-position: center; }
body[data-admin-active-view="visao"] .admin-course-tab::before { background: linear-gradient(105deg, rgba(5,21,33,.98) 0%, rgba(5,21,33,.82) 47%, rgba(5,21,33,.24) 100%); }
body[data-admin-active-view="visao"] .admin-course-tab::after { inset: auto 26px 50px; }
body[data-admin-active-view="visao"] .admin-course-tab strong { max-width: 390px; margin-top: 16px; font-size: clamp(30px, 2.15vw, 39px); }
body[data-admin-active-view="visao"] .course-card-code { font-size: 9px; letter-spacing: .04em; }
body[data-admin-active-view="visao"] .course-card-state { right: 20px; top: 20px; padding: 6px 8px; }
body[data-admin-active-view="visao"] .course-card-action { left: 26px; bottom: 23px; font-size: 8px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-bottom: 20px; border: 1px solid rgba(20,62,74,.13); box-shadow: 0 14px 40px rgba(23,56,64,.04); }.metric { position: relative; min-width: 0; padding: 18px 22px 20px; overflow: hidden; background: rgba(248,251,250,.9); border-left: 1px solid rgba(20,62,74,.12); }.metric:first-child { border-left: 0; }.metric::after { content: ''; position: absolute; left: 0; bottom: 0; width: 42%; height: 2px; background: var(--teal-deep); transform: scaleX(.18); transform-origin: left; transition: transform .3s ease; }.metric:hover::after { transform: scaleX(1); }.metric small { display: block; color: #789095; font-family: var(--mono); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }.metric strong { display: block; margin-top: 8px; color: var(--ink-2); font-family: var(--display); font-size: 42px; font-weight: 600; line-height: .9; }.metric span { display: block; margin-top: 7px; color: var(--teal-deep); font-size: 9px; }

/* Overview call sheet: today when possible, otherwise the next scheduled class */
.overview-agenda { margin-top: 4px; }
.overview-agenda-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 15px; padding-top: 20px; border-top: 1px solid rgba(20,62,74,.16); }.overview-agenda-heading h2 { margin: 3px 0 0; font-size: 44px; line-height: 1; text-transform: uppercase; }.overview-agenda-heading > p { max-width: 560px; margin: 0; color: #6d868c; font-size: 11px; text-align: right; }
.overview-agenda-board { min-height: 350px; display: grid; grid-template-columns: 178px minmax(0, 1fr) 245px; overflow: hidden; color: var(--white); background: #0b2734; box-shadow: 0 28px 70px rgba(4,25,36,.14); animation: overview-rise .45s ease both; }
@keyframes overview-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.overview-agenda-date { min-height: 350px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 25px 18px; color: var(--ink); background: var(--amber); text-align: center; }.overview-agenda-date small, .overview-agenda-date span { font-family: var(--mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }.overview-agenda-date strong { margin: 7px 0 0; font-family: var(--display); font-size: 86px; font-weight: 600; line-height: .8; }.overview-agenda-date i { width: 38px; height: 1px; margin: 22px 0; background: rgba(5,30,40,.35); }.overview-agenda-date time { font-family: var(--display); font-size: 29px; font-style: normal; }
.overview-agenda-content { min-width: 0; padding: 29px 32px 28px; }.overview-theme { color: var(--teal); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }.overview-agenda-content > h3 { max-width: 760px; margin: 8px 0 10px; font-family: var(--display); font-size: clamp(32px, 2.4vw, 43px); font-weight: 600; line-height: .95; }.overview-agenda-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; color: rgba(255,255,255,.54); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.overview-agenda-meta span:last-child { color: var(--teal); }
.overview-moments { display: grid; grid-template-columns: .82fr 1.18fr; margin-top: 23px; border-top: 1px solid rgba(255,255,255,.14); }.overview-moments > article { min-width: 0; padding: 20px 22px 0 0; }.overview-moments > article + article { padding-left: 23px; border-left: 1px solid rgba(255,255,255,.14); }.overview-moments article > span { color: var(--amber); font-family: var(--mono); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }.overview-moments article > strong { display: block; margin-top: 7px; font-family: var(--display); font-size: 21px; font-weight: 500; line-height: 1.05; }.overview-moments article > p { margin: 6px 0 0; color: rgba(255,255,255,.52); font-size: 9px; line-height: 1.45; }
.overview-article-roster { display: grid; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }.overview-article-roster li { display: grid; grid-template-columns: 34px 1fr; gap: 8px; align-items: start; }.overview-article-roster li > span { color: var(--teal); font-family: var(--mono); font-size: 7px; }.overview-article-roster strong, .overview-article-roster small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.overview-article-roster strong { color: rgba(255,255,255,.86); font-size: 9px; font-weight: 500; }.overview-article-roster small, .overview-more-articles { margin-top: 2px; color: rgba(255,255,255,.4); font-size: 7px; }.overview-more-articles { display: block; margin-top: 7px; font-family: var(--mono); text-transform: uppercase; }
.overview-agenda-actions { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 27px 24px; background: #071d29; border-left: 1px solid rgba(255,255,255,.12); }.overview-agenda-status { position: relative; padding-left: 17px; }.overview-agenda-status > span { position: absolute; left: 0; top: 4px; width: 6px; height: 6px; background: var(--teal); border-radius: 50%; box-shadow: 0 0 0 6px rgba(86,214,202,.08); }.overview-agenda-status small, .overview-agenda-status strong { display: block; }.overview-agenda-status small { color: rgba(255,255,255,.42); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.overview-agenda-status strong { margin-top: 4px; font-family: var(--display); font-size: 25px; font-weight: 500; }.overview-agenda-actions dl { display: grid; grid-template-columns: 1fr 1fr; margin: 8px 0 auto; border: 1px solid rgba(255,255,255,.12); }.overview-agenda-actions dl div { padding: 11px; }.overview-agenda-actions dl div + div { border-left: 1px solid rgba(255,255,255,.12); }.overview-agenda-actions dt { color: rgba(255,255,255,.38); font-family: var(--mono); font-size: 6px; text-transform: uppercase; }.overview-agenda-actions dd { margin: 3px 0 0; color: var(--amber); font-family: var(--display); font-size: 25px; }.overview-agenda-actions .admin-button { width: 100%; color: var(--white); border-color: rgba(255,255,255,.2); }.overview-agenda-actions .admin-button:hover { color: var(--ink); background: var(--teal); border-color: var(--teal); }.overview-agenda-actions .admin-button.primary { color: var(--ink); }
.overview-agenda-empty { grid-column: 1 / -1; min-height: 250px; display: grid; grid-template-columns: 62px 1fr auto; gap: 22px; align-items: center; padding: 40px; color: var(--ink-2); background: #f8fbfa; border: 1px dashed rgba(20,62,74,.24); }.overview-agenda-empty > span { width: 58px; height: 58px; display: grid; place-items: center; color: var(--teal-deep); border: 1px solid rgba(24,141,135,.35); border-radius: 50%; font-size: 26px; }.overview-agenda-empty strong { font-family: var(--display); font-size: 26px; }.overview-agenda-empty p { margin: 5px 0 0; color: #71898f; font-size: 10px; }
.admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.admin-panel { margin-bottom: 20px; background: #f8fbfa; border: 1px solid rgba(20,62,74,.12); }.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid rgba(20,62,74,.12); }.panel-heading h2 { margin: 0; font-family: var(--display); font-size: 28px; letter-spacing: -.01em; }.panel-heading p { margin: 3px 0 0; color: #789095; font-size: 11px; }.panel-body { padding: 20px; }.editor-grid { display: grid; grid-template-columns: 150px 1fr; gap: 14px 18px; }.editor-grid .full { grid-column: 1 / -1; }.editor-grid .double { grid-column: span 1; }
.course-cover-editor { position: relative; min-height: 215px; margin-bottom: 20px; overflow: hidden; background: var(--ink-2) center/cover; }.course-cover-editor video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }.course-cover-editor::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,20,32,.84), transparent 65%); }.cover-editor-copy { position: absolute; z-index: 1; left: 20px; bottom: 18px; color: #fff; }.cover-editor-copy small { color: var(--teal); font-family: var(--mono); font-size: 9px; }.cover-editor-copy strong { display: block; max-width: 430px; margin-top: 6px; font-family: var(--display); font-size: 31px; line-height: 1; }
.catalog-source-link { display: flex; align-items: center; justify-content: space-between; padding: 11px 13px; color: var(--teal-deep); background: #e2eeeb; border-left: 3px solid var(--teal-deep); font-family: var(--mono); font-size: 8px; text-decoration: none; text-transform: uppercase; }.catalog-source-link:hover { background: #d6e9e4; }
.drive-card { color: var(--white); background: var(--ink-2); }.drive-card .panel-heading { border-color: rgba(255,255,255,.13); }.drive-card .panel-heading p { color: rgba(255,255,255,.5); }.drive-state { display: flex; align-items: center; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.12); }.drive-state-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(86,214,202,.45); border-radius: 50%; color: var(--teal); }.drive-state strong, .drive-state small { display: block; }.drive-state strong { font-size: 12px; }.drive-state small { color: rgba(255,255,255,.45); font-size: 9px; }.drive-folders { display: grid; gap: 9px; margin: 17px 0; }.drive-folder { display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,.7); font-family: var(--mono); font-size: 8px; }.drive-folder span:last-child { color: var(--teal); }.drive-card .admin-button { width: 100%; color: var(--white); border-color: rgba(255,255,255,.22); }
.admin-list { display: grid; }.admin-list-row { display: grid; grid-template-columns: 45px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 13px 20px; border-bottom: 1px solid rgba(20,62,74,.1); }.admin-list-row:last-child { border-bottom: 0; }.row-index { color: var(--teal-deep); font-family: var(--mono); font-size: 10px; }.admin-list-row strong, .admin-list-row small { display: block; }.admin-list-row strong { font-size: 12px; }.admin-list-row small { color: #7d9398; font-size: 9px; }.row-meta { color: #698188; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.row-action { width: 30px; height: 30px; color: #6d858a; background: transparent; border: 1px solid rgba(20,62,74,.15); }
.student-table { width: 100%; border-collapse: collapse; }.student-table th, .student-table td { padding: 12px 14px; border-bottom: 1px solid rgba(20,62,74,.1); text-align: left; }.student-table th { color: #7c9296; font-family: var(--mono); font-size: 7px; font-weight: 500; text-transform: uppercase; }.student-table td { font-size: 11px; }.access-pill { display: inline-flex; align-items: center; gap: 5px; color: var(--teal-deep); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.access-pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }.access-pill.off { color: #9a8b83; }
.inline-form { display: grid; grid-template-columns: 1fr 1fr 130px auto; gap: 10px; padding: 15px 20px; background: #edf3f1; border-top: 1px solid rgba(20,62,74,.1); }.inline-form input { min-width: 0; padding: 10px 11px; border: 1px solid rgba(20,62,74,.18); font-size: 11px; }
.class-admin-row { grid-template-columns: 82px minmax(0, 1fr) minmax(190px, .65fr) auto; }
.class-date-chip { display: grid; place-items: center; min-height: 52px; color: var(--ink); background: #dce9e6; font-family: var(--mono); text-align: center; }
.class-date-chip strong { font-family: var(--display); font-size: 27px; line-height: .8; }.class-date-chip small { margin-top: 4px; color: #668187; font-size: 7px; text-transform: uppercase; }
.class-date-chip.next { background: var(--amber); }.class-date-chip.past { opacity: .58; }
.class-specialist-summary { padding-left: 14px; border-left: 1px solid var(--line); }.class-specialist-summary span { display: block; color: var(--teal-deep); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.class-specialist-summary strong { display: block; margin-top: 3px; font-size: 11px; }.class-specialist-summary small { display: block; color: #799095; font-size: 8px; }
.meet-admin-pill { display: inline-flex; align-items: center; gap: 5px; margin-top: 7px; padding: 3px 6px; color: #829397; background: #e4ecea; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.meet-admin-pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }.meet-admin-pill.ready { color: #0c716c; background: rgba(86,214,202,.18); }
.meeting-admin-field small { color: #71898f; font-family: var(--body); font-size: 9px; letter-spacing: 0; text-transform: none; }
.class-row-actions { display: flex; gap: 6px; }.class-row-actions .row-action { width: auto; min-width: 32px; padding: 0 8px; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.class-dialog { width: min(820px, calc(100vw - 30px)); }.class-dialog .dialog-card { max-height: 88vh; overflow-y: auto; }.class-form-grid, .article-form { display: grid; gap: 14px; }.class-moment-label { display: flex; align-items: center; gap: 12px; margin-top: 5px; padding: 11px 13px; background: var(--ink-2); color: var(--white); }.class-moment-label span { color: var(--amber); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.class-moment-label strong { font-family: var(--display); font-size: 19px; font-weight: 500; }
.article-manager { margin-top: 8px; padding-top: 22px; border-top: 1px solid var(--line); }.article-manager header > p { margin: 10px 0 0; color: #71898f; font-size: 11px; }.managed-article-list { display: grid; gap: 8px; margin: 16px 0; }.managed-article { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: start; padding: 13px; background: #e8f0ee; }.managed-article > span { color: var(--teal-deep); font-family: var(--mono); font-size: 9px; }.managed-article strong { display: block; font-size: 11px; line-height: 1.35; }.managed-article small { display: block; margin-top: 4px; color: #6f868b; font-size: 8px; }.article-form { padding: 17px; background: #f0f5f4; border: 1px solid var(--line); }.presenter-fieldset { margin: 0; padding: 13px; border: 1px solid var(--line); }.presenter-fieldset legend { padding: 0 7px; color: #55747a; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.presenter-checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.presenter-checks label { display: flex; align-items: center; gap: 7px; color: #345963; font-size: 10px; }.presenter-checks input { width: 14px; height: 14px; accent-color: var(--teal-deep); }
.upload-admin-row { grid-template-columns: 42px minmax(0, 1fr) minmax(160px, .55fr) auto; }.file-badge { width: 34px; height: 40px; display: grid; place-items: center; background: #dce8e5; color: var(--teal-deep); font-family: var(--mono); font-size: 7px; text-transform: uppercase; clip-path: polygon(0 0, 72% 0, 100% 25%, 100% 100%, 0 100%); }.upload-context { color: #6e858a; font-size: 9px; }.upload-context strong { color: var(--ink-2); font-size: 9px; }.file-size { color: #789095; font-family: var(--mono); font-size: 8px; }.upload-file-actions { display: grid; justify-items: end; gap: 7px; }.upload-file-actions .row-action { text-decoration: none; }
.deliverable-type-list { display: flex; flex-wrap: wrap; gap: 9px; padding: 18px 20px; }.deliverable-type-chip { display: inline-grid; grid-template-columns: auto 24px; align-items: center; gap: 8px; padding: 7px 7px 7px 11px; color: #24515a; background: #deebe8; border: 1px solid rgba(24,141,135,.15); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.deliverable-type-chip button { width: 24px; height: 24px; color: #738b90; background: rgba(255,255,255,.55); border: 0; }.deliverable-type-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 15px 20px; background: #edf3f1; border-top: 1px solid rgba(20,62,74,.1); }.deliverable-type-form input { min-width: 0; padding: 10px 11px; border: 1px solid rgba(20,62,74,.18); font-size: 11px; }

/* Configurations use the workspace instead of inheriting the narrow utility rail */
body[data-admin-active-view="configuracoes"] .admin-grid { grid-template-columns: 1fr; }
body[data-admin-active-view="configuracoes"] .admin-grid > div { display: none; }
body[data-admin-active-view="configuracoes"] .admin-grid > aside { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
body[data-admin-active-view="configuracoes"] .admin-grid > aside > .admin-panel { min-width: 0; margin: 0; }
body[data-admin-active-view="configuracoes"] #publicationPanel, body[data-admin-active-view="configuracoes"] #persistencePanel { grid-column: span 6; }
body[data-admin-active-view="configuracoes"] #privacyPanel { grid-column: span 7; }
body[data-admin-active-view="configuracoes"] #openaiPanel { grid-column: span 5; }
body[data-admin-active-view="configuracoes"] #accountPanel { grid-column: 1 / -1; }
body[data-admin-active-view="configuracoes"] .privacy-switches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-admin-active-view="configuracoes"] #accountPanel .panel-body { display: flex; align-items: center; justify-content: space-between; gap: 20px; }

/* Responsive */
@media (max-width: 1100px) {
  :root { --shell: min(100% - 42px, 980px); }
  .header-nav { display: none; }
  .site-header { grid-template-columns: auto auto 1fr; }.header-actions { justify-self: end; }.icon-link { display: none; }
  .hero-content { grid-template-columns: 1fr 275px; gap: 35px; }.hero-copy h1 { font-size: clamp(50px, 6vw, 74px); }
  .manifest-layout, .section-heading, .briefing-layout, .presentation-layout { grid-template-columns: 55px 1fr; gap: 32px; }.manifest-body { grid-column: 2; padding-top: 0; }.trail-legend, .sync-stamp { grid-column: 2; justify-self: start; }.presentation-copy { grid-column: 2; }.tip-reel { grid-column: 2; max-width: 620px; }
  .next-class-heading { grid-template-columns: 55px 1fr; gap: 32px; }.next-class-rule { grid-column: 2; }.class-call-sheet { grid-template-columns: 145px 1fr; }.class-call-main { padding: 28px; }.two-act-grid { grid-template-columns: 1fr 1fr; }
  .materials-layout { grid-template-columns: 1fr; }.module-grid { grid-template-columns: repeat(4, minmax(210px, 1fr)); overflow-x: auto; padding: 12px 10px 44px; }.route-canvas { min-height: auto; }.route-line { display: none; }.module-card:nth-child(n) { margin-top: 0; }
  .admin-grid { grid-template-columns: 1fr; }.admin-content { width: 100%; }.drive-card { order: -1; }
  .profile-workspace { grid-template-columns: 260px minmax(0, 1fr); }
  body[data-admin-active-view="visao"] .course-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-admin-active-view="visao"] .admin-course-tab:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 190px; }
  .overview-agenda-board { grid-template-columns: 150px minmax(0, 1fr); }
  .overview-agenda-date { min-height: 330px; }
  .overview-agenda-actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(180px, 1fr) 190px auto auto; align-items: center; border-top: 1px solid rgba(255,255,255,.12); border-left: 0; }
  .overview-agenda-actions dl { margin: 0; }.overview-agenda-actions .admin-button { width: auto; white-space: nowrap; }
  body[data-admin-active-view="configuracoes"] #privacyPanel, body[data-admin-active-view="configuracoes"] #openaiPanel { grid-column: 1 / -1; }
  .cinematic-chapters { display: none; }
}

@media (max-width: 760px) {
  :root { --shell: calc(100vw - 30px); --header-height: 64px; }
  .section-pad { padding: 84px 0; }
  .site-header { grid-template-columns: auto 1fr auto; gap: 10px; padding: 0 15px; }.site-header .wordmark > span { display: none; }.epusp-seal { width: 38px; height: 38px; flex-basis: 38px; }.course-trigger { min-width: 0; padding-left: 10px; }.course-trigger small { display: none; }.access-button { width: 38px; height: 38px; justify-content: center; padding: 0; }.access-button #accessLabel { display: none; }
  .course-switcher { min-height: 100svh; padding: 26px 15px; overflow-y: auto; }.switcher-grid { grid-template-columns: 1fr; }.course-option { min-height: 190px; }
  .cinematic-hero { min-height: 920px; align-items: flex-start; }.hero-content { grid-template-columns: 1fr; gap: 35px; padding-top: 125px; }.hero-copy h1 { font-size: clamp(48px, 13.5vw, 66px); }.hero-copy p { font-size: 15px; }.signal-panel { min-height: auto; }.signal-radar { display: none; }.signal-panel dl { margin-top: 22px; }.hero-foot { bottom: 18px; }.coordinates { display: none; }.hero-shade { background: linear-gradient(180deg, rgba(4,15,26,.85), rgba(4,15,26,.55) 52%, rgba(4,15,26,.94)); }
  .manifest-layout, .section-heading, .briefing-layout, .presentation-layout { grid-template-columns: 1fr; gap: 23px; }.section-index { writing-mode: horizontal-tb; transform: none; }.section-index i { width: 40px; height: 1px; }.manifest-body, .trail-legend, .sync-stamp, .presentation-copy, .tip-reel { grid-column: 1; }.manifest-body > p { font-size: 16px; }.course-facts { grid-template-columns: repeat(3, 1fr); }.course-facts dd { font-size: 23px; }
  .next-class-heading { grid-template-columns: 1fr; gap: 22px; }.next-class-rule { grid-column: 1; }.class-call-sheet { grid-template-columns: 1fr; }.class-date-block { min-height: auto; flex-direction: row; justify-content: flex-start; gap: 10px; padding: 17px 20px; text-align: left; }.class-date-block strong { order: -1; margin: 0; font-size: 45px; }.class-date-block i { width: 1px; height: 28px; margin: 0 5px; }.class-date-block small { margin-left: auto; font-size: 14px; }.class-call-main { padding: 22px; }.call-title { display: grid; }.call-title > p { text-align: left; }.two-act-grid { grid-template-columns: 1fr; }.class-act { min-height: auto; padding: 25px 0; }.class-act + .class-act { padding-left: 0; border-top: 1px solid rgba(255,255,255,.15); border-left: 0; }.call-actions { align-items: stretch; flex-direction: column; }.class-access-stack, .meeting-locked, .meeting-link { width: 100%; }.call-actions .primary-button { width: 100%; }
  h2 { font-size: clamp(48px, 15vw, 68px); }.trail-legend { flex-wrap: wrap; }.module-grid { grid-template-columns: 84vw 84vw 84vw 84vw 84vw 84vw 84vw 84vw; margin-right: -15px; }.module-card { min-height: 260px; }
  .briefing-panel { padding: 28px 22px; }.objective-list { grid-template-columns: 1fr; }.professor-line { display: grid; }.materials-layout { margin-top: 34px; }.folder-row { grid-template-columns: 30px 1fr auto; }.reading-desk { padding: 22px; }
  .presentation-orbit { width: 100vw; right: -50vw; }.footer-grid { grid-template-columns: 1fr; gap: 30px; }.footer-meta { grid-column: 1; }
  .app-dialog { max-height: calc(100dvh - 20px); }.form-columns { grid-template-columns: 1fr; }.dialog-card { padding: 30px 20px 24px; }.access-card { padding: 30px 20px 24px; background-image: none; }.access-card::after { display: none; }.credential-head { grid-template-columns: auto 1fr; }.credential-head small { grid-column: 2; }.token-contract { grid-template-columns: 1fr; }.token-contract span { border-top: 1px solid var(--line); border-left: 0; }.token-contract span:first-child { border-top: 0; }.dialog-card h2 { padding-right: 46px; font-size: 39px; }.dialog-actions { gap: 15px; }.toast { right: 15px; bottom: 15px; left: 15px; }

  .admin-shell { display: block; }.admin-sidebar { position: static; width: 100%; height: auto; display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 13px 15px; }.admin-sidebar .wordmark { margin: 0; }.admin-profile, .admin-nav, .sidebar-foot { display: none; }.admin-topbar { height: 60px; padding: 0 15px; }.admin-top-actions .admin-button:first-child { display: none; }.admin-content { width: 100%; padding: 22px 15px; }.admin-welcome { display: grid; gap: 12px; }.admin-welcome h1 { font-size: 38px; }.course-tabs, body[data-admin-active-view="visao"] .course-tabs { grid-template-columns: 1fr; }.metric-grid { grid-template-columns: 1fr 1fr; }.admin-grid { grid-template-columns: 1fr; }.editor-grid { grid-template-columns: 1fr; }.editor-grid .full { grid-column: 1; }.admin-list-row { grid-template-columns: 34px 1fr auto; }.row-meta { display: none; }.inline-form { grid-template-columns: 1fr; }.student-table { display: block; overflow-x: auto; white-space: nowrap; }
  .profile-header { grid-template-columns: 1fr auto; padding: 0 15px; }.profile-header-label { display: none; }.profile-shell { width: min(100% - 30px, 1240px); padding-top: 34px; }.profile-intro { grid-template-columns: 1fr; gap: 16px; }.profile-intro h1 { font-size: 52px; }.profile-workspace { grid-template-columns: 1fr; }.profile-identity-card { position: relative; top: auto; min-height: 300px; }.profile-form-grid, .profile-credential-body { grid-template-columns: 1fr; }.profile-full, .profile-secret { grid-column: 1; }.profile-secret { grid-template-columns: 1fr; }.profile-gate { grid-template-columns: 1fr; padding: 28px 22px; }.profile-gate .primary-button { width: 100%; }
  .metric { padding: 15px; border-top: 1px solid rgba(20,62,74,.12); border-left: 0; }.metric:nth-child(-n+2) { border-top: 0; }.metric:nth-child(even) { border-left: 1px solid rgba(20,62,74,.12); }.metric strong { font-size: 35px; }
  .admin-course-browser { margin: 28px 0 32px; }.course-browser-heading, .overview-agenda-heading { display: grid; align-items: start; }.course-browser-heading h2, .overview-agenda-heading h2 { font-size: 38px; }.course-browser-heading .admin-button { width: 100%; }.overview-agenda-heading > p { text-align: left; }
  body[data-admin-active-view="visao"] .admin-course-tab, body[data-admin-active-view="visao"] .admin-course-tab:last-child:nth-child(odd) { grid-column: auto; min-height: 195px; }
  .overview-agenda-board { grid-template-columns: 1fr; }.overview-agenda-date { min-height: auto; flex-direction: row; justify-content: flex-start; gap: 10px; padding: 16px 20px; text-align: left; }.overview-agenda-date strong { order: -1; margin: 0; font-size: 48px; }.overview-agenda-date i { width: 1px; height: 28px; margin: 0 5px; }.overview-agenda-date time { margin-left: auto; font-size: 25px; }.overview-agenda-content { padding: 24px 20px; }.overview-agenda-content > h3 { font-size: 34px; }.overview-moments { grid-template-columns: 1fr; }.overview-moments > article { padding: 18px 0; }.overview-moments > article + article { padding-left: 0; border-top: 1px solid rgba(255,255,255,.14); border-left: 0; }.overview-agenda-actions { grid-column: auto; grid-template-columns: 1fr; padding: 22px 20px; }.overview-agenda-actions .admin-button { width: 100%; }.overview-agenda-empty { grid-template-columns: 1fr; padding: 28px 22px; }.overview-agenda-empty .admin-button { width: 100%; }
  body[data-admin-active-view="configuracoes"] .admin-grid > aside { grid-template-columns: 1fr; }
  body[data-admin-active-view="configuracoes"] #publicationPanel, body[data-admin-active-view="configuracoes"] #persistencePanel, body[data-admin-active-view="configuracoes"] #privacyPanel, body[data-admin-active-view="configuracoes"] #openaiPanel, body[data-admin-active-view="configuracoes"] #accountPanel { grid-column: 1; }
  body[data-admin-active-view="configuracoes"] .privacy-switches { grid-template-columns: 1fr; }
  .class-admin-row { grid-template-columns: 62px 1fr auto; }.class-specialist-summary { grid-column: 2; border-left: 0; padding-left: 0; }.class-row-actions { grid-column: 3; grid-row: 1 / 3; flex-direction: column; }.presenter-checks { grid-template-columns: 1fr; }.upload-admin-row { grid-template-columns: 36px 1fr; }.upload-context, .upload-file-actions { grid-column: 2; }.upload-file-actions { justify-items: start; grid-auto-flow: column; justify-content: start; align-items: center; }.deliverable-type-form { grid-template-columns: 1fr; }
}

/* Student activity dispatch board */
.student-workspace-section { position: relative; overflow: hidden; color: var(--white); background: #071b28; }
.student-workspace-section::before { content: ''; position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(86,214,202,.24) 1px, transparent 1px), linear-gradient(90deg, rgba(86,214,202,.24) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.student-workspace-section::after { content: 'ATIVIDADES / ENTREGA / ACOMPANHAMENTO'; position: absolute; right: -78px; top: 50%; color: rgba(86,214,202,.2); font-family: var(--mono); font-size: 8px; letter-spacing: .22em; transform: rotate(90deg); }
.student-workspace-section .shell { position: relative; z-index: 1; }
.student-workspace-heading { display: grid; grid-template-columns: 84px minmax(0, 1fr) minmax(260px, 390px); gap: 54px; align-items: end; }
.student-workspace-heading h2 { margin: 10px 0 0; font-size: clamp(48px, 5vw, 78px); }
.student-workspace-heading > p { margin: 0 0 8px; color: rgba(255,255,255,.6); font-size: 15px; line-height: 1.7; }
.student-workspace-gate { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; margin-top: 48px; padding: 24px 26px; background: rgba(255,255,255,.06); border: 1px solid rgba(86,214,202,.22); }
.student-workspace-gate > span { width: 46px; height: 46px; display: grid; place-items: center; color: var(--amber); border: 1px solid rgba(255,177,92,.45); border-radius: 50%; }
.student-workspace-gate strong, .student-workspace-gate p { display: block; }.student-workspace-gate p { margin: 5px 0 0; color: rgba(255,255,255,.55); font-size: 11px; }
.student-workspace-gate .secondary-button { width: auto; margin: 0; }
.student-workspace-dashboard { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 48px; }
.student-workspace-summary { position: sticky; top: 92px; padding: 25px; background: linear-gradient(160deg, #123b47, #0a2734); border-top: 3px solid var(--amber); box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.student-workspace-summary > strong { display: block; margin: 16px 0 0; font-family: var(--display); font-size: 58px; line-height: 1; }
.student-workspace-summary > p { margin: 3px 0 19px; color: rgba(255,255,255,.52); font-size: 10px; }
.student-workspace-summary > small { display: block; margin-top: 15px; color: var(--amber); font-family: var(--mono); font-size: 8px; line-height: 1.5; text-transform: uppercase; }
.activity-progress-track { height: 3px; background: rgba(255,255,255,.12); }.activity-progress-track span { display: block; width: 0; height: 100%; background: var(--teal); transition: width .45s ease; }
.student-activity-list { display: grid; gap: 14px; }
.student-activity-card { background: #f5faf8; color: var(--ink-2); border: 1px solid rgba(86,214,202,.22); box-shadow: 0 18px 55px rgba(0,0,0,.12); }
.student-activity-card.overdue { filter: saturate(.65); }.student-activity-card.overdue > header time { color: #ae563e; }
.student-activity-card > header { display: grid; grid-template-columns: 45px 1fr auto; gap: 16px; align-items: center; padding: 20px 22px; color: var(--white); background: #113541; }
.student-activity-card > header > span { color: var(--teal); font-family: var(--mono); font-size: 11px; }.student-activity-card > header small { color: var(--teal); font-family: var(--mono); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.student-activity-card > header h3 { margin: 5px 0 2px; font-size: 27px; line-height: 1; }.student-activity-card > header p { margin: 0; color: rgba(255,255,255,.48); font-size: 9px; }.student-activity-card > header time { color: var(--amber); font-family: var(--mono); font-size: 8px; text-align: right; text-transform: uppercase; }
.activity-instructions { padding: 15px 22px; color: #526f75; background: #e4efec; border-bottom: 1px solid var(--line); font-size: 11px; line-height: 1.55; }
.activity-deliveries { display: grid; }.activity-delivery { display: grid; grid-template-columns: minmax(210px, 1fr) minmax(150px, .55fr) auto; gap: 12px; align-items: center; padding: 17px 22px; border-top: 1px solid var(--line); }.activity-delivery:first-child { border-top: 0; }
.activity-delivery-state { display: flex; gap: 12px; align-items: center; }.activity-delivery-state > span { width: 30px; height: 30px; display: grid; place-items: center; color: #789096; border: 1px solid #b8cac7; border-radius: 50%; }.activity-delivery.complete .activity-delivery-state > span { color: #075d55; background: #c8ebe2; border-color: #8bd0c2; }
.activity-delivery-state strong, .activity-delivery-state small { display: block; }.activity-delivery-state strong { font-size: 11px; }.activity-delivery-state small { max-width: 440px; margin-top: 3px; color: #789096; font-size: 8px; overflow-wrap: anywhere; }
.activity-file-picker { min-width: 0; display: block; padding: 11px 12px; overflow: hidden; color: #315960; background: #e6efed; border: 1px dashed #9eb7b4; cursor: pointer; font-family: var(--mono); font-size: 8px; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.activity-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }.activity-file-picker.disabled { cursor: not-allowed; opacity: .45; }
.activity-delivery .secondary-button { width: auto; margin: 0; color: var(--ink-2); border-color: #9eb7b4; white-space: nowrap; }.activity-delivery .secondary-button:disabled { cursor: not-allowed; opacity: .45; }.activity-upload-message { grid-column: 2 / -1; margin: -4px 0 0; color: #9b5c18; font-size: 8px; }
.student-activity-empty { padding: 45px; color: rgba(255,255,255,.68); border: 1px dashed rgba(255,255,255,.2); text-align: center; }.student-activity-empty strong { display: block; color: var(--white); font-family: var(--display); font-size: 30px; }.student-activity-empty p { font-size: 11px; }

/* Synced Drive library and course lifecycle controls */
.synced-drive-file { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center; padding: 15px 5px; border-bottom: 1px solid var(--line); }.synced-drive-file:last-child { border-bottom: 0; }.drive-file-icon { width: 38px; height: 38px; display: grid; place-items: center; color: #0d5e58; background: #d7ebe6; font-family: var(--mono); font-size: 7px; }.synced-drive-file strong, .synced-drive-file small { display: block; }.synced-drive-file strong { font-size: 12px; }.synced-drive-file small { margin-top: 3px; color: var(--muted); font-size: 8px; }.synced-drive-file button { padding: 8px 10px; color: var(--teal-deep); background: transparent; border: 1px solid var(--line); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.drive-material-empty { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; padding: 35px 10px; }.drive-material-empty > span { color: var(--teal-deep); font-size: 28px; }.drive-material-empty strong { font-size: 13px; }.drive-material-empty p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.drive-sync-message { margin: 12px 0; color: rgba(255,255,255,.58); font-size: 8px; line-height: 1.55; overflow-wrap: anywhere; }.drive-sync-message.error { color: #ffd198; }.course-lifecycle-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 9px; }.course-lifecycle-actions .admin-button { min-height: 46px; }.admin-button.danger { color: #9a392d; border-color: rgba(154,57,45,.35); }.admin-button.danger:hover { color: #fff; background: #9a392d; border-color: #9a392d; }.course-lifecycle-note { margin: 13px 0 0; color: #71898f; font-size: 9px; line-height: 1.55; }
.assessment-upload-toggle, .assessment-instructions { grid-column: 1 / -1; }.assessment-deliverable-field { grid-column: 1; }.assessment-settings-upload { display: flex !important; align-items: center; gap: 7px; }.assessment-settings-upload input { width: 16px !important; height: 16px; }.assessment-settings-instructions { grid-column: 1 / -1; }.assessment-settings textarea { min-height: 62px; resize: vertical; }

@media (max-width: 900px) {
  .student-workspace-heading { grid-template-columns: 70px 1fr; }.student-workspace-heading > p { grid-column: 2; }.student-workspace-dashboard { grid-template-columns: 1fr; }.student-workspace-summary { position: static; }.activity-delivery { grid-template-columns: 1fr 1fr; }.activity-delivery-state { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .student-workspace-heading { grid-template-columns: 1fr; gap: 18px; }.student-workspace-heading .section-index { display: none; }.student-workspace-heading > p { grid-column: 1; }.student-workspace-gate { grid-template-columns: auto 1fr; }.student-workspace-gate .secondary-button { grid-column: 1 / -1; width: 100%; }.student-workspace-dashboard { margin-top: 30px; }.student-activity-card > header { grid-template-columns: 32px 1fr; }.student-activity-card > header time { grid-column: 2; text-align: left; }.activity-delivery { grid-template-columns: 1fr; }.activity-delivery-state, .activity-upload-message { grid-column: 1; }.activity-delivery .secondary-button { width: 100%; }.course-lifecycle-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .hero-media { transform: scale(1.04); }
  .briefing-photo { transform: scale(1.06); }
  .reveal { opacity: 1; transform: none; }
  .cinematic-scanline { display: none; }
  .cinematic-ready .hero-copy.reveal.in-view,
  .cinematic-ready .signal-panel.reveal.in-view,
  .cinematic-ready .hero-foot { opacity: 1; transform: none; }
  .presentation-orbit { transform: translateY(-50%); }
}

/* Course depth sequence — a bathymetric stack rather than a generic card grid */
.course-map { overflow: hidden; background-color: #eaf1ef; background-image: repeating-radial-gradient(ellipse at 12% 48%, transparent 0 42px, rgba(17,82,91,.045) 43px 44px, transparent 45px 74px); }
.course-map .section-heading { position: relative; z-index: 2; }
.route-canvas::before { content: 'CAMADAS DE PROFUNDIDADE · CONHECIMENTO EM MOVIMENTO'; position: absolute; top: -28px; right: 0; color: rgba(10,48,58,.34); font-family: var(--mono); font-size: 8px; letter-spacing: .18em; }
.module-card { isolation: isolate; overflow: hidden; background: rgba(248,251,250,.91); backdrop-filter: blur(10px); }
.module-card::before { content: 'NÍVEL ' counter(layer); position: absolute; right: -18px; bottom: 18px; z-index: -1; color: rgba(9,52,62,.04); font-family: var(--display); font-size: 68px; line-height: .8; transform: rotate(-90deg); }
.module-grid { counter-reset: layer; }
.module-card { counter-increment: layer; }
.module-card.current { transform: translateY(-9px); background: #fff8ec; }
.module-card.current::after { content: ''; position: absolute; inset: 0; z-index: -1; border: 1px solid rgba(255,177,92,.6); box-shadow: inset 0 0 45px rgba(255,177,92,.11); animation: current-layer 2.8s ease-in-out infinite; }
.module-card.done { background: rgba(225,239,235,.9); }
.module-top > span:first-child { max-width: 78%; }
@keyframes current-layer { 50% { opacity: .38; box-shadow: inset 0 0 70px rgba(255,177,92,.2); } }

/* Class room and personal assignment */
.class-room { margin-top: 28px; color: var(--white); background: #0a2330; border: 1px solid rgba(86,214,202,.25); box-shadow: 0 30px 80px rgba(4,21,31,.18); }
.room-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 26px 30px; border-bottom: 1px solid rgba(255,255,255,.12); }
.room-header h3 { margin: 4px 0; font-size: 35px; }.room-header p { margin: 0; color: rgba(255,255,255,.54); font-size: 11px; }
.room-access-state { color: var(--teal); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.room-locked { display: grid; grid-template-columns: 54px 1fr auto; gap: 18px; align-items: center; padding: 30px; }.room-locked > span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(86,214,202,.35); border-radius: 50%; color: var(--teal); font-size: 22px; }.room-locked strong { display: block; }.room-locked p { margin: 5px 0 0; color: rgba(255,255,255,.55); font-size: 11px; }
.room-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }.room-grid > section { min-width: 0; padding: 28px 30px; }.room-grid > section + section { border-left: 1px solid rgba(255,255,255,.12); }
.room-column-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }.room-column-head h4 { margin: 0; font-family: var(--display); font-size: 25px; }.room-column-head span { color: var(--teal); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }
.room-resource { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.1); }.room-resource > span { color: var(--amber); }.room-resource strong, .room-resource small { display: block; }.room-resource strong { margin-top: 3px; font-size: 11px; }.room-resource small { color: rgba(255,255,255,.43); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.room-resource p, .room-resource div div { color: rgba(255,255,255,.65); font-size: 10px; }.room-resource a { color: var(--teal); font-family: var(--mono); font-size: 8px; text-decoration: none; }
.room-resource-form { display: grid; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); }.room-resource-form label { color: rgba(255,255,255,.58); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.room-resource-form input, .room-resource-form select, .room-resource-form textarea { width: 100%; margin-top: 5px; padding: 10px; color: var(--white); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); }
.room-comment-list { display: grid; gap: 10px; max-height: 410px; overflow-y: auto; }.room-comment { padding: 13px 14px; color: var(--ink-2); background: #f4f8f7; }.room-comment > div:first-child { display: flex; gap: 8px; align-items: center; margin-bottom: 7px; }.room-comment strong { font-size: 10px; }.room-comment span, .room-comment time { color: #6e878c; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.room-comment time { margin-left: auto; }.room-comment > div:last-child { font-size: 11px; line-height: 1.55; }.room-comment a { color: var(--teal-deep); }
.rich-comment-form { display: grid; gap: 10px; margin-top: 17px; }.rich-toolbar { display: flex; gap: 5px; }.rich-toolbar button { min-width: 30px; height: 28px; padding: 0 8px; color: var(--teal); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.15); font-size: 10px; }.rich-editor { min-height: 105px; padding: 13px; color: var(--ink-2); background: #fff; border: 1px solid rgba(86,214,202,.35); font-size: 12px; line-height: 1.55; }.rich-editor:empty::before { content: attr(data-placeholder); color: #809499; }.room-empty { color: rgba(255,255,255,.45); font-size: 10px; }
.rich-link-fields { display: inline-flex; gap: 4px; }.rich-link-fields input { width: 170px; height: 28px; padding: 0 8px; color: var(--ink-2); background: white; border: 1px solid var(--line); font-size: 9px; }
.student-assignment-panel { display: grid; gap: 10px; margin: 22px 0; }.student-assignment-panel > p, .assignment-empty { color: rgba(255,255,255,.62); font-size: 12px; }.assignment-empty { display: grid; gap: 4px; padding: 15px; border: 1px solid rgba(255,255,255,.15); }.assignment-card { display: grid; grid-template-columns: 48px 1fr auto; gap: 14px; align-items: center; padding: 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(86,214,202,.22); }.assignment-code { color: var(--amber); font-family: var(--mono); font-size: 9px; }.assignment-card small, .assignment-card strong { display: block; }.assignment-card small { color: var(--teal); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.assignment-card strong { margin-top: 4px; font-size: 12px; }.assignment-card p { margin: 7px 0; color: rgba(255,255,255,.65); font-size: 10px; }.required-deliverables { display: flex; flex-wrap: wrap; gap: 6px; }.required-deliverables span { padding: 4px 7px; color: var(--amber); border: 1px solid rgba(255,177,92,.35); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.required-deliverables span.done { color: var(--teal); border-color: rgba(86,214,202,.35); }
.choice-contract { padding: 12px 14px; color: #405f66; background: #e3efec; border-left: 3px solid var(--teal-deep); font-size: 10px; line-height: 1.5; }.presenter-line.mine { color: var(--amber); }
.access-recovery-trigger { margin-top: -8px; }.access-recovery { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 12px; background: #e8f0ee; }.access-recovery label { grid-column: 1 / -1; }.access-recovery small { grid-column: 1 / -1; color: #70878c; font-size: 8px; }

/* Admin multi-area workspace */
[data-admin-view][hidden] { display: none !important; }
.panel-heading-actions { display: flex; align-items: center; gap: 10px; }.ai-button { color: #68420f; background: rgba(255,177,92,.18); border-color: rgba(190,116,28,.25); }
.cover-source-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; margin-bottom: 18px; padding: 14px; background: #e8f0ee; }.cover-source-row small { grid-column: 1 / -1; color: #71898f; font-size: 8px; }
.privacy-switches { display: grid; gap: 9px; }.privacy-switches label, .choice-toggle { display: flex; align-items: flex-start; gap: 10px; padding: 11px; background: #e9f1ef; border: 1px solid rgba(20,62,74,.1); }.privacy-switches input, .choice-toggle input { width: 17px; height: 17px; accent-color: var(--teal-deep); }.privacy-switches strong, .privacy-switches small, .choice-toggle strong, .choice-toggle small { display: block; }.privacy-switches strong, .choice-toggle strong { color: var(--ink-2); font-size: 10px; }.privacy-switches small, .choice-toggle small { margin-top: 3px; color: #71898f; font-size: 8px; line-height: 1.4; }
.openai-key-form { display: grid; gap: 10px; }.openai-key-form small { color: #71898f; font-size: 8px; }
.choice-policy-box { display: grid; grid-template-columns: 1fr 240px; gap: 10px; padding: 14px; background: #fff7e8; border: 1px solid rgba(220,143,50,.25); }.choice-policy-box > label:last-child { color: #6f5b3f; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.choice-policy-box input[type=datetime-local] { width: 100%; margin-top: 6px; padding: 9px; border: 1px solid rgba(20,62,74,.18); }.choice-policy-box small { display: block; margin-top: 4px; font-family: var(--body); font-size: 8px; text-transform: none; }
.choice-admin-pill { display: inline-flex; margin: 7px 0 0 5px; padding: 3px 6px; color: #8b765d; background: #efe9df; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.choice-admin-pill.ready { color: #68420f; background: rgba(255,177,92,.24); }
.specialist-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.specialist-contact-grid label { color: #526e74; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.specialist-contact-grid input { width: 100%; margin-top: 6px; padding: 10px; border: 1px solid var(--line); }
.specialist-invite-manager { display: grid; grid-template-columns: 1fr 170px auto; gap: 14px; align-items: end; margin-top: 20px; padding: 16px; color: var(--white); background: #112d39; }.specialist-invite-manager h3 { margin: 3px 0; font-size: 22px; }.specialist-invite-manager p { margin: 0; color: rgba(255,255,255,.55); font-size: 9px; }.specialist-invite-manager label { color: rgba(255,255,255,.55); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.specialist-invite-manager select { width: 100%; margin-top: 5px; padding: 9px; color: white; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); }
.admin-room-manager { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }.admin-room-manager > header h3 { margin: 3px 0; font-size: 24px; }.admin-room-manager > header p { margin: 0 0 15px; color: #71898f; font-size: 9px; }.admin-room-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.admin-room-grid > div { min-width: 0; padding: 15px; color: var(--white); background: #102b37; }.admin-room-grid .room-resource-form { margin-top: 14px; }.admin-room-grid .room-comment-list { max-height: 310px; }
.token-reset-button { padding: 5px 7px; color: var(--teal-deep); background: #e1eeeb; border: 1px solid rgba(24,141,135,.18); font-family: var(--mono); font-size: 8px; }.secret-reveal-card code { display: block; max-height: 280px; overflow: auto; padding: 15px; color: #d8fff9; background: #071b27; border: 1px solid rgba(86,214,202,.25); font-family: var(--mono); font-size: 10px; line-height: 1.6; white-space: pre-wrap; word-break: break-all; }.password-required .optional-close { display: none; }

/* Specialist workspace */
.specialist-page { min-height: 100vh; background: #e9f0ee; }.specialist-locked #specialistContent, .specialist-locked .specialist-header { filter: blur(8px); pointer-events: none; user-select: none; }.specialist-header { height: 76px; display: grid; grid-template-columns: 1fr auto auto; gap: 24px; align-items: center; padding: 0 32px; color: white; background: var(--ink); }.specialist-header > div { display: grid; text-align: right; }.specialist-header > div strong { font-size: 12px; }.specialist-header .admin-button { color: white; border-color: rgba(255,255,255,.2); }.specialist-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 45px 0 80px; }.specialist-hero { display: grid; grid-template-columns: 1fr 360px; gap: 40px; align-items: end; padding: 36px; color: white; background: #0c2b38; }.specialist-hero h1 { max-width: 720px; margin: 5px 0; font-size: 58px; text-transform: uppercase; }.specialist-hero p { max-width: 580px; color: rgba(255,255,255,.6); }.specialist-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px; margin-top: 20px; }.specialist-profile-form, .specialist-resource-form { display: grid; gap: 12px; }.specialist-resources .room-resource { color: var(--ink-2); border-color: var(--line); }.specialist-resources .room-resource small { color: #71898f; }.specialist-resources .room-resource a { color: var(--teal-deep); }.specialist-resource-form { border-top: 1px solid var(--line); }.specialist-resource-form label { color: #526e74; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.specialist-resource-form input, .specialist-resource-form select, .specialist-resource-form textarea { width: 100%; margin-top: 5px; padding: 10px; border: 1px solid var(--line); }.specialist-chat .rich-toolbar button { color: var(--teal-deep); background: #e4efec; border-color: var(--line); }

/* Assessment diary and private grade emblems */
.assessment-config { display: grid; gap: 18px; }
.grade-scale-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; padding: 22px 20px; color: var(--white); background: #0d2c38; }
.grade-scale-form > div { grid-column: 1 / -1; }
.grade-scale-form > div strong, .grade-scale-form > div small { display: block; }.grade-scale-form > div .eyebrow { font-size: 10px; letter-spacing: .13em; }.grade-scale-form > div strong { margin: 7px 0 5px; font-family: var(--display); font-size: 32px; line-height: 1; }.grade-scale-form > div small { color: rgba(255,255,255,.58); font-size: 10px; line-height: 1.45; }.grade-scale-form label { color: rgba(255,255,255,.68); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.grade-scale-form input { width: 100%; margin-top: 6px; padding: 10px; color: var(--white); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); }.grade-scale-form .admin-button { color: var(--white); border-color: rgba(255,255,255,.25); }.grade-scale-form .admin-button:hover { color: var(--ink); background: var(--teal); border-color: var(--teal); }
.assessment-create-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: end; }.assessment-create-form .admin-field, .assessment-create-form input, .assessment-create-form select { min-width: 0; }.assessment-create-form .admin-button { white-space: nowrap; }
.weight-warning { color: #9c5f16; background: #fff0d9; }
.grade-publish-button.published { color: #0b514c; background: #bde9df; border-color: #78c9bb; }.grade-publish-button:disabled { cursor: not-allowed; opacity: .52; }
.assessment-list { display: grid; gap: 14px; padding: 0 20px 20px; }.assessment-card { overflow: hidden; border: 1px solid rgba(20,62,74,.14); background: #fff; }.assessment-card.inactive { opacity: .65; }.assessment-card-head { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; padding: 17px 18px; color: var(--white); background: #143845; }.assessment-index { color: var(--teal); font-family: var(--mono); font-size: 10px; }.assessment-card-head small { color: rgba(255,255,255,.5); font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.assessment-card-head h3 { margin: 3px 0 0; font-size: 25px; }.assessment-weight { text-align: right; }.assessment-weight strong, .assessment-weight small { display: block; }.assessment-weight strong { color: var(--amber); font-family: var(--display); font-size: 25px; }.assessment-weight small { font-size: 7px; }
.assessment-settings { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; align-items: end; padding: 13px 18px; background: #edf3f1; border-bottom: 1px solid rgba(20,62,74,.12); }.assessment-settings > label:first-child { grid-column: span 2; }.assessment-settings > label:nth-child(5) { grid-column: span 2; }.assessment-settings label { min-width: 0; color: #648087; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.assessment-settings input:not([type=checkbox]), .assessment-settings select { width: 100%; margin-top: 5px; padding: 8px; color: var(--ink-2); background: #fff; border: 1px solid rgba(20,62,74,.16); font-size: 10px; }.assessment-active { display: flex; align-items: center; gap: 5px; min-height: 36px; white-space: nowrap; }.assessment-active input { accent-color: var(--teal-deep); }
.grade-roster { padding: 4px 18px 15px; }.grade-roster-head { display: flex; justify-content: space-between; padding: 12px 0 7px; color: #6d878d; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.grade-row { display: grid; grid-template-columns: minmax(190px, 1fr) 92px minmax(200px, 1.2fr) auto; gap: 10px; align-items: end; padding: 10px 0; border-top: 1px solid rgba(20,62,74,.1); }.grade-row label { color: #72898e; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.grade-row input { width: 100%; margin-top: 5px; padding: 9px; border: 1px solid rgba(20,62,74,.17); }.grade-student { display: flex; align-items: center; gap: 10px; }.grade-student strong, .grade-student small { display: block; }.grade-student strong { font-size: 11px; }.grade-student small { margin-top: 2px; color: #789095; font-family: var(--mono); font-size: 7px; }.grade-letter { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; color: var(--white); background: var(--teal-deep); border-radius: 50%; box-shadow: 0 0 0 4px rgba(24,141,135,.1); font-family: var(--display); font-size: 18px; }.grade-letter.pending { color: #71878c; background: #e4ecea; box-shadow: none; }.grade-letter.grade-b, .final-concept.grade-b { background: #388d8b; }.grade-letter.grade-c, .final-concept.grade-c { color: var(--ink); background: var(--amber); }.grade-letter.grade-r, .final-concept.grade-r { background: #b54e43; }.assessment-empty { padding: 20px; color: #71898f; font-size: 10px; }.assessment-empty.large { text-align: center; border: 1px dashed rgba(20,62,74,.2); }.assessment-empty.large strong { color: var(--ink-2); font-family: var(--display); font-size: 24px; }.assessment-empty.large p { margin: 5px 0 0; }

.grades-section { position: relative; overflow: hidden; color: var(--ink-2); background: #e8f0ee; background-image: radial-gradient(circle at 82% 28%, rgba(86,214,202,.18), transparent 25%), repeating-linear-gradient(135deg, transparent 0 26px, rgba(13,59,72,.025) 27px 28px); }.grades-section .section-heading { grid-template-columns: 84px 1fr minmax(260px, 360px); }.grades-intro { align-self: end; margin: 0; color: #627d84; font-size: 12px; line-height: 1.6; }.grades-locked { display: grid; grid-template-columns: 55px 1fr auto; gap: 18px; align-items: center; margin-top: 45px; padding: 28px; background: rgba(255,255,255,.65); border: 1px solid rgba(13,59,72,.12); }.grades-locked > span { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); font-size: 23px; }.grades-locked strong { font-family: var(--display); font-size: 22px; }.grades-locked p { margin: 3px 0 0; color: #70888d; font-size: 11px; }.grades-locked .secondary-button { width: auto; margin: 0; color: var(--ink-2); border-color: rgba(13,59,72,.25); }.grades-dashboard { display: grid; grid-template-columns: 285px 1fr; gap: 20px; margin-top: 45px; }.final-grade-card { min-height: 330px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; color: var(--white); background: #0b2a37; text-align: center; }.final-concept { width: 126px; height: 126px; display: grid; place-items: center; margin: 20px auto 15px; background: var(--teal-deep); border: 1px solid rgba(255,255,255,.28); border-radius: 50%; box-shadow: 0 0 0 10px rgba(86,214,202,.08), 0 0 55px rgba(86,214,202,.18); font-family: var(--display); font-size: 73px; line-height: 1; }.final-concept.pending { color: rgba(255,255,255,.4); background: rgba(255,255,255,.06); }.final-grade-card > strong { font-family: var(--display); font-size: 24px; }.final-grade-card > p { min-height: 32px; margin: 6px 0 0; color: rgba(255,255,255,.52); font-size: 9px; line-height: 1.5; }.grade-progress { width: 100%; height: 3px; margin-top: 22px; overflow: hidden; background: rgba(255,255,255,.12); }.grade-progress span { display: block; width: 0; height: 100%; background: var(--teal); transition: width .5s ease; }
.student-grade-cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }.student-grade-card { position: relative; min-height: 160px; display: flex; flex-direction: column; padding: 19px; overflow: hidden; background: rgba(255,255,255,.82); border: 1px solid rgba(13,59,72,.12); }.student-grade-card::before { content: ''; position: absolute; left: 0; top: 0; width: 3px; height: var(--grade-fill); background: var(--teal-deep); transition: height .5s ease; }.student-grade-top { display: flex; justify-content: space-between; gap: 10px; color: #738c91; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }.student-grade-card h3 { margin: 10px 0; font-size: 23px; }.student-grade-score { display: flex; align-items: baseline; gap: 5px; }.student-grade-score strong { font-family: var(--display); font-size: 37px; }.student-grade-score span { color: #789095; font-size: 10px; }.student-grade-meter { height: 2px; margin: 10px 0; background: #dbe6e3; }.student-grade-meter span { display: block; width: var(--grade-fill); height: 100%; background: var(--teal-deep); }.student-grade-card p { margin: auto 0 0; color: #657f85; font-size: 9px; line-height: 1.5; }.student-grade-card.pending { filter: grayscale(.25); }.grades-empty { grid-column: 1 / -1; padding: 45px; background: rgba(255,255,255,.65); text-align: center; }.grades-empty strong { font-family: var(--display); font-size: 28px; }.grades-empty p { color: #71898f; }

/* Explicit contrast for native select menus and controls on dark surfaces */
select option { color: var(--ink-2); background: #fff; }
.drive-card select, .room-resource-form select, .specialist-invite-manager select, .admin-room-grid select { color: #fff; background-color: #173b48; color-scheme: dark; }
.drive-card select option, .room-resource-form select option, .specialist-invite-manager select option, .admin-room-grid select option { color: #fff; background: #12323e; }
.drive-card .admin-button:hover, .specialist-invite-manager .admin-button:hover, .admin-room-grid .admin-button:hover, .specialist-header .admin-button:hover { color: var(--ink); background: var(--teal); border-color: var(--teal); }
.specialist-resource-form select { color: var(--ink-2); background: #fff; color-scheme: light; }

@media (min-width: 901px) {
  .grades-locked { padding-right: 112px; }
  .grades-locked .secondary-button { white-space: nowrap; }
}

@media (max-width: 900px) {
  .room-grid, .specialist-grid, .specialist-hero, .admin-room-grid, .grades-dashboard { grid-template-columns: 1fr; }
  .room-grid > section + section { border-top: 1px solid rgba(255,255,255,.12); border-left: 0; }
  .choice-policy-box, .specialist-invite-manager, .grade-scale-form, .assessment-create-form, .assessment-settings { grid-template-columns: 1fr 1fr; }
  .grade-scale-form > div, .assessment-name { grid-column: 1 / -1; }.grade-roster { overflow-x: auto; }.grade-row { min-width: 680px; }
}

@media (max-width: 760px) {
  .room-header, .room-locked { align-items: stretch; grid-template-columns: 1fr; }.room-header { display: grid; }.room-grid > section { padding: 22px 18px; }.assignment-card { grid-template-columns: 42px 1fr; }.assignment-card button { grid-column: 1 / -1; }.specialist-contact-grid { grid-template-columns: 1fr; }
  .admin-sidebar { display: grid; grid-template-columns: 1fr auto; }.admin-sidebar .admin-nav { display: flex; grid-column: 1 / -1; gap: 5px; margin-top: 10px; overflow-x: auto; }.admin-sidebar .admin-nav a { flex: 0 0 auto; }.admin-sidebar .admin-profile, .admin-sidebar .sidebar-foot { display: none; }
  .cover-source-row { grid-template-columns: 1fr; }.cover-source-row small { grid-column: 1; }.panel-heading-actions { align-items: flex-end; flex-direction: column; }.specialist-shell { width: min(100% - 24px, 1180px); padding-top: 20px; }.specialist-header { padding: 0 14px; }.specialist-header > div { display: none; }.specialist-hero { padding: 25px 20px; }.specialist-hero h1 { font-size: 42px; }
  .grades-section .section-heading { grid-template-columns: 1fr; }.grades-intro { grid-column: 1; }.grades-locked { grid-template-columns: 1fr; }.student-grade-cards { grid-template-columns: 1fr; }.grade-scale-form, .assessment-create-form, .assessment-settings { grid-template-columns: 1fr; }.grade-scale-form > div, .assessment-name { grid-column: 1; }
}
