/* Project-only surfaces reuse application typography and controls. */
.project-plan{list-style:none;padding:0;margin:16px 0;display:grid;gap:0}
.project-plan>li{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line,#e3e6db)}
.project-plan>li:last-child{border-bottom:0}
.project-plan>li>div{min-width:0;display:grid;gap:8px}
.project-plan strong,.project-plan span{display:block;overflow-wrap:anywhere}
.project-plan [data-deadline-remaining]{display:inline}
.project-plan>li>span{color:var(--muted,#6c7566)}
.project-bank{margin-top:32px}.project-bank>h2{margin-bottom:8px}
.project-weekdays{display:flex;gap:16px;flex-wrap:wrap;border:0;padding:0;margin:16px 0}
.project-weekdays legend{margin-bottom:8px}.project-weekdays label{display:flex;gap:8px;align-items:center;margin:0}
.project-team,.project-personal{border-top:1px solid var(--line,#e3e6db);padding:16px 0}
.project-team>summary,.project-personal>summary{cursor:pointer;overflow-wrap:anywhere}
.project-team>div,.project-personal>form{margin-top:16px}
.project-file-label{position:relative;cursor:pointer;align-self:flex-start}
.project-part .file-chip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 0}
.project-part .file-chip a{overflow-wrap:anywhere;min-width:0}
.project-part .file-chip span{font-size:14px;color:var(--muted,#6c7566)}
.project-part{margin-bottom:24px}.project-part textarea{width:100%}
.project-part [data-project-conflict]:empty{display:none}
[data-project-preview]:empty,[data-project-invitation]:empty,[data-project-final]:empty{display:none}
[data-project-invitation]{margin-top:16px;max-width:760px}
.project-personal input[type=number]{max-width:160px}
@media(max-width:600px){.project-plan>li{display:grid;gap:12px;padding:16px 0}.project-plan .button{justify-self:start}.project-weekdays{gap:12px}.project-bank{margin-top:24px}}
/* A composed material has one entry and a compact, ordered lesson route. */
.project-bank-card{border-color:var(--lime,#9fc52d)}
.project-start{font-size:14px;color:var(--muted,#6c7566)}
.project-curriculum-fields{padding:0;border:0;min-width:0}
.project-curriculum-plan > li {
  display:grid;
  grid-template-columns:minmax(0,1fr) 184px 180px;
  align-items:end;
  gap:20px;
}
.project-curriculum-plan .project-lesson-title{flex:1;min-width:0;gap:4px}
.project-curriculum-plan .project-lesson-title>span:last-child{font-size:13px;color:var(--muted,#6c7566)}
.project-curriculum{display:grid!important;grid-template-columns:88px 88px;gap:8px!important;flex-shrink:0}
.project-curriculum label{font-size:13px;margin:0}
.project-curriculum-plan .project-curriculum input[type=number],
.project-curriculum-plan .project-curriculum select {
  height:var(--control-height,48px);
  min-height:var(--control-height,48px);
  padding:11px 14px;
  width:100%;
}
.project-curriculum-plan > li > .button {
  align-self:end;
  width:100%;
  min-height:var(--control-height,48px);
}
.project-topics{margin:20px 0}
.project-definition details form{margin-top:12px}
.work-tools [data-project-preview-topic],.work-tools [data-project-preview-lesson]{max-width:340px;text-overflow:ellipsis}
@media(max-width:850px) {
  .project-curriculum-plan > li { grid-template-columns:184px 180px; gap:12px; }
  .project-curriculum-plan .project-lesson-title { grid-column:1/-1; }
}
@media(max-width:600px) {
  .project-curriculum-plan > li { grid-template-columns:minmax(0,1fr); }
  .project-curriculum { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
}
@media(max-width:420px){.work-tools [data-project-preview-topic],.work-tools [data-project-preview-lesson]{max-width:100%;width:100%}}
.project-bank-card .bank-actions{display:grid;grid-template-columns:1fr;overflow:visible}
.project-bank-card .bank-actions .button{width:100%;min-width:0;white-space:normal}
.project-settings form{display:grid;grid-template-columns:minmax(150px,240px) max-content;gap:12px;align-items:end}
.project-settings form label{margin:0}
.project-settings form .field-note{grid-column:1/-1;grid-row:2;margin:0}
.project-settings form button{grid-column:2;grid-row:1}
@media(max-width:850px){.project-settings form{grid-template-columns:1fr}.project-settings form button{grid-column:1;grid-row:3;justify-self:start}}
.project-preview-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:end;width:100%}
.project-preview-controls label{min-width:0;margin:0}
.project-preview-controls select{width:100%;max-width:100%!important}
@media(max-width:700px){.project-preview-controls{grid-template-columns:1fr}.project-preview-controls .key-toggle{justify-self:start}}
.project-settings{scroll-margin-top:140px}
/* The shared key toolbar has a two-column grid; the project owns all three controls. */
.work-tools:has(.project-preview-controls){display:block;width:100%}
.project-preview-controls .key-toggle{width:220px;max-width:100%}
.work-header:has(.project-preview-controls){grid-template-columns:minmax(0,1fr)}

/* Review is a separate step; previewing alone never publishes a lesson. */
.project-preview-status { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.project-curriculum-plan .project-lesson-title .project-review-badge { justify-self:start; }
.project-curriculum-plan .project-lesson-title .project-review-badge.is-ready { color:var(--green); }
.project-lesson-review { display:grid; justify-items:start; gap:16px; scroll-margin-top:calc(var(--work-header-height) + 20px); }
.project-lesson-review h2, .project-lesson-review p { margin:0; }
.project-lesson-review form { margin:0; gap:16px; }
.project-review-confirm { display:flex; align-items:flex-start; gap:12px; line-height:1.5; }
.project-review-confirm input { margin-top:3px; }
.project-review-confirm span { min-width:0; }
.project-lesson-navigation { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-top:24px; }
.project-lesson-navigation > .button:last-child { margin-left:auto; }
/* A navigation boundary is idle, not an in-flight request. */
.work-space:has(.project-preview-controls) .work-pager button:disabled { cursor:default; }
@media(max-width:600px) {
  .project-lesson-review .button { white-space:normal; }
  .project-lesson-navigation { display:grid; grid-template-columns:minmax(0,1fr); }
  .project-lesson-navigation > .button { width:100%; }
}
.project-preview-options { width:100%; min-width:0; }
.project-preview-options > summary { cursor:pointer; font-size:var(--text-small); overflow-wrap:anywhere; padding:10px 0; }
.project-preview-options[open] > summary { margin-bottom:8px; }
@media(max-width:700px) { .project-preview-status > p { flex-basis:100%; } }

.project-calendar-month { margin-top:24px; }
.project-calendar-month > h3 { margin-bottom:12px; text-transform:capitalize; }
.project-calendar-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.project-calendar-day { display:grid; align-content:start; gap:12px; padding:16px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--white); min-width:0; }
.project-calendar-day > time { font-weight:600; text-transform:capitalize; }
.project-calendar-day p { margin:0; overflow-wrap:anywhere; }
.project-calendar-day strong, .project-calendar-day .field-note { display:block; }
.project-calendar-day.is-off { background:var(--soft); border-style:dashed; }
[data-calendar-status] { margin:0; }
[data-calendar-actions] { display:grid; justify-items:start; gap:12px; margin-top:16px; }
@media(max-width:520px) { .project-calendar-grid { grid-template-columns:minmax(0,1fr); } }
/* The project catalogue follows the existing full-width bank/review cards. */
.cards.project-run-cards{grid-template-columns:minmax(0,1fr)}
.project-run-card{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:start}
.project-run-summary{min-width:0;display:grid;gap:12px}
.project-run-card h3{max-width:none;margin:0}
.project-run-card p{margin:0}
.project-run-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.project-run-actions{display:grid;gap:12px;align-content:start}
.project-run-filters{align-items:end;margin-bottom:24px}
.project-run-filters label{min-width:160px;flex:1}
.project-run-filters label:first-child{flex:2}
.project-team-start{display:grid;gap:16px;margin-top:24px}
.project-team-start h2,.project-team-start p{margin:0}
@media(max-width:760px){.project-run-card{grid-template-columns:minmax(0,1fr)}.project-run-actions{display:flex;flex-wrap:wrap}.project-run-filters label{flex-basis:100%;min-width:0}}

html.project-start-open,html.project-close-open{overflow:hidden}
@media(max-width:520px){.project-close-dialog .share-actions{flex-direction:column}}

/* Publication actions share one width on phones, including PDF download links. */
[data-sample-status]:empty { display:none; }
.sample-route nav { display:flex; flex-wrap:wrap; gap:12px; margin:16px 0; }
.sample-route nav button { padding:10px 14px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--white); text-align:left; }
.sample-route [aria-current=step] { background:var(--lime); font-weight:600; }
.sample-step { min-width:0; scroll-margin-top:140px; padding:20px; border:2px solid transparent; border-radius:var(--radius-control); }
.sample-step.is-attention { border-color:var(--green); background:var(--soft); }
.sample-step > h2 { margin-top:0; }
.sample-step label { display:block; margin:18px 0; }
.sample-lesson { border:1px solid var(--line); border-radius:var(--radius-control); padding:20px; margin:16px 0; min-width:0; }
.sample-lesson.is-selected { border-color:var(--green); }
.sample-lesson h3 { margin:0 0 8px; overflow-wrap:anywhere; }
.sample-lesson summary { cursor:pointer; padding:16px 0; font-weight:600; }
.sample-lesson fieldset { margin:0; padding:0; border:0; min-width:0; }
.sample-lesson .sample-topic { display:flex; align-items:flex-start; gap:12px; margin:12px 0; overflow-wrap:anywhere; }
.sample-topic input { flex-shrink:0; margin-top:3px; }
.sample-total { padding:16px; background:var(--soft); font-weight:600; }
.sample-pdf-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:12px; }
.sample-pdf-list .button { white-space:normal; text-align:left; overflow-wrap:anywhere; }
.project-open-task { max-width:75ch; margin:24px 0; line-height:1.7; overflow-wrap:anywhere; }
.project-open-task h3 { margin:28px 0 12px; font-size:1.1em; padding-left:12px; border-left:4px solid var(--lime); }
.project-open-task p { margin:0 0 16px; white-space:pre-line; }
@media (max-width:700px) {
  .project-sample-actions > .button { width:100%; }
  .sample-route nav { display:grid; grid-template-columns:minmax(0,1fr); }
  .sample-step, .sample-lesson { padding:14px; }
  .sample-route > .button { width:100%; white-space:normal; }
}
