/* Shared responsive layer, loaded after page styles. */
html { max-width:100%; overflow-x:hidden; }
body { min-width:0; max-width:100%; }
img,svg,video { max-width:100%; }
main,.panel,.hero,section,article,form,fieldset { min-width:0; }
.mobile-nav-toggle,.mobile-nav-head,.mobile-nav-backdrop { display:none; }

@media (pointer:coarse) {
  button,a,select,input[type=checkbox],input[type=radio] { touch-action:manipulation; }
}

@media (max-width:1000px) {
  body.modern-theme:not(.server-selection-page) .sidebar {
    position:fixed; inset:0 auto 0 0; z-index:1100;
    width:min(88vw,330px); height:100dvh; margin:0; padding:18px 16px 24px;
    border-width:0 1px 0 0; border-radius:0 22px 22px 0;
    transform:translateX(calc(-100% - 24px)); transition:transform .22s ease;
    overscroll-behavior:contain; box-shadow:18px 0 55px #02071299;
  }
  body.legacy-dashboard .sidebar {
    position:fixed; inset:0 auto 0 0; z-index:1100;
    display:flex; flex-direction:column; width:min(88vw,330px); height:100dvh; padding:18px 16px 24px;
    transform:translateX(calc(-100% - 24px)); transition:transform .22s ease;
    overflow-y:auto; overscroll-behavior:contain; box-shadow:18px 0 55px #02071299;
  }
  body.legacy-dashboard.mobile-nav-open .sidebar { transform:translateX(0); }
  body.legacy-dashboard.mobile-nav-open { overflow:hidden; }
  body.legacy-dashboard .sidebar nav { display:grid; }
  body.legacy-dashboard main { width:100%; margin-left:0; }
  body.modern-theme.mobile-nav-open:not(.server-selection-page) .sidebar { transform:translateX(0); }
  body.modern-theme.mobile-nav-open { overflow:hidden; }
  body.modern-theme:not(.server-selection-page) .sidebar nav {
    display:grid; grid-template-columns:1fr; gap:24px; margin-top:22px;
  }
  body.modern-theme:not(.server-selection-page) .sidebar .alpha-label { display:block; }
  .mobile-nav-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 8px; padding:0 4px 14px; border-bottom:1px solid #30415b; }
  .mobile-nav-head strong { color:#aebfd7; font-size:.78rem; letter-spacing:.04em; }
  .mobile-nav-head button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #456187; border-radius:12px; background:#1c304d; color:#e9f3ff; font:400 1.65rem/1 Arial,sans-serif; }
  .mobile-nav-toggle {
    display:inline-flex; position:sticky; top:10px; z-index:950; align-items:center; justify-content:center; gap:10px;
    min-width:112px; min-height:46px; margin:0 0 20px; padding:10px 16px;
    border:1px solid #4c75a9; border-radius:13px; background:#1b3558eF; color:#f1f7ff;
    font:750 .9rem/1 system-ui,sans-serif; box-shadow:0 8px 25px #02071270; backdrop-filter:blur(10px);
  }
  .mobile-nav-icon { display:grid; gap:4px; width:19px; }
  .mobile-nav-icon i { display:block; height:2px; border-radius:2px; background:currentColor; }
  .mobile-nav-backdrop { position:fixed; inset:0; z-index:1050; width:100%; height:100%; border:0; background:#020713b8; backdrop-filter:blur(3px); }
  body.mobile-nav-open .mobile-nav-backdrop { display:block; }
  body.server-selection-page .mobile-nav-toggle { display:none; }
  body.modern-theme:not(.server-selection-page) main { width:100%; margin-left:0; }

  .split,.onboarding,.access-columns,.admin-grant-panel { grid-template-columns:minmax(0,1fr)!important; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .table-wrap,.global-table-scroll,.server-log-table-scroll,.player-database-table-scroll,.ranking-example-scroll {
    max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch;
  }
  .table-wrap table,.global-table,.server-log-table,.player-database-table,.ranking-example-table { min-width:720px; }
  dialog { max-width:calc(100vw - 24px)!important; max-height:calc(100dvh - 24px)!important; overscroll-behavior:contain; }
}

@media (max-width:720px) {
  .portal-nav { align-items:stretch!important; flex-direction:column; width:calc(100% - 28px)!important; gap:12px!important; }
  .portal-brand { align-self:flex-start; }
  .portal-nav nav { width:100%; justify-content:flex-start!important; flex-wrap:nowrap!important; gap:9px!important; padding:3px 1px 8px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
  .portal-nav nav>a,.portal-nav nav form { display:block!important; flex:0 0 auto; }
  .portal-nav nav>a { min-height:42px; padding:10px 12px; border:1px solid #2e4668; border-radius:10px; background:#111f34; }
  .portal-nav nav>a.active { display:flex!important; align-items:center; }
  .portal-nav nav button { min-height:42px; white-space:nowrap; }
  .landing-main { min-height:auto; }
  .landing-copy h1 { font-size:clamp(2.7rem,15vw,4.7rem); overflow-wrap:anywhere; }
  .portal-choice { gap:15px; }
  .portal-choice-icon { width:56px; height:56px; border-radius:16px; }
  .portal-choice-copy span { overflow-wrap:anywhere; }
  .survivor-community-card { padding:18px; }
  .community-card-copy strong { white-space:normal; overflow-wrap:anywhere; }
  .public-global-hero h1 { font-size:clamp(2.55rem,14vw,4.6rem); }
}

@media (max-width:650px) {
  body.modern-theme main { padding:14px 14px 38px; }
  body.modern-theme .topbar { gap:14px; margin-bottom:20px; }
  body.modern-theme .topbar h1 { font-size:clamp(1.45rem,8vw,2rem); }
  body.modern-theme .panel,body.modern-theme .hero,body.modern-theme .hero.compact { padding:18px; }
  body.modern-theme input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  body.modern-theme select,body.modern-theme textarea { width:100%; max-width:100%; font-size:16px; }
  body.modern-theme button,body.modern-theme a { overflow-wrap:anywhere; }
  .topbar,.hero,.panel-head,.notice,.support-banner,.subscription-paused-notice,.administration-notice,
  .trial-card,.grant-row,.server-row,.case { align-items:stretch!important; flex-direction:column; }
  .support-banner a,.notice a,.subscription-paused-notice a { margin-left:0; text-align:center; }
  .account-menu { width:100%; }
  .account-menu form,.account-menu form button { width:100%; }
  .metrics,.module-grid,.plan-grid,.economy-fields,.wallet-form,.economy-command-grid,.economy-command-fields,
  .economy-rules,.economy-rules>div,.control-metrics,.control-tools,.online-player-list,.faction-grid,
  .zone-mode-grid,.zone-event-grid,.faction-form-grid,.zone-rule-grid,.ranking-help-facts,
  .health-service-grid,.health-summary-grid { grid-template-columns:minmax(0,1fr)!important; }
  .selection-actions,.installation-actions,.module-actions,.faction-actions,.rename-actions { width:100%; }
  .selection-actions>a,.selection-actions>button,.installation-actions>a,.installation-actions>button,
  .module-actions>a,.module-actions>button,.rename-actions button { flex:1 1 100%; width:100%; justify-content:center; }
  #server-rename-dialog .rename-actions button { width:100%; }
  .community-meta { text-align:left; }
  .table-wrap { border-radius:12px!important; }
  .table-wrap table,.global-table,.server-log-table,.player-database-table,.ranking-example-table { min-width:650px; }
  .global-search>div,.community-search>div,.server-log-search>div,.player-database-search>div { align-items:stretch; flex-direction:column; }
  .global-search button,.community-search button,.server-log-search button,.player-database-search button { width:100%; min-height:44px; }
  .global-pagination,.server-log-pagination,.player-database-pagination { flex-wrap:wrap; }
  .global-pagination strong,.server-log-pagination strong,.player-database-pagination strong { order:-1; flex-basis:100%; }
  dialog,.feed-settings-dialog,.control-dialog,.ranking-help-dialog,.player-database-dialog,.community-setup-dialog {
    width:calc(100vw - 20px)!important; margin:auto; padding:18px!important; border-radius:18px!important;
  }
  dialog form footer,.faction-form footer,.control-confirm-dialog footer,.rating-reset-dialog footer,.community-setup-dialog footer {
    align-items:stretch; flex-direction:column; gap:10px;
  }
  dialog form footer button,.faction-form footer button,.control-confirm-dialog footer button,
  .rating-reset-dialog footer button,.community-setup-dialog footer button { width:100%; min-height:44px; }
  .ban-duplicate-dialog[open] { grid-template-columns:1fr; }
  .ban-duplicate-dialog .ban-primary { width:100%; }
  .json-file-picker { align-items:flex-start; flex-direction:column; }
  .json-file-picker input { width:100%; max-width:100%!important; margin-left:0; }
  .survivor-context,.survivor-context>a.survivor-community-switch { width:100%; min-width:0; }
  .survivor-current-community { justify-items:start; }
  .survivor-account header,.account-location { align-items:flex-start; flex-direction:column; }
  .rating-pill { align-self:flex-start; }
  pre,code { max-width:100%; overflow-x:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
}

@media (max-width:420px) {
  .metrics,.survivor-overview,.global-summary,.survivor-stats { grid-template-columns:minmax(0,1fr)!important; }
  .landing-kicker { max-width:100%; white-space:normal; }
  .portal-choice { grid-template-columns:1fr; }
  .portal-choice-icon { width:52px; height:52px; }
  .landing-support { grid-template-columns:1fr; }
  .landing-support svg { width:31px; height:31px; }
  .survivor-community-card { grid-template-columns:auto minmax(0,1fr)!important; }
  .survivor-community-card>b { display:none; }
  .community-discord-icon,.community-initial { width:48px; height:48px; }
}

@media (prefers-reduced-motion:reduce) {
  body.modern-theme .sidebar { transition:none; }
}
