:root {
  --planner-ink: #20302d;
  --planner-muted: #61706c;
  --planner-paper: #f7f5f0;
  --planner-white: #fff;
  --planner-sage: #dfe9e4;
  --planner-green: #1f5c4e;
  --planner-dark: #143d35;
  --planner-navy: #07172b;
  --planner-gold: #b9873c;
  --planner-line: #bcc9c4;
  --planner-soft: #eef2f0;
  --planner-attention: #fff6e5;
  color: var(--planner-ink);
}

button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.planner-breadcrumbs {
  max-width: 1180px;
  margin: 0 auto;
  padding: .8rem clamp(1rem, 4vw, 2rem);
}
.planner-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; font-size: .82rem; color: var(--planner-muted); }
.planner-breadcrumbs li + li::before { content: "/"; margin-right: .45rem; color: #8a9793; }
.planner-breadcrumbs a { color: var(--planner-green); }

.planner-hero {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(2.5rem, 7vw, 5.5rem) clamp(1rem, 4vw, 2rem);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .7fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}
.planner-hero h1 { max-width: 780px; margin: .45rem 0 1rem; font-size: clamp(2.3rem, 6vw, 4.7rem); line-height: .99; color: var(--planner-navy); }
.planner-release-status { display: flex; flex-wrap: wrap; gap: .3rem; margin: -.35rem 0 .8rem; color: var(--planner-muted); font-size: .78rem; }
.planner-release-status strong { color: var(--planner-navy); }
.planner-lede { max-width: 750px; font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.6; color: var(--planner-muted); }
.trust-points { display: flex; flex-wrap: wrap; gap: .65rem; padding: 0; margin: 1.5rem 0 0; list-style: none; }
.trust-points li { padding: .5rem .75rem; border: 1px solid var(--planner-line); border-radius: 999px; background: var(--planner-white); font-size: .86rem; font-weight: 700; }
.method-card { padding: clamp(1.3rem, 4vw, 2rem); background: var(--planner-navy); color: #edf5f2; border-radius: 1.2rem; box-shadow: 0 20px 45px rgba(7, 23, 43, .16); }
.method-card h2 { margin: .4rem 0 .8rem; color: var(--planner-white); font-size: 1.55rem; }
.method-card .eyebrow { color: #d8bc82; }
.method-card p:last-child { color: #c7d2cf; line-height: 1.65; }

.entry-panel, .planner-shell, .dashboard, .planner-content {
  max-width: 1180px;
  margin: 0 auto 3rem;
  padding: clamp(1.25rem, 4vw, 2.5rem);
}
.entry-panel { background: var(--planner-soft); border: 1px solid var(--planner-line); border-radius: 1.2rem; }
.section-heading { max-width: 740px; }
.section-heading h2, .planner-content h2, .dashboard h2 { color: var(--planner-dark); font-size: clamp(1.8rem, 4vw, 2.8rem); margin: .35rem 0 .75rem; }
.entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.entry-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 1.35rem; background: var(--planner-white); border: 1px solid var(--planner-line); border-radius: .9rem; }
.entry-card--featured { border: 2px solid var(--planner-green); }
.entry-card h3 { color: var(--planner-navy); margin: 0 0 .45rem; }
.entry-card p { flex: 1; color: var(--planner-muted); line-height: 1.55; }
.entry-badge { position: absolute; top: -.7rem; right: 1rem; padding: .3rem .6rem; background: var(--planner-gold); color: #251a08; border-radius: 999px; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }

.planner-button, .text-action {
  min-height: 44px;
  border-radius: .55rem;
  font-weight: 800;
}
.planner-button { padding: .72rem 1rem; border: 1px solid transparent; }
.planner-button--primary { background: var(--planner-green); color: var(--planner-white); }
.planner-button--primary:hover { background: var(--planner-dark); }
.planner-button--secondary { background: var(--planner-white); color: var(--planner-green); border-color: var(--planner-green); }
.planner-button:focus-visible, .text-action:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid #d99a16;
  outline-offset: 3px;
}
.text-action { padding: .5rem .1rem; border: 0; background: transparent; color: var(--planner-green); text-decoration: underline; text-underline-offset: .2em; }
.text-action--danger { color: #7c2d2d; }

.planner-shell { background: var(--planner-white); border: 1px solid var(--planner-line); border-radius: 1.2rem; box-shadow: 0 15px 45px rgba(32, 48, 45, .08); }
.planner-shell__head, .dashboard__head, .card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.planner-shell__head h2 { color: var(--planner-dark); margin: .2rem 0 1rem; }
.stage-progress { margin: 1rem 0 2rem; padding: 1rem; border-radius: .8rem; background: var(--planner-soft); }
.stage-progress p { margin: 0 0 .65rem; font-weight: 800; color: var(--planner-dark); }
.stage-progress ol { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; padding: 0; margin: 0; list-style: none; }
.stage-progress button { width: 100%; min-height: 40px; padding: .35rem; border: 1px solid var(--planner-line); border-radius: .4rem; background: var(--planner-white); color: var(--planner-muted); font-size: .75rem; }
.stage-progress button:disabled { cursor: not-allowed; opacity: .48; }
.stage-progress button[aria-current="step"] { background: var(--planner-green); color: var(--planner-white); border-color: var(--planner-green); }
.planner-stage { min-height: 280px; }
.planner-stage h3 { margin: .2rem 0 1rem; color: var(--planner-navy); font-size: 1.7rem; }
.planner-stage h4 { color: var(--planner-dark); margin: 1.5rem 0 .7rem; font-size: 1.15rem; }
.stage-kicker, .eyebrow { margin: 0; color: var(--planner-green); font-size: .76rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.stage-actions, .planner-actions { display: flex; gap: .7rem; align-items: center; }
.stage-actions { justify-content: space-between; padding-top: 1.25rem; margin-top: 1.5rem; border-top: 1px solid var(--planner-line); }
.planner-actions--wrap { flex-wrap: wrap; }

.field-grid { display: grid; gap: 1rem; }
.field-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
label, legend { color: var(--planner-dark); font-weight: 800; }
input, select, textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: .35rem;
  padding: .72rem .75rem;
  color: var(--planner-ink);
  background: var(--planner-white);
  border: 1px solid #8b9b96;
  border-radius: .45rem;
}
textarea { min-height: 80px; resize: vertical; }
fieldset { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--planner-line); border-radius: .7rem; }
.field-help { color: var(--planner-muted); font-size: .88rem; font-weight: 400; }
.choice-grid, .starter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.choice-card { display: flex; gap: .65rem; align-items: flex-start; padding: .8rem; border: 1px solid var(--planner-line); border-radius: .55rem; background: var(--planner-white); font-weight: 700; }
.choice-card input { width: auto; margin: .15rem 0 0; }
.choice-card small { display: block; margin-top: .25rem; color: var(--planner-muted); font-weight: 400; }
.assumption-note, .review-message { padding: 1rem; border-radius: .7rem; }
.assumption-note { background: var(--planner-sage); }
.assumption-note p { margin: .3rem 0 0; }
.review-message { margin: 0 0 1rem; background: var(--planner-attention); border: 1px solid #d6b36e; }

.editor-stack { display: grid; gap: .85rem; }
.editor-card { padding: 1rem; border: 1px solid var(--planner-line); border-radius: .7rem; background: var(--planner-soft); }
.editor-card__head { display: flex; justify-content: space-between; align-items: center; gap: .7rem; margin-bottom: .8rem; }
.editor-card__head h4 { margin: 0; }
.days-fieldset { margin: .75rem 0 0; }
.day-options { display: flex; flex-wrap: wrap; gap: .4rem; }
.day-options label { display: flex; align-items: center; gap: .25rem; padding: .4rem .55rem; border: 1px solid var(--planner-line); border-radius: 999px; background: var(--planner-white); font-size: .8rem; }
.day-options input { width: auto; margin: 0; }
.toolbar { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.starter-card { padding: .8rem; border: 1px solid var(--planner-line); border-radius: .6rem; background: var(--planner-white); }
.starter-card h4 { margin: 0 0 .3rem; }
.starter-card p { margin: .2rem 0 .7rem; color: var(--planner-muted); font-size: .85rem; }

.dashboard { background: var(--planner-navy); color: #eaf1ef; border-radius: 1.2rem; }
.dashboard h2, .dashboard h3 { color: var(--planner-white); }
.dashboard__head { margin-bottom: 1.5rem; }
.dashboard__head p { color: #c8d5d1; }
.dashboard-grid { display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 1rem; }
.dashboard-card { padding: 1.1rem; background: #102742; border: 1px solid #2f4861; border-radius: .75rem; }
.dashboard-card--wide { margin-top: 1rem; }
.workload-row { margin: .85rem 0; }
.workload-row__label { display: flex; justify-content: space-between; gap: 1rem; font-size: .88rem; }
.workload-track { height: .72rem; margin-top: .35rem; overflow: hidden; border-radius: 999px; background: #314860; }
.workload-bar { height: 100%; min-width: 4px; border-radius: inherit; background: #e0b05f; }
.assignment-list { display: grid; gap: .65rem; }
.assignment-card { padding: .85rem; border: 1px solid #36516c; border-radius: .55rem; background: #0b2038; }
.assignment-card__top { display: flex; justify-content: space-between; gap: 1rem; }
.assignment-card p { margin: .25rem 0; color: #cbd7d4; }
.assignment-card details { margin-top: .6rem; }
.assignment-card summary { color: #f1ce8d; font-weight: 800; cursor: pointer; }
.assignment-card select { color: var(--planner-ink); }
.dashboard select { background: var(--planner-white); }
.empty-state { color: #c9d6d2; }
.schedule-day { margin-bottom: 1rem; }
.schedule-day h4 { margin-bottom: .5rem; }
.schedule-table { width: 100%; border-collapse: collapse; }
.schedule-table th, .schedule-table td { padding: .55rem; border-bottom: 1px solid var(--planner-line); text-align: left; vertical-align: top; }
.schedule-table th { color: var(--planner-dark); background: var(--planner-soft); }

.planner-content { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding-top: 3rem; padding-bottom: 4rem; }
.planner-content p { color: var(--planner-muted); line-height: 1.65; }
.faq-list details { padding: 1rem 0; border-bottom: 1px solid var(--planner-line); }
.faq-list summary { color: var(--planner-dark); font-weight: 800; cursor: pointer; }

@media (max-width: 900px) {
  .planner-hero, .planner-content { grid-template-columns: 1fr; }
  .entry-grid, .dashboard-grid { grid-template-columns: 1fr; }
  .stage-progress ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .choice-grid, .starter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field-grid--three { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .planner-hero { padding-top: 2rem; }
  .planner-hero h1 { font-size: 2.5rem; }
  .entry-panel, .planner-shell, .dashboard, .planner-content { margin-left: .7rem; margin-right: .7rem; padding: 1rem; }
  .planner-shell__head, .dashboard__head, .card-heading, .toolbar { flex-direction: column; align-items: stretch; }
  .field-grid--two, .field-grid--three, .choice-grid, .starter-grid { grid-template-columns: 1fr; }
  .stage-progress ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stage-actions .planner-button { flex: 1; }
  .assignment-card__top { flex-direction: column; }
  .schedule-table, .schedule-table tbody, .schedule-table tr, .schedule-table td { display: block; width: 100%; }
  .schedule-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .schedule-table tr { padding: .75rem 0; border-bottom: 1px solid var(--planner-line); }
  .schedule-table td { border: 0; padding: .2rem 0; }
  .schedule-table td::before { content: attr(data-label) ": "; font-weight: 800; color: var(--planner-dark); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
  .site-header, .planner-breadcrumbs, .site-footer, .planner-hero, .entry-panel, .planner-shell__head, .stage-progress, .stage-actions, .planner-actions, .planner-content, .dashboard__head .planner-actions, .text-action, select { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  .planner-shell, .dashboard { display: block !important; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; background: #fff; color: #000; }
  .planner-stage[hidden], #dashboard[hidden] { display: none !important; }
  #dashboard:not([hidden]) { display: block !important; }
  .dashboard-card, .assignment-card { break-inside: avoid; background: #fff; color: #000; border: 1px solid #777; }
  .dashboard h2, .dashboard h3, .dashboard p, .assignment-card p { color: #000; }
  .workload-track { border: 1px solid #555; background: #fff; }
  .workload-bar { background: #777; }
}
