/* Site-wide responsive contract — loaded last so every view follows one layout system. */
:root { --page-gutter:clamp(12px,3vw,32px); --touch-size:44px; }
html { min-width:0; text-size-adjust:100%; -webkit-text-size-adjust:100%; }
body,#view-hub,#view-stats,#view-mc,#view-icarus { width:100%; min-width:0; }
img,canvas,video,svg { max-width:100%; }
button,input,select,textarea { max-width:100%; }
button,a,select { touch-action:manipulation; }
#view-hub *,#view-stats *,#view-mc *,#view-icarus * { min-inline-size:0; }
.stats-view .panel,.icarus-stats-theme .ipanel { width:100%; min-width:0; }

/* Navigation remains usable before it reaches the phone layout. */
body > nav { width:100%; padding-inline:max(var(--page-gutter),env(safe-area-inset-left)); }
.nav-links { min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; }
.nav-links::-webkit-scrollbar { display:none; }
body > nav .nav-btn { flex:0 0 auto; white-space:nowrap; }

/* Flexible site shells and predictable horizontal containment. */
#view-hub header,
.section-heading,
.fleet-alert,
.network-summary,
#view-hub .container,
#view-stats .header.et-hero,
#view-mc .header.mc-hero,
#view-icarus .iheader,
#view-stats .content,
#view-mc .content,
#view-icarus .icontent { max-width:1520px; }
#view-stats .content,#view-mc .content,#view-icarus .icontent { overflow:clip; }
.table-wrap { max-width:100%; overflow:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
.table-wrap table { margin:0; }
.profile-select { max-width:100%; }
.profile-select select,.profile-select input { flex:1 1 260px; width:min(100%,540px); }
#view-stats .tabs,#view-mc .tabs,#view-icarus .itabs { top:72px; }

/* Tablet and compact-laptop pass. */
@media (max-width:1180px) {
  body > nav { gap:9px; }
  .nav-title { margin-right:auto; }
  .nav-clock { display:none; }
  .nav-links { flex:0 1 auto; }
  #view-hub header { min-height:450px; gap:clamp(30px,5vw,60px); }
  #view-hub .container { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #view-hub .card,#view-hub .card:nth-child(4),#view-hub .card:nth-child(5) { grid-column:auto; }
  #view-stats .header.et-hero,#view-icarus .iheader { gap:34px; }
  .et-match-brief { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .et-objective-grid,.et-profile-achievement-grid,.et-ribbon-grid,.et-trophy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-travel-modes { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ic-mount-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  body > nav { align-items:center; flex-wrap:wrap; }
  .nav-links { order:3; width:100%; padding-top:7px; border-top:1px solid rgba(255,255,255,.06); }
  #view-hub header { grid-template-columns:1fr; min-height:0; }
  .hero-status { width:min(100%,560px); max-width:none; }
  .network-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .network-summary article:nth-child(2) { border-right:0; }
  .network-summary article:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.07); }
  #view-stats .header.et-hero,#view-mc .header.mc-hero,#view-icarus .iheader { grid-template-columns:1fr; min-height:0; }
  .et-hero-telemetry,.mc-hero-telemetry,.ic-hero-telemetry { width:min(100%,720px); max-width:none; }
  #view-stats .tabs,#view-mc .tabs,#view-icarus .itabs { top:101px; justify-content:flex-start; scroll-snap-type:x proximity; }
  #view-stats .tab,#view-mc .tab,#view-icarus .itab { scroll-snap-align:start; }
  .et-section-head,.et-subsection-head,.mc-section-head,.mc-subsection-head,.isection-head,.ic-subsection-head { align-items:flex-start; flex-direction:column; gap:10px; }
  .et-section-head p,.et-subsection-head p,.mc-section-head p,.mc-subsection-head p,.isection-head p,.ic-subsection-head p { max-width:700px; text-align:left; }
  .et-profile-grid,.et-profile-records,.mc-profile-groups,.mc-detail-grid,.mc-encounter-grid,.ic-overview-grid,.ic-intel-grid { grid-template-columns:1fr; }
  .et-ach-toolbar { grid-template-columns:minmax(0,1fr) repeat(2,minmax(150px,.55fr)); }
  .et-dossier-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .et-dossier-strip > div:nth-child(3n) { border-right:0; }
  .mc-profile-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ic-world-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ic-session-row { grid-template-columns:12px minmax(130px,1fr) minmax(160px,1fr) 95px; }
  .ic-session-row .ic-session-cell:nth-child(4) { display:none; }
}

/* Phone layout. */
@media (max-width:680px) {
  :root { --page-gutter:12px; }
  body > nav { padding:10px max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left)); }
  input,select,textarea,#view-mc input,#view-mc select { font-size:16px !important; }
  .nav-logo { flex:0 0 auto; }
  .nav-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .nav-links { width:calc(100% + 24px); margin-inline:-12px; padding:7px 12px 9px; }
  body > nav .nav-btn { min-height:var(--touch-size); }
  #view-hub header { width:calc(100% - 24px); padding-block:40px 44px; }
  #view-hub header h1 { overflow-wrap:anywhere; }
  .hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero-button { display:grid; min-height:var(--touch-size); place-items:center; padding:10px; }
  .hero-status { padding:20px; }
  .hero-status-meta { align-items:flex-start; flex-direction:column; }
  .server-section { padding:36px 12px max(64px,env(safe-area-inset-bottom)); }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .section-heading > div { align-items:flex-start; }
  .section-meta { align-items:flex-start; text-align:left; }
  #view-hub .container { grid-template-columns:1fr; gap:10px; }
  #view-hub .card { min-height:0; padding:18px; }
  #view-hub .btn-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #view-hub .btn-group > :only-child { grid-column:1/-1; }
  #view-hub .action-btn { min-height:var(--touch-size); }
  #view-hub footer { padding-bottom:max(22px,env(safe-area-inset-bottom)); }
  .server-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); padding:22px 16px max(18px,env(safe-area-inset-bottom)); }
  .dialog-title-row { align-items:flex-start; flex-direction:column; }
  .dialog-grid { grid-template-columns:1fr; }

  #view-stats .header.et-hero,#view-mc .header,#view-icarus .iheader { padding-inline:14px; }
  #view-stats .content,#view-mc .content,#view-icarus .icontent { padding:28px 10px max(64px,env(safe-area-inset-bottom)) !important; }
  #view-stats .tabs,#view-mc .tabs,#view-icarus .itabs { padding-inline:8px; }
  #view-stats .tab,#view-mc .tab,#view-icarus .itab { min-height:var(--touch-size); }
  .et-hero-actions,.ic-hero-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .et-action,.ic-action { min-height:var(--touch-size); white-space:normal; }
  .et-hero-meta,.ic-hero-meta { gap:7px; }
  .et-hero-meta > div,.ic-hero-meta > div { min-width:0; }
  .et-hero-map strong,.ic-hero-map strong { white-space:normal; overflow-wrap:anywhere; }
  .et-match-brief { grid-template-columns:1fr; }
  .et-kpi-grid,.ic-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .et-kpi-grid article,.ic-kpi { min-height:105px; padding:14px; }
  .et-overview-grid,.et-profile-grid,.et-profile-records { grid-template-columns:1fr; }
  .et-ach-toolbar { grid-template-columns:1fr; }
  .et-ach-toolbar input,.et-ach-toolbar select { min-height:var(--touch-size); }
  #view-stats .ach-grid { grid-template-columns:1fr; }
  .et-achievement-card { grid-template-columns:62px minmax(0,1fr); }
  .et-ach-copy { padding:15px 13px; }
  .et-ach-top { align-items:flex-start; flex-direction:column; gap:5px; }
  .et-ach-top strong { white-space:normal; }
  .et-ach-rarity { grid-template-columns:1fr; gap:7px; }
  .et-dossier-hero { grid-template-columns:1fr; gap:18px; }
  .et-dossier-identity h2 { white-space:normal; overflow-wrap:anywhere; }
  .et-dossier-rank { min-width:0; padding:14px 0 0; border-top:1px solid var(--et-line); border-left:0; text-align:left; }
  .et-dossier-kpis,.et-dossier-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .et-dossier-strip > div:nth-child(odd) { border-right:1px solid var(--et-line); }
  .et-dossier-strip > div:nth-child(even) { border-right:0; }
  .et-profile-achievement-grid,.et-objective-grid,.et-ribbon-grid,.et-trophy-grid { grid-template-columns:1fr; padding:8px; }
  .et-objective-card,.et-profile-achievement { grid-template-columns:56px minmax(0,1fr); }
  .et-objective-card > em,.et-profile-achievement > em { grid-column:2; padding:0 12px 12px; }
  .et-live-team article { grid-template-columns:minmax(0,1fr) auto; }
  .et-live-team article em { display:none; }
  .et-session-cards { padding-inline:10px; }
  .et-session-cards > article { grid-template-columns:minmax(0,1fr) auto; }
  .et-session-cards > article > span,.et-session-cards > article > em { display:none; }
  .et-weapon-row { grid-template-columns:minmax(90px,1fr) minmax(55px,.65fr) 62px; }
  .et-mobile-rank { grid-template-columns:27px minmax(0,1fr) auto; padding-inline:10px; }

  .mc-snapshot-grid,.mc-profile-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-profile-groups,.mc-detail-grid,.mc-encounter-grid { grid-template-columns:1fr; }
  .mc-metric-heading { align-items:flex-start; flex-direction:column; }
  .mc-metric-list { grid-template-columns:1fr; }
  .mc-travel-modes { grid-template-columns:1fr; }
  .mc-travel-mode > div { grid-template-columns:minmax(0,1fr) auto; }
  .mc-travel-mode small { grid-column:1/-1; }
  #mc-s-player-profile .weapon-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-compact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-record-list > div { gap:10px; }
  .mc-record-list > div > span { white-space:normal; }
  .mc-mobile-player { grid-template-columns:25px 34px minmax(0,1fr) auto; }

  .ic-mission-facts { grid-template-columns:1fr; gap:12px; }
  .ic-world-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:8px; }
  .ic-world-grid div { padding:15px 9px 11px; }
  .ic-mount-grid { grid-template-columns:1fr; }
  .ic-owner-group > header { align-items:flex-start; }
  .ic-mount-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ic-mount-stats > div { padding-top:7px; }
  .ic-rank-row { grid-template-columns:28px minmax(0,1fr) auto; }
  .ic-rank-row .ic-metric:last-child { display:none; }
  .ic-session-row { grid-template-columns:9px minmax(0,1fr) auto; }
  .ic-session-row .ic-session-cell:nth-child(3),.ic-session-row .ic-session-cell:nth-child(4) { display:none; }
  .ic-archive-list { grid-template-columns:1fr; }
}

/* Narrow phones: simplify without hiding primary data or actions. */
@media (max-width:420px) {
  .nav-title span { display:none; }
  #view-hub header h1 { font-size:clamp(2.35rem,12.5vw,3rem); }
  .hero-actions { grid-template-columns:1fr; }
  .hero-status { padding:17px; }
  .network-summary { grid-template-columns:1fr; }
  .network-summary article { min-height:74px; border-right:0; border-bottom:1px solid rgba(255,255,255,.07); }
  .network-summary article:last-child { border-bottom:0; }
  #total-count { font-size:3.2rem; }
  .section-heading > div { flex-direction:column; gap:5px; }
  #view-hub .btn-group { grid-template-columns:1fr; }
  #view-hub .btn-group > * { grid-column:1; }
  .et-hero-actions,.ic-hero-actions { grid-template-columns:1fr; }
  .et-hero-meta,.ic-hero-meta { grid-template-columns:1fr; }
  .et-hero-meta > div,.ic-hero-meta > div { padding-block:9px; }
  .et-kpi-grid,.ic-kpi-grid { grid-template-columns:1fr; }
  .et-mobile-rank { grid-template-columns:24px minmax(0,1fr); }
  .et-mobile-rank dl { grid-column:2; justify-content:flex-start; }
  .et-record-card { grid-template-columns:28px minmax(0,1fr); }
  .et-record-card > strong { grid-column:2; text-align:left; }
  .et-achievement-card { grid-template-columns:52px minmax(0,1fr); }
  .et-ach-emblem > span { font-size:1.45rem; }
  .et-dossier-kpis,.et-dossier-strip { grid-template-columns:1fr; }
  .et-dossier-strip > div,.et-dossier-strip > div:nth-child(odd) { border-right:0; border-bottom:1px solid var(--et-line); }
  .et-dossier-strip > div:last-child { border-bottom:0; }
  .et-weapon-row { grid-template-columns:minmax(0,1fr) 58px; }
  .et-weapon-row > i { grid-column:1/-1; grid-row:2; }
  .mc-snapshot-grid,.mc-profile-kpis { grid-template-columns:1fr; }
  .mc-snapshot-grid > div { border-right:0; border-bottom:1px solid rgba(134,239,172,.12); }
  .mc-snapshot-grid > div:last-child { border-bottom:0; }
  #mc-s-player-profile .weapon-grid,.mc-compact-grid { grid-template-columns:1fr; }
  .mc-mobile-player { grid-template-columns:22px 30px minmax(0,1fr); }
  .mc-mobile-player > b { grid-column:3; text-align:left; }
  .ic-world-grid { grid-template-columns:1fr; }
  .ic-mount-card { padding:15px; }
  .ic-owner-group > header b { display:none; }
  .ic-rank-row { grid-template-columns:24px minmax(0,1fr); }
  .ic-rank-row .ic-metric { grid-column:2; text-align:left; }
  .ic-archive-top { align-items:flex-start; flex-direction:column; gap:8px; }
  .ic-archive-card h3 { margin-top:24px; }
}

/* Short landscape screens: preserve content height and reduce sticky chrome. */
@media (max-height:540px) and (orientation:landscape) {
  body > nav { position:relative; }
  #view-stats .tabs,#view-mc .tabs,#view-icarus .itabs { top:0; }
  #view-hub header { min-height:0; padding-block:34px; }
  #view-stats .header.et-hero,#view-mc .header,#view-icarus .iheader { min-height:0; padding-block:30px; }
  .server-dialog { max-height:calc(100dvh - 12px); }
}

@media (hover:none) and (pointer:coarse) {
  button,.hero-button,.action-btn,.nav-btn,select,input { min-height:var(--touch-size); }
  #view-hub .card:hover,.ic-rank-row:hover { translate:0; transform:none; }
}
