body[data-portal] { min-width: 300px; }
.portal-width { max-width: 1180px; }
.portal-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; }
.portal-summary dl { display: flex; flex-wrap: wrap; gap: 20px 42px; }
.portal-summary dt { font-size: 12px; }
.portal-summary dd { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
.portal-summary .expiry dd { font-size: 13px; line-height: 28px; font-weight: 450; }
#index-badge { white-space: nowrap; flex-shrink: 0; }
.portal-tabs { gap: 30px; }
.portal-status { min-height: 22px; padding-top: 8px; }
.portal-band { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 18px; }
.portal-band > h2 { margin-bottom: 12px; }
.portal-band .subheading { margin-top: 0; }
.portal-lock { min-height: 42px; padding-top: 12px; }
.download-link { font-size: 13px; padding: 10px 0; }
.document-list { list-style: none; padding: 0; margin: 0; }
.document-list li { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; border-bottom: 1px solid var(--line); padding: 12px 0; overflow-wrap: anywhere; }
.document-list li > span { flex: 1 1 180px; min-width: 0; }
.document-list code { max-width: 100%; font-size: 11px; color: var(--muted); overflow-wrap: anywhere; }
.portal-search-layout { display: grid; grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); gap: 36px; }
.portal-search-layout form .field { margin-bottom: 16px; }
.portal-search-layout textarea { display: block; resize: vertical; width: 100%; min-height: 112px; max-height: 600px; padding: 10px 12px; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); }
.portal-search-layout textarea:focus { border-color: var(--info); }
.search-options { display: grid; gap: 9px; margin: 10px 0; }
.search-option { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; align-items: start; }
.search-option label { padding-top: 10px; }
.search-option textarea { min-height: 42px; height: 42px; }
.option-group { margin-bottom: 22px; }
.search-output { border-top: 1px solid var(--line); padding-top: 14px; min-width: 0; }
.search-output > h2 { margin-bottom: 18px; }
.answer-block { padding: 16px 0; font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.result-meta { margin-top: 14px; }
.history-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.history-row h3 { margin-bottom: 6px; overflow-wrap: anywhere; }
.history-row p { font-size: 12px; color: var(--muted); }
.history-actions { display: flex; gap: 10px; align-items: center; }
.job-heading { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.job-heading h3 { min-width: 0; overflow-wrap: anywhere; }
.recovery-file { max-width: 480px; margin: 16px 0; }
.dialog-description { white-space: pre-wrap; overflow-wrap: anywhere; margin: 16px 0 22px; }
#confirm-form .field { margin-bottom: 16px; }
#current-job-content progress { display: block; }
#current-job-content .muted { margin-top: 8px; }
body[data-portal] .page { padding-top: 16px; }
body[data-portal] .login-panel .brand { margin-bottom: 30px; }
body[data-portal] .login-view { background: var(--bg); }
body[data-portal] button { min-height: 40px; }
body[data-portal] .section-heading { flex-wrap: wrap; }
@media (max-width: 760px) {
  .portal-search-layout { display: block; }
  .search-output { margin-top: 26px; }
  .portal-summary { align-items: flex-start; }
  .portal-summary dl { gap: 10px 24px; }
  .portal-summary .expiry { flex-basis: 100%; }
  .portal-tabs { gap: 0; }
  .history-row { grid-template-columns: minmax(0, 1fr); }
  .history-actions { justify-content: space-between; }
  body[data-portal] .header-inner { flex-wrap: wrap; }
  body[data-portal] .header-actions { margin-left: auto; flex-wrap: wrap; }
  body[data-portal] .card-number { font-size: 14px; }
  body[data-portal] button, body[data-portal] input, body[data-portal] select { min-height: 44px; }
  body[data-portal] input[type="radio"], body[data-portal] input[type="checkbox"] { min-height: 17px; }
  .mode-options label, .checkbox-label { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  body[data-portal] *, body[data-portal] *::before, body[data-portal] *::after { animation: none !important; transition: none !important; }
}
