/* Mobile native app shell v5: phone browser only, desktop untouched. */
      @media (max-width: 768px) {
        html {
          min-height:100% !important;
          background:#05070b !important;
          overflow-y:auto !important;
          overflow-x:hidden !important;
          overscroll-behavior-y:auto !important;
          touch-action:pan-y !important;
        }
        body.mobile-v5-ready {
          min-height:100svh !important;
          margin:0 !important;
          overflow-y:auto !important;
          overflow-x:hidden !important;
          touch-action:pan-y !important;
          -webkit-overflow-scrolling:touch;
          background:
            radial-gradient(circle at 18% -8%, rgba(34, 211, 238, .14), transparent 34%),
            linear-gradient(180deg, #070b12 0%, #05070b 48%, #030509 100%) !important;
          color:#edf5ff !important;
          -webkit-font-smoothing:antialiased;
        }
        html.mobile-v5-scroll-lock,
        body.mobile-v5-scroll-lock {
          overflow:hidden !important;
          touch-action:none !important;
          overscroll-behavior:none !important;
        }
        body.mobile-v5-ready #root {
          min-height:100svh !important;
          overflow:visible !important;
        }
        body.mobile-v5-ready .app-header { position:fixed !important; left:-100vw !important; top:0 !important; width:100vw !important; height:0 !important; min-height:0 !important; overflow:visible !important; opacity:1 !important; pointer-events:none !important; border:0 !important; background:transparent !important; }
        body.mobile-v5-ready .app-header .app-header-actions { pointer-events:auto !important; }
        body.mobile-v5-ready .app-sidebar { display:none !important; }
        body.mobile-v5-ready .app-shell,
        body.mobile-v5-ready .app-body,
        body.mobile-v5-ready .app-main {
          width:100vw !important;
          max-width:100vw !important;
          min-width:0 !important;
          min-height:100svh !important;
          height:auto !important;
          overflow:visible !important;
          touch-action:pan-y !important;
          background:transparent !important;
        }
        body.mobile-v5-ready .app-main {
          padding:0 !important;
          position:relative !important;
          -webkit-overflow-scrolling:touch !important;
        }
        body.mobile-v5-ready .app-main-inner {
          width:100% !important;
          max-width:100vw !important;
          height:auto !important;
          min-height:100svh !important;
          padding:76px 12px calc(98px + env(safe-area-inset-bottom, 0px)) !important;
          overflow:visible !important;
          touch-action:pan-y !important;
        }
        body.mobile-v5-ready .mobile-section {
          height:auto !important;
          min-height:calc(100svh - 176px) !important;
          overflow:visible !important;
          -webkit-overflow-scrolling:touch !important;
        }
        body.mobile-v5-ready .mobile-section > div,
        body.mobile-v5-ready .mobile-section section { min-width:0 !important; }
        body.mobile-v5-ready .mobile-section .recharts-responsive-container { min-height:320px !important; }
        body.mobile-v5-ready .mobile-section .flex-1.relative:has(.recharts-responsive-container) { min-height:360px !important; flex:0 0 auto !important; }
        body.mobile-v5-ready .mobile-section .h-full:has(.recharts-responsive-container),
        body.mobile-v5-ready .mobile-section .flex.flex-col:has(.recharts-responsive-container) { min-height:430px !important; }
        body.mobile-v5-ready.mobile-v5-home .app-main-inner { display:none !important; }
        body.mobile-v5-ready .mobile-app-titlebar,
        body.mobile-v5-ready .mobile-app-bottom-nav,
        body.mobile-v5-ready .mobile-app-more-sheet,
        body.mobile-v5-ready .mobile-app-more-backdrop,
        body.mobile-v5-ready .mobile-native-app,
        body.mobile-v5-ready .mobile-native-tabbar,
        body.mobile-v5-ready .mobile-native-more,
        body.mobile-v5-ready .mobile-native-backdrop,
        body.mobile-v5-ready .mobile-native-status-strip { display:none !important; }

        .m5-topbar {
          position:fixed;
          z-index:280;
          top:0; left:0; right:0;
          height:calc(64px + env(safe-area-inset-top, 0px));
          padding:calc(10px + env(safe-area-inset-top, 0px)) 14px 8px;
          display:flex;
          align-items:center;
          justify-content:space-between;
          background:linear-gradient(180deg, rgba(5,7,11,.96), rgba(5,7,11,.82) 74%, rgba(5,7,11,0));
          backdrop-filter:blur(18px);
          -webkit-backdrop-filter:blur(18px);
          pointer-events:none;
        }
        .m5-brand { display:flex; align-items:center; gap:10px; min-width:0; }
        .m5-mark {
          width:38px; height:38px; border-radius:15px;
          display:grid; place-items:center;
          background:#020617 url('/xinliu-mark.png?v=20260531-logo2') center/30px 30px no-repeat;
          box-shadow:inset 0 0 0 1px rgba(148,163,184,.18), 0 12px 28px rgba(0,0,0,.24);
          color:#8ff7e8;
        }
        .m5-mark svg { display:none; }
        .m5-brand span { display:block; color:#74859b; font-size:11px; line-height:1; font-weight:750; }
        .m5-brand strong { display:block; margin-top:4px; color:#f8fbff; font-size:18px; line-height:1.12; font-weight:850; letter-spacing:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .m5-clock { color:#88a0ba; font:700 12px/1.1 ui-monospace, SFMono-Regular, Consolas, monospace; padding:8px 10px; border-radius:999px; background:rgba(15,23,42,.72); box-shadow:inset 0 0 0 1px rgba(148,163,184,.13); }
        .m5-actions { display:flex; align-items:center; gap:8px; pointer-events:auto; }
        .m5-icon-btn { width:40px; height:40px; border:0; border-radius:15px; display:grid; place-items:center; color:#d7e5f6; background:rgba(15,23,42,.72); box-shadow:inset 0 0 0 1px rgba(148,163,184,.13); }
        .m5-icon-btn svg { width:20px; height:20px; }
        body.mobile-v5-ready .app-header .mobile-popover {
          position:fixed !important;
          left:14px !important;
          right:14px !important;
          top:calc(68px + env(safe-area-inset-top, 0px)) !important;
          width:auto !important;
          max-width:none !important;
          max-height:calc(100svh - 98px - env(safe-area-inset-top, 0px)) !important;
          overflow:auto !important;
          border-radius:22px !important;
          pointer-events:auto !important;
          z-index:340 !important;
        }

        .m5-home {
          display:none;
          height:100svh;
          min-height:100svh;
          padding:calc(72px + env(safe-area-inset-top, 0px)) 14px calc(104px + env(safe-area-inset-bottom, 0px));
          overflow-y:auto;
          overflow-x:hidden;
          overscroll-behavior-y:contain;
          touch-action:pan-y;
          -webkit-overflow-scrolling:touch;
        }
        body.mobile-v5-home .m5-home { display:block; }
        .m5-hero {
          position:relative;
          overflow:hidden;
          border-radius:28px;
          padding:20px 18px 18px;
          background:
            linear-gradient(135deg, rgba(15,23,42,.96), rgba(9,15,26,.94)),
            repeating-linear-gradient(90deg, rgba(148,163,184,.07) 0 1px, transparent 1px 32px),
            repeating-linear-gradient(0deg, rgba(148,163,184,.05) 0 1px, transparent 1px 32px);
          box-shadow:inset 0 0 0 1px rgba(148,163,184,.14), 0 20px 52px rgba(0,0,0,.28);
        }
        .m5-hero::after {
          content:'';
          position:absolute; left:16px; right:16px; bottom:18px; height:62px;
          background:linear-gradient(135deg, transparent 0 12%, rgba(34,211,238,.48) 12% 13%, transparent 13% 34%, rgba(239,68,68,.46) 34% 35%, transparent 35% 58%, rgba(16,185,129,.48) 58% 59%, transparent 59% 100%);
          opacity:.52;
          mask:linear-gradient(180deg, transparent, #000 36%, transparent);
          pointer-events:none;
        }
        .m5-hero-top { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; position:relative; z-index:1; }
        .m5-hero-top > div:first-child { min-width:0; flex:1 1 auto; }
        .m5-kicker { color:#76e4d4; font-size:12px; font-weight:850; }
        .m5-hero h1 { margin:8px 0 0; color:#fff; font-size:clamp(20px, 5.6vw, 25px); line-height:1.08; font-weight:900; letter-spacing:0; white-space:nowrap; text-wrap:nowrap; }
        .m5-hero p { position:relative; z-index:1; max-width:29ch; margin:10px 0 0; color:#a7b8cc; font-size:14px; line-height:1.62; }
        .m5-status { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:18px; }
        .m5-status div { min-width:0; border-radius:18px; padding:11px 9px; background:rgba(2,6,23,.54); box-shadow:inset 0 0 0 1px rgba(148,163,184,.13); }
        .m5-status span { display:block; color:#76889f; font-size:11px; font-weight:750; }
        .m5-status strong { display:block; margin-top:5px; color:#f8fafc; font-size:14px; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .m5-strip { display:flex; gap:8px; margin:12px 2px 0; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
        .m5-strip::-webkit-scrollbar { display:none; }
        .m5-chip { flex:0 0 auto; border:0; border-radius:999px; padding:9px 12px; color:#c9d8ea; background:rgba(15,23,42,.80); box-shadow:inset 0 0 0 1px rgba(148,163,184,.12); font-size:12px; font-weight:800; }
        .m5-section { margin-top:18px; }
        .m5-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:0 2px 10px; }
        .m5-head h2 { margin:0; color:#f7fbff; font-size:17px; line-height:1.2; font-weight:880; letter-spacing:0; }
        .m5-head span { color:#73859d; font-size:12px; font-weight:700; white-space:nowrap; }
        .m5-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
        .m5-action {
          min-height:126px;
          border:0;
          border-radius:24px;
          padding:15px;
          text-align:left;
          background:linear-gradient(180deg, rgba(18,27,42,.96), rgba(9,14,24,.96));
          box-shadow:inset 0 0 0 1px rgba(148,163,184,.13), 0 14px 34px rgba(0,0,0,.20);
          color:inherit;
        }
        .m5-action-icon { width:42px; height:42px; border-radius:17px; display:grid; place-items:center; margin-bottom:15px; color:#8ff7e8; background:rgba(20,184,166,.12); box-shadow:inset 0 0 0 1px rgba(45,212,191,.12); }
        .m5-action:nth-child(2) .m5-action-icon { color:#fecaca; background:rgba(239,68,68,.11); }
        .m5-action:nth-child(3) .m5-action-icon { color:#bbf7d0; background:rgba(34,197,94,.11); }
        .m5-action:nth-child(4) .m5-action-icon { color:#bae6fd; background:rgba(14,165,233,.11); }
        .m5-action-icon.m5-tone-answer,
        .m5-row-icon.m5-tone-answer { color:#fde68a; background:rgba(245,158,11,.13); box-shadow:inset 0 0 0 1px rgba(251,191,36,.18); }
        .m5-action-icon.m5-tone-chance,
        .m5-row-icon.m5-tone-chance { color:#93c5fd; background:rgba(37,99,235,.14); box-shadow:inset 0 0 0 1px rgba(96,165,250,.18); }
        .m5-action-icon.m5-tone-stock,
        .m5-row-icon.m5-tone-stock { color:#c4b5fd; background:rgba(124,58,237,.14); box-shadow:inset 0 0 0 1px rgba(167,139,250,.18); }
        .m5-action-icon.m5-tone-heat,
        .m5-row-icon.m5-tone-heat { color:#fca5a5; background:rgba(220,38,38,.14); box-shadow:inset 0 0 0 1px rgba(248,113,113,.18); }
        .m5-action-icon.m5-tone-ladder,
        .m5-row-icon.m5-tone-ladder { color:#fdba74; background:rgba(234,88,12,.13); box-shadow:inset 0 0 0 1px rgba(251,146,60,.18); }
        .m5-action-icon.m5-tone-sector,
        .m5-row-icon.m5-tone-sector { color:#67e8f9; background:rgba(8,145,178,.13); box-shadow:inset 0 0 0 1px rgba(34,211,238,.18); }
        .m5-action-icon.m5-tone-hot,
        .m5-row-icon.m5-tone-hot { color:#fb7185; background:rgba(225,29,72,.13); box-shadow:inset 0 0 0 1px rgba(251,113,133,.18); }
        .m5-action-icon.m5-tone-auction,
        .m5-row-icon.m5-tone-auction { color:#fcd34d; background:rgba(202,138,4,.13); box-shadow:inset 0 0 0 1px rgba(250,204,21,.18); }
        .m5-action-icon.m5-tone-tiger,
        .m5-row-icon.m5-tone-tiger { color:#f9a8d4; background:rgba(190,24,93,.13); box-shadow:inset 0 0 0 1px rgba(244,114,182,.18); }
        .m5-action-icon.m5-tone-core,
        .m5-row-icon.m5-tone-core { color:#86efac; background:rgba(22,163,74,.13); box-shadow:inset 0 0 0 1px rgba(74,222,128,.18); }
        .m5-action-icon.m5-tone-risk,
        .m5-row-icon.m5-tone-risk { color:#f87171; background:rgba(185,28,28,.14); box-shadow:inset 0 0 0 1px rgba(248,113,113,.18); }
        .m5-action-icon.m5-tone-stats,
        .m5-row-icon.m5-tone-stats { color:#a5b4fc; background:rgba(79,70,229,.13); box-shadow:inset 0 0 0 1px rgba(129,140,248,.18); }
        .m5-action-icon.m5-tone-news,
        .m5-row-icon.m5-tone-news { color:#7dd3fc; background:rgba(2,132,199,.13); box-shadow:inset 0 0 0 1px rgba(56,189,248,.18); }
        .m5-action-icon.m5-tone-sentiment,
        .m5-row-icon.m5-tone-sentiment { color:#5eead4; background:rgba(13,148,136,.15); box-shadow:inset 0 0 0 1px rgba(45,212,191,.2); }
        .m5-action-icon.m5-tone-ai,
        .m5-row-icon.m5-tone-ai { color:#d8b4fe; background:rgba(126,34,206,.14); box-shadow:inset 0 0 0 1px rgba(192,132,252,.18); }
        .m5-action strong { display:block; color:#f8fbff; font-size:17px; line-height:1.18; font-weight:850; }
        .m5-action span:last-child { display:block; margin-top:7px; color:#8ea1b7; font-size:12px; line-height:1.42; }
        .m5-flow { display:grid; gap:8px; }
        .m5-row {
          width:100%; min-height:66px; border:0; border-radius:20px; padding:10px 13px;
          display:grid; grid-template-columns:42px minmax(0,1fr) 20px; gap:11px; align-items:center;
          background:rgba(15,23,42,.82); color:inherit; text-align:left;
          box-shadow:inset 0 0 0 1px rgba(148,163,184,.12);
        }
        .m5-row-icon { width:42px; height:42px; border-radius:16px; display:grid; place-items:center; color:#cde2f6; background:rgba(148,163,184,.10); }
        .m5-row strong { display:block; color:#edf5ff; font-size:15px; line-height:1.18; font-weight:830; }
        .m5-row span:last-child { display:block; margin-top:4px; color:#8294ab; font-size:12px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .m5-row::after { content:''; color:#617187; font-size:25px; line-height:1; }
        .m5-bottom {
          position:fixed; z-index:300; left:10px; right:10px; bottom:calc(10px + env(safe-area-inset-bottom, 0px));
          height:72px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; padding:6px;
          border-radius:28px; background:rgba(8,13,22,.92); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
          box-shadow:0 20px 46px rgba(0,0,0,.38), inset 0 0 0 1px rgba(148,163,184,.16);
        }
        .m5-bottom button { min-width:0; border:0; border-radius:22px; background:transparent; color:#8a9bb1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; font:inherit; font-size:11px; font-weight:800; }
        .m5-bottom svg { width:22px; height:22px; }
        .m5-bottom button[data-m5-tab="chance"] { color:#8fb7e7; }
        .m5-bottom button[data-m5-tab="sentiment"] { color:#80cfc3; }
        .m5-bottom button[data-m5-tab="ai"] { color:#b9a0e6; }
        .m5-bottom button[data-m5-tab="more"] { color:#9aa8bd; }
        .m5-bottom button.is-active { color:#8ff7e8; background:rgba(20,184,166,.14); box-shadow:inset 0 0 0 1px rgba(45,212,191,.14); }
        .m5-backdrop { position:fixed; z-index:310; inset:0; background:rgba(2,6,23,.62); opacity:0; pointer-events:none; transition:opacity .18s ease; }
        .m5-backdrop.is-open { opacity:1; pointer-events:auto; }
        .m5-sheet {
          position:fixed; z-index:320; left:0; right:0; bottom:0; max-height:88svh;
          padding:10px 14px calc(18px + env(safe-area-inset-bottom, 0px));
          border-radius:30px 30px 0 0; background:#070b12; transform:translateY(105%); transition:transform .22s cubic-bezier(.22,1,.36,1);
          box-shadow:0 -22px 58px rgba(0,0,0,.46), inset 0 1px 0 rgba(148,163,184,.16);
          pointer-events:none;
        }
        .m5-sheet.is-open { transform:translateY(0); pointer-events:auto; }
        .m5-grabber { width:42px; height:5px; border-radius:999px; margin:0 auto 14px; background:rgba(148,163,184,.36); }
        .m5-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:12px; }
        .m5-sheet-head span { color:#76e4d4; font-size:12px; font-weight:850; }
        .m5-sheet-head h2 { margin:3px 0 0; color:#fff; font-size:23px; line-height:1.08; font-weight:900; letter-spacing:0; }
        .m5-close { width:44px; height:44px; border:0; border-radius:17px; background:rgba(148,163,184,.12); color:#d7e5f6; font-size:28px; line-height:1; }
        .m5-sheet-scroll { max-height:calc(88svh - 96px); overflow:auto; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
        .m5-sheet-scroll::-webkit-scrollbar { display:none; }
        .m5-sheet .m5-section { margin-top:14px; }
        .m5-sheet .m5-row { background:rgba(15,23,42,.68); }
        @media (prefers-reduced-motion: reduce) {
          .m5-sheet, .m5-backdrop { transition:none !important; }
        }
      }
      @media (min-width: 769px) {
        .m5-topbar, .m5-home, .m5-bottom, .m5-backdrop, .m5-sheet { display:none !important; }
      }
