









:root {
  --background: #ffffff;
  --foreground: #171717;
  --card: #ffffff;
  --card-foreground: #171717;
  --popover: #ffffff;
  --popover-foreground: #171717;
  --primary: #171717;
  --primary-foreground: #fafafa;
  --secondary: #f5f5f5;
  --secondary-foreground: #171717;
  --muted: #f5f5f5;
  --muted-foreground: #737373;
  --accent: #f5f5f5;
  --accent-foreground: #171717;
  --destructive: #e7000b;
  --border: #e5e5e5;
  --input: #e5e5e5;
  --ring: #a1a1a1;
  --chart-1: #f54900;
  --chart-2: #009689;
  --chart-3: #104e64;
  --chart-4: #ffb900;
  --chart-5: #fe9a00;
  --radius: 0.625rem;
  --sidebar: #fafafa;
  --sidebar-foreground: #171717;
  --sidebar-primary: #171717;
  --sidebar-primary-foreground: #fafafa;
  --sidebar-accent: #f5f5f5;
  --sidebar-accent-foreground: #171717;
  --sidebar-border: #e5e5e5;
  --sidebar-ring: #a1a1a1;
}



@media (prefers-color-scheme: dark) {
  :root {
    --background: #0a0a0a;
    --foreground: #ededed;
    --card: #171717;
    --card-foreground: #ededed;
    --popover: #171717;
    --popover-foreground: #ededed;
    --primary: #ededed;
    --primary-foreground: #171717;
    --secondary: #262626;
    --secondary-foreground: #ededed;
    --muted: #262626;
    --muted-foreground: #a1a1a1;
    --accent: #262626;
    --accent-foreground: #ededed;
    --destructive: #ff6467;
    --border: #ffffff1a;
    --input: #ffffff26;
    --ring: #737373;
    --chart-1: #8e51ff;
    --chart-2: #00bc7d;
    --chart-3: #fe9a00;
    --chart-4: #ad46ff;
    --chart-5: #ff2056;
    --sidebar: #171717;
    --sidebar-foreground: #ededed;
    --sidebar-primary: #8e51ff;
    --sidebar-primary-foreground: #ededed;
    --sidebar-accent: #262626;
    --sidebar-accent-foreground: #ededed;
    --sidebar-border: #ffffff1a;
    --sidebar-ring: #737373;
  }
}

body {
  background: var(--background);
  color: var(--foreground);
  font-family: Arial, Helvetica, sans-serif;
}

:root {
  --ink: #302836;
  --plum: #714b63;
  --muted: #766b76;
  --paper: #fffdf9;
  --chem: #f7d5df;
  --prog: #d9eafa;
  --geo: #dcebd7;
  --it: #eadcf5;
  --pink: #e9aeca;
  --line: rgba(88, 62, 78, 0.12);
}
* {
  box-sizing: border-box;
}
html {
  background: #f5eef3;
}
body {
  margin: 0;
  background: #f5eef3;
  color: var(--ink);
  font-family:
    ui-rounded,
    "SF Pro Rounded",
    "Avenir Next",
    Avenir,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}
.page-shell {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: radial-gradient(circle at 8% 0%, rgba(255, 255, 255, 0.95), transparent 28%), radial-gradient(circle at 92% 5%, rgba(223, 204, 245, 0.75), transparent 27%), linear-gradient(145deg, #fff8fa 0%, #f6eef7 48%, #edf7f5 100%);
}
.page-shell:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.28;
  background-image: linear-gradient(rgba(113, 75, 99, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(113, 75, 99, 0.035) 1px, transparent 1px);
  background-size: 22px 22px;
}
.ambient {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}
.ambient-one {
  width: 260px;
  height: 260px;
  right: -70px;
  top: 340px;
  background: rgba(247, 195, 219, 0.28);
}
.ambient-two {
  width: 210px;
  height: 210px;
  left: -100px;
  top: 760px;
  background: rgba(179, 221, 218, 0.3);
}
.desk {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin: auto;
  padding: 44px 26px 72px;
}
.topbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 30px;
}
.tiny-label,
.card-eyebrow {
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.17em;
  color: #926b81;
}
.brand-block h1 {
  font-family:
    Iowan Old Style,
    Baskerville,
    "Times New Roman",
    serif;
  font-size: clamp(50px, 7vw, 76px);
  line-height: 0.92;
  letter-spacing: -0.055em;
  margin: 9px 0 11px;
}
.brand-block p,
.section-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.title-bubble {
  font-size: 0.52em;
  vertical-align: top;
  margin-left: 8px;
  filter: drop-shadow(0 4px 5px rgba(117, 83, 105, 0.17));
}
.date-sticker {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 4px 10px;
  min-width: 280px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 19px;
  padding: 13px 46px 13px 15px;
  box-shadow:
    0 12px 30px rgba(83, 57, 75, 0.09),
    inset 0 0 0 1px var(--line);
  transform: rotate(1deg);
}
.date-sticker span {
  grid-row: 1/3;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
  background: var(--ink);
  color: white;
  padding: 7px 6px;
  border-radius: 8px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.date-sticker strong {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 17px;
}
.date-sticker i {
  position: absolute;
  right: 14px;
  font-style: normal;
  font-size: 22px;
}
.focus-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.55fr;
  gap: 22px;
  align-items: stretch;
}
.paper-card {
  position: relative;
  background: rgba(255, 253, 249, 0.93);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 22px 60px rgba(75, 53, 67, 0.11),
    inset 0 0 0 1px var(--line);
  border-radius: 28px;
}
.weather-card {
  padding: 28px;
  background: linear-gradient(145deg, rgba(255, 248, 252, 0.98), rgba(244, 236, 250, 0.94));
  overflow: visible;
  min-height: 300px;
  display: flex;
  flex-direction: column;
}
.tape {
  position: absolute;
  top: -12px;
  left: 50%;
  width: 90px;
  height: 28px;
  transform: translateX(-50%) rotate(-2deg);
  background: rgba(211, 190, 233, 0.58);
  border-left: 1px dashed rgba(125, 94, 146, 0.16);
  border-right: 1px dashed rgba(125, 94, 146, 0.16);
  box-shadow: 0 3px 7px rgba(91, 64, 78, 0.05);
}
.card-eyebrow {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card-eyebrow em {
  font-style: normal;
  font-size: 9px;
  color: #9a8795;
  letter-spacing: 0.12em;
}
.weather-main {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: auto 0;
}
.weather-icon {
  font-size: 68px;
  filter: drop-shadow(0 10px 13px rgba(95, 71, 85, 0.15));
}
.weather-main h2,
.stack-heading h2,
.section-heading h2 {
  font-family:
    Iowan Old Style,
    Baskerville,
    "Times New Roman",
    serif;
  letter-spacing: -0.025em;
}
.weather-main h2 {
  font-size: 34px;
  margin: 0 0 5px;
}
.weather-main p {
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  max-width: 170px;
  margin: 0;
}
.weather-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.weather-stats div {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 10px;
  text-align: center;
}
.weather-stats strong {
  display: block;
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 21px;
}
.weather-stats span {
  display: block;
  font-size: 9px;
  color: var(--muted);
  margin-top: 2px;
}
.today-card {
  padding: 26px 24px 24px 32px;
  overflow: hidden;
}
.spiral {
  position: absolute;
  left: 10px;
  top: 22px;
  bottom: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  color: #d2b9c8;
  font-size: 16px;
  letter-spacing: 0;
  writing-mode: vertical-rl;
}
.stack-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 9px;
}
.stack-heading h2 {
  font-size: 34px;
  margin: 3px 0 0;
}
.notebook-icon {
  position: relative;
  font-size: 42px;
  transform: rotate(4deg);
}
.notebook-icon small {
  position: absolute;
  right: -5px;
  top: -6px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #ef9cbd;
  color: white;
  font-size: 10px;
  font-weight: 900;
  border: 2px solid white;
}
.task-row {
  --course: #eee;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 110px;
  gap: 14px;
  align-items: center;
  position: relative;
  padding: 14px 14px;
  margin: 5px 0;
  border-radius: 18px;
  border: 1px solid transparent;
  transition:
    transform 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
}
.task-row:hover {
  transform: translateY(-1px);
  background: white;
  border-color: var(--line);
  box-shadow: 0 9px 22px rgba(71, 52, 64, 0.06);
}
.task-row.chem {
  --course: var(--chem);
}
.task-row.prog {
  --course: var(--prog);
}
.task-row.geo {
  --course: var(--geo);
}
.task-row.it {
  --course: var(--it);
}
.course-token {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--course);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.8),
    0 4px 10px rgba(80, 59, 72, 0.06);
  font-size: 18px;
}
.task-kicker {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  color: #857783;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 800;
}
.task-kicker i {
  font-style: normal;
  color: #c5b8c1;
}
.task-copy h3 {
  margin: 4px 0 0;
  font-size: 15px;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.detail-line,
.grace-line {
  font-size: 10px;
  color: var(--muted);
  margin: 5px 0 0;
  line-height: 1.4;
}
.detail-line span {
  font-weight: 850;
  color: #6b5865;
  text-transform: uppercase;
  font-size: 9px;
  letter-spacing: 0.06em;
}
.note-line {
  color: #685b67;
}
.grace-line {
  display: inline-block;
  color: #986278;
  background: #fff0f5;
  border: 1px dashed #e1b5c5;
  border-radius: 8px;
  padding: 4px 7px;
}
.grace-line span {
  font-weight: 900;
  text-transform: uppercase;
  font-size: 8px;
  letter-spacing: 0.07em;
  margin-right: 3px;
}
.due-block {
  text-align: right;
  border-left: 1px solid var(--line);
  padding-left: 12px;
}
.due-block small {
  display: block;
  font-size: 8px;
  letter-spacing: 0.15em;
  color: #9a8794;
  font-weight: 900;
}
.due-block strong {
  display: block;
  font-size: 12px;
  margin: 3px 0;
}
.due-block span {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 17px;
  font-weight: 700;
}
.type-badge {
  font-size: 8px;
  letter-spacing: 0.09em;
  padding: 4px 6px;
  border-radius: 999px;
}
.exam-badge {
  color: white;
  background: #554050;
}
.cutoff-badge {
  background: #fff0c8;
  color: #69552e;
}
.exam-row {
  background: linear-gradient(90deg, rgba(85, 64, 80, 0.06), transparent);
  box-shadow: inset 4px 0 #554050;
}
.cutoff-row {
  background: linear-gradient(90deg, rgba(255, 230, 165, 0.22), transparent);
  box-shadow: inset 4px 0 #ddbc62;
}
.compact {
  padding: 11px 10px;
}
.compact .course-token {
  width: 34px;
  height: 34px;
}
.next-section {
  margin-top: 44px;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 15px;
}
.section-heading h2 {
  font-size: 39px;
  margin: 3px 0 1px;
}
.section-heading h2 span {
  font-family: ui-rounded, sans-serif;
  font-size: 21px;
  color: #b27896;
}
.filter-tabs {
  display: flex;
  padding: 4px;
  background: rgba(255, 255, 255, 0.63);
  border: 1px solid rgba(255, 255, 255, 0.86);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px var(--line);
}
.filter-tabs button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: transparent;
  padding: 9px 15px;
  color: #756872;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.filter-tabs button.active {
  background: var(--ink);
  color: white;
  box-shadow: 0 5px 13px rgba(48, 40, 54, 0.2);
}
.filter-tabs button:focus-visible {
  outline: 3px solid #e8a9c5;
  outline-offset: 2px;
}
.next-paper {
  padding: 20px 24px 20px 38px;
  background: repeating-linear-gradient(to bottom, rgba(255, 253, 249, 0.96) 0, rgba(255, 253, 249, 0.96) 45px, rgba(168, 192, 205, 0.13) 46px);
  overflow: hidden;
}
.margin-line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 30px;
  border-left: 1px solid rgba(230, 143, 166, 0.35);
}
.next-paper .task-row {
  margin: 2px 0;
  background-color: rgba(255, 253, 249, 0.7);
}
.next-paper .task-row:hover {
  background-color: white;
}
.empty-state {
  min-height: 145px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--muted);
}
.empty-state > span {
  font-size: 24px;
  color: #d6a7bd;
}
.empty-state strong {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 19px;
  color: var(--ink);
}
.empty-state p {
  margin: 4px 0 0;
  font-size: 11px;
}
.courses-section {
  margin-top: 42px;
}
.compact-heading {
  align-items: end;
}
.compact-heading p {
  padding-bottom: 5px;
}
.course-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 8px 4px;
}
.course-card {
  --course: #eee;
  position: relative;
  min-height: 175px;
  padding: 23px 20px 18px;
  border-radius: 14px 14px 24px 14px;
  background: var(--course);
  box-shadow:
    0 14px 25px rgba(65, 49, 58, 0.09),
    inset 0 0 0 1px rgba(255, 255, 255, 0.66);
  transition: transform 0.2s ease !important;
  border: 0;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.course-card:focus-visible { outline: 4px solid #9d7890; outline-offset: 4px; }
.course-card.selected { box-shadow: 0 18px 34px rgba(65,49,58,.18), inset 0 0 0 4px rgba(78,57,70,.34); }
.course-card:hover {
  transform: rotate(0deg) translateY(-4px) !important;
}
.course-card.chem {
  --course: var(--chem);
}
.course-card.prog {
  --course: var(--prog);
}
.course-card.geo {
  --course: var(--geo);
}
.course-card.it {
  --course: var(--it);
}
.course-tab {
  position: absolute;
  right: 14px;
  top: -12px;
  border-radius: 9px 9px 0 0;
  background: color-mix(in srgb, var(--course), #7e6172 12%);
  padding: 6px 11px;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.course-emoji {
  font-size: 33px;
  margin-bottom: 19px;
}
.course-card h3 {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 19px;
  margin: 0 0 5px;
}
.course-card p {
  font-size: 10px;
  color: #6f636b;
  margin: 0;
}
.course-card i {
  position: absolute;
  right: 16px;
  bottom: 12px;
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 25px;
  font-style: italic;
  color: rgba(67, 50, 61, 0.18);
}
footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid rgba(90, 64, 79, 0.1);
  margin-top: 46px;
  padding-top: 18px;
  color: #9a8c96;
  font-size: 9px;
  letter-spacing: 0.04em;
}
footer b {
  color: #6d5a67;
}
@media (max-width: 850px) {
  .focus-grid {
    grid-template-columns: 1fr;
  }
  .course-grid {
    grid-template-columns: 1fr 1fr;
  }
  .topbar {
    align-items: flex-start;
  }
  .date-sticker {
    min-width: 245px;
  }
  .weather-card {
    min-height: 260px;
  }
  .today-card {
    min-height: 280px;
  }
}
@media (max-width: 620px) {
  .desk {
    padding: 28px 14px 50px;
  }
  .topbar {
    display: block;
    margin-bottom: 23px;
  }
  .brand-block h1 {
    font-size: 54px;
  }
  .brand-block p {
    font-size: 12px;
  }
  .date-sticker {
    margin-top: 20px;
    min-width: 0;
    width: 100%;
    transform: none;
  }
  .focus-grid {
    gap: 15px;
  }
  .paper-card {
    border-radius: 23px;
  }
  .weather-card {
    padding: 24px 20px;
  }
  .weather-main {
    gap: 13px;
  }
  .weather-icon {
    font-size: 54px;
  }
  .weather-main h2 {
    font-size: 29px;
  }
  .weather-stats div {
    padding: 9px 5px;
  }
  .today-card {
    padding: 23px 13px 19px 24px;
  }
  .stack-heading h2 {
    font-size: 29px;
  }
  .task-row,
  .compact {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 12px 7px;
  }
  .due-block {
    grid-column: 2;
    text-align: left;
    border-left: 0;
    padding: 0;
    display: flex;
    gap: 6px;
    align-items: baseline;
  }
  .due-block small {
    display: inline;
  }
  .due-block strong {
    display: inline;
  }
  .due-block span {
    font-size: 15px;
  }
  .detail-line,
  .grace-line {
    font-size: 9px;
  }
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .section-heading h2 {
    font-size: 35px;
  }
  .filter-tabs {
    width: 100%;
  }
  .filter-tabs button {
    flex: 1;
  }
  .next-paper {
    padding: 13px 10px 13px 20px;
  }
  .margin-line {
    left: 16px;
  }
  .course-grid {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 8px 8px;
  }
  .course-card {
    min-height: 145px;
  }
  .compact-heading {
    align-items: flex-start;
  }
  .compact-heading p {
    padding: 0;
  }
  footer {
    flex-direction: column;
    text-align: center;
  }
  .task-kicker {
    gap: 4px;
  }
  .type-badge {
    width: max-content;
  }
  .exam-row,
  .cutoff-row {
    box-shadow: inset 3px 0 #554050;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.functional-topbar {
  align-items: center;
}
.desk-actions {
  display: grid;
  grid-template-columns: auto auto;
  gap: 8px;
  justify-items: end;
}
.desk-actions > button,
.modal-actions button,
.import-button {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.78);
  border-radius: 999px;
  padding: 9px 13px;
  color: var(--ink);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(74, 52, 66, 0.06);
}
.desk-actions .date-sticker {
  grid-column: 1/3;
}
.task-row {
  grid-template-columns: 26px 40px minmax(0, 1fr) 110px 24px;
}
.complete-control {
  display: grid;
  place-items: center;
  cursor: pointer;
}
.complete-control input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.complete-control span {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1.5px solid #c8b6c1;
  background: #fff;
  color: transparent;
  font-size: 12px;
  font-weight: 950;
  transition: 0.18s;
}
.complete-control input:focus-visible + span {
  outline: 3px solid #e8a9c5;
  outline-offset: 2px;
}
.complete-control input:checked + span {
  background: #75606d;
  border-color: #75606d;
  color: #fff;
  box-shadow: 0 4px 10px rgba(75, 54, 66, 0.18);
}
.task-row.is-complete {
  opacity: 0.53;
  filter: saturate(0.58);
}
.task-row.is-complete h3 {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.task-row.is-complete:hover {
  opacity: 0.72;
}
.remove-task {
  border: 0;
  background: transparent;
  color: #baaab4;
  font-size: 18px;
  cursor: pointer;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  line-height: 1;
}
.remove-task:hover {
  background: #fff0f4;
  color: #9b5e76;
}
.imported-badge {
  background: #e5f1ee;
  color: #4f746c;
}
.task-row.custom {
  --course: #f6e5c9;
}
.notice {
  margin: -12px 0 22px;
  background: #fff8d9;
  border: 1px solid #ead99d;
  border-radius: 14px;
  padding: 10px 14px;
  color: #705e2f;
  font-size: 11px;
  font-weight: 700;
}
.modal-backdrop {
  position: fixed;
  z-index: 30;
  inset: 0;
  background: rgba(49, 38, 46, 0.38);
  backdrop-filter: blur(7px);
  display: grid;
  place-items: center;
  padding: 18px;
}
.modal-card {
  width: min(590px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: #fffafc;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 28px;
  padding: 24px;
  box-shadow: 0 28px 90px rgba(47, 35, 44, 0.28);
}
.modal-card.wide {
  width: min(960px, 100%);
}
.modal-card > header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}
.modal-card > header h2 {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 31px;
  margin: 3px 0 0;
}
.icon-button {
  border: 0;
  background: #f4e9ef;
  color: #765d6c;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.desk-form,
.import-intro {
  display: grid;
  gap: 14px;
}
.desk-form label,
.import-intro label {
  display: grid;
  gap: 6px;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.04em;
  color: #766470;
}
.desk-form input,
.desk-form select,
.desk-form textarea,
.import-intro input,
.import-intro select,
.review-row input,
.review-row select {
  width: 100%;
  border: 1px solid #e5d7df;
  background: white;
  color: var(--ink);
  border-radius: 12px;
  padding: 11px 12px;
  font: inherit;
  font-size: 12px;
  outline: none;
}
.desk-form input:focus,
.desk-form select:focus,
.desk-form textarea:focus,
.import-intro input:focus,
.import-intro select:focus,
.review-row input:focus,
.review-row select:focus {
  border-color: #d69ab5;
  box-shadow: 0 0 0 3px rgba(227, 164, 193, 0.17);
}
.desk-form textarea {
  min-height: 82px;
  resize: vertical;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.desk-form .check-line {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px dashed #e4bdcc;
  background: #fff2f7;
  border-radius: 13px;
  padding: 11px;
}
.desk-form .check-line input {
  width: auto;
}
.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
}
.modal-actions button.primary,
.import-button.primary {
  background: var(--ink);
  color: white;
}
.modal-actions button:disabled,
.import-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.import-intro > p {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}
.import-button {
  justify-self: start;
}
.form-error {
  background: #fff0f1;
  border: 1px solid #efc5ca;
  color: #8d4f57;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 11px;
}
.import-review {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.review-heading {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}
.review-heading strong {
  font-family:
    Iowan Old Style,
    Baskerville,
    serif;
  font-size: 18px;
}
.review-heading span {
  font-size: 10px;
  color: var(--muted);
}
.review-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 32px;
  gap: 7px;
  margin-bottom: 7px;
  align-items: center;
}
.review-row .icon-button {
  font-size: 17px;
}
.modal-card::-webkit-scrollbar {
  width: 9px;
}
.modal-card::-webkit-scrollbar-thumb {
  background: #d9c5d0;
  border-radius: 999px;
  border: 2px solid #fffafc;
}
@media (max-width: 850px) {
  .functional-topbar {
    align-items: flex-start;
  }
  .desk-actions {
    width: min(100%, 420px);
  }
}
@media (max-width: 620px) {
  .functional-topbar {
    display: block;
  }
  .desk-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: stretch;
    margin-top: 18px;
  }
  .desk-actions > button {
    text-align: center;
  }
  .desk-actions .date-sticker {
    margin-top: 2px;
  }
  .task-row,
  .compact {
    grid-template-columns: 24px 34px minmax(0, 1fr) 22px;
  }
  .task-copy {
    min-width: 0;
  }
  .due-block {
    grid-column: 3;
  }
  .remove-task {
    grid-column: 4;
    grid-row: 1/3;
  }
  .complete-control {
    align-self: start;
    margin-top: 7px;
  }
  .course-token {
    align-self: start;
  }
  .form-grid,
  .review-row {
    grid-template-columns: 1fr;
  }
  .review-row {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 9px;
  }
  .review-row .icon-button {
    justify-self: end;
  }
  .review-heading {
    display: block;
  }
  .review-heading span {
    display: block;
    margin-top: 3px;
  }
  .modal-card {
    padding: 20px 16px;
    border-radius: 22px;
  }
  .modal-actions {
    position: sticky;
    bottom: -24px;
    background: #fffafc;
    padding: 12px 0 4px;
  }
}

.task-row.status-complete {
  opacity: 0.53;
  filter: saturate(0.58);
}
.task-row.status-complete h3 {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.task-row.status-complete:hover {
  opacity: 0.72;
}
.task-row.status-late {
  box-shadow: inset 4px 0 #d39b45;
  background-color: rgba(255, 240, 205, 0.4);
}
.task-row.status-not-submitted {
  box-shadow: inset 4px 0 #b66e7b;
  background-color: rgba(252, 225, 231, 0.42);
}
.status-control {
  appearance: none;
  width: max-content;
  max-width: 100%;
  margin-top: 7px;
  border: 1px solid #dfd2da;
  border-radius: 999px;
  padding: 4px 25px 4px 8px;
  background-color: #fff;
  background-image: linear-gradient(45deg, transparent 50%, #8d7d87 50%), linear-gradient(135deg, #8d7d87 50%, transparent 50%);
  background-position:
    calc(100% - 12px) 50%,
    calc(100% - 8px) 50%;
  background-size:
    4px 4px,
    4px 4px;
  background-repeat: no-repeat;
  color: #756771;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.03em;
  cursor: pointer;
}
.status-control.status-complete {
  background-color: #e8f1ed;
  color: #4d7162;
  border-color: #c7ddd2;
}
.status-control.status-late {
  background-color: #fff0cc;
  color: #8b631f;
  border-color: #ead092;
}
.status-control.status-not-submitted {
  background-color: #fbe2e7;
  color: #8c4c59;
  border-color: #e5b8c1;
}

/* Bubbles V1 quiz + in-place editing patch */
.weather-stats {
  grid-template-columns: repeat(4, 1fr);
}
.task-row {
  grid-template-columns: 26px 40px minmax(0, 1fr) 110px 24px 24px;
}
.remove-task,
.edit-task {
  border: 0;
  background: transparent;
  color: #baaab4;
  font-size: 18px;
  cursor: pointer;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  line-height: 1;
}
.edit-task {
  font-size: 14px;
  color: #846d7b;
}
.edit-task:hover {
  background: #f4e9ef;
  color: #634c5a;
}
.quiz-badge {
  background: #e8dcf5;
  color: #694d7e;
}
.quiz-row {
  box-shadow: inset 4px 0 #aa86c5;
  background: linear-gradient(90deg, rgba(207, 185, 229, 0.14), transparent);
}

/* Keep unlabelled past-due work on the front of the desk. */
.assignment-access {
  display: grid;
  justify-items: start;
  gap: 5px;
  margin-top: 10px;
}
.assignment-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #adc5e0;
  border-radius: 12px;
  background: #edf4fd;
  color: #274675;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.assignment-link:hover {
  background: #dce9fb;
  border-color: #4166a5;
}
.assignment-link:focus-visible {
  outline: 3px solid #4166a5;
  outline-offset: 3px;
}
.assignment-link-hint {
  color: #695f6b;
  font-size: 0.75rem;
  line-height: 1.5;
}
.desk-stacks {
  display: grid;
  gap: 22px;
  min-width: 0;
}
.due-soon-alert {
  margin-bottom: 24px;
  padding: 0;
  overflow: hidden;
  border: 2px solid #c98c23;
  color: #65410c;
  background: #fff8e7;
}
.due-soon-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  background: #ffe4ad;
}
.due-soon-heading h2 {
  margin: 7px 0 0;
  font-family: Iowan Old Style, Baskerville, serif;
  font-size: 1.625rem;
  line-height: 1.25;
}
.due-soon-count {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 1.375rem;
}
.due-soon-list {
  list-style: none;
  margin: 0;
  padding: 0 22px;
  max-height: 20rem;
  overflow-y: auto;
}
.due-soon-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 24px;
  padding: 16px 0;
  border-top: 1px solid #ecd29e;
}
.due-soon-list li:first-child { border-top: 0; }
.due-soon-list:focus-visible { outline: 3px solid #9f6818; outline-offset: -3px; }
.due-soon-list li > div { min-width: 0; overflow-wrap: anywhere; }
.due-soon-list li span { display: block; margin-bottom: 4px; font-size: 0.875rem; }
.due-soon-list li strong { display: block; font-size: 1rem; line-height: 1.4; }
.due-soon-list time { font-size: 0.9375rem; font-weight: 750; line-height: 1.5; }
.due-soon-clear { border-color: #c9d3e4; color: #385074; background: #f4f7fc; }
.due-soon-clear .due-soon-heading { background: #e8eef8; }
.due-soon-empty { margin: 0; padding: 16px 22px; font-size: 1rem; line-height: 1.5; }
@media (max-width: 620px) {
  .due-soon-heading { padding: 16px; }
  .due-soon-heading h2 { font-size: 1.375rem; }
  .due-soon-list { padding: 0 16px; }
  .due-soon-list li { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .due-soon-empty { padding: 14px 16px; }
}
.focus-grid > .weather-card {
  align-self: start;
}
.today-card {
  padding: 0;
  --stack-row-border: #c5d6ec;
  border: 2px solid #4166a5;
  background: #f1f6fc;
  box-shadow: 0 18px 45px rgba(43, 78, 128, 0.15);
}
.today-stack-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 25px 24px;
  color: #fff;
  background: linear-gradient(115deg, #274675, #4166a5);
}
.today-stack-heading h2 {
  margin: 6px 0 0;
  font-family: Iowan Old Style, Baskerville, serif;
  font-size: clamp(1.75rem, 3vw, 2.125rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
}
.today-stack-heading h2 span {
  font-size: 1.375rem;
}
.today-stack-summary {
  padding: 16px 20px;
  border-bottom: 1px solid #c5d6ec;
  color: #274675;
  font-size: 0.875rem;
}
.today-stack-summary > div:first-child {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 10px;
}
.today-progress {
  height: 8px;
  overflow: hidden;
  background: #d6e3f3;
  border-radius: 999px;
}
.today-progress [data-slot="progress-indicator"] {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #4166a5;
}
.today-list {
  padding: 6px 12px 16px;
}
.today-card .due-block {
  padding: 10px 8px;
  border: 1px solid #c5d6ec;
  border-radius: 12px;
  background: #edf4fd;
  color: #274675;
  text-align: center;
}
.today-card .due-block small {
  color: #3e608e;
}
.today-card .due-block span {
  font-size: 1.25rem;
  line-height: 1.3;
}
.today-card .status-control.status-pending {
  color: #2b517c;
  border-color: #b7cce3;
}
.still-on-desk {
  --stack-row-border: #e9d0db;
  overflow: hidden;
  background: #fff5f9;
  border: 2px solid #b42d68;
  box-shadow: 0 18px 45px rgba(149, 33, 84, 0.16);
}
.still-on-desk-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 23px 24px;
  background: linear-gradient(115deg, #922653, #b32c68);
  color: #fff;
}
.stack-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.still-on-desk-heading h2 {
  margin: 6px 0;
  font-family: Iowan Old Style, Baskerville, serif;
  font-size: clamp(1.75rem, 3vw, 2.125rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
}
.still-on-desk-heading h2 span {
  font-size: 1.375rem;
}
.still-on-desk-heading p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}
.stack-count {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  min-width: 52px;
  min-height: 52px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  font-size: 1.5rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.stack-summary {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 14px 20px;
  border-bottom: 1px solid #e7c1d1;
  color: #762348;
  font-size: 0.875rem;
}
.still-on-desk-list {
  max-height: 32rem;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  padding: 6px 12px 12px;
  scrollbar-color: #b32c68 #f6dce7;
  scrollbar-width: thin;
}
.still-on-desk-list:focus-visible {
  outline: 3px solid #922653;
  outline-offset: -4px;
}
.still-on-desk .task-row,
.today-card .task-row {
  grid-template-columns: 26px 34px minmax(0, 1fr) 94px 32px 32px;
  gap: 8px;
  margin: 6px 0 0;
  padding: 16px 10px;
  border: 1px solid var(--stack-row-border);
  border-radius: 16px;
  background: #fff;
}
.still-on-desk .task-copy,
.today-card .task-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}
.still-on-desk .task-copy h3,
.today-card .task-copy h3 {
  font-size: 1rem;
  line-height: 1.4;
}
.still-on-desk .task-kicker,
.still-on-desk .detail-line,
.still-on-desk .status-control,
.still-on-desk .due-block strong,
.today-card .task-kicker,
.today-card .detail-line,
.today-card .status-control,
.today-card .due-block strong {
  font-size: 0.875rem;
}
.still-on-desk .task-kicker,
.today-card .task-kicker {
  flex-wrap: wrap;
  line-height: 1.4;
  letter-spacing: 0;
}
.still-on-desk .type-badge,
.still-on-desk .due-block small,
.still-on-desk .detail-line span,
.today-card .type-badge,
.today-card .due-block small,
.today-card .detail-line span {
  font-size: 0.75rem;
}
.still-on-desk .status-control,
.today-card .status-control {
  margin-top: 10px;
  padding: 8px 26px 8px 10px;
  min-height: 36px;
  color: #624553;
}
.still-on-desk .edit-task,
.still-on-desk .remove-task,
.today-card .edit-task,
.today-card .remove-task {
  width: 32px;
  height: 36px;
}
.stack-deadline {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.grace-active {
  background: #ffefc2;
  border: 1px solid #d6ab45;
  color: #674500;
}
.grace-urgent {
  background: #ffe1de;
  border: 1px solid #d68580;
  color: #8a2525;
}
.grace-ended {
  background: #f4edf1;
  border: 1px solid #dfd1d8;
  color: #725967;
}
.stack-empty {
  padding: 26px 22px;
  color: #6b3a51;
  font-size: 1rem;
  line-height: 1.5;
}
.stack-empty p {
  margin: 6px 0 0;
  font-size: 0.875rem;
}
@media (max-width: 620px) {
  .task-row,
  .compact {
    grid-template-columns: 24px 34px minmax(0, 1fr) 22px 22px;
  }
  .edit-task {
    grid-column: 4;
    grid-row: 1;
  }
  .remove-task {
    grid-column: 5;
    grid-row: 1;
  }
  .due-block {
    grid-column: 3;
  }
  .weather-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .still-on-desk-heading {
    padding: 20px 16px;
    align-items: start;
    gap: 10px;
  }
  .today-stack-heading {
    padding: 22px 16px;
    align-items: start;
    gap: 10px;
  }
  .today-stack-summary {
    padding: 14px 16px;
  }
  .today-list {
    padding: 4px 8px 12px;
  }
  .stack-count {
    min-width: 42px;
    min-height: 42px;
    font-size: 1.25rem;
  }
  .stack-summary {
    padding: 12px 16px;
  }
  .still-on-desk-list {
    padding: 4px 8px 8px;
  }
  .still-on-desk .task-row,
  .today-card .task-row {
    grid-template-columns: 24px 30px minmax(0, 1fr) 26px 26px;
    gap: 6px;
    padding: 12px 8px;
  }
  .still-on-desk .edit-task,
  .still-on-desk .remove-task,
  .today-card .edit-task,
  .today-card .remove-task {
    width: 26px;
  }
  .still-on-desk .due-block {
    text-align: left;
    padding-left: 0;
    border-left: 0;
  }
  .stack-deadline {
    padding: 8px;
  }
  .today-card .due-block {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    padding: 8px 10px;
    text-align: left;
  }
}

/* V2 academic performance: the established desk keeps its existing layout. */
.workspace-pane[hidden] { display: none !important; }
.workspace-nav { display: flex; gap: 8px; flex-wrap: wrap; margin: -4px 0 25px; padding: 6px; width: fit-content; border: 1px solid #dbcbdc; border-radius: 17px; background: #fff9fdc9; }
.workspace-nav a { color: #67455f; padding: 11px 19px; text-decoration: none; border-radius: 12px; font-size: 14px; font-weight: 800; }
.workspace-nav a[aria-current="page"] { color: #fff; background: #734b79; box-shadow: 0 3px 8px #62466c22; }
.grades-desk { max-width: 1520px; }
.grades-workspace { color: #46354c; --grade-border: #e2d5e5; --grade-muted: #745d7b; }
.grades-workspace button, .grade-report-dialog button { border: 1px solid #d4c2da; background: #fff; color: #603c6b; border-radius: 9px; padding: 9px 13px; font-weight: 750; font-size: 12px; cursor: pointer; }
.grades-workspace button:disabled { opacity: .48; cursor: default; }
.grades-workspace button:hover:not(:disabled) { border-color: #876190; box-shadow: 0 3px 8px #6d4c7b14; }
.grades-workspace .grade-primary, .grade-report-dialog .grade-primary { color: #fff; background: #704b7d; border-color: #704b7d; }
.grades-workspace :focus-visible, .workspace-nav :focus-visible { outline: 3px solid #9c71b8; outline-offset: 3px; }
.grade-page-heading, .grade-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.grade-page-heading { margin: 28px 0 14px; }
.grade-page-heading h2 { font-family: Iowan Old Style, Baskerville, Georgia, serif; font-size: clamp(31px, 4vw, 45px); letter-spacing: -.035em; margin: 5px 0 8px; }
.grade-page-heading h2 span { color: #c18d52; font-size: 31px; }
.grade-page-heading p, .grade-section-heading p { color: var(--grade-muted); font-size: 13px; margin: 5px 0; }
.grade-save-status { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; color: #38685c; font-size: 12px; margin-bottom: 18px; min-height: 28px; }
.grade-save-status>span:before { content: "●"; margin-right: 7px; font-size: 9px; }
.grade-save-error { color: #a12f58; background: #fff1f5; padding: 10px 14px; border-radius: 10px; }
.grade-course-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.grades-workspace .grade-course-card { display: flex; align-items: flex-start; flex-direction: column; text-align: left; padding: 21px; border: 2px solid transparent; border-radius: 19px; background: #fff; box-shadow: 0 7px 19px #49315309; min-height: 222px; }
.grades-workspace .grade-course-card.selected { border-color: #775381; }
.grades-workspace .grade-chem { background: #fff3eb; }
.grades-workspace .grade-prog { background: #eff4ff; }
.grades-workspace .grade-geo { background: #eef8f1; }
.grades-workspace .grade-it { background: #f5edfc; }
.grade-card-name { font-size: 13px; font-weight: 800; min-height: 33px; }
.grade-course-card>strong { font-size: 35px; letter-spacing: -.04em; font-weight: 850; margin: 5px 0; }
.grade-card-source { font-size: 11px; color: #705d73; line-height: 1.5; min-height: 32px; }
.grade-card-target { font-size: 12px; font-weight: 800; margin: 12px 0 8px; }
.grade-card-foot { font-size: 10px; color: #735b7a; margin-top: 6px; }
.grades-workspace progress { display: block; width: 100%; height: 7px; accent-color: #9371a1; border: 0; border-radius: 5px; background: #dcccdf; overflow: hidden; }
.grades-workspace progress::-webkit-progress-bar { background: #dcccdf; border-radius: 5px; }
.grades-workspace progress::-webkit-progress-value { background: #9371a1; border-radius: 5px; }
.grade-study { padding: 23px 26px; margin: 22px 0; border: 1px solid #d4c5df; background: #f9f5ff; }
.grade-study.is-on { border-color: #9c80b4; background: #f3ecfc; }
.grade-section-heading h3 { font-size: 24px; margin: 5px 0 9px; letter-spacing: -.025em; }
.study-toggle { display: flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.study-toggle input { appearance: none; width: 43px; height: 25px; border-radius: 16px; background: #d3c2db; border: 2px solid #c1a9cb; position: relative; cursor: pointer; }
.study-toggle input:before { content: ""; position: absolute; width: 17px; height: 17px; background: white; border-radius: 50%; left: 2px; top: 2px; }
.study-toggle input:checked { background: #7b568d; border-color: #7b568d; }
.study-toggle input:checked:before { left: 20px; }
.grade-study-queue { padding: 0; margin: 20px 0 0; list-style: none; display: grid; gap: 8px; }
.grade-study-queue li { display: grid; grid-template-columns: 32px minmax(0, 1fr) 190px auto; gap: 14px; align-items: center; background: #ffffffcf; border-radius: 12px; padding: 14px; }
.study-rank { display: grid; place-items: center; width: 29px; height: 29px; background: #e4d6ef; color: #69417d; border-radius: 50%; font-size: 12px; }
.grade-study-queue strong, .grade-study-queue small, .grade-study-queue span { display: block; }
.grade-study-queue strong { font-size: 13px; margin: 2px 0 5px; }
.grade-study-queue small, .grade-study-queue span, .grade-study-queue time { font-size: 11px; color: #755b81; }
.grade-detail { padding: 28px; background: #fffdff; border: 1px solid #e6d9e8; }
.grades-workspace input:not([type="checkbox"]), .grades-workspace select, .grades-workspace textarea { color: #49384e; background: #fff; border: 1px solid #d9cddf; border-radius: 7px; padding: 8px 9px; min-height: 35px; font: inherit; font-size: 12px; max-width: 100%; }
.grades-workspace input:disabled, .grades-workspace select:disabled { color: #8e7a95; background: #f3eff5; }
.grades-workspace input[readonly] { border-color: transparent; background: transparent; font-weight: 800; padding-left: 0; }
.grades-workspace .grade-number { width: 96px; font-variant-numeric: tabular-nums; }
.grade-course-select { display: grid; gap: 4px; font-size: 10px; font-weight: 800; color: #7b6482; }
.grade-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin: 19px 0; }
.grade-metrics>div { border: 1px solid #e4dae8; border-radius: 13px; padding: 17px; background: #faf7fc; }
.grade-metrics span, .grade-metrics small { display: block; font-size: 11px; color: #7b6483; line-height: 1.5; }
.grade-metrics strong { display: block; font-size: clamp(20px, 2.5vw, 29px); letter-spacing: -.03em; margin: 7px 0; }
.grade-progress-line { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 10px 0 15px; }
.grade-progress-line label { font-size: 11px; color: #745c7c; }
.grade-progress-line progress { margin: 9px 0 7px; }
.grade-definition { font-size: 11px; color: #7e6885; line-height: 1.65; }
.grade-check { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #65516d; margin: 12px 0; }
.grades-workspace input[type="checkbox"] { accent-color: #825991; width: 15px; height: 15px; }
.grade-settings, .grade-reported, .grade-bonus { border: 1px solid #e4d8e9; border-radius: 11px; margin: 15px 0; padding: 14px 17px; background: #fcf9fd; }
.grades-workspace summary { cursor: pointer; font-size: 13px; font-weight: 800; }
.grades-workspace summary>span { color: #8b6d98; font-weight: 500; margin-left: 10px; }
.grade-settings p, .grade-reported p, .grade-bonus p { color: #7f6986; font-size: 11px; line-height: 1.7; }
.grade-table-scroll { overflow: auto; max-width: 100%; border: 1px solid #e2d6e7; border-radius: 10px; margin: 14px 0; scrollbar-width: thin; scrollbar-color: #b899c5 #f6eff9; }
.grades-workspace table { border-collapse: separate; border-spacing: 0; text-align: left; width: 100%; font-size: 12px; }
.grades-workspace th { font-size: 10px; letter-spacing: .02em; color: #74527e; background: #f0e8f5; padding: 13px 10px; font-weight: 800; white-space: nowrap; position: sticky; top: 0; z-index: 2; }
.grades-workspace td { padding: 11px 10px; border-bottom: 1px solid #eee6f1; vertical-align: top; }
.grades-workspace tr:last-child td { border-bottom: none; }
.grade-category-table { min-width: 980px; }
.grade-setting-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; margin: 17px 0; }
.grade-setting-grid label { display: grid; align-content: start; gap: 7px; font-size: 12px; }
.grade-letter-scale { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 17px 0 4px; }
.grade-letter-scale>strong { font-size: 12px; }
.grade-letter-scale label:not(.grade-check) { font-size: 11px; display: grid; gap: 4px; }
.grade-letter-scale .grade-number { width: 66px; }
.grade-goal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 25px 0; }
.grade-planner, .grade-scenarios { border-radius: 15px; padding: 22px; background: #f4f8f5; border: 1px solid #d5e3d7; }
.grade-scenarios { background: #fcf6ec; border-color: #eadbc7; }
.grades-workspace h4 { font-size: 19px; margin: 7px 0 13px; }
.grade-planner p, .grade-scenarios p { font-size: 11px; color: #736c73; line-height: 1.65; }
.target-input { display: flex; align-items: center; gap: 13px; font-size: 13px; font-weight: 800; }
.grade-planner dl { margin: 14px 0; }
.grade-planner dl>div { display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid #dbe7dd; padding: 11px 0; font-size: 11px; }
.grade-planner dt { color: #667669; }
.grade-planner dd { margin: 0; font-weight: 800; text-align: right; max-width: 55%; }
.scenario-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.scenario-card { background: #fffcf7; border: 1px solid #eadbc6; padding: 14px; border-radius: 11px; }
.scenario-card label { display: grid; gap: 8px; font-size: 11px; }
.scenario-card strong { display: block; font-size: 27px; letter-spacing: -.03em; margin: 16px 0 4px; }
.scenario-card small { font-size: 10px; color: #85745e; }
.grade-validation, .grade-notice { background: #fff5e7; border: 1px solid #ead3ae; border-radius: 10px; padding: 15px 18px; margin: 18px 0; font-size: 12px; color: #795529; }
.grade-validation ul { padding-left: 19px; font-size: 11px; line-height: 1.8; margin: 13px 0 0; max-height: 180px; overflow: auto; }
.grade-entry-heading { margin-top: 30px; }
.grade-entry-heading h4 { margin-bottom: 7px; }
.grade-table-filters { display: flex; align-items: flex-end; gap: 15px; margin-top: 19px; flex-wrap: wrap; }
.grade-table-filters label { display: grid; gap: 5px; font-size: 11px; }
.grade-table-filters label:first-child { flex: 1; min-width: 220px; }
.grade-table-filters>span { font-size: 10px; color: #826e88; max-width: 300px; line-height: 1.6; }
.grade-entry-scroll { max-height: 610px; }
.grade-entry-table { min-width: 1630px; table-layout: fixed; }
.grade-entry-table th:first-child, .grade-entry-table td:first-child { width: 275px; position: sticky; left: 0; z-index: 1; background: #fffdff; box-shadow: 4px 0 7px #704a8009; }
.grade-entry-table th:first-child { background: #f0e8f5; z-index: 3; }
.grade-entry-table th:nth-child(2), .grade-entry-table td:nth-child(2) { width: 175px; }
.grade-entry-table th:nth-child(3), .grade-entry-table td:nth-child(3) { width: 190px; }
.grade-entry-table th:nth-child(4), .grade-entry-table td:nth-child(4) { width: 100px; }
.grade-entry-table th:last-child, .grade-entry-table td:last-child { width: 225px; }
.grade-entry-table input:not([type="checkbox"]), .grade-entry-table select, .grade-entry-table textarea { width: 100%; }
.grade-entry-table small { display: block; color: #836a8d; font-size: 10px; line-height: 1.6; margin: 4px 0; }
.grade-entry-table textarea { min-height: 68px; resize: vertical; }
.grade-row-missed td { background: #fff2f5; }
.grade-entry-table .grade-row-missed td:first-child { background: #fff2f5; }
.grade-row-excused td { opacity: .6; }
.grade-bonus table { min-width: 1100px; }
.grade-impact { margin-top: 25px; }
.grade-impact>p { color: #7f6988; font-size: 11px; }
.grade-impact ul { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 20px; list-style: none; padding: 0; }
.grade-impact li { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid #e8dfec; padding: 13px 0; }
.grade-impact strong { font-size: 12px; }
.grade-impact small { display: block; font-size: 10px; color: #826a8b; margin-top: 4px; }
.grade-impact li>span { font-size: 11px; text-align: right; color: #765381; min-width: 110px; }
.grade-report-backdrop { position: fixed; z-index: 100; inset: 0; background: #2c2038a8; overflow: auto; padding: 30px 18px; }
.grade-report-dialog { max-width: 860px; margin: 0 auto; }
.grade-report-actions { display: flex; gap: 10px; justify-content: flex-end; background: #faf4ff; padding: 13px; border-radius: 12px 12px 0 0; position: sticky; top: -30px; z-index: 2; }
.academic-report { background: white; padding: 36px 43px; color: #35263d; min-height: 980px; box-shadow: 0 5px 35px #170f2e44; }
.academic-report header>span { font-size: 10px; letter-spacing: .17em; font-weight: 800; color: #81618e; }
.academic-report h2 { font-size: 32px; font-family: Georgia, serif; margin: 8px 0; letter-spacing: -.03em; }
.academic-report header p { margin: 0 0 8px; font-size: 12px; }
.academic-report header small { font-size: 10px; color: #7d6885; }
.academic-report-courses { margin-top: 22px; }
.academic-report-courses>section { padding: 13px 0; border-top: 1px solid #ddd0e2; }
.academic-report h3 { font-size: 16px; margin: 0 0 10px; }
.report-course-metrics { display: grid; grid-template-columns: 1.2fr .65fr 1.4fr; gap: 12px; margin-bottom: 9px; }
.report-course-metrics span { font-size: 9px; color: #7d6387; }
.report-course-metrics strong { display: block; font-size: 12px; margin-top: 3px; color: #493055; }
.academic-report-courses p, .academic-report footer p { font-size: 10px; line-height: 1.55; margin: 5px 0; }
.academic-report footer { display: block; margin-top: 12px; padding: 15px 0 0; border-top: 2px solid #9878a7; color: #594364; }
.academic-report footer strong { font-size: 12px; }
.academic-report footer small { display: block; font-size: 9px; line-height: 1.5; margin-top: 10px; }
@media (max-width: 1050px) {
  .grade-course-grid, .grade-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grade-goal-grid { grid-template-columns: 1fr; }
  .grade-study-queue li { grid-template-columns: 30px minmax(0, 1fr) 160px; }
  .grade-study-queue li button { grid-column: 2 / -1; justify-self: start; }
  .grade-impact ul { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .workspace-nav { width: 100%; }
  .workspace-nav a { flex: 1; text-align: center; padding: 11px 7px; font-size: 12px; }
  .grade-page-heading, .grade-section-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .grade-page-heading>.grade-primary { width: 100%; }
  .grade-course-grid { gap: 9px; }
  .grades-workspace .grade-course-card { padding: 14px 11px; min-height: 225px; }
  .grade-course-card>strong { font-size: 27px; }
  .grade-card-name { font-size: 11px; }
  .grade-card-source { font-size: 10px; }
  .grade-detail, .grade-study { padding: 18px 13px; }
  .grade-metrics { gap: 8px; }
  .grade-metrics>div { padding: 12px 10px; }
  .grade-metrics strong { font-size: 22px; }
  .grade-progress-line, .grade-setting-grid { grid-template-columns: 1fr; gap: 12px; }
  .grade-planner, .grade-scenarios { padding: 17px 13px; }
  .grade-study-queue li { grid-template-columns: 24px minmax(0, 1fr); padding: 12px 10px; gap: 10px; }
  .grade-study-queue time { grid-column: 2; }
  .grade-settings, .grade-reported, .grade-bonus { padding: 13px 10px; }
  .grade-entry-table th:first-child, .grade-entry-table td:first-child { width: 220px; position: static; }
  .academic-report { padding: 22px; min-width: 590px; }
  .grade-report-dialog { overflow: auto; }
  .grade-report-actions { justify-content: flex-start; min-width: 590px; }
  .grade-report-backdrop { padding: 14px 8px; }
}
@media print {
  @page { size: letter portrait; margin: .45in; }
  body:has(.grade-report-backdrop) .topbar, body:has(.grade-report-backdrop) .workspace-nav, body:has(.grade-report-backdrop) .desk>footer, body:has(.grade-report-backdrop) .notice, body:has(.grade-report-backdrop) .grades-workspace>*:not(.grade-report-backdrop), body:has(.grade-report-backdrop) .ambient { display: none !important; }
  body:has(.grade-report-backdrop) .page-shell, body:has(.grade-report-backdrop) .desk, body:has(.grade-report-backdrop) .grades-workspace { padding: 0; margin: 0; max-width: none; background: #fff; overflow: visible; }
  body:has(.grade-report-backdrop) .page-shell:before { display: none; }
  .grade-report-backdrop { position: static; padding: 0; background: #fff; overflow: visible; }
  .grade-report-dialog { max-width: none; overflow: visible; }
  .grade-report-actions { display: none; }
  .academic-report { min-height: 0; min-width: 0; padding: 0; box-shadow: none; }
  .academic-report h2 { font-size: 26px; }
  .academic-report-courses { margin-top: 16px; }
  .academic-report-courses>section { padding: 10px 0; break-inside: avoid; }
  .academic-report h3 { font-size: 13px; margin-bottom: 7px; }
  .academic-report-courses p, .academic-report footer p { font-size: 9px; }
  .academic-report footer { break-inside: avoid; }
}
.grades-workspace .study-toggle input { width: 43px; height: 25px; }
.grade-download-link { display: inline-flex; align-items: center; text-decoration: none; border-radius: 9px; padding: 9px 13px; font-size: 12px; font-weight: 750; }
/* Verified gradebook observations stay separate from projections. */
.grade-official-snapshot { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; background: #f0f6f3; border: 1px solid #c7ddcf; border-radius: 14px; padding: 21px; margin: 18px 0; }
.grade-official-snapshot strong { display: block; font-size: 32px; letter-spacing: -.03em; margin: 8px 0; color: #355e4c; }
.grade-official-snapshot p { font-size: 11px; line-height: 1.7; color: #5d7366; margin: 5px 0; }
.grade-category-overview { margin: 22px 0; }
.grade-category-overview>p { font-size: 11px; color: #7b6484; line-height: 1.7; }
.grade-category-overview table { min-width: 1030px; }
.grade-category-overview td { font-variant-numeric: tabular-nums; }
.grade-category-overview small { display: block; margin-top: 5px; font-size: 10px; color: #83688e; }
.grade-entry-table { min-width: 1850px; }
.grade-entry-table .grade-source-title { color: #654477; font-weight: 750; }
.grade-course-focus { background: #f3f7fc; border: 1px solid #d1ddeb; border-radius: 12px; padding: 18px 21px; margin-top: 23px; }
.grade-course-focus ol { padding-left: 20px; line-height: 1.8; font-size: 12px; }
.grade-course-focus p { font-size: 11px; color: #6c6b83; line-height: 1.8; }
@media (max-width: 620px) { .grade-official-snapshot { grid-template-columns: 1fr; padding: 16px; gap: 10px; } }
.grade-reconciliation-alert { background: #fff5e5; border: 1px solid #e6c992; border-radius: 12px; padding: 17px 21px; margin: 20px 0; color: #775327; }
.grade-reconciliation-alert h4 { font-size: 15px; margin-top: 0; }
.grade-reconciliation-alert ul { font-size: 11px; line-height: 1.8; padding-left: 18px; }

/* Study Buddy extends the Bubbles workspace. */
.assignment-study-link{display:inline-block;font-size:11px;margin-left:10px;color:#785980;font-weight:700}.study-workspace{margin-top:26px;color:#513e59}.study-workspace[hidden]{display:none}.study-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:12px 0 30px}.study-header h2{font-family:Georgia,serif;font-weight:400;font-size:52px;letter-spacing:-2px;margin:5px 0}.study-header h2 span{color:#cba172;margin-left:12px}.study-header p{font-size:14px;color:#806b84}.study-connection{display:grid;text-align:right;gap:7px;font-size:12px}.study-connection small{color:#8b7c8e}.study-connection .connected{color:#53735b}.study-shell{display:grid;grid-template-columns:210px minmax(0,1fr);gap:30px;align-items:start}.study-sidebar{position:sticky;top:18px}.study-sidebar nav{display:grid;gap:8px}.study-sidebar button{display:flex;gap:13px;align-items:center;text-align:left;background:transparent;border:1px solid transparent;padding:13px 12px;font-size:12px;border-radius:12px;color:#725d79;font-weight:700}.study-sidebar button[aria-current=page]{background:#eee5f6;border-color:#d0badd;box-shadow:0 4px 12px #7551820b;color:#62436c}.study-sidebar button span{font-size:20px;width:20px;color:#a184ac}.study-sidebar-note{font-size:12px;line-height:1.7;margin:30px 15px;color:#9b889e}.study-main{min-width:0}.study-workspace button,.study-workspace input,.study-workspace select,.study-workspace textarea{font:inherit}.study-workspace button,.study-row-actions a,.study-start-bar>a{cursor:pointer;border:1px solid #dacde1;background:#fffcff;color:#6e4f7a;border-radius:9px;padding:9px 13px;font-size:12px;font-weight:650}.study-workspace button:disabled{opacity:.5;cursor:default}.study-workspace .grade-primary{background:#765386;border-color:#765386;color:white;text-decoration:none}.study-workspace label{display:grid;gap:7px;font-size:12px;font-weight:600}.study-workspace input:not([type=checkbox]):not([type=radio]),.study-workspace select,.study-workspace textarea{border:1px solid #ddcfe3;border-radius:8px;background:white;color:#58435f;padding:10px 11px;min-width:0;width:100%;font-size:13px}.study-workspace textarea{resize:vertical;line-height:1.6}.study-toolbar{display:grid;grid-template-columns:1fr 1.2fr auto;gap:18px;align-items:end;background:#fffafcd9;border:1px solid #eaddeb;border-radius:16px;padding:20px}.study-standing{display:grid;gap:3px;text-align:right;min-width:145px}.study-standing b{font-size:22px}.study-standing small,.study-standing a{font-size:10px;color:#917a97}.study-status{font-size:11px;color:#728774;margin:15px 0 22px}.study-error{border:1px solid #dbaca8;border-radius:10px;background:#fff1ed;color:#914d49;font-size:13px;padding:16px;line-height:1.7;margin-bottom:20px}.study-error button{margin-left:12px}.study-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.study-section-heading h3{font:28px Georgia,serif;margin:0 0 7px}.study-section-heading p{font-size:12px;color:#907a94;margin:0}.study-section-heading>span,.study-section-heading>a{font-size:11px;color:#927599}.study-upload{padding:24px;border:1.5px dashed #b69bc4;background:linear-gradient(110deg,#f1eafd,#fff9f1);border-radius:17px;display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:18px;align-items:center;margin-bottom:16px}.study-upload h4{font-size:16px;margin:0 0 8px}.study-upload p{font-size:12px;color:#8a7590;line-height:1.6}.study-upload small{font-size:10px;color:#927e96;line-height:1.6;display:block}.study-upload input[type=file]{grid-column:1/-1;background:#fffcff;font-size:12px}.study-reference{padding:16px 19px;border:1px solid #e1d5e9;border-radius:12px;background:#fffafd9c;margin:15px 0}.study-reference summary{font-size:12px;cursor:pointer;font-weight:700}.study-reference p{font-size:12px;color:#8d7794;line-height:1.7}.study-reference textarea{margin:10px 0;min-height:100px}.study-library-controls{display:flex;gap:10px;margin:22px 0}.study-library-controls input{flex:1}.study-material-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.study-material{background:#fffafde8;border:1px solid #e4d8e8;border-radius:16px;padding:19px;min-width:0;box-shadow:0 4px 12px #86548606}.study-material.selected{outline:2px solid #b59bc8;background:#fcf7ff}.study-material-heading{display:flex;align-items:center;gap:12px}.study-material-heading>span{font-size:19px;color:#9b78ac;font-weight:700}.study-material-heading small{margin-left:auto;background:#edf4ed;border-radius:10px;padding:4px 8px;color:#69816a;font-size:9px}.study-material h4{font-size:15px;margin:18px 0 8px;overflow-wrap:anywhere;line-height:1.5}.study-material p{font-size:11px;color:#8c7691;line-height:1.7}.study-material>small{font-size:10px;color:#a18ea6;display:block;overflow-wrap:anywhere}.study-processing-note{font-size:10px!important;border-top:1px solid #eee3f1;padding-top:12px}.study-row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:15px}.study-row-actions button,.study-row-actions a{font-size:11px;padding:8px 10px}.study-danger{color:#a36267!important}.study-start-bar{margin:25px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#efe9f6;padding:17px;border-radius:12px}.study-start-bar b{font-size:12px;margin-right:auto}.study-empty{text-align:center;padding:45px 28px;background:#fff9ffb3;border-radius:18px;border:1px solid #e6dce9;margin:18px 0}.study-empty>span{font-size:38px;color:#b298c0}.study-empty h4{font:24px Georgia,serif;margin:15px}.study-empty p{font-size:12px;color:#927f98;line-height:1.8}.study-generator{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);gap:25px;padding:25px;background:#fffafdcc;border:1px solid #e4d6e8;border-radius:18px}.study-generator h4{margin-top:0}.study-generator p{font-size:12px;color:#9b86a1}.study-material-picks{max-height:380px;overflow:auto;display:grid;gap:12px}.study-material-picks label{display:grid;grid-template-columns:18px 1fr;align-items:center;background:#f7f0fa;padding:12px;border-radius:8px;line-height:1.5}.study-material-picks small{grid-column:2;font-weight:400;font-size:10px;color:#9c86a2}.study-methods,.study-question-types{border:0;padding:0;margin:20px 0;display:flex;gap:8px;flex-wrap:wrap}.study-methods legend,.study-question-types legend{margin-bottom:12px;font-size:12px;font-weight:700}.study-methods button[aria-pressed=true]{background:#e9dcf2;border-color:#aa87bc}.study-question-types label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:400;padding:5px}.study-inline-fields{display:flex;gap:20px}.study-inline-fields input{max-width:160px}.study-boundary{font-size:11px;color:#9a849e;padding:18px 0}.study-session{border:1px solid #d9c9e2;border-radius:20px;padding:26px;background:#fffafdd9}.study-session p{font-size:13px;line-height:1.8}.study-eyebrow{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#a186ac}.study-source-gaps,.study-hint{background:#fff4de;border:1px solid #e7d2a5;border-radius:10px;padding:15px;font-size:12px;line-height:1.7;margin:18px 0}.study-concept{padding:22px;border:1px solid #d7e2d7;border-radius:15px;background:#f1f8f2;margin:20px 0}.study-concept h4{font:24px Georgia,serif;margin:10px 0}.study-explanation{white-space:pre-wrap;font-size:13px;line-height:1.8}.study-concept details{font-size:12px;padding:10px 0}.study-sources{margin:15px 0;font-size:11px}.study-sources summary{cursor:pointer;color:#91759a}.study-sources>div{background:#faf5fc;padding:12px;border-radius:8px;margin-top:9px}.study-sources b{font-size:11px}.study-sources blockquote{margin:10px 0;white-space:pre-wrap;font-size:11px;color:#9d86a4;border-left:3px solid #decee8;padding-left:12px}.study-sources a,.study-sources small{display:block;margin-top:8px;font-size:10px}.study-question{background:white;padding:22px;border:1px solid #e1d5e6;border-radius:14px;margin:20px 0}.study-question h4{font-size:16px;line-height:1.7;margin:12px 0}.study-question fieldset{border:0;padding:0;display:grid;gap:9px}.study-option{display:flex!important;gap:10px!important;align-items:flex-start;border:1px solid #e8ddec;border-radius:8px;padding:11px;font-size:13px!important;font-weight:400!important;line-height:1.7}.study-option input{margin-top:4px;accent-color:#805790}.study-feedback{border-radius:10px;padding:18px;margin-top:20px;background:#f8eded;border:1px solid #e7c9c9}.study-feedback.correct{background:#edf5ec;border-color:#c2d7be}.study-feedback.review{background:#fff5dd;border-color:#e5d3a7}.study-feedback p{font-size:12px}.study-timer,.study-result-banner{background:#eee4f7;color:#765386;padding:15px;border-radius:10px;font-size:13px;font-weight:700}.study-diagnose{background:#f2eaf8;padding:17px;border-radius:10px;margin-top:22px}.study-diagnose h4{margin:0}.study-plan-item{display:flex;gap:18px;padding:23px;border:1px solid #e3d5e9;border-radius:14px;margin-bottom:14px;background:#fffafd}.study-plan-item.done{opacity:.65}.study-plan-number{display:grid;place-items:center;background:#eaddf2;border-radius:100%;width:30px;height:30px;flex-shrink:0;font-size:12px}.study-plan-item h4{margin:7px 0;font-size:16px}.study-plan-item p{font-size:12px;color:#8d7694;line-height:1.7}.study-plan-item small{font-size:10px;color:#a08aa7}.study-minutes{max-width:175px;font-size:10px!important}.study-vault-card{padding:25px;border:1px solid #e3cfde;background:#fff5fa;border-radius:16px;margin-bottom:18px}.study-vault-card h4{font:23px Georgia,serif;margin:13px 0}.study-vault-card p,.study-vault-card details{font-size:12px;line-height:1.8}.study-intervals{display:flex!important;gap:12px!important;align-items:center;margin:20px 0}.study-intervals input{max-width:180px}.study-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.study-metric-grid article{background:#f1eafa;border:1px solid #e0d4e8;border-radius:14px;padding:20px}.study-metric-grid span{font-size:11px;color:#8c7196}.study-metric-grid strong{display:block;font-size:32px;margin:15px 0}.study-metric-grid small{font-size:10px;line-height:1.6;color:#a38aad;display:block}.study-progress-row{display:flex;gap:18px;align-items:center;padding:17px;border-bottom:1px solid #e6dbe9;font-size:11px}.study-progress-row>div{flex:1}.study-progress-row small{display:block;color:#a28aa7;margin-top:6px}.study-small{font-size:11px!important;color:#99809f;line-height:1.8}.study-saved-sessions{margin-top:35px;border-top:1px solid #dfd0e6;padding-top:20px}.study-saved-sessions h4{font:20px Georgia,serif}.study-saved-sessions button{display:flex;justify-content:space-between;align-items:center;gap:18px;width:100%;text-align:left;padding:14px;margin:8px 0}.study-saved-sessions small{font-size:10px;color:#a28aaa}.study-modal-backdrop{position:fixed;inset:0;background:#43324966;backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.study-modal{background:#fffafd;border:1px solid #ddcce8;box-shadow:0 25px 100px #3c1e5655;border-radius:20px;width:min(1050px,95vw);max-height:90vh;overflow:auto;padding:30px}.study-modal.small{max-width:500px}.study-modal header{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:25px}.study-modal h3{font:25px Georgia,serif;margin:7px 0}.study-modal>p{font-size:12px;color:#917399;line-height:1.7}.study-modal label{margin:16px 0}.study-image-preview{display:block;max-width:100%;max-height:450px;object-fit:contain;background:white;border-radius:8px;margin:20px auto}.study-source-preview{max-height:50vh;overflow:auto;padding-right:15px}.study-source-preview pre{font:12px/1.8 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #e6d9ed;background:#fdf9ff;padding:20px;border-radius:10px}.study-binder-print{background:white;padding:28px;margin-top:25px;border:1px solid #dfd2e7}.study-binder-print h4{font:22px Georgia,serif;border-bottom:1px solid #e1d3e8;padding-bottom:10px;margin:28px 0 15px}.study-binder-print p{white-space:pre-wrap;font-size:12px;line-height:1.8}.study-workspace input[type=checkbox],.study-workspace input[type=radio]{accent-color:#805790}.study-workspace :focus-visible{outline:2px solid #9a71ae;outline-offset:3px}
@media(min-width:1600px){.study-shell{grid-template-columns:225px minmax(0,1fr);gap:40px}.study-upload{padding:30px}.study-material-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.study-shell{grid-template-columns:170px minmax(0,1fr);gap:18px}.study-sidebar button{font-size:10px;padding:12px 8px}.study-generator{grid-template-columns:1fr}.study-metric-grid{grid-template-columns:repeat(2,1fr)}.study-toolbar{grid-template-columns:1fr 1fr}.study-standing{grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:12px}}
@media(max-width:760px){.study-header{align-items:start}.study-header h2{font-size:37px}.study-connection{display:none}.study-shell{display:block}.study-sidebar{position:static;margin-bottom:22px}.study-sidebar nav{display:flex;overflow:auto;padding-bottom:10px}.study-sidebar button{flex-shrink:0;white-space:nowrap;font-size:11px;padding:10px}.study-sidebar-note{display:none}.study-toolbar{padding:15px;gap:12px}.study-upload{grid-template-columns:1fr;padding:19px}.study-material-grid{grid-template-columns:1fr}.study-library-controls{flex-wrap:wrap}.study-library-controls input{flex-basis:100%}.study-section-heading{align-items:start}.study-section-heading h3{font-size:25px}.study-section-heading>span{display:none}.study-session{padding:15px}.study-question,.study-concept{padding:16px}.study-generator{padding:17px}.study-plan-item{padding:17px;gap:12px}.study-progress-row{flex-wrap:wrap}.study-modal{padding:19px}.study-intervals{flex-wrap:wrap}.study-start-bar b{flex-basis:100%}.study-saved-sessions button{display:grid}.study-inline-fields{gap:10px}.workspace-nav{overflow:auto;white-space:nowrap}}
@media print{body:has(.study-binder-print) *{visibility:hidden!important}body:has(.study-binder-print) .study-binder-print,body:has(.study-binder-print) .study-binder-print *{visibility:visible!important}.study-binder-print{position:absolute;inset:0;margin:0;padding:10mm;border:0;overflow:visible}.study-binder-print h4{break-after:avoid}.study-binder-print p{break-inside:avoid;font-size:10pt;line-height:1.5}}
.study-question h4,.study-option span,.study-feedback p{white-space:pre-wrap;overflow-wrap:anywhere}.study-workspace textarea.study-code-input{font-family:ui-monospace,monospace;tab-size:4}.study-visual-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:17px;list-style:none;padding:15px 0;margin:18px 0}.study-visual-steps li{position:relative;border:1px solid #bad0be;border-radius:12px;background:white;padding:16px;font-size:12px;line-height:1.7}.study-visual-steps li>span{display:block;background:#e3efe4;color:#58735b;border-radius:50%;width:24px;height:24px;text-align:center;margin-bottom:10px;font-size:11px}.study-visual-steps li:not(:last-child):after{content:'→';position:absolute;right:-15px;top:45%;color:#829b85;font-size:17px}@media(max-width:760px){.study-visual-steps{grid-template-columns:1fr}.study-visual-steps li:not(:last-child):after{content:'↓';right:50%;top:auto;bottom:-20px}}

body{margin:0}.sample-progress{height:9px;background:#e6d4de;border-radius:99px;overflow:hidden}.sample-progress>span{display:block;height:100%;background:#714b63}.modal-backdrop{z-index:90}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #714b63;outline-offset:3px}