/* Customer portal (/portal/, /demo/portal/; F02 S3): the host in large type, the person and customer in a bar, three parts of one page, tables that scroll
   sideways on a phone, a report drawn like the printout on white paper (print.css). Classes start with exo- (rule 7); colours are the theme tokens. */
.exo-portal-page { background: var(--exo-bg); color: var(--exo-ink); }
.exo-portal-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px var(--exo-sp-4); background: var(--exo-brand); color: var(--exo-on-brand); }
.exo-portal-host { font-size: var(--exo-fs-xl); font-weight: 700; overflow-wrap: anywhere; }
.exo-portal-top .exo-lang { border: 1.5px solid rgba(255, 255, 255, 0.6); }
.exo-portal-top .exo-lang-btn { color: var(--exo-on-brand); }
.exo-portal-top .exo-lang-btn[aria-pressed="true"] { background: var(--exo-on-brand); color: var(--exo-brand); }
.exo-portal-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--exo-sp-2) var(--exo-sp-4); padding: var(--exo-sp-2) var(--exo-sp-4); background: var(--exo-surface); border-bottom: 1px solid var(--exo-line); }
.exo-portal-bar[hidden], .exo-portal-nav[hidden] { display: none; }
.exo-portal-who { overflow-wrap: anywhere; }
.exo-portal-controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--exo-sp-2); }
.exo-portal-pick { max-width: 100%; }
.exo-portal-nav { display: flex; flex-wrap: wrap; gap: var(--exo-sp-2); padding: var(--exo-sp-3) var(--exo-sp-4) 0; max-width: 230mm; margin: 0 auto; }
.exo-portal-tab[aria-pressed="true"] { background: var(--exo-accent); color: var(--exo-accent-ink); border-color: var(--exo-accent); font-weight: 700; }
.exo-portal-main-wrap { max-width: 230mm; margin: 0 auto; padding: var(--exo-sp-4); }
.exo-portal-title { margin: var(--exo-sp-3) 0 var(--exo-sp-2); font-size: 22px; overflow-wrap: anywhere; }
.exo-portal-sub { margin: var(--exo-sp-4) 0 var(--exo-sp-2); font-size: var(--exo-fs-lg); }
.exo-portal-section { display: grid; gap: var(--exo-sp-2); }
.exo-portal-facts { margin: var(--exo-sp-2) 0; }
.exo-portal-login { display: grid; gap: var(--exo-sp-2); max-width: 520px; margin: var(--exo-sp-3) 0; }
.exo-portal-login .exo-btn { justify-self: start; }
.exo-portal-login .exo-input { font-size: var(--exo-fs-lg); }
.exo-portal-choice { text-align: left; }
.exo-portal-table-frame { overflow-x: auto; }
.exo-portal-table { width: 100%; border-collapse: collapse; background: var(--exo-surface); }
.exo-portal-table th, .exo-portal-table td { padding: 8px 10px; border-bottom: 1px solid var(--exo-line); text-align: left; vertical-align: top; }
.exo-portal-table th { color: var(--exo-muted); font-weight: 600; white-space: nowrap; }
.exo-btn-link { padding: 0; border: 0; background: transparent; color: var(--exo-ink); text-decoration: underline; cursor: pointer; font: inherit; font-weight: 700; }
.exo-portal-actions { margin-bottom: var(--exo-sp-2); }
.exo-portal-band { padding: var(--exo-sp-3) var(--exo-sp-4); border: 2px solid var(--exo-warn-line); border-radius: var(--exo-radius); background: var(--exo-warn-bg); color: var(--exo-warn-ink); }
.exo-portal-band p { margin: 0; }
.exo-portal-sheet { margin-top: var(--exo-sp-3); overflow-x: auto; }
.exo-portal-sheet .exo-print-sheet { margin: 0 auto; }
.exo-portal-answer { margin-top: var(--exo-sp-4); padding: var(--exo-sp-3) var(--exo-sp-4); border: 1px solid var(--exo-line-strong); border-radius: var(--exo-radius); background: var(--exo-surface); }
.exo-portal-answered { margin: 0; font-weight: 700; }
.exo-portal-answer-note { white-space: pre-wrap; overflow-wrap: anywhere; }
.exo-portal-answer-slot { margin-top: var(--exo-sp-3); }
.exo-portal-answer .exo-input { width: 100%; box-sizing: border-box; }
@media (max-width: 600px) {
  .exo-portal-sheet .exo-print-sheet { padding: 8mm 5mm; font-size: 10pt; }
  .exo-portal-table th, .exo-portal-table td { padding: 6px; }
}
@media print {
  .exo-portal-top, .exo-portal-bar, .exo-portal-nav, .exo-portal-actions, .exo-portal-demo-note, .exo-portal-answer { display: none; }
  .exo-portal-main-wrap { padding: 0; max-width: none; }
}
