/* Coach & Board Portal (loaded only on /portal/) */
body.portal{background:#faf9f4}
.pt-head{padding:28px 0}
.pt-section{padding:28px 0 48px}
.pt-card{background:#fff;border:1px solid #e3e1d6;border-radius:var(--radius);padding:22px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.pt-center{text-align:center}
.pt-narrow{max-width:560px;margin:0 auto}
.pt-card h2::after{margin-left:auto;margin-right:auto}
.pt-gbtn{display:flex;justify-content:center;min-height:44px;margin:18px 0}
.pt-small{font-size:.9rem;color:var(--muted)}
.pt-error{color:var(--red-dark);font-weight:700}
.pt-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pt-user{display:flex;align-items:center;gap:10px;color:var(--cream);font-size:.9rem;flex-wrap:wrap}
.pt-btn{font:inherit;font-weight:700;border-radius:8px;padding:7px 12px;cursor:pointer;border:2px solid var(--red);background:var(--red);color:#fff}
.pt-btn:hover{background:var(--red-dark);border-color:var(--red-dark)}
.pt-btn-ghost{background:transparent;border-color:var(--cream);color:var(--cream)}
.pt-btn-ghost:hover{background:var(--cream);color:var(--black);border-color:var(--cream)}
.pt-btn-dark{background:var(--black);border-color:var(--black)}
.pt-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.pt-toolbar label{font-weight:700}
.pt-toolbar select{font:inherit;padding:7px 10px;border-radius:8px;border:1px solid #bbb;background:#fff}
.pt-spacer{flex:1}
.pt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px;border-bottom:3px solid var(--red);padding-bottom:0}
.pt-tab{font:inherit;font-weight:700;border:0;background:#ecebe3;color:var(--ink);padding:9px 14px;border-radius:10px 10px 0 0;cursor:pointer}
.pt-tab[aria-selected=true]{background:var(--red);color:#fff}
.pt-meta{color:var(--muted);font-size:.85rem;margin:0 0 12px}
.pt-empty{color:var(--muted);font-style:italic}
.pt-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.pt-ec{background:#fff;border:1px solid #d9d7cc;border-left:6px solid var(--black);border-radius:12px;padding:14px 16px;break-inside:avoid;page-break-inside:avoid}
.pt-ec.alert{border-left-color:var(--red)}
.pt-ec h3{margin:0;font-size:1.15rem;line-height:1.25}
.pt-ec .aka{color:var(--muted);font-weight:600;font-size:.95rem}
.pt-ec .sub{color:var(--muted);font-size:.88rem;margin:2px 0 8px}
.pt-ec dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:0;font-size:.93rem}
.pt-ec dt{font-weight:700;color:#444}
.pt-ec dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.pt-ec dd.med{color:var(--red-dark);font-weight:700}
.pt-ec .sec{margin-top:8px;padding-top:8px;border-top:1px dashed #ddd}
.pt-tablewrap{overflow-x:auto;background:#fff;border:1px solid #e3e1d6;border-radius:12px}
table.pt-table{border-collapse:collapse;width:100%;font-size:.9rem}
.pt-table th,.pt-table td{padding:7px 9px;border-bottom:1px solid #eee;text-align:left;vertical-align:top;white-space:pre-line}
.pt-table th{background:var(--black);color:#fff;position:sticky;top:0;font-weight:700}
.pt-table tr.ok td{background:#f1f8ef}
.pt-table td.no{color:var(--red-dark);font-weight:700}
.pt-table td.yes{color:#24702a;font-weight:700}
.pt-table tr.total td{font-weight:800;background:#f3f1e8}
.pt-h3{margin:22px 0 8px;font-size:1.1rem;text-transform:uppercase}
.pt-note{background:#fff4c2;color:#5a4a00;border-radius:10px;padding:8px 12px;font-size:.9rem;margin:0 0 12px}
.pt-print-head{display:none}
@media (max-width:560px){.pt-cards{grid-template-columns:1fr}.pt-tab{padding:8px 10px;font-size:.9rem}.pt-user{width:100%;justify-content:space-between}}
@media print{
  @page{margin:12mm}
  body.portal{background:#fff;color:#000;font-size:11pt}
  header.site,footer.site,.pt-head,.pt-toolbar,.pt-tabs,.skip,.pt-noprint{display:none!important}
  .pt-section{padding:0}
  .pt-print-head{display:block;font-weight:800;margin:0 0 6pt;font-size:13pt}
  .pt-cards{display:block}
  .pt-ec{border:1px solid #000;border-left:6px solid #000;margin:0 0 8pt;box-shadow:none}
  .pt-ec.alert{border-left-color:#b5161c}
  .pt-tablewrap{overflow:visible;border:0}
  .pt-table th{background:#000!important;color:#fff!important;position:static;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pt-table{font-size:9pt}
  .pt-panel[hidden]{display:none!important}
  a{color:#000;text-decoration:none}
}
.portal [hidden]{display:none!important}
