/* V8.5: calendar-first planning, with no modification to teaching images. */
.planner-v850 { max-width:1180px; margin-inline:auto; }
.planner-v850 *, .today-v850 * { box-sizing:border-box; }
.planner-v850 .planner-settings { display:block; padding:22px; }
.planner-v850 .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.planner-v850 .field { min-width:0; }
.planner-v850 input, .planner-v850 select { min-width:0; max-width:100%; width:100%; color-scheme:dark; }
.planner-v850 .field small { color:#abb9cb; font-size:12px; line-height:1.5; }
.planner-weekdays { border:0; padding:20px 0 0; margin:0; }
.planner-weekdays legend { color:#edf3fb; font-weight:650; padding:0; }
.planner-weekdays > div { display:flex; flex-wrap:wrap; gap:8px; padding-top:10px; }
.planner-weekdays p,.planner-assumptions p { color:#b0bfd2; font-size:13px; line-height:1.65; }
.weekday-choice,.session-time-choice button { min-width:50px; min-height:44px; border:1px solid #43516a; background:#0b1320; border-radius:12px; color:#dbe7f5; font:inherit; padding:8px 12px; cursor:pointer; }
.weekday-choice[aria-pressed="true"],.session-time-choice button[aria-pressed="true"] { background:#193a4a; border-color:#70dcff; color:#c9f4ff; box-shadow:inset 0 0 0 1px #70dcff; }
.planner-assumptions,.planner-method { margin-top:20px; border-top:1px solid #28384a; padding-top:16px; }
.planner-assumptions summary,.planner-method summary { cursor:pointer; color:#c8edff; padding:4px 0; min-height:32px; line-height:1.5; }
.planner-off-controls { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin-top:16px; }
.planner-off-controls .field { flex:1 1 220px; }
.off-date-chips { padding:0; display:flex; gap:8px; flex-wrap:wrap; list-style:none; }
.off-date-chips li { display:flex; align-items:center; gap:8px; border:1px solid #3f526b; border-radius:10px; padding-left:12px; color:#dbe9f7; font-size:13px; }
.off-date-chips button { border:0; border-left:1px solid #3f526b; background:none; color:#edf8ff; cursor:pointer; min-width:44px; min-height:44px; font-size:20px; }
.planner-error { padding:12px; border:1px solid #efb584; border-radius:10px; color:#ffe5c2; background:#302416; }
.planner-error[hidden] { display:none!important; }
.planner-output { border:1px solid #31475a; border-radius:22px; padding:26px; margin-top:22px; background:linear-gradient(135deg,#10212e,#0c111c 65%); }
.planner-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:start; }
.planner-overview h3 { font-size:clamp(21px,2.4vw,30px); line-height:1.3; margin:12px 0; max-width:800px; }
.planner-overview p,.planner-method p,.planner-roadmap>p,.planner-mission-preview>p { color:#bdcadb; line-height:1.65; font-size:14px; }
.planner-day-count { text-align:center; min-width:95px; padding:16px; background:#112938; border:1px solid #336478; border-radius:20px; }
.planner-day-count strong { display:block; color:#a6e9ff; font-size:38px; line-height:1.1; }
.planner-day-count span { display:block; color:#c2dbe7; font-size:11px; margin-top:6px; }
.planner-phase-badge { display:inline-block; padding:7px 12px; border-radius:999px; background:#183345; color:#b4eafa; border:1px solid #345a70; font-size:12px; }
.planner-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:24px 0 18px; }
.planner-metrics article { background:#0c1726; border:1px solid #354454; border-radius:14px; padding:16px 12px; }
.planner-metrics strong { display:block; font-size:27px; line-height:1.2; color:#f2f8ff; }
.planner-metrics span { font-size:12px; display:block; line-height:1.5; color:#bdcadd; margin-top:7px; }
.planner-coverage { display:flex; height:10px; border-radius:10px; background:#354051; overflow:hidden; }
.planner-coverage .covered-part { background:#6bddf0; }
.planner-coverage .planned-part { background:repeating-linear-gradient(120deg,#6377b9 0px,#6377b9 6px,#36446d 6px,#36446d 11px); }
.planner-budget-note,.planner-reported,.planner-backlog,.planner-active-note { font-size:13px; line-height:1.65; color:#c3d0e1; margin-top:14px; padding:12px 14px; border:1px solid #334458; border-radius:12px; background:#0b1522; }
.planner-active-note { border-color:#6f6385; color:#ebddff; }
.planner-mission-preview,.planner-roadmap { padding:24px; margin-top:22px; }
.planner-mission-preview ul,.planner-roadmap ol { margin:18px 0 0; padding:0; list-style:none; }
.planner-mission-preview li { display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #2c3747; }
.planner-mission-preview li:last-child { border-bottom:0; }
.planner-mission-preview li>div { min-width:0; }
.planner-mission-preview li strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.planner-mission-preview li small { display:block; margin-top:5px; color:#aebfd3; font-size:12px; line-height:1.5; }
.planner-mission-preview img { width:92px; height:52px; object-fit:contain; border-radius:6px; background:#020304; flex-shrink:0; }
.planner-item-index { flex-shrink:0; width:25px; color:#a5e8ff; font-size:12px; }
.planner-roadmap li { display:grid; grid-template-columns:160px minmax(0,1fr); gap:16px; padding:16px 0; border-bottom:1px solid #2b3949; }
.planner-roadmap li:last-child { border-bottom:0; }
.planner-roadmap strong { font-size:14px; display:block; }
.planner-roadmap small { display:block; font-size:12px; line-height:1.5; color:#aebed1; margin-top:6px; }
.roadmap-mix { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.roadmap-mix>span { border-radius:6px; background:#192a3a; padding:5px 10px; font-size:12px; color:#d9eafa; }
.roadmap-mix>small { flex-basis:100%; }
.planner-today-strip { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:0 0 18px; padding:18px; border:1px solid #34475c; border-radius:18px; background:#101b29; }
.planner-today-strip p { margin:6px 0; font-size:14px; color:#d1dfef; line-height:1.6; }
.planner-today-strip small { color:#aebfd3; font-size:12px; }
.planner-today-strip .ghost-btn { flex-shrink:0; }
.session-time-choice { border:1px solid #344454; border-radius:16px; padding:16px; margin:20px 0; }
.session-time-choice>span { display:block; font-weight:600; margin-bottom:12px; }
.session-time-choice>div { display:flex; flex-wrap:wrap; gap:8px; }
.session-time-choice small { display:block; margin-top:10px; color:#b4c1d2; line-height:1.5; }
.planner-v850 button:focus-visible,.planner-v850 summary:focus-visible,.planner-v850 select:focus-visible,.planner-v850 input:focus-visible,.today-v850 button:focus-visible { outline:3px solid #a5eaff; outline-offset:3px; }
.planner-v850 .mission-actions { flex-wrap:wrap; }
.planner-v850 .sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:700px) {
  .planner-v850 .form-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
  .planner-v850 .planner-settings,.planner-output,.planner-mission-preview,.planner-roadmap { padding:18px; }
  .planner-overview { grid-template-columns:minmax(0,1fr); }
  .planner-day-count { display:none; }
  .planner-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .planner-roadmap li { grid-template-columns:minmax(0,1fr); gap:8px; }
  .planner-mission-preview img { width:68px; height:40px; }
  .planner-today-strip { flex-wrap:wrap; }
  .planner-today-strip .ghost-btn { width:100%; }
  .planner-item-index { width:18px; }
}
@media (prefers-reduced-motion:reduce) { .planner-v850 *,.today-v850 * { scroll-behavior:auto!important; transition:none!important; } }
