    /* ============================================================
       signal-dashboard 手机 App 视图 (PHONE 切换: .phone-layout-active)
       高密度紧凑排版: 决策+关键价+缠论结构+因子评分, 一屏尽览。
       桌面端零影响(仅 .phone-layout-active 作用域内生效)。
       ============================================================ */

    .activation-shell.phone-layout-active {
      height: calc(100dvh - 74px);
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }
    .activation-shell.phone-layout-active .flow-links { display: none; }

    /* 顶部品种栏换行自适应 */
    body:has(.phone-layout-active) .symbol-tabs {
      flex-wrap: wrap;
      overflow-x: visible;
      gap: 5px;
      padding: 3px 0;
    }
    body:has(.phone-layout-active) .symbol-tab {
      min-width: 0;
      flex: 1 1 calc(33.333% - 5px);
      height: 28px;
      padding: 0 6px;
      font-size: 12px;
      justify-content: center;
    }

    .activation-shell.phone-layout-active .activation-flow {
      display: block;
      padding: 8px;
      height: 100%;
    }
    .phone-app {
      --pa-bg: rgba(7,8,6,0.62);
      --pa-border: rgba(61,68,57,0.7);
      --pa-gold: 212,167,106;
      --pa-muted: rgba(170,180,160,0.62);
      display: flex;
      flex-direction: column;
      gap: 7px;
    }
    .phone-app section {
      background: var(--pa-bg);
      border: 1px solid var(--pa-border);
      border-radius: 8px;
      padding: 7px 9px;
    }
    .phone-app .lbl { color: var(--pa-muted); font-size: 10px; }
    .phone-app .val { font-family: var(--mono); font-size: 12px; font-weight: 700; color: rgba(225,232,215,0.92); }

    /* ---- 顶部决策行 ---- */
    .pa-top { border-color: rgba(var(--pa-gold),0.4); }
    .pa-top-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
    .pa-symbol { font-family: var(--mono); font-weight: 900; font-size: 15px; color: rgba(var(--pa-gold),0.95); }
    .pa-action { font-family: var(--mono); font-weight: 900; font-size: 17px; }
    .pa-action.trade { color: #4ade80; }
    .pa-action.watch { color: rgba(var(--pa-gold),1); }
    .pa-action.skip  { color: rgba(170,180,160,0.6); }
    .pa-side { font-family: var(--mono); font-weight: 800; font-size: 13px; color: var(--pa-muted); }
    .pa-side.long { color: #4ade80; }
    .pa-side.short { color: #f87171; }
    .pa-score { margin-left: auto; font-family: var(--mono); font-weight: 900; font-size: 17px; }
    .pa-score.score-high { color: #4ade80; }
    .pa-score.score-mid  { color: rgba(var(--pa-gold),1); }
    .pa-score.score-low  { color: rgba(170,180,160,0.7); }
    .pa-top-sub { display: flex; gap: 8px; font-size: 10px; color: var(--pa-muted); margin-top: 3px; flex-wrap: wrap; }
    .pa-reject { color: #f87171; }

    /* ---- 关键价 / 缠论结构 / 技术面 / 价格结构: 自适应多列网格 ---- */
    .pa-prices, .pa-chan, .pa-tech, .pa-price-struct {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 5px 8px;
    }
    .pa-prices .val { font-size: 13px; }
    .pa-kv { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
    .pa-kv .val { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .pa-kv .val.long { color: #4ade80; }
    .pa-kv .val.short { color: #f87171; }

    /* ---- 因子评分: 横排5列 ---- */
    .pa-factors-head { font-size: 10px; color: var(--pa-muted); margin-bottom: 4px; }
    .pa-factor-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 5px;
    }
    .pa-factor {
      display: flex;
      flex-direction: column;
      gap: 1px;
      padding: 4px 5px;
      border-radius: 6px;
      background: rgba(0,0,0,0.25);
      border: 1px solid rgba(255,255,255,0.04);
      min-width: 0;
    }
    .pa-factor.active { border-color: rgba(var(--pa-gold),0.5); background: rgba(34,29,16,0.5); }
    .pa-factor .lbl { font-size: 9px; }
    .pa-factor .val { font-size: 12px; color: rgba(var(--pa-gold),0.95); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    /* ---- 等待信号(无确认信号品种) ---- */
    .pa-wait {
      text-align: center;
      padding: 40px 20px;
      border-color: rgba(var(--pa-gold),0.3);
      background: linear-gradient(160deg, rgba(20,22,16,0.6), rgba(10,12,8,0.7));
    }
    .pa-wait-symbol { font-family: var(--mono); font-weight: 900; font-size: 20px; color: rgba(var(--pa-gold),0.95); }
    .pa-wait-status { font-family: var(--mono); font-weight: 800; font-size: 16px; color: rgba(170,180,160,0.7); margin: 8px 0; }
    .pa-wait-reason { font-size: 13px; color: rgba(200,208,188,0.85); line-height: 1.5; }
