/* Part A panels (PROG). Prefix pg-. Uses the tokens and the shared classes of app.css (.btn .seg .chips .chip .f .row .card .tbl .money .hint .pill .kv .two) and restyles none of them.
 * Colour is never the only signal: night types carry a two-letter code and a word, outcomes carry a word. */
:root{
  --pg-local:#2f7a52; --pg-regional:#2d6aa8; --pg-national:#8f3f99; --pg-residency:#237f84; --pg-theme:#7f5f12; --pg-private:#a2522c; --pg-dark:#3a3a3a;
}
.pg-warn{background:var(--red-wash);border:1px solid var(--bad);border-radius:6px;padding:10px 14px;margin:12px 0}
.pg-niva{border-left:4px solid var(--blue);padding:4px 12px;margin:10px 0;color:#cfcbc4}
.pg-lab{font-family:var(--label);letter-spacing:.1em;font-size:16px;color:var(--muted);margin:10px 0 4px}
.pg-h3{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:24px;margin:22px 0 8px}
.pg-auto,.pg-over,.pg-blank{margin:10px 0;padding:8px 12px;background:var(--panel-2);border-radius:6px;border:1px solid var(--line)}
.pg-blank{color:var(--muted);border-style:dashed}
.pg-be{margin:8px 0;padding:6px 12px;border-left:4px solid var(--blue);background:var(--panel-2);border-radius:0 6px 6px 0}
.pg-be--no,.pg-be--mismatch{border-left-color:var(--bad)} .pg-be--stretch{border-left-color:var(--warn)} .pg-be--fits{border-left-color:var(--ok)}
.pg-be .pill{margin-left:6px;vertical-align:1px}

/* scenarios */
.pg-list{display:grid;gap:14px;margin:12px 0}
.pg-list>*{min-width:0}   /* grid items default to min-width:auto, so a wide table stretched the whole page sideways at 768 to 1170 px (QA-R3-LAPTOP-01) */
.pg-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.pg-card__t{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:26px;margin:0 0 4px}
.pg-setup{margin:6px 0;color:#d6d2cb}
.pg-ask{margin:8px 0 10px}
.pg-opts{display:grid;gap:8px;grid-template-columns:1fr}
.pg-opt{display:block;text-align:left;min-height:44px;padding:10px 14px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:6px;color:var(--ink);font:inherit;cursor:pointer}
.pg-opt b{display:block}
.pg-opt small{display:block;color:var(--muted);margin-top:2px;font-size:13.5px}
.pg-opt[aria-pressed=true]{border-color:var(--red);box-shadow:inset 0 0 0 2px var(--red);background:var(--red-wash)}
.pg-opt:hover{background:var(--panel-3)}
.pg-after{margin-top:14px;border-top:1px dashed var(--line-2);padding-top:12px}
.pg-price{max-width:320px}
.pg-tablewrap{overflow-x:auto;margin:10px 0}
.pg-fit{display:inline-block;padding:0 8px;border-radius:10px;font-size:13px;border:1px solid var(--line-2)}
.pg-fit--strong{border-color:var(--ok);color:var(--ok)} .pg-fit--good{border-color:var(--ok)} .pg-fit--stretch{border-color:var(--warn);color:var(--warn)} .pg-fit--poor{border-color:var(--bad);color:var(--bad)}
.pg-row--you td{background:rgba(232,0,0,.07)}
.pg-you{border-color:var(--red);color:var(--ink)} .pg-best{border-color:var(--ok);color:var(--ok)}
.pg-whylist{padding-left:18px;margin:8px 0} .pg-whylist li{margin:6px 0} .pg-why--you{color:var(--ink)}
.pg-teach{margin:10px 0 0;color:#cfcbc4;font-size:14.5px}

/* calendar */
.pg-cal-top{display:grid;gap:14px;grid-template-columns:1fr;margin:8px 0}
.pg-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.pg-key{display:inline-block;padding:2px 10px;border-radius:12px;font-size:13px;color:#fff}
.pg-t-local{--c:var(--pg-local)} .pg-t-regional{--c:var(--pg-regional)} .pg-t-national{--c:var(--pg-national)} .pg-t-residency{--c:var(--pg-residency)}
.pg-t-theme{--c:var(--pg-theme)} .pg-t-private{--c:var(--pg-private)} .pg-t-dark{--c:var(--pg-dark)} .pg-t-none{--c:transparent}
.pg-key{background:var(--c)}
.pg-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;max-width:560px}
.pg-grid__d{font-family:var(--label);letter-spacing:.1em;font-size:14px;color:var(--muted);text-align:center}
.pg-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line-2);border-radius:5px;background:var(--c);color:#fff;font:inherit;padding:2px;cursor:pointer}
.pg-cell--blank{border:0;background:transparent;cursor:default}
.pg-cell.pg-t-none{border-style:dashed;color:var(--muted)}
.pg-cell__n{font-size:12px;opacity:1;line-height:1} .pg-cell__t{font-family:var(--label);letter-spacing:.06em;font-size:16px;line-height:1.1}
.pg-month{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:14px 0}
.pg-days{display:grid;gap:10px}
.pg-day{background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--line-2);border-radius:6px;padding:10px 12px}
.pg-day--local{border-left-color:var(--pg-local)} .pg-day--regional{border-left-color:var(--pg-regional)} .pg-day--national{border-left-color:var(--pg-national)} .pg-day--residency{border-left-color:var(--pg-residency)}
.pg-day--theme{border-left-color:var(--pg-theme)} .pg-day--private{border-left-color:var(--pg-private)} .pg-day--dark{border-left-color:var(--pg-dark);opacity:.92}
.pg-day__h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-bottom:6px}
.pg-day__est{color:var(--muted);font-size:13.5px}
.pg-types .chip{min-height:36px;padding:2px 11px;font-size:14px}
.pg-types .chip[aria-pressed=true]{background:var(--c);border-color:var(--c);color:#fff}
.pg-fields{display:grid;gap:0 12px;grid-template-columns:1fr}
.pg-fields [hidden]{display:none !important}

/* offers */
.pg-offer__t{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:25px;margin:0 0 4px}
.pg-lines .pg-tot td{border-top:2px solid var(--line-2);font-weight:600}
.pg-sign{display:inline-block;min-width:1.1em;color:var(--muted)}
.pg-assume{margin:8px 0;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}
.pg-assume summary{cursor:pointer;min-height:32px}

/* mix and policy */
.pg-stepper{display:flex;align-items:flex-end;gap:10px;margin:8px 0}
.pg-stepper__f{max-width:140px}
.pg-mixsay{font-family:var(--display);font-size:30px;letter-spacing:.02em;margin:8px 0;overflow-wrap:anywhere}
.pg-term__t{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:22px;margin:0 0 4px}

/* the Deal Desk */
.pg-count{margin:6px 0 12px}
.pg-archs{display:grid;gap:10px;grid-template-columns:1fr}
.pg-arch{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.pg-arch h4,.pg-risk__t,.pg-read h4,.pg-reveal h4{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:20px;margin:10px 0 4px}
.pg-arch ul{margin:6px 0;padding-left:18px}
.pg-bestcell{color:var(--ok)}
.pg-cardlist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.pg-cardrow{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.pg-st-done{border-color:var(--ok);color:var(--ok)} .pg-st-doing{border-color:var(--warn);color:var(--warn)}
.pg-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:10px 0;padding:0;counter-reset:pgs}
.pg-steps li{counter-increment:pgs;padding:2px 12px;border:1px solid var(--line-2);border-radius:14px;font-size:13.5px;color:var(--muted)}
.pg-steps li::before{content:counter(pgs) ". "}
.pg-steps li.done{color:var(--ok);border-color:var(--ok)} .pg-steps li.now{color:#000;background:var(--warn);border-color:var(--warn);font-weight:600}
.pg-lines2{margin:6px 0 6px;padding-left:18px} .pg-lines2 li{margin:4px 0}
.pg-mform{display:grid;gap:8px;grid-template-columns:1fr}
.pg-mrow{border-left:4px solid transparent;padding-left:10px}
.pg-mrow.ok{border-left-color:var(--ok)} .pg-mrow.bad{border-left-color:var(--bad)}
.pg-mhint{margin:2px 0 0;font-size:14px;color:#d6d2cb}
.pg-say{margin:10px 0;padding:10px 16px;border-left:4px solid var(--blue);background:var(--panel-2);font-style:italic}
.pg-outcome{font-size:18px;padding:10px 14px;border-radius:6px;border:1px solid var(--line-2);margin:8px 0}
.pg-out--ok{border-color:var(--ok)} .pg-out--warn{border-color:var(--warn)} .pg-out--bad{border-color:var(--bad)} .pg-out--note{border-color:var(--blue)}
.pg-explain{margin:8px 0;padding-left:20px} .pg-explain li{margin:6px 0}

@media (min-width:640px){
  .pg-cal-top{grid-template-columns:auto 1fr;align-items:end}
  .pg-fields{grid-template-columns:2fr 1fr 1fr 2fr}
  .pg-opts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .pg-archs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg-mform{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:480px){
  .pg-read .kv,.pg-month .kv{grid-template-columns:1fr;gap:0}
  .pg-read .kv dt,.pg-month .kv dt{margin-top:8px;font-size:13px}
  .pg-read .kv dd,.pg-month .kv dd{margin:0}
}

/* the plain lines that travel with the numbers: "this is not profit", "which side is the 80?", and the NIVA reality check */
.pg-netnote{margin:8px 0;padding:6px 12px;border-left:4px solid var(--warn);background:var(--panel-2);color:var(--ink);font-size:14.5px;line-height:1.4}
.pg-splitnote{margin:8px 0;padding:6px 12px;border-left:4px solid var(--blue);background:var(--panel-2);font-size:14.5px;line-height:1.4}
.pg-reality{margin:14px 0;padding-top:4px}
.pg-reality h3,.pg-reality h4{font-family:var(--label);letter-spacing:.08em;font-weight:400;font-size:20px;margin:6px 0 4px}
.pg-dist__t{margin:12px 0 4px}
.pg-dist{list-style:none;margin:0 0 6px;padding:0;max-width:560px}
.pg-dist li{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--line)}
.pg-dist__v{font-weight:600}
.pg-dist__b{grid-column:1 / -1;display:block;height:8px;margin-top:3px;border-radius:3px;background:var(--blue);min-width:3px}

/* phone: every tap target in a PROG panel is at least 44 px tall (the shared .btn.sm and the night-type chips are 36 px) */
@media (max-width:640px){
  .pg-types .chip{min-height:44px;padding:2px 14px}
  .pg-cal-top .btn,.pg-stepper .btn,.pg-term .btn,.pg-cardrow .btn,.pg-deal .btn,.pg-card .btn,.pg-warn .btn,.pg-offer .btn,.pg-mix .btn,.pg-reveal .btn,.pg-counter .btn{min-height:44px}
  .pg-cardrow .btn{min-width:84px}
  .pg-assume summary{min-height:44px;display:flex;align-items:center}
}

/* phone: the shared stacked table makes every child of a cell a flex item, which squeezed a label and its pills into a narrow column.
   PROG tables stack with the label inline in front of the value instead; the worked lines keep label left and amount right. */
@media (max-width:640px){
  .tbl.pg-tbl:not(.tbl--keep) td{display:block;text-align:left;padding:3px 0}
  .tbl.pg-tbl:not(.tbl--keep) td::before{display:inline;content:attr(data-label) ": ";font-size:13px}
  .tbl.pg-tbl:not(.tbl--keep) td:first-child{padding-top:6px}
  .tbl.pg-tbl:not(.tbl--keep) td:first-child::before{display:none}
  .tbl.pg-lines:not(.tbl--keep) td:not(:first-child){display:flex;justify-content:space-between;gap:12px}
  .tbl.pg-lines:not(.tbl--keep) td:not(:first-child)::before{display:inline;content:attr(data-label);flex:0 0 auto;text-align:left}
  .tbl.pg-lines:not(.tbl--keep) td.r{text-align:right}
}
.pg-row--na td{opacity:.75;font-style:italic}
.pg-printed summary{font-weight:600}
.pg-a9{margin:.6rem 0 0;padding:.6rem .8rem;border-left:3px solid var(--red,#e80000);background:rgba(232,0,0,.05)}
@media (max-width:640px){ .tbl.pg-tbl.pg-risk td.pg-na{display:none} }
.tbl.pg-tbl.pg-risk td.money b{white-space:nowrap}

/* Round 2A: calendar origin, billing, mission test, bulk apply */
.pg-origin,.pg-bill{margin:8px 0}
.pg-origin .chips,.pg-bill .chips{margin-top:4px}
.pg-origin .chip,.pg-bill .chip{min-height:44px}
.pg-defend{margin:10px 0;padding:8px 12px;border-left:4px solid var(--warn);background:var(--panel-2);border-radius:0 6px 6px 0}
.pg-defend__why{margin:0 0 6px;font-weight:600}
.pg-defend .btn{margin-top:6px}
.pg-bulk{margin-top:8px}
.pg-bulk .btn{min-height:44px}
.pg-mission{margin:14px 0}
.pg-mission__t--open{color:var(--warn)}
.pg-mission__l{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}
.pg-mission__l li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px}
.pg-mission__l li span{flex:1 1 220px}
.pg-mission__l .btn{min-height:44px}

/* Round 2B (AUD-A11Y-06, -08): white on the night-type colors is at least 4.5:1 (theme darkened); the small helper under a night is 12px */
.pg-day small.muted,.pg-day__h small{font-size:12px}
.pg-opt[aria-pressed=true] small{color:inherit;opacity:1}
.pg-tbl td[data-label="Option"]{min-width:9.5em;overflow-wrap:normal;word-break:normal}
.pg-tablewrap{overflow-x:auto}
/* AUD-STUDENT-30: disclosure rows look openable (a triangle) */
.pg-assume>summary,.pg-whyfold>summary{cursor:pointer;list-style:none}
.pg-assume>summary::before,.pg-whyfold>summary::before{content:"\25B8";display:inline-block;margin-right:8px;transition:none}
.pg-assume[open]>summary::before,.pg-whyfold[open]>summary::before{content:"\25BE"}
.pg-assume>summary::-webkit-details-marker,.pg-whyfold>summary::-webkit-details-marker{display:none}
