:root { --portal-gutter: clamp(18px, 3vw, 72px); --portal-width: 1800px; }
.portal-body > main {
  width: calc(100% - 2 * var(--portal-gutter));
  max-width: var(--portal-width);
  padding: 0;
  min-width: 0;
}
.portal-body > .topbar { padding: 16px var(--portal-gutter); }
.portal-body .header-inner { max-width: var(--portal-width); }
.portal-body > footer {
  padding: 24px max(var(--portal-gutter), calc((100% - var(--portal-width)) / 2));
  flex-wrap: wrap;
}
.portal-body .category-grid, .portal-body .section-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-body .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-body .section-heading { flex-wrap: wrap; }
.portal-body .section-heading > h3, .portal-body .category, .portal-body .section-card,
.portal-body .document > div, .portal-body .panel { min-width: 0; overflow-wrap: anywhere; }
.portal-body .document { flex-wrap: wrap; }
.portal-body .compact-admin-heading { flex-wrap: wrap; }
.portal-body input, .portal-body textarea, .portal-body select { max-width: 100%; }
.portal-body .expiry-form > label { min-width: 0; }
.login-main { min-height: 100vh; min-height: 100dvh; padding: clamp(20px, 4vw, 64px); }
.login-shell { width: 100%; max-width: 1320px; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px); gap: clamp(32px, 4vw, 80px); }
.welcome-copy { min-width: 0; }
.welcome-copy h1 { font-size: clamp(30px, 3vw, 48px); overflow-wrap: normal; }
.login-card { min-width: 0; }
@media (min-width: 1600px) {
  .portal-body .category-grid, .portal-body .section-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .portal-body .category-grid { gap: 16px; padding: 24px; }
}
@media (max-width: 1000px) { .login-shell .module-grid { display: none; } }
@media (max-width: 760px) {
  .portal-body .header-inner { gap: 12px; }
  .portal-body .header-controls { flex-wrap: wrap; }
  .portal-body .admin-grid { grid-template-columns: minmax(0, 1fr); }
  .login-shell { grid-template-columns: minmax(0, 1fr); max-width: 500px; gap: 24px; }
  .welcome-panel { min-height: 0; }
  .welcome-copy { margin-left: 0; }
}
@media (max-width: 600px) {
  .portal-body .category-grid, .portal-body .section-tiles { grid-template-columns: minmax(0, 1fr); }
  .portal-body .category-grid { padding: 12px; }
  .portal-body .compact-admin-heading h1 { font-size: clamp(25px, 6vw, 32px); }
  .portal-body .document .button { margin-left: 0; }
  .portal-body .expiry-form { align-items: stretch; }
  .portal-body .expiry-form > label { flex: 1 1 100%; }
  .portal-body > footer { flex-direction: column; gap: 12px; }
  .portal-body .header-account { max-width: 100%; }
}
