/* Site only. Desktop layout and the independent console are unchanged. */
.mobile-menu-close, .mobile-search-submit, .armory-mobile, .armory-mobile-filter-toggle { display: none; }
.armory-advanced { display: contents; }

@media (max-width: 820px), (max-width: 1100px) and (pointer: coarse) {
  html { scroll-padding-top: 140px; }
  body { min-height: 100dvh; }
  body.mobile-menu-open { overflow: hidden; }
  .shell { display: block; min-height: 100dvh; }
  .workspace { grid-column: auto; }
  .sidebar { width: min(310px,86vw); height: 100dvh; transform: translateX(-105%); padding-bottom: env(safe-area-inset-bottom); overscroll-behavior: contain; }
  .sidebar.open { transform: translateX(0); }
  .menu-scrim { display: none; position: fixed; inset: 0; z-index: 25; background: rgba(0,4,10,.7); }
  .menu-scrim.show { display: block; }
  .sidebar .brand { padding-right: 54px; }
  .mobile-menu-close { display: grid; place-items: center; position: absolute; top: 12px; right: 8px; width: 44px; height: 44px; border: 1px solid var(--line); background: #07182b; color: var(--cyan); font-size: 24px; }
  .main-nav { min-height: 0; overscroll-behavior: contain; }
  .main-nav a { min-height: 44px; }
  .topbar { display: grid; grid-template-columns: 44px 44px minmax(0,1fr) auto; gap: 8px; height: auto; min-height: 0; padding: max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left)); }
  .topbar .menu-toggle, .topbar .back-button { display: block; width: 44px; height: 44px; }
  .topbar .breadcrumb { min-width: 0; overflow: hidden; font-size: 12px; }
  .topbar .breadcrumb > a, .topbar .breadcrumb > i, .topbar .breadcrumb > b { display: none; }
  .topbar .breadcrumb > span { overflow: hidden; text-overflow: ellipsis; }
  .topbar .mj-tools { margin: 0; gap: 6px; }
  .topbar .mj-tool { min-height: 44px; padding: 8px; letter-spacing: 0; }
  .topbar .mj-tool.logout { display: block; }
  .topbar .global-search { display: flex; grid-column: 1 / 4; grid-row: 2; width: 100%; height: 44px; padding: 0 0 0 10px; margin: 0; border: 1px solid var(--line); background: #061526; }
  .topbar .global-search input { display: block; min-width: 0; padding: 0; font-size: 16px; letter-spacing: 0; }
  .topbar .global-search > span, .topbar .global-search kbd { display: none; }
  .mobile-search-submit { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border: 0; background: transparent; color: var(--cyan); font-size: 24px; }
  .topbar .armory-link { grid-column: 4; grid-row: 2; min-height: 44px; padding: 10px 8px; letter-spacing: 0; }
  #content { padding: 28px 16px 48px; min-height: calc(100dvh - 116px); }
  .page-head, .section, .panel, .profile-data, .profile-grid > *, .card-grid > *, .archive-grid > * { min-width: 0; }
  .page-head h1 { display: block; max-width: 100%; font-size: clamp(26px,6vw,40px); overflow-wrap: anywhere; }
  .page-head > p, .section p, .profile-data p, .archive-richtext, .session-card, .data-pair strong { overflow-wrap: anywhere; }
  .act-page-head h1 { white-space: nowrap; }
  #content :is(input:not([type=checkbox]):not([type=radio]),select,textarea), .mj-login-panel input { min-width: 0; max-width: 100%; font-size: 16px; }
  #content :is(button,.button), .mj-dialog-close, .visibility-drawer > header button { min-height: 44px; }
  #content :is(.ship-plan-tools button,.relation-toolbar button,.ship-zone-link) { min-width: 44px; }
  .filter-bar { gap: 8px; overflow: visible; }
  .filter-bar a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
  .filter-bar button { white-space: normal; }
  .section-heading { flex-wrap: wrap; gap: 8px; }
  .profile-grid, .cosmos-index, .archive-grid { grid-template-columns: minmax(0,1fr); }
  .profile-data { padding: 20px; }
  .home-hero .nav-orbit.void-portal { position: relative; right: auto; bottom: auto; justify-self: center; width: min(420px,100%); height: auto; margin: 8px auto 0; }
  .home-hero .hero-copy { padding-top: 12px; }
  .home-hero .hero-actions { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 8px; align-items: stretch; }
  .home-hero .hero-actions .button { min-width: 0; width: 100%; padding: 8px; text-align: center; white-space: normal; letter-spacing: .5px; }
  .home-hero .hero-actions .console-access { grid-column: 1 / -1; }
  .home-hero { grid-template-columns: minmax(0,1fr); margin-top: -12px; }
  .data-card .character-card-footer { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  .data-card .character-card-footer .card-action { white-space: normal; }
  .data-card .character-encounter { max-width: 100%; }
  .character-encounter strong { white-space: normal; overflow-wrap: anywhere; }
  .cosmos-scroll, .relation-map-scroll { max-width: 100%; touch-action: pan-x pan-y pinch-zoom; }
  .ship-plan-scroll { overflow: auto; touch-action: pan-x pan-y pinch-zoom; }
  .ship-zone-drawer { width: 100%; overscroll-behavior: contain; }
  .ship-zone-drawer > header { position: sticky; top: 0; z-index: 2; background: #08192b; }
  .ship-plan-tools { flex-wrap: wrap; }
  .ship-plan-tools button { height: 44px; }
  .relation-map-inspector { overflow-wrap: anywhere; }
  .archive-richtext table { display: block; max-width: 100%; overflow-x: auto; }
  .archive-richtext img, .archive-richtext video, .foundry-media img { max-width: 100%; height: auto; }
  .archive-richtext pre { white-space: pre-wrap; overflow-wrap: anywhere; }
  .mj-dialog { padding: 12px; overflow-y: auto; }
  .mj-login-panel { max-height: calc(100dvh - 24px); overflow-y: auto; padding: 24px 18px; }
  .mj-login-panel h2 { padding-right: 32px; }
  .mj-dialog-close { min-width: 44px; }
  .visibility-drawer { height: 100dvh; padding-bottom: env(safe-area-inset-bottom); grid-template-rows: auto auto minmax(0,1fr) auto; }
  .visibility-drawer > footer { height: auto; flex-wrap: wrap; }
  .act-art-dialog { max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); overflow: auto; }
  .act-art-dialog > header { position: sticky; top: 0; z-index: 1; background: #040c19; }
  .act-art-image { padding: 8px; }
  .act-art-image img { max-width: calc(100vw - 36px); max-height: calc(100dvh - 130px); }
  .completed-stamp canvas { width: 100% !important; height: 100% !important; }
  .workspace > footer { padding-inline: 16px; padding-bottom: env(safe-area-inset-bottom); height: auto; min-height: 54px; flex-wrap: wrap; }
  .armory-table-scroll { display: none; }
  .armory-mobile { display: block; border-top: 1px solid var(--line); }
  .armory-mobile-filter-toggle { display: block; font-size: 13px; }
  .armory-advanced { display: none; grid-column: 1 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; order: 4; }
  .armory-advanced.is-open { display: grid; }
  .armory-advanced > label:last-child { grid-column: 1 / -1; }
  .armory-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .armory-filters > label { grid-column: 1 / -1; }
  .armory-mobile-sort { display: flex; align-items: end; gap: 10px; padding: 12px; background: #081a2b; }
  .armory-mobile-sort label { display: grid; gap: 4px; flex: 1; min-width: 0; color: #a5c2d5; font-size: 12px; }
  .armory-mobile-sort select, .armory-mobile-sort button { min-height: 44px; padding: 8px; border: 1px solid var(--line); color: #dff6ff; background: #061526; border-radius: 0; }
  .armory-mobile-sort button { font-size: 12px; }
  .armory-mobile-sort button:disabled { opacity: .45; }
  .armory-equipment { border-top: 1px solid var(--line); }
  .armory-equipment > summary { position: relative; display: grid; gap: 8px; padding: 16px 40px 16px 14px; list-style: none; cursor: pointer; }
  .armory-equipment > summary::-webkit-details-marker { display: none; }
  .armory-equipment > summary::after { content: '+'; position: absolute; right: 14px; top: 16px; color: var(--cyan); font-size: 22px; }
  .armory-equipment[open] > summary::after { content: '−'; }
  .armory-equipment[open] > summary { background: rgba(87,221,255,.06); }
  .armory-equipment-name { color: #dbf2ff; font-size: 16px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
  .armory-equipment-highlights { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #a5c2d5; font-size: 12px; }
  .armory-equipment-highlights b { color: var(--gold); font-weight: 600; }
  .armory-equipment dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 0; padding: 0 12px 12px; background: rgba(87,221,255,.04); }
  .armory-equipment dl > div { min-width: 0; padding: 10px; background: #071729; }
  .armory-equipment dt { font-size: 12px; color: #93b4c9; }
  .armory-equipment dd { margin: 4px 0 0; color: #e0edf7; font-size: 14px; overflow-wrap: anywhere; }
}

@media (max-width: 560px) {
  .topbar .mj-tools { flex-wrap: wrap; justify-content: end; max-width: 132px; }
  .topbar .mj-tool.logout { font-size: 11px; min-height: 32px; }
  .page-head { padding-left: 12px; }
  .section { padding: 16px; }
  .section-heading { letter-spacing: 1px; }
  .card-kicker { padding: 12px 16px; }
  .card-with-heading .card-content { padding: 16px; }
  .data-card[data-character-card] .card-content { padding-bottom: 16px; }
  .card-with-heading .card-media { height: 260px; min-height: 0; }
  .profile-stats { grid-template-columns: minmax(0,1fr); }
  .visual-frame, .visual-frame.portrait { min-height: 0; height: min(115vw,480px); }
  .act-showcase-copy { padding: 20px 16px; }
  .act-poster { padding: 0; }
  .act-showcase > .completed-stamp { top: -20px; right: 0; width: 90px; height: 90px; }
  .session-entry { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .session-date { padding: 0; text-align: left; }
  .session-date::after, .session-timeline::before { display: none; }
  .session-card { margin-left: 0; padding: 16px; }
  .session-briefing-position { display: block; }
  .session-original-content { padding: 12px; }
  .session-original-content > *, .archive-richtext dl > div { min-width: 0; }
  .archive-richtext dl > div { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .foundry-media { grid-template-columns: minmax(0,1fr); }
  .search-result { min-width: 0; }
  .search-result p { max-width: none; white-space: normal; }
  .event-participants { grid-template-columns: minmax(0,1fr); }
  .resonance-mark { grid-template-columns: 60px minmax(0,1fr); gap: 10px; padding: 12px; }
  .resonance-mark svg { max-width: 100%; }
  .union-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .union-action-card { padding: 16px; }
  .notebook-page .player-note-body > div { padding: 16px; }
  .armory-filters { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 14px; gap: 12px; }
  .armory-filters > label:has(select), .armory-filters .armory-query { grid-column: 1 / -1; }
  .armory-heading { gap: 8px; }
  .armory-heading output { font-size: 13px; }
}
