/* Session series planner (/commons/sessions/planner). Builds on tools.css (layout, preview frame) and tools2.css (.doc). */

/* ---------- The catalogue: one fieldset per program ---------- */
.pl-step > .ip-intro{margin-bottom:0}
.pl-prog{display:block!important;margin-top:1.6rem!important;padding:0!important}
.pl-prog > legend{float:left;width:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;margin:0 0 .8rem!important;padding:0 0 .5rem!important;border-bottom:1px solid var(--line);font:inherit!important}
.pl-prog > legend + *{clear:both}
.pl-prog-name{font-family:var(--f-display);font-weight:380;font-size:1.35rem;letter-spacing:-.01em;color:var(--text)}
.pl-prog-tag{font-size:.85rem;color:var(--muted)}
.pl-mods{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.pl-mod{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:start;padding:.85rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
html:not(.js) .pl-mod{grid-template-columns:minmax(0,1fr)}
.pl-mod:has(.pl-tick:checked){border-color:var(--sun);box-shadow:inset 3px 0 0 var(--sun)}
.pl-tick{position:relative;z-index:1;width:1.35rem;height:1.35rem;margin:.15rem 0 0;accent-color:var(--ink-bg);cursor:pointer}
.pl-mod-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .8rem;align-items:baseline}
.pl-mod-title{font-weight:600;font-size:1rem;color:var(--text);cursor:pointer;overflow-wrap:anywhere}
html.js .pl-mod-title::after{content:"";position:absolute;inset:0;border-radius:inherit} /* the whole card ticks the box */
.pl-mod-len{font-size:.72rem;letter-spacing:.06em;color:var(--sun-ink);white-space:nowrap}
.pl-mod-sum{grid-column:1/-1;margin:0;font-size:.9rem;line-height:1.5;color:var(--body)}
.pl-mod-link{position:relative;z-index:1;grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;min-height:32px;font-size:.88rem;color:var(--text);text-decoration-color:var(--sun);text-underline-offset:.2em}
.pl-mod:has(.pl-tick:focus-visible){outline:2px solid var(--sun);outline-offset:2px}

/* ---------- The order ---------- */
.pl-empty{margin:0;padding:1rem;border:1px dashed var(--line-2);border-radius:12px;color:var(--muted);font-size:.92rem}
.pl-order{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.pl-order:empty{display:none}
.pl-item{display:grid;gap:.6rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.pl-item-title{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.pl-item-n{font-size:.72rem;color:var(--sun-ink)}
.pl-item-meta{font-weight:400;font-size:.85rem;color:var(--muted)}
.pl-item-acts{display:flex;flex-wrap:wrap;gap:.4rem}
.pl-btn{min-height:44px;padding:0 .9rem;border:1px solid var(--line-2);border-radius:999px;background:transparent;font:500 .86rem/1 var(--f-sans);color:var(--text);cursor:pointer}
.pl-btn:hover:not(:disabled){border-color:var(--text)}
.pl-btn:disabled{opacity:.45;cursor:not-allowed}
.pl-btn--remove{border-color:transparent;text-decoration:underline;text-underline-offset:.2em;color:var(--muted)}

/* ---------- About the series ---------- */
.pl-sub{display:block!important;margin-top:1.2rem!important}
.pl-sublegend{font:600 .9rem/1.4 var(--f-sans)!important;letter-spacing:0!important;margin:0 0 .45rem!important;padding:0;color:var(--text)}
.pl-sublegend .hint{display:block;font-weight:400;color:var(--muted);font-size:.85rem;margin-top:.15rem}
.pl-size{margin-top:.3rem}
.pl-size .field label{font-weight:500}
.pl-radios{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.pl-radio{align-items:center;min-height:44px}
.pl-radio input{margin-top:0}
.pl-jump{display:none;margin:1.2rem 0 0;font-size:.92rem}
.pl-jump a{color:var(--text);text-decoration-color:var(--sun)}
@media (max-width:980px){.pl-jump{display:block}}

/* ---------- Status and actions ---------- */
#pl-status[data-kind="err"]{color:var(--err-ink);font-weight:500}
#pl-status[data-kind="ok"]{color:var(--text);font-weight:500}
.pl-apply-fallback{margin:-.4rem 0 1rem;font-size:.92rem}
.pl-apply-fallback a{color:var(--text);text-decoration-color:var(--sun)}
.pl-nojs{margin-bottom:2rem}

/* ---------- The plan (a printed page) ---------- */
.pl-doc-empty{margin:0;padding:1.4rem 0;color:var(--soft);font-size:1rem}
.pl-table{margin-bottom:1rem}
.pl-table td.pl-n{font-family:var(--f-mono);font-weight:500;width:2rem;color:var(--sun-ink)}
.pl-table td{hyphens:manual}
.pl-table td:nth-child(3){white-space:nowrap}
.pl-table td:first-child{font-weight:500}
.pl-table td:nth-child(2) .ln:first-child{font-weight:600}
.pl-table td:nth-child(2) .ln + .ln{font-family:var(--f-mono);font-size:.82em;overflow-wrap:anywhere}
.pl-table tfoot th,.pl-table tfoot td{text-align:left;padding:.5rem .6rem .2rem 0;border-top:1px solid var(--ink);font-weight:600}
.pl-table a{text-decoration-color:var(--sun);text-underline-offset:.15em}
.pl-box{margin:0 0 1rem}
.pl-box h3{margin-bottom:.5rem}
.pl-dl{display:grid;gap:.35rem}
.pl-dl > div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.6rem;align-items:baseline}
.pl-dl dd{white-space:pre-line}
.pl-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 1.5rem}
.pl-list{margin:0;padding-left:1.1rem;display:grid;gap:.25rem}
.pl-list [hidden]{display:none}
.pl-small{margin:.5rem 0 0;font-size:.92em;color:var(--soft)}
.pl-foot{margin-top:.6rem;padding-top:.7rem;border-top:1px solid var(--rule);font-size:.9em;color:var(--soft)}
.pl-foot p{margin:0 0 .3rem}
@media (max-width:640px){
  .pl-grid{grid-template-columns:minmax(0,1fr)}
  .pl-dl > div{grid-template-columns:minmax(0,1fr);gap:0}
  .pl-doc .pl-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .pl-doc .pl-table,.pl-doc .pl-table tbody,.pl-doc .pl-table tfoot{display:block;width:100%}
  .pl-doc .pl-table tbody tr{display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:.15rem .4rem;width:100%;padding:.6rem 0;border-top:1px solid #e3ddd0}
  .pl-doc .pl-table tbody td{display:block;width:auto;border:0;padding:0}
  .pl-doc .pl-table tbody td::before{content:none}
  .pl-doc .pl-table tbody td:nth-child(n+2){grid-column:2}
  .pl-doc .pl-table tbody td:nth-child(3){color:var(--soft)}
  .pl-doc .pl-table tfoot tr{display:flex;flex-wrap:wrap;gap:.2rem .6rem;width:100%;border-top:1px solid var(--ink)}
  .pl-doc .pl-table tfoot th,.pl-doc .pl-table tfoot td{display:block;border:0}
  .pl-mod-body{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Print: the plan only, on one page for up to six sessions ---------- */
@media print{
  @page{margin:12mm 13mm}
  body:has(.pl-page) main > :not(.pl-page){display:none!important}
  .pl-page .pl-form,.pl-page .ip-bar,.pl-page .ip-tip,.pl-apply-fallback,.pl-nojs{display:none!important}
  .pl-page{padding:0!important}
  .pl-doc{font-size:9pt}
  .pl-doc a{text-decoration:none}
  .pl-doc .doc-head{padding-bottom:6pt;margin-bottom:6pt}
  .pl-doc .doc-title{font-size:18pt}
  .pl-table td,.pl-table tfoot td,.pl-table tfoot th{padding-top:3pt;padding-bottom:3pt}
  .pl-table tfoot th,.pl-table tfoot td{border-top:.75pt solid #000!important}
  .pl-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .pl-dl > div{grid-template-columns:7.5rem minmax(0,1fr)!important}
  .pl-box,.pl-table tr{break-inside:avoid}
  .pl-foot{border-top:.5pt solid #999!important}
}
