/* ═══════════════════════════════════════
   XUANJI MI-OS — Responsive Mobile CSS
   Shared across all pages

   NOTE: !important is required on nav rules because
   each page's inline <style> loads AFTER this file
   and would otherwise override these mobile overrides.
   ═══════════════════════════════════════ */

/* ── Hamburger Toggle (hidden on desktop) ── */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
  padding: 8px;
  margin-left: auto;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

/* ── Mobile Nav ── */
@media (max-width: 768px) {
  /* Nav: vertical dropdown instead of horizontal scroll */
  nav {
    flex-wrap: wrap !important;
    height: auto !important;
    padding: 12px 16px !important;
    gap: 0 !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    position: relative;
  }
  nav .logo {
    margin-right: auto !important;
    font-size: 16px !important;
  }
  .nav-toggle {
    display: block !important;
  }

  /* Hide all links by default, show on .open */
  nav a {
    display: none !important;
    width: 100% !important;
    padding: 12px 14px !important;
    font-size: 15px !important;
    border-radius: 8px !important;
    white-space: normal !important;
    margin-top: 2px;
  }
  nav.open a {
    display: block !important;
  }
  nav a.active {
    background: rgba(255,255,255,.2) !important;
  }

  /* Container padding */
  .container {
    padding: 0 12px 24px;
    max-width: 100%;
  }

  /* Generic grid overrides */
  .impact-grid,
  .evidence-grid,
  .alpha-strip,
  .grid-3,
  .grid-2 {
    grid-template-columns: 1fr !important;
  }

  .grid,
  .context-grid,
  .mkt-grid,
  .bt-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  /* Cards & values */
  .impact-card .ic-value {
    font-size: 28px;
  }
  .ctx-val {
    font-size: 18px;
  }
  h1 { font-size: 20px; }
  h2 { font-size: 16px; }

  /* Tables: horizontal scroll wrapper */
  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  table {
    min-width: 600px;
  }

  /* Risk list items: stack vertically */
  .risk-item {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
  }
  .ri-bar-wrap {
    width: 100%;
    order: 10;
  }
  .ri-name {
    min-width: unset;
    flex: unset;
    font-size: 11px;
  }

  /* Flow chains: vertical on mobile */
  .flow-chain {
    flex-direction: column;
    align-items: flex-start;
  }
  .flow-arrow {
    transform: rotate(90deg);
    padding: 2px 0;
  }

  /* Cards: tighter padding */
  .card, .impact-card, .card-wrap {
    border-radius: 8px;
  }
  .impact-card {
    padding: 16px;
  }

  /* Alert banner */
  .alert-banner {
    padding: 12px 16px;
  }
  .ab-title { font-size: 15px; }

  /* Graph container */
  #l3-graph-container {
    min-height: 300px;
  }
  #l3-graph-svg {
    height: 300px;
  }

  /* Guide modal */
  .guide-overlay.open {
    padding: 10px 0;
  }
  .guide-modal {
    width: 98%;
    max-height: 95vh;
  }
  .guide-body {
    padding: 14px 16px 30px;
  }

  /* Layer headers */
  .layer-header {
    flex-wrap: wrap;
    margin: 20px 0 12px;
  }
  .layer-header .meta-text {
    width: 100%;
  }

  /* Expand buttons */
  .expand-btn {
    font-size: 12px;
    padding: 12px 14px;
  }

  /* L3 controls */
  .l3-controls {
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 14px;
  }

  /* Market snapshot cards */
  .mkt-card .mc-val {
    font-size: 14px;
  }

  /* Canvas charts */
  canvas {
    max-height: 220px;
  }
}

/* ── Small phones ── */
@media (max-width: 400px) {
  .grid,
  .context-grid,
  .mkt-grid,
  .bt-grid {
    grid-template-columns: 1fr !important;
  }
  nav a {
    font-size: 14px !important;
    padding: 10px 12px !important;
  }
}

/* ── PWA standalone mode ── */
@media (display-mode: standalone) {
  body {
    padding-top: env(safe-area-inset-top);
  }
  nav {
    padding-top: env(safe-area-inset-top) !important;
  }
}

/* ── Touch improvements ── */
@media (hover: none) and (pointer: coarse) {
  /* Larger tap targets */
  .nav-toggle {
    min-width: 44px;
    min-height: 44px;
  }
  .expand-btn,
  .l3-fb,
  .guide-tab {
    min-height: 44px;
  }
  .risk-item {
    padding: 14px;
  }
  /* Disable hover effects on touch */
  .risk-item:hover,
  .sys-item:hover {
    background: transparent;
  }
}
