    * { margin: 0; padding: 0; box-sizing: border-box; word-break: keep-all; overflow-wrap: break-word; }

    body {
      background: #070e20;
      color: #e8e8f0;
      font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
      min-height: 100vh;
      padding-bottom: calc(70px + env(safe-area-inset-bottom));
      overscroll-behavior-y: none;
    }

    /* ════ 헤더 ════ */
    .header {
      background: linear-gradient(160deg, #0a142c 0%, #11203d 100%);
      border-bottom: 1px solid #1e3354;
      padding: calc(16px + env(safe-area-inset-top)) 18px 14px;
      position: sticky; top: 0; z-index: 200;
      transition: padding .22s ease, box-shadow .22s ease, background .22s ease;
    }
    .header-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:5px; }
    .race-label { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:#00e5ff; font-weight:700; }
    .live-dot { display:flex; align-items:center; gap:5px; font-size:10px; color:#ff4444; font-weight:800; letter-spacing:1px; }
    .live-dot::before { content:''; width:7px; height:7px; background:#ff4444; border-radius:50%; animation:pulse 1.2s infinite; }
    .live-dot.loading { color:#8fdfff; }
    .live-dot.loading::before { background:#8fdfff; }
    .live-dot.offday { color:#8c97c8; }
    .live-dot.offday::before { background:#7777aa; animation:none; opacity:.75; }
    .live-dot.demo { color:#ffd36a; }
    .live-dot.demo::before { background:#ffd36a; animation:none; opacity:.9; }
    @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.3;transform:scale(1.5)} }
    .header-title { font-size:19px; font-weight:900; color:#fff; letter-spacing:-.5px; }
    .header-sub { font-size:12px; color:#7777aa; margin-top:2px; }
    .timer-block { display:flex; align-items:center; gap:8px; margin-top:11px; background:#ffffff08; border:1px solid #ffffff10; border-radius:10px; padding:7px 13px; }
    .timer-label { font-size:11px; color:#7777aa; flex:1; }
    #countdown { font-size:21px; font-weight:900; color:#00e5ff; letter-spacing:2px; font-variant-numeric:tabular-nums; text-shadow:0 0 14px #00e5ff77; }
    #countdown.urgent { color:#ff5858 !important; text-shadow:0 0 12px #ff3c3caa, 0 0 24px #ff3c3c66; animation:urgentCountdownBlink .9s infinite; }
    .urgent-banner { display:none; align-items:center; gap:10px; margin-top:8px; padding:10px 13px; border-radius:12px; border:1px solid #ff6b6b55; background:linear-gradient(135deg,#3a0712,#6b0e1d 52%,#8a1221); color:#ffe9e9; font-size:12px; font-weight:900; letter-spacing:.2px; box-shadow:0 12px 28px #ff2e2e22; }
    .urgent-banner::before { content:'!'; width:20px; height:20px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#ffffff18; color:#fff; font-size:12px; font-weight:900; flex-shrink:0; }
    .urgent-banner.urgent { display:flex; animation:urgentBannerFlash 1.1s infinite; }
    @keyframes urgentCountdownBlink { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.72; transform:scale(1.03); } }
    @keyframes urgentBannerFlash { 0%,100% { box-shadow:0 12px 28px #ff2e2e22; filter:saturate(1); } 50% { box-shadow:0 16px 34px #ff3a3a55; filter:saturate(1.22); } }
    .next-race-btn { display:none; flex-shrink:0; min-height:34px; border:none; border-radius:999px; padding:0 14px; background:linear-gradient(135deg,#00334d,#005a78); color:#dff8ff; font-size:11px; font-weight:900; cursor:pointer; box-shadow:0 0 12px #00e5ff22; }
    .next-race-btn.show { display:inline-flex; align-items:center; justify-content:center; }
    .race-delay-tools { display:flex; align-items:center; gap:6px; margin-top:7px; padding:7px 9px; border-radius:10px; background:#ffaa0010; border:1px solid #ffaa0026; }
    .race-delay-status { flex:1; min-width:0; color:#ffdca0; font-size:10px; font-weight:900; line-height:1.4; }
    .race-delay-tools button { flex-shrink:0; border:1px solid #ffd36a55; border-radius:999px; background:#1e1608; color:#ffd36a; min-height:25px; padding:0 9px; font-size:10px; font-weight:900; cursor:pointer; }
    .race-delay-tools button:active { transform:scale(.96); }
    .race-pill-delay { margin-left:4px; border-radius:999px; padding:1px 4px; background:#ffaa0022; color:#ffd36a; font-size:9px; font-weight:900; }

    /* ════ 경주 번호 셀렉터 ════ */
    .race-selector { display:flex; gap:6px; margin-top:10px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding:2px 0; }
    .race-selector::-webkit-scrollbar { display:none; }
    .race-pill { flex-shrink:0; min-width:58px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:#ffffff08; border:1.5px solid #ffffff12; color:#555577; font-size:11px; font-weight:800; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:all .2s; padding:0 10px; white-space:nowrap; }
    .race-pill:active { transform:scale(.95); }
    .race-pill.active { background:linear-gradient(135deg,#00334d,#004466); border-color:#00e5ff88; color:#00e5ff; box-shadow:0 0 12px #00e5ff33; }
    .race-pill.active::after { content:''; }
    .race-pill.disabled { opacity:.3; pointer-events:none; }

    .header.header-compact {
      padding: calc(8px + env(safe-area-inset-top)) 14px 8px;
      background: linear-gradient(160deg, rgba(7,14,32,.96) 0%, rgba(13,24,48,.96) 100%);
      box-shadow: 0 12px 28px rgba(0,0,0,.34);
      backdrop-filter: blur(10px);
    }
    .header.header-compact .header-top { margin-bottom:2px; }
    .header.header-compact .race-label { font-size:9px; letter-spacing:2px; max-width:72%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .header.header-compact .live-dot { font-size:9px; }
    .header.header-compact .header-title { font-size:16px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .header.header-compact .header-sub,
    .header.header-compact .weather-badge,
    .header.header-compact .race-selector,
    .header.header-compact .race-delay-tools,
    .header.header-compact .urgent-banner { display:none !important; }
    .header.header-compact .timer-block { margin-top:6px; padding:5px 10px; border-radius:8px; }
    .header.header-compact .timer-label { font-size:10px; }
    .header.header-compact #countdown { font-size:16px; letter-spacing:1px; }
    .header.header-compact .next-race-btn.show { min-height:28px; padding:0 10px; font-size:10px; }

    /* ════ AI 배너 ════ */
    .ai-banner { margin:14px 14px 0; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:14px; padding:14px 16px; position:relative; overflow:hidden; }
    .ai-banner::after { content:''; position:absolute; top:-40px; right:-40px; width:120px; height:120px; background:radial-gradient(circle,#ff8c0026 0%,transparent 70%); pointer-events:none; }
    .ai-banner-top { display:flex; align-items:center; gap:7px; margin-bottom:9px; }
    .ai-badge { background:#ff8c00; color:#000; font-size:9px; font-weight:900; letter-spacing:1.5px; padding:3px 7px; border-radius:4px; text-transform:uppercase; }
    .ai-banner-title { font-size:11px; color:#ffb84d; font-weight:600; }
    .ai-pick-text { font-size:17px; font-weight:900; color:#fff; }
    .ai-pick-text span { color:#ff8c00; text-shadow:0 0 10px #ff8c0088; }
    .ai-sub { font-size:10px; color:#775533; margin-top:5px; }
    .pick-split { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }
    .pick-box { border-radius:12px; padding:12px; border:1.5px solid transparent; min-height:96px; }
    .pick-box.free { background:#121224; border-color:#2d2d52; }
    .pick-box.vip { background:linear-gradient(135deg,#2a1a00,#23172f); border-color:#ffd70055; position:relative; }
    .pick-box.vip::after { content:'잠금'; position:absolute; top:10px; right:10px; font-size:9px; font-weight:900; color:#2f1b00; background:#ffd700; border-radius:999px; padding:3px 7px; }
    .pick-label { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; font-weight:900; margin-bottom:7px; }
    .pick-box.free .pick-label { color:#8ecbff; }
    .pick-box.vip .pick-label { color:#ffd56a; }
    .pick-main { font-size:15px; font-weight:900; color:#fff; line-height:1.45; }
    .pick-help { font-size:11px; line-height:1.6; margin-top:5px; }
    .pick-box.free .pick-help { color:#8b8bb3; }
    .pick-box.vip .pick-help { color:#d8c18a; }
    .pick-reasons { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
    .pick-reason { font-size:11px; line-height:1.5; border-radius:10px; padding:7px 8px; }
    .pick-box.free .pick-reason { background:#ffffff08; color:#c9d8f8; border:1px solid #ffffff10; }
    .pick-box.vip .pick-reason { background:#ffffff08; color:#f2dfab; border:1px solid #ffffff12; }
    .pick-summary { margin-top:10px; border-radius:12px; padding:10px; }
    .pick-box.free .pick-summary { background:#0d1630; border:1px solid #21355f; }
    .pick-box.vip .pick-summary { background:#2a1d05; border:1px solid #6d5321; }
    .pick-summary-row { font-size:11px; line-height:1.6; }
    .pick-summary-row + .pick-summary-row { margin-top:5px; }
    .pick-summary-row strong { color:#fff; }
    .pick-compare { margin-top:10px; font-size:11px; line-height:1.6; color:#f1d9a0; background:#ffffff08; border:1px solid #ffffff12; border-radius:10px; padding:8px 9px; }
    .pick-beginner { margin-top:10px; font-size:11px; line-height:1.6; color:#ffe3b0; background:#ffffff0a; border:1px solid #ffffff14; border-radius:10px; padding:8px 9px; }
    .ops-dashboard { margin:12px 14px 0; padding:15px 14px; border-radius:18px; background:linear-gradient(145deg,#0b1728,#101827); border:1.5px solid #243b61; box-shadow:0 12px 28px rgba(0,0,0,.24); }
    .ops-dashboard.good { border-color:#00ff8840; background:linear-gradient(145deg,#0b1f1a,#101827); }
    .ops-dashboard.watch { border-color:#ffd70044; background:linear-gradient(145deg,#251d08,#101827); }
    .ops-dashboard.danger { border-color:#ff5a5a66; background:linear-gradient(145deg,#2c1117,#101827); }
    .ops-dashboard.done { border-color:#8fdfff55; background:linear-gradient(145deg,#0d2638,#101827); }
    .ops-dashboard-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .ops-dashboard-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .ops-dashboard.watch .ops-dashboard-kicker { color:#ffd700; }
    .ops-dashboard.danger .ops-dashboard-kicker { color:#ff8fab; }
    .ops-dashboard-title { font-size:17px; font-weight:900; color:#fff; line-height:1.35; margin-top:7px; }
    .ops-dashboard-sub { font-size:10px; color:#aeb8df; line-height:1.5; margin-top:5px; }
    .ops-dashboard-refresh { flex-shrink:0; min-height:34px; border-radius:999px; padding:0 12px; font-size:10px; font-weight:900; color:#dff8ff; background:#0e2435; border:1px solid #3b89aa; cursor:pointer; }
    .ops-dashboard-alert { padding:11px 12px; border-radius:13px; background:#ffffff08; border:1px solid #ffffff12; color:#eff4ff; font-size:12px; font-weight:900; line-height:1.55; }
    .ops-dashboard.good .ops-dashboard-alert { color:#d9ffe9; border-color:#00ff8840; background:#00ff8810; }
    .ops-dashboard.watch .ops-dashboard-alert { color:#fff1c5; border-color:#ffd70044; background:#ffd70010; }
    .ops-dashboard.danger .ops-dashboard-alert { color:#ffe0df; border-color:#ff5a5a55; background:#ff444414; }
    .ops-dashboard-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
    .ops-metric-card { min-width:0; padding:10px 9px; border-radius:13px; background:#ffffff07; border:1px solid #ffffff12; }
    .ops-metric-card span { display:block; color:#8c97c8; font-size:10px; font-weight:800; margin-bottom:5px; }
    .ops-metric-card strong { display:block; color:#fff; font-size:15px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .ops-metric-card em { display:block; color:#8c97c8; font-size:10px; line-height:1.45; font-style:normal; margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .ops-dashboard-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .ops-action-btn { min-height:36px; border-radius:11px; padding:0 12px; border:1px solid #ffffff18; color:#dfe8ff; background:#ffffff08; font-size:11px; font-weight:900; cursor:pointer; }
    .ops-action-btn.primary { color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border-color:#9ee8ff; }
    .ops-action-btn.gold { color:#271900; background:linear-gradient(135deg,#ffd56a,#ffaa00); border-color:#ffe7a0; }
    .ops-action-btn.danger { color:#fff0f0; background:#ff444420; border-color:#ff5a5a66; }
    .home-route-card { margin:12px 14px 0; padding:12px; border-radius:14px; background:#0d1424; border:1px solid #243657; display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .home-route-kicker { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .home-route-title { margin-top:4px; color:#eaf4ff; font-size:12px; font-weight:900; line-height:1.45; }
    .home-route-actions { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
    .home-route-actions button { min-height:32px; border-radius:999px; padding:0 10px; border:1px solid #8fdfff40; background:#8fdfff10; color:#dff8ff; font-size:10px; font-weight:900; cursor:pointer; }
    .home-route-actions button:nth-child(2) { border-color:#ffd70040; background:#ffd70010; color:#fff3bf; }
    .home-route-actions button:nth-child(3) { border-color:#ff8fab40; background:#ff8fab10; color:#ffdce6; }
    @media (max-width: 720px) {
      .ops-dashboard-head { flex-direction:column; }
      .ops-dashboard-refresh { width:100%; }
      .ops-dashboard-grid { grid-template-columns:repeat(2,1fr); }
      .ops-dashboard-actions { display:grid; grid-template-columns:repeat(2,1fr); }
      .ops-action-btn { width:100%; padding:0 8px; }
      .home-route-card { align-items:flex-start; flex-direction:column; }
      .home-route-actions { width:100%; display:grid; grid-template-columns:repeat(3,1fr); }
      .home-route-actions button { width:100%; padding:0 6px; }
    }
    .decision-banner { margin:12px 14px 0; background:linear-gradient(135deg,#201100,#311900 55%,#17101f); border:1.5px solid #ffb44855; border-radius:14px; padding:14px; }
    .decision-banner-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .decision-banner-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#ffca6c; font-weight:900; }
    .decision-banner-copy { font-size:11px; color:#d9bf91; line-height:1.6; }
    .pick-decision { margin-top:0; background:linear-gradient(135deg,#3b2100,#5a3200 55%,#2a1800); border:1.5px solid #ffbb4466; border-radius:12px; padding:11px 12px; }
    .pick-decision-title { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:#ffca6c; font-weight:900; }
    .pick-decision-main { font-size:13px; color:#fff4dc; font-weight:900; line-height:1.5; margin-top:6px; }
    .pick-decision-sub { font-size:11px; color:#f1d7a0; line-height:1.6; margin-top:5px; }
    .pick-signal-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
    .pick-signal { border-radius:10px; padding:9px 10px; }
    .pick-signal.good { background:#102819; border:1px solid #2c7146; }
    .pick-signal.caution { background:#2a1710; border:1px solid #7f4d34; }
    .pick-signal-label { font-size:9px; letter-spacing:1.4px; text-transform:uppercase; font-weight:900; }
    .pick-signal.good .pick-signal-label { color:#7fe3a4; }
    .pick-signal.caution .pick-signal-label { color:#ffb28b; }
    .pick-signal-main { font-size:12px; color:#fff; font-weight:900; line-height:1.45; margin-top:5px; }
    .pick-signal-sub { font-size:10px; line-height:1.5; margin-top:4px; }
    .pick-signal.good .pick-signal-sub { color:#cdeed8; }
    .pick-signal.caution .pick-signal-sub { color:#f1c2aa; }
    .week-schedule { margin:14px 14px 0; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; padding:14px 13px; }
    .week-schedule.compact .week-schedule-grid { display:none; }
    .week-schedule-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#aeb8ff; font-weight:900; }
    .week-schedule-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-top:6px; }
    .week-schedule-title { font-size:16px; font-weight:900; color:#fff; line-height:1.3; }
    .week-schedule-note { font-size:10px; color:#8f98c9; line-height:1.5; text-align:right; }
    .week-schedule-grid { display:flex; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; gap:8px; padding-bottom:4px; margin-top:12px; }
    .week-schedule-grid::-webkit-scrollbar { display:none; }
    .week-schedule-card { flex:0 0 auto; width:30%; min-width:100px; background:#ffffff08; border:1px solid #ffffff12; border-radius:14px; padding:10px 10px; }
    .week-schedule-card.today { border-color:#ffd56a88; background:linear-gradient(135deg,#2a1b05,#1d1a2f); box-shadow:0 0 0 1px #ffd56a22 inset; }
    .week-schedule-card.next { border-color:#6fc6ff66; background:linear-gradient(135deg,#122033,#11182b); }
    .week-schedule-day { font-size:10px; font-weight:900; letter-spacing:1.2px; text-transform:uppercase; color:#b6beeb; }
    .week-schedule-date { font-size:14px; font-weight:900; color:#fff; margin-top:5px; }
    .week-schedule-track { font-size:10px; color:#d6ddff; line-height:1.5; margin-top:7px; }
    .week-schedule-weather { font-size:9px; color:#aeb8df; line-height:1.45; margin-top:7px; }
    .week-schedule-state { display:inline-flex; align-items:center; justify-content:center; min-width:50px; margin-top:8px; border-radius:999px; padding:4px 7px; font-size:9px; font-weight:900; letter-spacing:1px; background:#ffffff0a; border:1px solid #ffffff12; color:#cfd5f4; }
    .week-schedule-card.today .week-schedule-state { color:#ffe7a7; border-color:#ffd56a66; background:#ffd56a14; }
    .week-schedule-card.next .week-schedule-state { color:#c8eeff; border-color:#6fc6ff55; background:#6fc6ff14; }
    .change-alert { margin:14px 14px 0; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; padding:15px 14px; }
    .change-alert.compact .change-alert-list { display:none; }
    .change-alert.compact .change-alert-sub { margin-bottom:0; }
    .change-alert-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#ffb06b; font-weight:900; }
    .change-alert-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .change-alert-sub { font-size:10px; color:#d9b28f; line-height:1.5; margin-top:5px; }
    .change-alert-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .section-mini-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
    .section-mini-btn { min-height:34px; border-radius:999px; padding:0 11px; font-size:10px; font-weight:900; border:1px solid #ffffff18; cursor:pointer; }
    .section-mini-btn.watch { background:#161f37; color:#dceaff; border-color:#35507a; }
    .section-mini-btn.fold { background:#ffffff08; color:#d5dbf9; }
    .change-alert-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .change-alert-chip { display:inline-flex; align-items:center; gap:5px; background:#ffffff0a; border:1px solid #ffffff14; border-radius:999px; padding:5px 9px; font-size:10px; color:#f4ddcb; }
    .change-alert-chip strong { color:#fff; }
    .change-alert-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .change-alert-item { background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:11px 12px; }
    .change-alert-type { display:inline-flex; align-items:center; justify-content:center; min-width:56px; border-radius:999px; padding:4px 8px; font-size:9px; font-weight:900; letter-spacing:1px; }
    .change-alert-type.cancel { color:#ffd3bf; background:#472012; border:1px solid #8c4c34; }
    .change-alert-type.jockey { color:#dbe8ff; background:#1d2844; border:1px solid #4b6496; }
    .change-alert-type.judge { color:#fff1a8; background:#3b2e11; border:1px solid #8a6b21; }
    .change-alert-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .change-alert-time { font-size:10px; color:#9fa8d6; }
    .change-alert-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .change-alert-tag { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:900; letter-spacing:.2px; }
    .change-alert-tag.favorite { color:#ffd7d7; background:#3a161a; border:1px solid #94414e; }
    .change-alert-tag.pick { color:#ffe9b0; background:#392b11; border:1px solid #8a6a2f; }
    .change-alert-tag.vip { color:#d9eeff; background:#16283d; border:1px solid #486b92; }
    .change-alert-tag.why { color:#ffe9cf; background:#3b2410; border:1px solid #8f6132; }
    .change-alert-body { font-size:12px; color:#eef2ff; line-height:1.65; margin-top:8px; }
    .change-alert-empty { margin-top:12px; font-size:11px; color:#b9bfe0; background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:12px; line-height:1.6; }
    .odds-signal { margin:14px 14px 0; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; padding:15px 14px; }
    .odds-signal.compact .odds-signal-list { display:none; }
    .odds-signal-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#93b9ff; font-weight:900; }
    .odds-signal-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .odds-signal-sub { font-size:10px; color:#b5c8f6; line-height:1.5; margin-top:5px; }
    .odds-signal-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .odds-signal-main { margin-top:12px; background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:12px; }
    .odds-signal-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:9px; }
    .odds-signal-chip { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:5px 9px; font-size:10px; font-weight:800; }
    .odds-signal-chip.live { color:#dff8ff; background:#12364a; border:1px solid #3d88aa; }
    .odds-signal-chip.demo { color:#ffe6b8; background:#3b2a13; border:1px solid #8a6530; }
    .odds-signal-chip strong { color:#fff; }
    .odds-signal-main strong { color:#fff; }
    .odds-signal-mainline { font-size:13px; font-weight:800; color:#eff4ff; line-height:1.55; }
    .odds-signal-detail { font-size:11px; color:#a9b9df; line-height:1.6; margin-top:6px; }
    .odds-signal-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .odds-signal-item { background:#ffffff08; border:1px solid #ffffff12; border-radius:12px; padding:10px 11px; }
    .odds-signal-item-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .odds-signal-item-title { font-size:12px; font-weight:900; color:#fff; }
    .odds-signal-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .odds-signal-tag { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:900; letter-spacing:.2px; }
    .odds-signal-tag.favorite { color:#ffd7d7; background:#3a161a; border:1px solid #94414e; }
    .odds-signal-tag.pick { color:#ffe9b0; background:#392b11; border:1px solid #8a6a2f; }
    .odds-signal-tag.vip { color:#d9eeff; background:#16283d; border:1px solid #486b92; }
    .odds-signal-tag.why { color:#dff8ff; background:#103247; border:1px solid #3b89aa; }
    .odds-signal-item-badge { font-size:10px; font-weight:900; border-radius:999px; padding:4px 8px; }
    .odds-signal-item-badge.down { color:#8dffb6; background:#0f2f1f; border:1px solid #2f8458; }
    .odds-signal-item-badge.up { color:#ffb0a1; background:#371516; border:1px solid #8f3c3f; }
    .odds-signal-item-body { font-size:11px; color:#b9c7ea; line-height:1.6; margin-top:6px; }
    .odds-signal-empty { margin-top:12px; font-size:11px; color:#b9c7ea; background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:12px; line-height:1.6; }
    .preflight-card { margin:14px 14px 0; padding:15px 14px; border-radius:16px; background:linear-gradient(145deg,#121a2d,#0a1020); border:1.5px solid #223052; box-shadow:0 10px 26px rgba(0,0,0,.22); }
    .preflight-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .preflight-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .preflight-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .preflight-sub { font-size:10px; color:#aeb8df; line-height:1.5; margin-top:5px; }
    .preflight-btn { flex-shrink:0; min-height:34px; border-radius:999px; padding:0 12px; font-size:10px; font-weight:900; color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border:1px solid #9ee8ff; cursor:pointer; }
    .preflight-summary { padding:11px 12px; border-radius:13px; background:#ffffff08; border:1px solid #ffffff12; color:#eff4ff; font-size:12px; font-weight:900; line-height:1.55; }
    .preflight-summary.good { color:#d9ffe9; border-color:#00ff8840; background:#00ff8810; }
    .preflight-summary.warn { color:#fff1c5; border-color:#ffd70044; background:#ffd70010; }
    .preflight-summary.danger { color:#ffe0df; border-color:#ff5a5a55; background:#ff444414; }
    .preflight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px; }
    .preflight-item { min-height:104px; padding:11px 10px; border-radius:13px; background:#ffffff07; border:1px solid #ffffff12; }
    .preflight-item-label { display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:999px; font-size:9px; font-weight:900; letter-spacing:.5px; background:#ffffff0a; color:#aeb8df; }
    .preflight-item-title { margin-top:8px; font-size:13px; color:#fff; font-weight:900; line-height:1.35; }
    .preflight-item-copy { margin-top:6px; font-size:10px; color:#aeb8df; line-height:1.55; }
    .preflight-item.good { border-color:#00ff8840; background:#00ff880b; }
    .preflight-item.good .preflight-item-label { color:#00ff88; background:#00ff8814; }
    .preflight-item.warn { border-color:#ffd70044; background:#ffd7000d; }
    .preflight-item.warn .preflight-item-label { color:#ffd700; background:#ffd70016; }
    .preflight-item.danger { border-color:#ff5a5a55; background:#ff444410; }
    .preflight-item.danger .preflight-item-label { color:#ff8fab; background:#ff444418; }
    .preflight-item.pending { border-color:#ffffff12; background:#ffffff06; }
    .preflight-action { margin-top:10px; padding:10px 11px; border-radius:12px; background:#080d18; border:1px dashed #ffffff18; color:#aeb8df; font-size:11px; line-height:1.55; }
    @media (max-width: 520px) {
      .preflight-head { flex-direction:column; }
      .preflight-btn { width:100%; }
      .preflight-grid { grid-template-columns:1fr; }
    }
    .live-status-card { margin:14px 14px 0; padding:15px 14px; border-radius:16px; background:linear-gradient(145deg,#0b1a2a,#0b1020); border:1.5px solid #23415f; box-shadow:0 10px 26px rgba(0,0,0,.22); }
    .live-status-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .live-status-kicker, .odds-timeline-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .live-status-title, .odds-timeline-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .live-status-sub { font-size:10px; color:#aeb8df; line-height:1.5; margin-top:5px; }
    .live-status-refresh { flex-shrink:0; min-height:34px; border-radius:999px; padding:0 12px; font-size:10px; font-weight:900; color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border:1px solid #9ee8ff; cursor:pointer; }
    .live-status-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
    .live-status-item { min-height:92px; padding:10px 9px; border-radius:13px; background:#ffffff07; border:1px solid #ffffff12; }
    .live-status-item.good { border-color:#00ff8840; background:#00ff880b; }
    .live-status-item.warn { border-color:#ffd70044; background:#ffd7000d; }
    .live-status-item.danger { border-color:#ff5a5a55; background:#ff444410; }
    .live-status-item.pending { border-color:#ffffff12; background:#ffffff06; }
    .live-status-label { display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:999px; font-size:9px; font-weight:900; background:#ffffff0a; color:#aeb8df; }
    .live-status-item.good .live-status-label { color:#00ff88; background:#00ff8814; }
    .live-status-item.warn .live-status-label { color:#ffd700; background:#ffd70016; }
    .live-status-item.danger .live-status-label { color:#ff8fab; background:#ff444418; }
    .live-status-main { margin-top:8px; font-size:13px; color:#fff; font-weight:900; line-height:1.35; }
    .live-status-copy { margin-top:6px; font-size:10px; color:#aeb8df; line-height:1.55; }
    .live-status-empty { grid-column:1/-1; padding:12px; border-radius:13px; background:#ffffff08; border:1px dashed #ffffff18; color:#aeb8df; font-size:11px; text-align:center; }
    .race-start-alert { margin-top:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 12px; border-radius:14px; background:linear-gradient(135deg,#0f1c2e,#111827); border:1px solid #ffffff12; }
    .race-start-alert.ready { border-color:#00ff8840; background:linear-gradient(135deg,#0b2519,#111827); }
    .race-start-alert.watch { border-color:#ffd70044; background:linear-gradient(135deg,#251d07,#111827); }
    .race-start-alert.urgent { border-color:#ff6b3d66; background:linear-gradient(135deg,#2b160b,#141827); box-shadow:0 0 18px rgba(255,107,61,.14); }
    .race-start-alert.danger { border-color:#ff4d6d88; background:linear-gradient(135deg,#301116,#141827); box-shadow:0 0 22px rgba(255,77,109,.18); }
    .race-start-alert.done { border-color:#8fdfff30; background:linear-gradient(135deg,#111827,#0b1320); }
    .race-start-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .race-start-alert.watch .race-start-kicker { color:#ffd700; }
    .race-start-alert.urgent .race-start-kicker { color:#ffaa44; }
    .race-start-alert.danger .race-start-kicker { color:#ff8fab; }
    .race-start-title { margin-top:6px; color:#fff; font-size:14px; font-weight:900; line-height:1.35; }
    .race-start-copy { margin-top:5px; color:#aeb8df; font-size:10px; line-height:1.55; }
    .race-start-side { flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
    .race-start-time { min-width:74px; text-align:center; border-radius:999px; padding:6px 9px; color:#dff8ff; background:#12364a; border:1px solid #3d88aa; font-size:11px; font-weight:900; font-variant-numeric:tabular-nums; }
    .race-start-alert.watch .race-start-time { color:#fff4c5; background:#3b2d0f; border-color:#ffd70055; }
    .race-start-alert.urgent .race-start-time { color:#fff0dd; background:#4b2512; border-color:#ffaa4455; }
    .race-start-alert.danger .race-start-time { color:#ffe2e7; background:#4a151f; border-color:#ff4d6d66; animation:urgentCountdownBlink .9s infinite; }
    .race-start-btn { min-height:31px; border-radius:999px; padding:0 11px; font-size:10px; font-weight:900; color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border:1px solid #9ee8ff; cursor:pointer; white-space:nowrap; }
    .favorite-live-alert { margin-top:12px; padding:12px; border-radius:14px; background:linear-gradient(135deg,#1d1705,#111827); border:1px solid #ffd70033; box-shadow:0 0 0 1px rgba(255,215,0,.06) inset; }
    .favorite-live-alert.idle { background:#ffffff06; border-color:#ffffff12; box-shadow:none; }
    .favorite-live-alert.danger { border-color:#ff5a5a77; background:linear-gradient(135deg,#2a1013,#111827); }
    .favorite-live-alert.warn { border-color:#ffd70066; background:linear-gradient(135deg,#241d08,#111827); }
    .favorite-live-alert.good { border-color:#00ff8844; background:linear-gradient(135deg,#0c2318,#101827); }
    .favorite-live-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .favorite-live-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#ffd700; font-weight:900; }
    .favorite-live-title { font-size:15px; font-weight:900; color:#fff; margin-top:6px; }
    .favorite-live-sub { font-size:10px; color:#d9d0aa; line-height:1.5; margin-top:5px; }
    .favorite-live-btn { flex-shrink:0; min-height:32px; border-radius:999px; padding:0 11px; font-size:10px; font-weight:900; color:#fff2b0; background:#ffd70012; border:1px solid #ffd70040; cursor:pointer; }
    .favorite-live-list { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
    .favorite-live-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:10px; border-radius:12px; background:#ffffff08; border:1px solid #ffffff12; }
    .favorite-live-row.danger { border-color:#ff5a5a55; background:#ff444410; }
    .favorite-live-row.warn { border-color:#ffd70055; background:#ffd70010; }
    .favorite-live-row.good { border-color:#00ff8840; background:#00ff880b; }
    .favorite-live-no { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:900; background:#24304f; }
    .favorite-live-main { color:#fff; font-size:12px; font-weight:900; line-height:1.45; }
    .favorite-live-copy { color:#aeb8df; font-size:10px; line-height:1.5; margin-top:3px; }
    .favorite-live-chip { min-width:58px; text-align:center; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:900; color:#ffd700; background:#ffd70016; border:1px solid #ffd70044; }
    .favorite-live-row.danger .favorite-live-chip { color:#ffb7b7; background:#ff444418; border-color:#ff5a5a55; }
    .favorite-live-row.good .favorite-live-chip { color:#8dffb6; background:#00ff8814; border-color:#00ff8844; }
    .favorite-live-empty { padding:11px; border-radius:12px; background:#ffffff08; border:1px dashed #ffffff18; color:#aeb8df; font-size:11px; line-height:1.6; text-align:center; }
    .odds-timeline { margin-top:12px; padding:12px; border-radius:14px; background:#ffffff07; border:1px solid #ffffff12; }
    .odds-timeline-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .odds-timeline-count { display:inline-flex; align-items:center; min-height:24px; border-radius:999px; padding:0 8px; color:#dff8ff; background:#12364a; border:1px solid #3d88aa; font-size:10px; font-weight:900; white-space:nowrap; }
    .odds-timeline-list { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
    .odds-timeline-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:10px; border-radius:12px; background:#ffffff08; border:1px solid #ffffff12; }
    .odds-timeline-row.favorite { border-color:#ffd70055; background:#ffd7000d; }
    .odds-timeline-no { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:900; background:#24304f; }
    .odds-timeline-main { color:#fff; font-size:12px; font-weight:900; line-height:1.45; }
    .odds-timeline-sub { color:#aeb8df; font-size:10px; line-height:1.5; margin-top:3px; }
    .odds-timeline-badge { min-width:58px; text-align:center; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:900; }
    .odds-timeline-badge.down { color:#8dffb6; background:#0f2f1f; border:1px solid #2f8458; }
    .odds-timeline-badge.up { color:#ffb0a1; background:#371516; border:1px solid #8f3c3f; }
    .odds-timeline-empty { padding:12px; border-radius:12px; background:#ffffff08; border:1px dashed #ffffff18; color:#aeb8df; font-size:11px; line-height:1.6; text-align:center; }
    @media (max-width: 720px) {
      .live-status-grid { grid-template-columns:1fr 1fr; }
      .live-status-head { flex-direction:column; }
      .live-status-refresh { width:100%; }
      .race-start-alert { flex-direction:column; align-items:stretch; }
      .race-start-side { align-items:stretch; }
      .race-start-btn { width:100%; }
      .favorite-live-head { flex-direction:column; }
      .favorite-live-btn { width:100%; }
      .favorite-live-row { grid-template-columns:auto 1fr; }
      .favorite-live-chip { grid-column:2; width:max-content; }
      .odds-timeline-row { grid-template-columns:auto 1fr; }
      .odds-timeline-badge { grid-column:2; width:max-content; }
    }
    .paper-table-card { margin:14px 14px 0; padding:15px 14px; border-radius:16px; background:linear-gradient(145deg,#111625,#0b111f); border:1.5px solid #26304c; box-shadow:0 10px 26px rgba(0,0,0,.2); }
    .paper-table-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:11px; }
    .paper-table-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#ffaa44; font-weight:900; }
    .paper-table-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .paper-table-sub { font-size:10px; color:#aeb8df; line-height:1.5; margin-top:5px; }
    .paper-table-btn { flex-shrink:0; min-height:34px; border-radius:999px; padding:0 12px; font-size:10px; font-weight:900; color:#fff2d2; background:#ffffff08; border:1px solid #ffaa4450; cursor:pointer; }
    .paper-table-memo { padding:10px 11px; border-radius:12px; background:#ffaa440b; border:1px solid #ffaa4420; color:#f5ddbb; font-size:11px; line-height:1.55; font-weight:800; }
    .paper-table-scroll { width:100%; overflow-x:auto; margin-top:10px; border-radius:12px; border:1px solid #ffffff12; background:#080d18; }
    .paper-table { width:100%; min-width:720px; border-collapse:collapse; color:#e8edf8; font-size:11px; }
    .paper-table th { padding:10px 8px; background:#11182a; color:#8b96bd; font-size:10px; font-weight:900; text-align:center; border-bottom:1px solid #ffffff12; white-space:nowrap; }
    .paper-table td { padding:10px 8px; border-bottom:1px solid #ffffff0d; text-align:center; vertical-align:middle; white-space:nowrap; }
    .paper-table tbody tr:last-child td { border-bottom:none; }
    .paper-table tbody tr.favorite { background:#ffd70008; }
    .paper-table tbody tr.ai-pick { box-shadow:inset 3px 0 0 #8fdfff; }
    .paper-no { width:24px; height:24px; margin:0 auto; border-radius:7px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:900; }
    .paper-horse-name { display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-width:120px; }
    .paper-horse-main { color:#fff; font-size:12px; font-weight:900; }
    .paper-tags { display:flex; flex-wrap:wrap; gap:4px; }
    .paper-tag { display:inline-flex; align-items:center; min-height:18px; padding:0 6px; border-radius:999px; font-size:9px; font-weight:900; }
    .paper-tag.pick { color:#dff8ff; background:#103247; border:1px solid #3b89aa; }
    .paper-tag.vip { color:#ffd700; background:#362b10; border:1px solid #8a6a2f; }
    .paper-tag.favorite { color:#ffd7d7; background:#3a161a; border:1px solid #94414e; }
    .paper-weight-diff { margin-left:4px; padding:2px 5px; border-radius:5px; font-size:9px; font-weight:900; }
    .paper-weight-diff.up { color:#ff8fab; background:#ff444418; }
    .paper-weight-diff.down { color:#8dffb6; background:#00ff8814; }
    .paper-weight-diff.same { color:#8b96bd; background:#ffffff0a; }
    .paper-form { display:flex; justify-content:center; gap:3px; }
    .paper-form-box { width:18px; height:18px; border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:900; border:1px solid #ffffff18; }
    .paper-form-box.win { color:#00ff88; background:#00ff8815; border-color:#00ff8866; }
    .paper-form-box.place { color:#ffd700; background:#ffd70015; border-color:#ffd70066; }
    .paper-form-box.show { color:#ffaa44; background:#ffaa4415; border-color:#ffaa4466; }
    .paper-form-box.out { color:#7777aa; background:#ffffff08; border-color:#ffffff1f; }
    .paper-odds { font-weight:900; font-variant-numeric:tabular-nums; }
    .paper-odds.win { color:#ff6f93; }
    .paper-odds.plc { color:#8fdfff; }
    .paper-odds.pending { color:#555577; font-size:10px; }
    .paper-table-empty { padding:22px 10px !important; color:#7777aa; font-size:12px; line-height:1.6; }
    @media (max-width: 520px) {
      .paper-table-head { flex-direction:column; }
      .paper-table-btn { width:100%; }
    }
    .bet-guide-card { margin:14px 14px 0; padding:15px 14px; border-radius:16px; background:linear-gradient(145deg,#101827,#0b101d); border:1.5px solid #25304e; box-shadow:0 10px 26px rgba(0,0,0,.22); }
    .bet-guide-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:11px; }
    .bet-guide-kicker { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .bet-guide-title { font-size:16px; font-weight:900; color:#fff; margin-top:7px; }
    .bet-guide-sub { font-size:10px; color:#aeb8df; line-height:1.5; margin-top:5px; }
    .bet-guide-btn { flex-shrink:0; min-height:34px; border-radius:999px; padding:0 12px; font-size:10px; font-weight:900; color:#dff8ff; background:#0e2435; border:1px solid #3b89aa; cursor:pointer; }
    .bet-guide-beginner { padding:10px 11px; border-radius:12px; background:#8fdfff0b; border:1px solid #8fdfff20; color:#dff8ff; font-size:11px; line-height:1.55; font-weight:800; }
    .bet-guide-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:10px; }
    .bet-guide-item { min-height:108px; padding:11px; border-radius:13px; background:#ffffff07; border:1px solid #ffffff12; }
    .bet-guide-item.safe { border-color:#00ff8833; background:#00ff8808; }
    .bet-guide-item.medium { border-color:#ffd70033; background:#ffd70009; }
    .bet-guide-item.hard { border-color:#ff6f9333; background:#ff416c08; }
    .bet-guide-label { display:inline-flex; min-height:20px; align-items:center; padding:0 7px; border-radius:999px; font-size:9px; font-weight:900; letter-spacing:.5px; background:#ffffff0a; color:#aeb8df; }
    .bet-guide-item.safe .bet-guide-label { color:#00ff88; background:#00ff8814; }
    .bet-guide-item.medium .bet-guide-label { color:#ffd700; background:#ffd70016; }
    .bet-guide-item.hard .bet-guide-label { color:#ff8fab; background:#ff416c16; }
    .bet-guide-title-small { margin-top:8px; color:#fff; font-size:13px; font-weight:900; line-height:1.35; }
    .bet-guide-copy { margin-top:6px; color:#aeb8df; font-size:10px; line-height:1.55; }
    .bet-guide-copy strong { color:#fff; font-weight:900; }
    .bet-guide-note { margin-top:10px; padding:10px 11px; border-radius:12px; background:#080d18; border:1px dashed #ffffff18; color:#aeb8df; font-size:11px; line-height:1.55; }
    @media (max-width: 520px) {
      .bet-guide-head { flex-direction:column; }
      .bet-guide-btn { width:100%; }
      .bet-guide-grid { grid-template-columns:1fr; }
    }
    .card-pick-brief { margin-top:10px; border-radius:10px; padding:9px 10px; font-size:11px; line-height:1.6; }
    .card-pick-brief.free { background:#0c1730; border:1px solid #22385e; color:#d4e4ff; }
    .card-pick-brief.vip { background:#2a1c05; border:1px solid #6f5423; color:#f6dfaa; }
    .card-pick-brief.premium { background:linear-gradient(135deg,#0f2330,#112b3a); border:1px solid #3d88aa; color:#d8f6ff; }
    .card-pick-brief strong { color:#fff; }
    .card-one-line { margin-top:10px; display:flex; gap:8px; align-items:flex-start; padding:9px 10px; border-radius:8px; background:#ffffff08; border:1px solid #ffffff12; color:#cfd8ef; }
    .card-one-line span { flex-shrink:0; min-width:48px; color:#8fdfff; font-size:10px; font-weight:900; }
    .card-one-line strong { color:#f3f7ff; font-size:11px; line-height:1.55; font-weight:800; }
    .card-one-line.good { background:#0b1d17; border-color:#1c6b46; }
    .card-one-line.good span { color:#00ff88; }
    .card-one-line.watch { background:#0c1730; border-color:#22385e; }
    .card-one-line.watch span { color:#8fdfff; }
    .card-one-line.caution { background:#241313; border-color:#6b3e2b; }
    .card-one-line.caution span { color:#ffaa44; }
    .vip-preview-lock { margin-top:10px; padding:11px; border-radius:8px; background:linear-gradient(135deg,#201806,#141321); border:1px dashed rgba(255,215,0,0.35); cursor:pointer; }
    .vip-preview-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .vip-preview-top span { color:#ffd700; font-size:10px; font-weight:900; }
    .vip-preview-top strong { color:#fff3b0; font-size:12px; font-weight:900; }
    .vip-preview-copy { margin-top:7px; color:#d9d0aa; font-size:11px; line-height:1.55; font-weight:700; }
    .vip-preview-chips { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
    .vip-preview-chips span { display:inline-flex; min-height:20px; align-items:center; padding:0 7px; border-radius:999px; color:#ffd700; background:rgba(255,215,0,0.08); border:1px solid rgba(255,215,0,0.18); font-size:10px; font-weight:900; }

    /* ════ 무료 / PRO 비교 ════ */
    .compare-box { margin:14px 14px 0; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; overflow:hidden; }
    .compare-box.compact .compare-grid,
    .compare-box.compact .compare-foot,
    .compare-box.compact .compare-trust { display:none; }
    .compare-head { padding:16px 16px 12px; border-bottom:1px solid #1d1d3a; }
    .compare-box.compact .compare-head { border-bottom:none; }
    .compare-kicker { font-size:10px; letter-spacing:1.8px; text-transform:uppercase; color:#8f8fc8; font-weight:800; }
    .compare-title { font-size:17px; font-weight:900; color:#fff; margin-top:6px; }
    .compare-sub { font-size:11px; color:#5e5e86; line-height:1.6; margin-top:5px; }
    .compare-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .compare-grid { display:grid; grid-template-columns:1fr 1fr; }
    .compare-col { padding:14px 14px 16px; }
    .compare-col.free { background:#0d0d1b; }
    .compare-col.vip { background:linear-gradient(180deg,#1c1500,#17121f); border-left:1px solid #2a2240; }
    .compare-plan { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
    .compare-plan strong { font-size:15px; color:#fff; }
    .compare-badge { font-size:9px; font-weight:900; letter-spacing:1px; padding:3px 7px; border-radius:999px; }
    .compare-badge.free { color:#8f8fc8; background:#20203c; border:1px solid #30305c; }
    .compare-badge.vip { color:#ffd700; background:#ffd70018; border:1px solid #ffd70044; }
    .compare-list { display:flex; flex-direction:column; gap:8px; }
    .compare-item { display:flex; align-items:flex-start; gap:7px; font-size:12px; line-height:1.5; color:#a3a3c8; }
    .compare-item strong { color:#f3f3ff; }
    .compare-foot { display:flex; align-items:center; gap:12px; padding:16px 16px 18px; border-top:1px solid #1d1d3a; background:#0b0b18; }
    .compare-proof { flex:1; font-size:11px; color:#7676a2; line-height:1.5; }
    .compare-proof strong { color:#ffd700; }
    .compare-cta { flex-shrink:0; min-height:54px; background:linear-gradient(135deg,#a66a00,#ffb800); border:2px solid #ffe27a; color:#2d1a00; font-size:14px; font-weight:900; padding:0 18px; border-radius:14px; cursor:pointer; box-shadow:0 10px 24px #ffb80033; }
    .compare-trust { display:flex; flex-wrap:wrap; gap:8px; padding:0 16px 18px; background:#0b0b18; }
    .compare-chip { font-size:10px; color:#9a9ac7; background:#17172d; border:1px solid #27274a; border-radius:999px; padding:5px 9px; }

    /* ════ 섹션 ════ */
    .section-title { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:#44446a; font-weight:700; padding:18px 18px 10px; }

    /* ════ 로딩 / 에러 ════ */
    .state-box { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:40px 20px; }
    .spinner { width:36px; height:36px; border:3px solid #1e1e3a; border-top-color:#00e5ff; border-radius:50%; animation:spin .8s linear infinite; }
    @keyframes spin { to { transform:rotate(360deg) } }
    .state-msg { font-size:13px; color:#555577; text-align:center; line-height:1.6; }
    .error-icon { font-size:32px; }
    .retry-btn { background:#1a1a36; border:1px solid #3333aa; color:#8888ff; font-size:12px; font-weight:700; padding:8px 18px; border-radius:8px; cursor:pointer; }
    .retry-btn:hover { background:#22225a; }

    /* ════ 카드 ════ */
    .horse-list { display:flex; flex-direction:column; gap:10px; padding:0 14px; }
    .horse-card { background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; overflow:hidden; cursor:pointer; transition:border-color .15s,box-shadow .15s, transform .15s, background .15s; -webkit-tap-highlight-color:transparent; user-select:none; }
    .horse-card.selected { border-color:#ff2222; box-shadow:0 0 0 2px #ff222233,inset 0 0 24px #ff11110a; }
    .horse-card.signal-good { border-color:#2d6f48; box-shadow:0 10px 28px #0f2f1d33; transform:translateY(-1px); }
    .horse-card.signal-caution { border-color:#6b3e2b; background:linear-gradient(180deg,#14101a,#191115); }
    .horse-card.premium-open { border-color:#4db7de; box-shadow:0 0 0 1px #4db7de22 inset, 0 12px 30px #1b557733; background:linear-gradient(180deg,#0e1423,#101a2a); }
    .card-body { padding:14px 14px 12px; }
    .card-top { display:flex; align-items:center; gap:12px; margin-bottom:11px; }
    .horse-number { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:900; flex-shrink:0; }
    .card-info { flex:1; min-width:0; }
    .horse-name { font-size:16px; font-weight:800; color:#f0f0ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .horse-meta { font-size:11px; color:#555577; margin-top:2px; }
    .horse-meta span { color:#8888bb; }
    .recent-form { display: flex; gap: 4px; align-items: center; margin-top: 6px; }
    .form-box { width: 18px; height: 18px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: bold; color: #fff; }
    .form-box.win { background: #00ff8833; border: 1px solid #00ff88; color: #00ff88; }
    .form-box.place { background: #ffd70033; border: 1px solid #ffd700; color: #ffd700; }
    .form-box.fail { background: #ffffff11; border: 1px solid #ffffff33; color: #8888aa; }
    .help-tip { position: relative; border-bottom: 1px dashed #8888bb; cursor: help; color: #aaaacc; }
    .help-tip::after { content: attr(data-tip); position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); background: #1a1a36; color: #fff; padding: 6px 10px; border-radius: 6px; font-size: 11px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.2s; z-index: 100; border: 1px solid #33335a; }
    .help-tip:hover::after { opacity: 1; }
    .card-right { display:flex; flex-direction:column; align-items:flex-end; gap:5px; flex-shrink:0; }
    .odds-badge { font-size:11px; font-weight:700; padding:3px 8px; border-radius:6px; background:#ffffff0d; color:#7777aa; }

    /* 실시간 배당률 호가창 */
    @keyframes flashUp   { 0%{background:#1a0000} 40%{background:#3a0000} 100%{background:#0e0820} }
    @keyframes flashDown { 0%{background:#001a00} 40%{background:#003a00} 100%{background:#0e0820} }
    .live-odds { display:flex; gap:5px; margin-top:4px; }
    .odds-box { display:flex; flex-direction:column; align-items:center; background:#0e0820; border:1px solid #2a2050; border-radius:7px; padding:4px 7px; min-width:58px; }
    .odds-label { font-size:8px; color:#5555aa; font-weight:700; letter-spacing:.5px; margin-bottom:1px; }
    .odds-val { font-size:14px; font-weight:900; color:#e0d8ff; letter-spacing:.5px; font-variant-numeric:tabular-nums; }
    .odds-val.pending { font-size:10px; font-weight:700; color:#333355; letter-spacing:.3px; }
    .odds-box.flash-up   { animation:flashUp   .5s ease-out forwards; border-color:#ff444488; }
    .odds-box.flash-up   .odds-val { color:#ff6666; }
    .odds-box.flash-down { animation:flashDown .5s ease-out forwards; border-color:#44ff8888; }
    .odds-box.flash-down .odds-val { color:#44ff88; }

    /* AI 예측 뱃지 */
    @keyframes goldGlow { 0%,100%{box-shadow:0 0 6px #ffd70033} 50%{box-shadow:0 0 14px #ffd70066} }
    .ai-pred-badge { font-size:10px; font-weight:800; padding:4px 8px; border-radius:7px; background:linear-gradient(135deg,#2a1e00,#3a2a00); border:1px solid #c8960088; color:#ffd700; line-height:1.4; text-align:right; white-space:nowrap; animation:goldGlow 2.5s infinite; }
    .ai-pred-badge .pred-title { font-size:8px; letter-spacing:1px; color:#997700; display:block; margin-bottom:1px; }

    /* pick 태그 */
    .pick-tag { font-size:9px; font-weight:900; letter-spacing:1px; color:#ff8c00; background:#ff8c0018; border:1px solid #ff8c0044; padding:2px 6px; border-radius:4px; margin-left:5px; vertical-align:middle; }
    .access-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
    .access-tag { font-size:9px; font-weight:900; letter-spacing:.6px; padding:3px 6px; border-radius:999px; }
    .access-tag.free { color:#8ecbff; background:#8ecbff18; border:1px solid #8ecbff33; }
    .access-tag.vip { color:#ffd56a; background:#ffd56a18; border:1px solid #ffd56a33; }
    .access-tag.premium { color:#74d7ff; background:#74d7ff18; border:1px solid #74d7ff33; }
    .access-tag.premium-open { color:#dff8ff; background:#74d7ff26; border:1px solid #8fe4ff77; box-shadow:0 0 10px #5fd9ff22; }
    .access-tag.good { color:#7fe3a4; background:#7fe3a418; border:1px solid #7fe3a433; }
    .access-tag.watch { color:#d7c1ff; background:#d7c1ff18; border:1px solid #d7c1ff33; }
    .access-tag.caution { color:#ffb28b; background:#ffb28b18; border:1px solid #ffb28b33; }
    .card-signal-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .card-signal-chip { font-size:10px; font-weight:900; letter-spacing:.4px; border-radius:999px; padding:4px 8px; }
    .card-signal-chip.good { color:#dff8e7; background:#153423; border:1px solid #2d6f48; }
    .card-signal-chip.watch { color:#f0e4ff; background:#261b39; border:1px solid #5b4380; }
    .card-signal-chip.caution { color:#ffe1d3; background:#3a1f17; border:1px solid #7f4d34; }

    /* 승률 바 */
    .win-rate-row { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
    .win-label { font-size:10px; color:#44446a; width:44px; flex-shrink:0; font-weight:600; }
    .bar-track { flex:1; height:5px; background:#1a1a30; border-radius:3px; overflow:hidden; }
    .bar-fill { height:100%; border-radius:3px; transition:width .8s cubic-bezier(.4,0,.2,1); }
    .win-value { font-size:12px; font-weight:800; width:36px; text-align:right; flex-shrink:0; }

    /* ════ PRO 토글 ════ */
    .vip-toggle { width:100%; background:#13132a; border:none; border-top:1px solid #1c1c36; color:#6666cc; font-size:12px; font-weight:700; padding:10px 14px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:6px; -webkit-tap-highlight-color:transparent; transition:background .15s,color .15s; letter-spacing:.3px; }
    .vip-toggle:hover { background:#16163a; color:#8888ee; }
    .vip-toggle .toggle-icon { font-size:10px; transition:transform .3s cubic-bezier(.4,0,.2,1); flex-shrink:0; }
    .vip-toggle.open .toggle-icon { transform:rotate(180deg); }
    .vip-toggle.open { color:#aaaaff; background:#14143a; }

    /* ════ PRO 패널 ════ */
    .vip-panel { overflow:hidden; max-height:0; transition:max-height .45s cubic-bezier(.4,0,.2,1); background:#0c0c1e; position:relative; }
    .vip-panel.open { max-height:1800px; }
    .vip-inner { padding:16px 14px 18px; }
    .vip-quick-summary { margin-bottom:14px; background:linear-gradient(135deg,#161328,#12152b 55%,#0f1120); border:1px solid #31386e; border-radius:14px; padding:13px 12px; }
    .vip-quick-label { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:#b6beff; font-weight:900; }
    .vip-quick-title { font-size:14px; color:#fff; font-weight:900; line-height:1.45; margin-top:7px; }
    .vip-quick-badges { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
    .vip-quick-badge { font-size:10px; font-weight:900; border-radius:999px; padding:5px 9px; border:1px solid #ffffff18; background:#ffffff08; color:#dde3ff; }
    .vip-quick-badge.good { color:#dff8e7; border-color:#2d6f48; background:#153423; }
    .vip-quick-badge.watch { color:#f0e4ff; border-color:#5b4380; background:#261b39; }
    .vip-quick-badge.caution { color:#ffe1d3; border-color:#7f4d34; background:#3a1f17; }
    .vip-quick-badge.rain { color:#ccefff; border-color:#3f7fa0; background:#132636; }
    .vip-quick-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
    .vip-quick-item { background:#ffffff08; border:1px solid #ffffff12; border-radius:11px; padding:9px 10px; }
    .vip-quick-item.full { grid-column:1 / -1; }
    .vip-quick-item-label { font-size:9px; letter-spacing:1.2px; text-transform:uppercase; color:#a7afd9; font-weight:900; }
    .vip-quick-item-body { font-size:11px; color:#e2e8ff; line-height:1.6; margin-top:5px; }
    .vip-section-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:#444466; font-weight:700; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
    .vip-section-label::after { content:''; flex:1; height:1px; background:#1e1e3a; }

    /* 스피드 바 */
    .speed-bar-group { margin-bottom:16px; }
    .speed-row { display:flex; align-items:center; gap:8px; margin-bottom:7px; }
    .speed-key { font-size:10px; font-weight:800; color:#8888bb; width:32px; flex-shrink:0; }
    .speed-time { font-size:10px; color:#333355; width:52px; flex-shrink:0; text-align:right; }
    .speed-bar-track { flex:1; height:7px; background:#15152a; border-radius:4px; overflow:hidden; }
    .speed-bar-fill { height:100%; border-radius:4px; }
    .speed-grade { font-size:10px; font-weight:800; width:28px; text-align:right; flex-shrink:0; color:#333355; }

    /* 원형 차트 */
    .circle-group { display:flex; gap:10px; justify-content:space-around; }
    .circle-item { display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; background:#111128; border:1px solid #1e1e3a; border-radius:12px; padding:14px 8px 10px; }
    .circle-wrap { position:relative; width:68px; height:68px; }
    .circle-wrap svg { width:68px; height:68px; transform:rotate(-90deg); }
    .circle-bg { fill:none; stroke:#1e1e3a; stroke-width:5; }
    .circle-fg { fill:none; stroke-width:5; stroke-linecap:round; }
    .circle-val { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:13px; font-weight:900; line-height:1; }
    .circle-label { font-size:10px; color:#555577; text-align:center; font-weight:600; line-height:1.3; }
    .circle-sub { font-size:9px; color:#333355; text-align:center; }

    /* 메타 태그 */
    .meta-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:14px; }
    .meta-tag { font-size:10px; padding:3px 8px; border-radius:5px; background:#141428; border:1px solid #222244; color:#7777aa; font-weight:600; }
    .meta-tag.hot { background:#2a1400; border-color:#ff6b3544; color:#ff8c55; }
    .meta-tag.good { background:#0a1e0a; border-color:#00ff8844; color:#44ff88; }
    .meta-tag.warn { background:#1a1a00; border-color:#ffd70044; color:#ddaa00; }

    /* 블러 잠금 */
    .vip-locked .vip-inner { filter:blur(6px); pointer-events:none; user-select:none; }
    .lock-fomo-copy { position:absolute; left:18px; right:18px; bottom:24px; padding:14px 15px; border-radius:14px; background:linear-gradient(135deg,#28150fbb,#1a1226bb); border:1px solid #ffffff14; color:#ffd9c8; font-size:12px; line-height:1.75; filter:blur(5px); user-select:none; pointer-events:none; z-index:9; }
    .lock-overlay { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:#08081872; backdrop-filter:blur(3px); z-index:10; }
    .lock-icon { position:relative; z-index:11; font-size:28px; color:#ffd76b; text-shadow:0 0 8px #ffd76b99, 0 0 18px #ffbf0088, 0 0 28px #ffbf0044; animation:lockGlow 1.8s ease-in-out infinite; }
    .lock-limit { font-size:9px; letter-spacing:1.6px; text-transform:uppercase; font-weight:900; color:#ffcf74; background:#ffffff12; border:1px solid #ffffff18; border-radius:999px; padding:5px 9px; }
    .lock-reason { max-width:260px; font-size:12px; color:#f7e6b8; text-align:center; line-height:1.6; background:#ffffff10; border:1px solid #ffffff16; border-radius:12px; padding:10px 12px; }
    @keyframes lockGlow { 0%,100% { text-shadow:0 0 8px #ffd76b99, 0 0 18px #ffbf0088, 0 0 28px #ffbf0044; } 50% { text-shadow:0 0 12px #ffe59f, 0 0 24px #ffd24d, 0 0 36px #ffbf00aa; } }
    .lock-btn { position:relative; z-index:11; background:linear-gradient(135deg,#9f6200,#ffbf24); border:2px solid #ffe07b; color:#2c1900; font-size:13px; font-weight:900; padding:13px 20px; border-radius:14px; cursor:pointer; text-align:center; line-height:1.5; min-width:236px; animation:goldGlow 2s infinite; letter-spacing:.2px; box-shadow:0 8px 24px #ffbf2433; }
    .lock-sub { font-size:10px; color:#f3d48a; text-align:center; line-height:1.5; max-width:230px; }
    .premium-open-note { margin-top:14px; background:linear-gradient(135deg,#102634,#0f1b28); border:1px solid #366f89; border-radius:12px; padding:11px 12px; }
    .premium-open-label { font-size:9px; letter-spacing:1.4px; text-transform:uppercase; color:#8fe4ff; font-weight:900; }

    /* ════ 전문가 조교 노트 ════ */
    .trainer-note { margin-top:14px; background:linear-gradient(135deg,#0e1a0a,#141f0e); border:1.5px solid #44aa4466; border-radius:12px; padding:13px 14px; position:relative; overflow:hidden; }
    .trainer-note::before { content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:linear-gradient(180deg,#44ff88,#00cc55); border-radius:3px 0 0 3px; }
    .trainer-note-header { display:flex; align-items:center; gap:6px; margin-bottom:9px; }
    .trainer-note-badge { font-size:8px; font-weight:900; letter-spacing:1.2px; color:#00cc55; background:#00cc5518; border:1px solid #00cc5533; padding:2px 7px; border-radius:4px; text-transform:uppercase; }
    .trainer-note-time { font-size:9px; color:#333355; margin-left:auto; }
    .trainer-note-row { display:flex; align-items:flex-start; gap:8px; margin-bottom:6px; }
    .trainer-note-row:last-child { margin-bottom:0; }
    .trainer-note-icon { font-size:13px; flex-shrink:0; margin-top:1px; }
    .trainer-note-text { font-size:12px; color:#99ccaa; line-height:1.5; }
    .trainer-note-text strong { color:#ccffcc; font-weight:700; }
    .trainer-verdict { margin-top:10px; padding:8px 10px; background:#00cc5511; border:1px solid #00cc5522; border-radius:8px; font-size:11px; font-weight:800; color:#44ff88; }

    /* ════ 날씨 헤더 배지 ════ */
    .weather-badge { display:inline-flex; align-items:center; gap:5px; background:#ffffff08; border:1px solid #ffffff10; border-radius:8px; padding:4px 10px; margin-top:8px; font-size:11px; color:#8888bb; cursor:default; }
    .weather-badge-icon { font-size:15px; }
    .weather-badge-label { font-weight:700; color:#aaaacc; }
    .weather-badge.rain   { background:#001a3322; border-color:#4488ff33; color:#88aaff; }
    .weather-badge.rain   .weather-badge-label { color:#88ccff; }
    .weather-badge.cloudy { background:#1a1a0022; border-color:#aaaaaa33; color:#aaaacc; }
    .weather-badge.clear  { background:#1a1000; border-color:#ffcc0033; color:#ccaa44; }
    .weather-badge.clear  .weather-badge-label { color:#ffdd88; }

    /* ════ 주로 조건별 성적 ════ */
    .weather-stat-wrap { margin-bottom:16px; }
    .weather-stat-row { display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:9px; margin-bottom:5px; border:1.5px solid transparent; transition:background .2s, border-color .2s; }
    .weather-stat-row:last-child { margin-bottom:0; }
    .weather-stat-row.today-cond { border-color:#ffd70055; background:#1a1200; }
    .weather-stat-row.today-cond.rain   { border-color:#4488ff55; background:#001830; }
    .weather-stat-row.today-cond.cloudy { border-color:#aaaaaa44; background:#141414; }
    .weather-today-tag { font-size:8px; font-weight:900; color:#ffd700; background:#ffd70022; border:1px solid #ffd70044; border-radius:4px; padding:1px 5px; white-space:nowrap; }
    .weather-today-tag.rain   { color:#88ccff; background:#88ccff18; border-color:#88ccff33; }
    .weather-today-tag.cloudy { color:#aaaacc; background:#aaaacc18; border-color:#aaaacc33; }
    .weather-stat-icon { font-size:16px; flex-shrink:0; }
    .weather-stat-label { font-size:11px; color:#7777aa; width:68px; flex-shrink:0; }
    .weather-stat-bar-track { flex:1; height:7px; background:#141428; border-radius:4px; overflow:hidden; }
    .weather-stat-bar-fill { height:100%; border-radius:4px; transition:width 1s cubic-bezier(.4,0,.2,1); }
    .weather-stat-pct { font-size:11px; font-weight:800; width:32px; text-align:right; flex-shrink:0; }
    .weather-stat-races { font-size:9px; color:#333355; width:28px; text-align:right; flex-shrink:0; }
    .weather-verdict { padding:8px 10px; border-radius:8px; font-size:11px; font-weight:800; margin-top:8px; }
    .weather-verdict.good { background:#00ff8811; border:1px solid #00ff8822; color:#44ff88; }
    .weather-verdict.warn { background:#ff440011; border:1px solid #ff440022; color:#ff8866; }
    .weather-verdict.neutral { background:#ffffff08; border:1px solid #ffffff10; color:#7777aa; }

    /* ════ AI 리포트 배너 (홈 탭) ════ */
    @keyframes reportGlow { 0%,100%{box-shadow:0 2px 16px #7744ff22} 50%{box-shadow:0 4px 28px #7744ff55} }
    .report-banner { margin:14px 14px 0; background:linear-gradient(135deg,#0d0820,#150f30); border:1.5px solid #6644ffaa; border-radius:16px; padding:16px; animation:reportGlow 3s infinite; }
    .report-banner-top { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
    .report-badge { font-size:9px; font-weight:900; letter-spacing:1.2px; color:#9966ff; background:#9966ff18; border:1px solid #9966ff44; padding:3px 8px; border-radius:4px; text-transform:uppercase; }
    .report-title { font-size:15px; font-weight:900; color:#fff; flex:1; }
    .report-updated { font-size:9px; color:#444466; }
    .report-item { display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid #1a1a36; }
    .report-item:last-child { border-bottom:none; padding-bottom:0; }
    .report-rank { width:24px; height:24px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; flex-shrink:0; }
    .report-rank.r1 { background:#ffd70022; color:#ffd700; border:1px solid #ffd70044; }
    .report-rank.r2 { background:#00e5ff22; color:#00e5ff; border:1px solid #00e5ff44; }
    .report-rank.r3 { background:#cc88ff22; color:#cc88ff; border:1px solid #cc88ff44; }
    .report-rank.rn { background:#22223a; color:#555577; border:1px solid #33335a; }
    .report-body { flex:1; min-width:0; }
    .report-horse { font-size:13px; font-weight:800; color:#e0e0ff; margin-bottom:3px; }
    .report-reason { font-size:11px; color:#555577; line-height:1.5; }
    .report-reason em { color:#9966ff; font-style:normal; font-weight:700; }
    .report-conf { font-size:10px; font-weight:800; padding:2px 6px; border-radius:4px; flex-shrink:0; margin-top:2px; }
    .report-conf.high { background:#00ff8822; color:#00ff88; }
    .report-conf.mid  { background:#ffd70022; color:#ffd700; }
    .report-conf.low  { background:#ff6b3522; color:#ff6b35; }

    /* ════ 적중 히스토리 ════ */
    .hit-history-card { background:#0e0e1e; border:1.5px solid #1c1c36; border-radius:16px; padding:18px; margin-bottom:14px; }
    .hit-month-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid #1a1a36; }
    .hit-accuracy { font-size:32px; font-weight:900; color:#00e5ff; font-variant-numeric:tabular-nums; }
    .hit-accuracy-label { font-size:10px; color:#444466; margin-top:2px; }
    .hit-vs-avg { font-size:11px; font-weight:800; color:#00ff88; background:#00ff8818; border:1px solid #00ff8833; padding:4px 10px; border-radius:8px; }
    .hit-list { display:flex; flex-direction:column; gap:8px; }
    .hit-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; background:#111128; border:1px solid #1e1e3a; }
    .hit-result { width:36px; height:36px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:900; flex-shrink:0; }
    .hit-result.win  { background:#00ff8822; color:#00ff88; border:1.5px solid #00ff8844; }
    .hit-result.lose { background:#ff444422; color:#ff4444; border:1.5px solid #ff444444; }
    .hit-result.push { background:#ffd70022; color:#ffd700; border:1.5px solid #ffd70044; }
    .hit-body { flex:1; min-width:0; }
    .hit-pick { font-size:12px; font-weight:800; color:#e0e0ff; }
    .hit-desc { font-size:10px; color:#444466; margin-top:2px; }
    .hit-odds { font-size:13px; font-weight:900; flex-shrink:0; }
    .hit-odds.win { color:#00ff88; }
    .hit-odds.lose { color:#ff4444; }
    .hit-odds.push { color:#ffd700; }

    /* ════ 경주 결과 필터/상세 ════ */
    .result-filter-row { display:flex; gap:6px; margin-bottom:12px; }
    .result-filter-btn { flex:1; padding:7px 0; border-radius:8px; background:#ffffff08; border:1.5px solid #ffffff12; color:#555577; font-size:11px; font-weight:800; cursor:pointer; transition:all .2s; }
    .result-filter-btn.active { background:linear-gradient(135deg,#00334d,#004466); border-color:#00e5ff88; color:#00e5ff; box-shadow:0 0 8px #00e5ff22; }
    .result-list { display:flex; flex-direction:column; gap:8px; }
    .result-card { border-radius:12px; background:#111128; border:1px solid #1e1e3a; padding:12px; transition:all .2s; }
    .result-card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
    .result-card-date { font-size:11px; color:#7777aa; font-weight:700; }
    .result-card-badge { font-size:9px; font-weight:900; padding:3px 8px; border-radius:6px; letter-spacing:.5px; }
    .result-card-badge.win { background:#00ff8822; color:#00ff88; border:1px solid #00ff8844; }
    .result-card-badge.push { background:#ffd70022; color:#ffd700; border:1px solid #ffd70044; }
    .result-card-badge.lose { background:#ff444422; color:#ff4444; border:1px solid #ff444444; }
    .result-card-badge.record { background:#8fdfff22; color:#8fdfff; border:1px solid #8fdfff44; }
    .result-card-body { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
    .result-card-col { font-size:11px; line-height:1.6; }
    .result-card-col strong { color:#e0e0ff; }
    .result-card-col .label { color:#555577; font-size:10px; }
    .result-card-top3 { margin-top:8px; display:flex; gap:6px; }
    .result-card-rank { font-size:10px; padding:4px 8px; border-radius:6px; background:#ffffff08; border:1px solid #ffffff10; color:#7777aa; }
    .result-card-rank.r1 { color:#ffd700; border-color:#ffd70044; background:#ffd70012; }
    .result-card-rank.r2 { color:#c0c0c0; border-color:#c0c0c044; background:#c0c0c012; }
    .result-card-rank.r3 { color:#cd7f32; border-color:#cd7f3244; background:#cd7f3212; }
    .result-card-learning { margin-top:8px; padding:8px 9px; border-radius:8px; background:#8fdfff0d; border:1px solid #8fdfff26; color:#b9dfff; font-size:10px; line-height:1.55; font-weight:800; }

    .premium-open-title { font-size:13px; color:#f2fcff; font-weight:900; margin-top:6px; line-height:1.45; }
    .premium-open-sub { font-size:11px; color:#b6dcea; line-height:1.6; margin-top:5px; }

    /* 번호 색상 팔레트 */
    .nc-1{background:#131328;color:#00e5ff;border:2px solid #00e5ff33}
    .nc-2{background:#0e2010;color:#00ff88;border:2px solid #00ff8833}
    .nc-3{background:#281010;color:#ff6b35;border:2px solid #ff6b3533}
    .nc-4{background:#28240e;color:#ffd700;border:2px solid #ffd70033}
    .nc-5{background:#181028;color:#cc88ff;border:2px solid #cc88ff33}

    .bc-1{background:linear-gradient(90deg,#009ab5,#00e5ff)}
    .bc-2{background:linear-gradient(90deg,#00aa55,#00ff88)}
    .bc-3{background:linear-gradient(90deg,#bb3311,#ff6b35)}
    .bc-4{background:linear-gradient(90deg,#aa8800,#ffd700)}
    .bc-5{background:linear-gradient(90deg,#8833bb,#cc88ff)}

    .vc-1{color:#00e5ff} .vc-2{color:#00ff88} .vc-3{color:#ff6b35} .vc-4{color:#ffd700} .vc-5{color:#cc88ff}

    .sc-1{background:linear-gradient(90deg,#007799,#00bbdd)}
    .sc-2{background:linear-gradient(90deg,#008844,#00dd66)}
    .sc-3{background:linear-gradient(90deg,#993311,#ff5522)}
    .sc-4{background:linear-gradient(90deg,#886600,#ddaa00)}
    .sc-5{background:linear-gradient(90deg,#663399,#aa55dd)}

    :root {
      --c1:#00e5ff; --c2:#00ff88; --c3:#ff6b35; --c4:#ffd700; --c5:#cc88ff;
    }

    /* ════ 마체중 뱃지 ════ */
    .weight-badge { display:inline-flex; align-items:center; gap:5px; margin-top:4px; flex-wrap:wrap; }
    .weight-badge-label { font-size:10px; font-weight:800; letter-spacing:.2px; }
    .weight-badge-label.confirmed { color:#7ee0a8; }
    .weight-badge-label.pending { color:#ffcf7a; }
    .wt-val { font-size:11px; font-weight:700; color:#8888bb; }
    .wt-chg { font-size:10px; font-weight:800; padding:1px 5px; border-radius:4px; }
    .wt-up   { color:#ff6b6b; background:#ff6b6b18; }
    .wt-down { color:#44dd88; background:#44dd8818; }
    .wt-same { color:#555577; background:#55557718; }

    /* ════ 최근 전적 테이블 ════ */
    .form-table { width:100%; border-collapse:collapse; margin-bottom:16px; }
    .form-table th { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:#333355; font-weight:700; padding:4px 4px 6px; border-bottom:1px solid #1e1e3a; }
    .form-table th:first-child { text-align:left; }
    .form-table td { font-size:11px; text-align:center; padding:8px 4px; border-bottom:1px solid #0e0e20; color:#7777aa; }
    .form-table td:first-child { text-align:left; color:#555577; }
    .form-table tr:last-child td { border-bottom:none; }
    .rank-badge { display:inline-block; font-size:11px; font-weight:900; padding:2px 6px; border-radius:5px; min-width:28px; text-align:center; }
    .rank-1 { background:#ffd70022; color:#ffd700; border:1px solid #ffd70044; }
    .rank-2 { background:#aaaacc22; color:#aaaacc; border:1px solid #aaaacc44; }
    .rank-3 { background:#cc884422; color:#cc8844; border:1px solid #cc884444; }
    .rank-etc { background:#22223a; color:#555577; border:1px solid #33335a; }

    /* ════ 스피드 게이지 (더미) ════ */
    .speed-label-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:3px; }
    .speed-label-key { font-size:10px; font-weight:800; color:#8888bb; }
    .speed-label-val { font-size:11px; font-weight:900; }
    .speed-label-grade { font-size:9px; font-weight:800; padding:1px 5px; border-radius:4px; }
    .speed-gauge-track { width:100%; height:8px; background:#15152a; border-radius:5px; overflow:hidden; margin-bottom:10px; }
    .speed-gauge-fill { height:100%; border-radius:5px; transition:width 1s cubic-bezier(.4,0,.2,1); }
    .speed-sub { font-size:9px; color:#333355; margin-bottom:14px; }

    /* ════ 배팅 트렌드 ════ */
    .bet-section { margin:14px 14px 0; background:#0c0c1e; border:1px solid #1c1c36; border-radius:14px; overflow:hidden; }
    .bet-header { display:flex; align-items:center; gap:8px; padding:14px 16px; cursor:pointer; -webkit-tap-highlight-color:transparent; user-select:none; transition:background .15s; }
    .bet-header:hover { background:#ffffff05; }
    .bet-header:active { background:#ffffff0a; }
    .bet-title { font-size:13px; font-weight:800; color:#fff; flex:1; }
    .bet-hot-badge { font-size:9px; font-weight:900; color:#ff4444; background:#ff444418; border:1px solid #ff444433; padding:2px 7px; border-radius:4px; letter-spacing:1px; flex-shrink:0; }
    .bet-live-badge { font-size:9px; font-weight:800; color:#ff4444; background:#ff444418; border:1px solid #ff444433; padding:2px 7px; border-radius:4px; letter-spacing:1px; display:flex; align-items:center; gap:4px; flex-shrink:0; }
    .bet-live-badge::before { content:''; width:5px; height:5px; background:#ff4444; border-radius:50%; animation:pulse 1.2s infinite; }
    .bet-chevron { font-size:11px; color:#444466; transition:transform .35s cubic-bezier(.4,0,.2,1); flex-shrink:0; }
    .bet-section.collapsed .bet-chevron { transform:rotate(-180deg); }
    .bet-body { overflow:hidden; max-height:1200px; transition:max-height .4s cubic-bezier(.4,0,.2,1), padding .4s cubic-bezier(.4,0,.2,1); padding:0 16px 16px; }
    .bet-section.collapsed .bet-body { max-height:0; padding-bottom:0; }
    .bet-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; padding:5px 7px; border-radius:9px; border:1.5px solid transparent; transition:background .3s, border-color .3s, opacity .3s, box-shadow .3s; cursor:pointer; -webkit-tap-highlight-color:transparent; }
    .bet-row:last-child { margin-bottom:0; }
    .bet-row.my-pick { background:#1a1200; border-color:#ffd70066; box-shadow:0 0 12px #ffd70033; opacity:1 !important; }
    .bet-row.dimmed { opacity:.38; }
    .bet-num { width:22px; height:22px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; flex-shrink:0; }
    .bet-name { font-size:11px; color:#8888bb; width:70px; flex-shrink:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:4px; }
    .my-badge { display:none; font-size:8px; font-weight:900; color:#ffd700; background:#ffd70022; border:1px solid #ffd70055; border-radius:4px; padding:1px 4px; letter-spacing:.5px; flex-shrink:0; }
    .bet-row.my-pick .my-badge { display:inline-block; }
    .bet-bar-track { flex:1; height:8px; background:#141428; border-radius:4px; overflow:hidden; }
    .bet-bar-fill { height:100%; border-radius:4px; transition:width 1.4s cubic-bezier(.4,0,.2,1); }
    .bet-pct { font-size:11px; font-weight:800; width:34px; text-align:right; flex-shrink:0; }
    .bet-count { font-size:9px; color:#333355; width:38px; text-align:right; flex-shrink:0; }
    .single-odds-section { display:flex; flex-direction:column; gap:4px; }
    .combo-odds-wrap { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:12px; }
    .combo-odds-section { background:#ffffff06; border:1px solid #ffffff10; border-radius:12px; padding:10px; min-width:0; }
    .combo-odds-section.empty { opacity:.58; }
    .combo-odds-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
    .combo-odds-head strong { color:#fff; font-size:11px; font-weight:900; }
    .combo-odds-head span { color:#7777aa; font-size:9px; font-weight:800; white-space:nowrap; }
    .combo-odds-source { margin:-3px 0 8px; color:#ffd56a; font-size:9px; font-weight:800; line-height:1.45; opacity:.82; }
    .combo-odds-list { display:flex; flex-direction:column; gap:5px; }
    .combo-odds-row { display:flex; align-items:center; justify-content:space-between; gap:8px; background:#0b0b1b; border:1px solid #191936; border-radius:8px; padding:6px 8px; }
    .combo-odds-row span { color:#dfe7ff; font-size:11px; font-weight:900; letter-spacing:.3px; }
    .combo-odds-row strong { color:#8fdfff; font-size:11px; font-weight:900; white-space:nowrap; }
    .combo-odds-empty { color:#555577; font-size:10px; line-height:1.5; }
    .odds-source-note { margin-bottom:10px; padding:10px 11px; border-radius:12px; background:#ffb00010; border:1px solid #ffb00033; color:#ffe2a7; font-size:10px; line-height:1.6; font-weight:800; }
    .odds-source-note strong { color:#ffd56a; }
    .odds-source-note .muted { color:#aaaacc; font-weight:700; }
    @media (max-width:420px) {
      .combo-odds-wrap { grid-template-columns:1fr; }
      .bet-name { width:92px; }
      .bet-pct { width:52px; }
      .bet-count { width:66px; }
    }

    /* ════ 플로팅 채팅 버튼 ════ */
    .chat-fab { position:fixed; bottom:70px; right:18px; z-index:900; background:linear-gradient(135deg,#1a1060,#2a1880); border:1.5px solid #6644ffaa; border-radius:28px; padding:11px 16px; display:none; align-items:center; gap:8px; cursor:pointer; box-shadow:0 4px 20px #6644ff44; -webkit-tap-highlight-color:transparent; transition:transform .15s; }
    .chat-fab:active { transform:scale(.95); }
    .chat-fab-text { font-size:12px; font-weight:800; color:#ccbbff; line-height:1.3; }
    .chat-fab-count { font-size:10px; color:#9977ff; }
    @keyframes fabPulse { 0%,100%{box-shadow:0 4px 20px #6644ff44} 50%{box-shadow:0 4px 28px #6644ff88} }
    .chat-fab { animation:fabPulse 2.5s infinite; }

    /* ════ 채팅 오버레이 ════ */
    .chat-overlay { position:fixed; inset:0; z-index:1000; pointer-events:none; display:none; }
    .chat-overlay.open { pointer-events:all; }
    .chat-backdrop { position:absolute; inset:0; background:#00000066; opacity:0; transition:opacity .3s; }
    .chat-overlay.open .chat-backdrop { opacity:1; }
    .chat-sheet { position:absolute; bottom:calc(60px + env(safe-area-inset-bottom)); left:0; right:0; height:calc(70vh - 60px); max-height:520px; background:#0e0e20; border-top:1px solid #2a2a50; border-radius:20px 20px 0 0; display:flex; flex-direction:column; transform:translateY(110%); transition:transform .35s cubic-bezier(.4,0,.2,1); }
    .chat-overlay.open .chat-sheet { transform:translateY(0); }
    .chat-handle { width:36px; height:4px; background:#333355; border-radius:2px; margin:10px auto 0; flex-shrink:0; }
    .chat-top { display:flex; align-items:center; justify-content:space-between; padding:12px 16px 10px; border-bottom:1px solid #1a1a36; flex-shrink:0; }
    .chat-top-title { font-size:14px; font-weight:800; color:#fff; }
    .chat-online { font-size:10px; color:#9977ff; font-weight:700; }
    .chat-close { font-size:20px; color:#555577; cursor:pointer; padding:2px 6px; line-height:1; }
    .chat-msgs { flex:1; overflow-y:auto; padding:12px 14px; display:flex; flex-direction:column; gap:8px; scroll-behavior:smooth; }
    .chat-msgs::-webkit-scrollbar { width:3px; }
    .chat-msgs::-webkit-scrollbar-thumb { background:#2a2a50; border-radius:2px; }
    .chat-msg { display:flex; align-items:flex-start; gap:8px; }
    .chat-avatar { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
    .chat-bubble-wrap { flex:1; min-width:0; }
    .chat-nick { font-size:10px; font-weight:700; margin-bottom:2px; }
    .chat-bubble { font-size:13px; color:#d0d0e8; line-height:1.45; word-break:break-word; }
    .chat-time { font-size:9px; color:#333355; margin-top:2px; }
    .chat-input-row { display:flex; gap:8px; padding:10px 14px 14px; border-top:1px solid #1a1a36; flex-shrink:0; }
    .chat-input { flex:1; background:#141428; border:1px solid #2a2a50; border-radius:20px; padding:9px 14px; font-size:13px; color:#e0e0f0; outline:none; }
    .chat-input::placeholder { color:#333355; }
    .chat-input:focus { border-color:#6644ff88; }
    .chat-send { background:#3322aa; border:none; border-radius:20px; padding:9px 16px; color:#ccbbff; font-size:12px; font-weight:800; cursor:pointer; flex-shrink:0; transition:background .15s; }
    .chat-send:hover { background:#4433cc; }

    .footer-note { text-align:center; font-size:10px; color:#222244; padding:24px 20px 60px; letter-spacing:.3px; line-height:1.8; }

    /* ════ 바텀 탭바 ════ */
    body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
    body.has-urgent-action { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
    .urgent-action-bar { position:fixed; left:12px; right:12px; bottom:calc(68px + env(safe-area-inset-bottom)); z-index:940; display:none; grid-template-columns:1fr auto; align-items:center; gap:12px; padding:12px; border-radius:18px; background:linear-gradient(135deg,#101827,#172033); border:1.5px solid #35507a; box-shadow:0 16px 38px rgba(0,0,0,.42); transform:translateY(18px); opacity:0; pointer-events:none; transition:opacity .24s ease, transform .24s ease; }
    .urgent-action-bar.show { display:grid; opacity:1; transform:translateY(0); pointer-events:auto; }
    .urgent-action-bar.watch { border-color:#ffd70055; background:linear-gradient(135deg,#241d08,#121827); }
    .urgent-action-bar.danger { border-color:#ff5a5a77; background:linear-gradient(135deg,#301116,#121827); box-shadow:0 16px 38px rgba(255,68,68,.16), 0 16px 38px rgba(0,0,0,.42); }
    .urgent-action-bar.done { border-color:#8fdfff55; background:linear-gradient(135deg,#0d2638,#111827); }
    .urgent-action-kicker { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .urgent-action-bar.watch .urgent-action-kicker { color:#ffd700; }
    .urgent-action-bar.danger .urgent-action-kicker { color:#ff8fab; }
    .urgent-action-title { margin-top:4px; color:#fff; font-size:13px; font-weight:900; line-height:1.35; }
    .urgent-action-sub { margin-top:3px; color:#aeb8df; font-size:10px; line-height:1.45; }
    .urgent-action-buttons { display:flex; align-items:center; gap:7px; flex-shrink:0; }
    .urgent-action-btn { min-height:38px; border-radius:12px; padding:0 12px; border:1px solid #ffffff18; color:#dfe8ff; background:#ffffff0a; font-size:11px; font-weight:900; cursor:pointer; white-space:nowrap; }
    .urgent-action-btn.primary { color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border-color:#9ee8ff; }
    .urgent-action-btn.gold { color:#271900; background:linear-gradient(135deg,#ffd56a,#ffaa00); border-color:#ffe7a0; }
    .urgent-action-btn.danger { color:#fff0f0; background:#ff444420; border-color:#ff5a5a66; }
    @media (max-width: 560px) {
      body.has-urgent-action { padding-bottom: calc(106px + env(safe-area-inset-bottom)); }
      .urgent-action-bar { left:10px; right:10px; bottom:calc(66px + env(safe-area-inset-bottom)); grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:9px 10px; border-radius:15px; }
      .urgent-action-kicker { display:none; }
      .urgent-action-title { margin-top:0; font-size:12px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
      .urgent-action-sub { display:none; }
      .urgent-action-buttons { max-width:48vw; overflow-x:auto; scrollbar-width:none; display:flex; gap:6px; }
      .urgent-action-buttons::-webkit-scrollbar { display:none; }
      .urgent-action-btn { min-height:32px; padding:0 10px; font-size:10px; border-radius:10px; }
    }
    .bottom-nav { position:fixed; bottom:0; left:0; right:0; z-index:950; height:calc(60px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); background:#09091a; border-top:1px solid #1a1a36; display:flex; align-items:stretch; }
    .nav-tab { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; cursor:pointer; -webkit-tap-highlight-color:transparent; border:none; background:none; padding:6px 0; transition:background .15s; }
    .nav-tab:active { background:#ffffff08; }
    .nav-tab-icon { font-size:20px; line-height:1; transition:transform .2s; }
    .nav-tab-label { font-size:10px; font-weight:700; color:#444466; letter-spacing:.3px; transition:color .2s; }
    .nav-tab.active .nav-tab-label { color:#00e5ff; }
    .nav-tab.active .nav-tab-icon { transform:scale(1.15); }
    .nav-slider { position:absolute; top:0; height:2.5px; background:#00e5ff; border-radius:0 0 3px 3px; box-shadow:0 0 8px #00e5ff88; transition:left .3s cubic-bezier(.4,0,.2,1), width .3s cubic-bezier(.4,0,.2,1); pointer-events:none; }

    /* ════ 탭 화면 ════ */
    .tab-view { display:none; opacity:0; transition:opacity .25s ease; }
    .tab-view.active { display:block; }
    .tab-view.fade-in { opacity:1; }

    /* ════ 뉴스 탭 ════ */
    .news-list { padding:14px; display:flex; flex-direction:column; gap:12px; }
    .news-card { background:#0e0e1e; border:1.5px solid #1c1c36; border-radius:16px; overflow:hidden; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:border-color .15s; }
    .news-card:active { border-color:#00e5ff44; }
    .news-thumb { width:100%; height:160px; display:block; background:linear-gradient(135deg,#0a0a22,#151535); position:relative; overflow:hidden; }
    .news-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .news-thumb-inner { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:56px; }
    .news-body { padding:14px 14px 16px; }
    .news-category { font-size:9px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:#00e5ff; margin-bottom:6px; }
    .news-title { font-size:15px; font-weight:800; color:#f0f0ff; line-height:1.4; margin-bottom:6px; }
    .news-summary { font-size:12px; color:#555577; line-height:1.6; }
    .news-meta { display:flex; align-items:center; justify-content:space-between; margin-top:10px; }
    .news-date { font-size:10px; color:#333355; }
    .news-read { font-size:10px; color:#44446a; font-weight:700; }
    .news-header-bar { padding:16px 18px 4px; }
    .news-header-title { font-size:18px; font-weight:900; color:#fff; }
    .news-header-sub { font-size:11px; color:#444466; margin-top:3px; }
    .beginner-guide { padding:10px 14px 0; display:flex; flex-direction:column; gap:10px; }
    .beginner-guide-card { background:linear-gradient(135deg,#101528,#121a30 55%,#0d1020); border:1.5px solid #273252; border-radius:16px; padding:15px 14px; }
    .beginner-guide-kicker { font-size:9px; font-weight:900; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; }
    .beginner-guide-title { font-size:16px; font-weight:900; color:#fff; margin-top:6px; }
    .beginner-guide-body { font-size:12px; line-height:1.7; color:#c9d6f2; margin-top:8px; }
    .beginner-guide-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .beginner-guide-link { display:inline-flex; align-items:center; border-radius:999px; padding:7px 11px; background:#0f1d34; border:1px solid #335985; color:#d8ebff; font-size:11px; font-weight:800; text-decoration:none; }
    .beginner-guide-link:active { transform:scale(.98); }
    .beginner-grid { display:grid; grid-template-columns:1fr; gap:10px; }
    .beginner-mini-card { background:#0d1222; border:1px solid #202d4e; border-radius:14px; padding:13px 12px; }
    .beginner-mini-title { font-size:13px; font-weight:900; color:#fff; margin-bottom:7px; }
    .beginner-mini-body { font-size:11px; line-height:1.7; color:#c7d1eb; }
    .beginner-bet-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-top:10px; }
    .beginner-bet-card { background:#0d1222; border:1px solid #273252; border-radius:14px; padding:13px 12px; }
    .beginner-bet-name { font-size:12px; font-weight:900; color:#8fdfff; margin-bottom:7px; }
    .beginner-bet-desc { font-size:11px; line-height:1.7; color:#d2dcf5; }
    .home-beginner-line { margin:12px 14px 0; background:#11182b; border:1px solid #243657; border-radius:14px; padding:12px 13px; font-size:12px; line-height:1.7; color:#dbe7ff; }
    .home-beginner-line strong { color:#fff3bf; }
    /* 전개 예측 보드 */
    .race-board { margin:0; min-height:320px; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:18px; overflow:hidden; position:relative; }
    .race-board-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:13px 14px 0; }
    .race-board-kicker { font-size:10px; letter-spacing:1.8px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .race-board-title { font-size:16px; font-weight:900; color:#fff; margin-top:6px; }
    .race-board-sub { font-size:11px; line-height:1.6; color:#d5e2ff; margin-top:5px; }
    .race-board-status { display:inline-flex; align-items:center; justify-content:center; min-width:76px; border-radius:999px; padding:6px 10px; font-size:10px; font-weight:900; background:#0f1d34; border:1px solid #3a6391; color:#dff0ff; }
    .race-board-track { position:relative; margin-top:12px; padding:12px 12px 18px; min-height:220px; }
    .pace-lanes { position:relative; min-height:220px; border-radius:14px; overflow:hidden; background: repeating-linear-gradient(0deg, transparent, transparent 36px, rgba(0,0,0,0.15) 36px, rgba(0,0,0,0.15) 37px), linear-gradient(180deg, #5c3d1e 0%, #7a5228 40%, #6b4820 70%, #543a16 100%); border:1px solid #3d2510; }
    .pace-lane { width:100%; box-sizing:border-box; }
    .race-board-footer { padding:0 14px 14px; display:flex; flex-wrap:wrap; gap:7px; }
    .race-board-chip { font-size:10px; color:#f7e8d7; background:#00000022; border:1px solid #ffffff18; border-radius:999px; padding:5px 8px; }
    .horse-marker { position:absolute; display:flex; align-items:center; gap:6px; z-index:10; background:rgba(10, 15, 30, 0.8); padding:4px 8px 4px 4px; border-radius:20px; box-shadow:0 2px 5px rgba(0,0,0,0.5); }
    .help-tip { font-weight:normal; }
    .watch-beginner-note { margin-top:12px; background:#10172a; border:1px solid #2b3c61; border-radius:14px; padding:12px; font-size:12px; line-height:1.7; color:#d5e2ff; }
    .odds-beginner-note { margin-top:10px; font-size:11px; line-height:1.7; color:#d4ddf7; background:#ffffff08; border:1px solid #ffffff12; border-radius:12px; padding:10px 11px; }

    /* ════ 프리미엄 탭 ════ */
    .premium-page { padding:18px 14px 24px; }
    .premium-hero { background:linear-gradient(135deg,#0d1628,#111c31 55%,#0a0f1c); border:1.5px solid #62d1ff55; border-radius:18px; padding:20px 16px; margin-bottom:14px; }
    .premium-hero-kicker { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .premium-hero-title { font-size:20px; font-weight:900; color:#fff; line-height:1.35; margin-top:8px; }
    .premium-hero-sub { font-size:12px; color:#bddded; line-height:1.7; margin-top:8px; }
    .premium-option-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
    .premium-option { background:#101a2a; border:1px solid #24415f; border-radius:14px; padding:13px 12px; cursor:pointer; transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease; }
    .premium-option:active { transform:scale(.98); }
    .premium-option.recommended { border-color:#4c6f90; }
    .premium-option.active { border-color:#8fdfff; box-shadow:0 0 0 1px #8fdfff22 inset, 0 12px 28px #62d1ff18; background:linear-gradient(180deg,#13243a,#101a2a); }
    .premium-option-label { font-size:10px; font-weight:900; letter-spacing:1.3px; text-transform:uppercase; color:#8fdfff; }
    .premium-option-price { font-size:20px; font-weight:900; color:#fff; margin-top:6px; }
    .premium-option-sub { font-size:11px; color:#84aeca; margin-top:5px; line-height:1.5; }
    .premium-option-badge { display:inline-flex; align-items:center; justify-content:center; min-width:58px; margin-top:10px; border-radius:999px; padding:4px 8px; font-size:9px; font-weight:900; letter-spacing:1px; text-transform:uppercase; background:#ffffff0a; color:#9fdfff; border:1px solid #ffffff12; }
    .premium-option.active .premium-option-badge { background:#74d7ff1f; color:#dff8ff; border-color:#74d7ff44; }
    .premium-plan-status { margin-top:12px; background:#0d1424; border:1px solid #213852; border-radius:14px; padding:12px 13px; }
    .premium-plan-status-label { font-size:10px; letter-spacing:1.4px; text-transform:uppercase; color:#86b8d3; font-weight:900; }
    .premium-plan-status-main { font-size:14px; color:#eef8ff; font-weight:900; margin-top:6px; }
    .premium-plan-status-sub { font-size:11px; color:#9ec6dc; line-height:1.6; margin-top:5px; }
    .premium-toggle-board { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
    .premium-toggle-row { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#0f1728; border:1px solid #223852; border-radius:14px; padding:12px 13px; }
    .premium-toggle-copy { flex:1; }
    .premium-toggle-title { font-size:12px; font-weight:900; color:#eef8ff; }
    .premium-toggle-sub { font-size:10px; color:#94bbd4; margin-top:4px; line-height:1.5; }
    .premium-toggle-pill { width:50px; height:28px; border-radius:999px; background:#1f3046; border:1px solid #35587b; position:relative; flex-shrink:0; }
    .premium-toggle-pill::after { content:''; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#d9f5ff; box-shadow:0 2px 8px #00000033; transition:transform .2s ease; }
    .premium-toggle-pill.on { background:linear-gradient(135deg,#2c9fd1,#7be0ff); border-color:#9ee8ff; }
    .premium-toggle-pill.on::after { transform:translateX(22px); background:#ffffff; }
    .premium-inbox { display:flex; flex-direction:column; gap:12px; margin-top:14px; }
    .premium-inbox-card { background:#0d1322; border:1px solid #243b58; border-radius:16px; overflow:hidden; }
    .premium-inbox-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:13px 14px; border-bottom:1px solid #1a2d44; }
    .premium-inbox-title { font-size:13px; font-weight:900; color:#eef8ff; }
    .premium-inbox-time { font-size:10px; color:#7ccff6; font-weight:800; }
    .premium-inbox-body { padding:14px; }
    .premium-inbox-label { font-size:9px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; color:#8fdfff; margin-bottom:6px; }
    .premium-inbox-main { font-size:15px; font-weight:900; color:#fff; line-height:1.45; }
    .premium-inbox-sub { font-size:12px; color:#c3dced; line-height:1.7; margin-top:6px; }
    .premium-inbox-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
    .premium-inbox-tags span { font-size:10px; color:#9fdfff; background:#ffffff08; border:1px solid #ffffff14; border-radius:999px; padding:4px 8px; }
    .premium-page-cta { width:100%; min-height:56px; margin-top:14px; border-radius:14px; font-size:14px; font-weight:900; background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; border:2px solid #9ee8ff; box-shadow:0 12px 28px #62d1ff30; cursor:pointer; }
    .premium-complete-page { margin-top:14px; background:linear-gradient(135deg,#0f2130,#123348 55%,#0b1824); border:1.5px solid #68d6ff55; border-radius:18px; padding:18px 16px; display:none; }
    .premium-complete-page.open { display:block; }
    .premium-complete-kicker { font-size:10px; letter-spacing:1.8px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .premium-complete-title { font-size:18px; font-weight:900; color:#fff; line-height:1.4; margin-top:8px; }
    .premium-complete-body { font-size:12px; color:#c7e8f7; line-height:1.7; margin-top:8px; }
    .premium-complete-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
    .premium-complete-chip { font-size:10px; color:#dff8ff; background:#ffffff10; border:1px solid #ffffff16; border-radius:999px; padding:5px 8px; }
    .premium-complete-btn { width:100%; min-height:50px; margin-top:14px; border-radius:14px; font-size:14px; font-weight:900; background:#ffffff10; color:#e9f9ff; border:1.5px solid #9adfff55; cursor:pointer; }

    /* ════ 관심마 탭 ════ */
    .watch-page { padding:18px 14px 24px; }
    .watch-hero { background:linear-gradient(135deg,#121327,#171936 55%,#0d1020); border:1.5px solid #7c7cff44; border-radius:18px; padding:18px 16px; }
    .watch-kicker { font-size:10px; letter-spacing:1.8px; text-transform:uppercase; color:#b6b8ff; font-weight:900; }
    .watch-title { font-size:20px; font-weight:900; color:#fff; line-height:1.35; margin-top:8px; }
    .watch-sub { font-size:12px; color:#b7bbdf; line-height:1.7; margin-top:7px; }
    .watch-stat-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
    .watch-stat { background:#ffffff08; border:1px solid #ffffff12; border-radius:14px; padding:12px; }
    .watch-stat-label { font-size:10px; color:#9da3da; font-weight:800; }
    .watch-stat-main { font-size:18px; color:#fff; font-weight:900; margin-top:5px; }
    .watch-tools { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
    .watch-tool-card { background:#11132a; border:1.5px solid #262b56; border-radius:16px; padding:14px 12px; }
    .watch-tool-kicker { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:#aeb4ea; font-weight:900; }
    .watch-tool-title { font-size:14px; color:#fff; font-weight:900; line-height:1.45; margin-top:7px; }
    .watch-tool-sub { font-size:11px; color:#a8b0d8; line-height:1.6; margin-top:6px; }
    .watch-tool-btn { width:100%; min-height:42px; margin-top:12px; border-radius:12px; border:1.5px solid #6168c8; background:#1b1f44; color:#e4e7ff; font-size:12px; font-weight:900; cursor:pointer; }
    .watch-live-stack { margin-top:14px; display:flex; flex-direction:column; gap:12px; }
    .watch-live-stack .live-status-card { margin:0; }
    .watch-priority-card { margin-top:14px; background:linear-gradient(135deg,#15172f,#12162a 55%,#0f1221); border:1.5px solid #4d56a155; border-radius:18px; padding:16px; display:none; }
    .watch-priority-card.open { display:block; }
    .watch-priority-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#b7beff; font-weight:900; }
    .watch-priority-title { font-size:16px; color:#fff; font-weight:900; line-height:1.45; margin-top:8px; }
    .watch-priority-table { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .watch-priority-row { display:grid; grid-template-columns:42px 1fr auto; gap:10px; align-items:center; background:#ffffff08; border:1px solid #ffffff12; border-radius:14px; padding:10px 12px; }
    .watch-priority-rank { font-size:12px; font-weight:900; color:#dfe4ff; }
    .watch-priority-name { font-size:13px; font-weight:900; color:#fff; }
    .watch-priority-copy { font-size:11px; color:#b7bedf; line-height:1.5; margin-top:4px; }
    .watch-priority-badge { font-size:10px; font-weight:900; letter-spacing:1px; border-radius:999px; padding:4px 8px; }
    .watch-priority-badge.good { color:#dff8e7; background:#153423; border:1px solid #2d6f48; }
    .watch-priority-badge.watch { color:#f0e4ff; background:#261b39; border:1px solid #5b4380; }
    .watch-priority-badge.caution { color:#ffe1d3; background:#3a1f17; border:1px solid #7f4d34; }
    .watch-compare-card { position:relative; margin-top:14px; background:linear-gradient(135deg,#171831,#11162a 55%,#0e1220); border:1.5px solid #5a63b655; border-radius:18px; padding:16px; display:none; overflow:hidden; }
    .watch-compare-card.open { display:block; }

    /* 전체 블러를 안전하게 먹이는 핵심 코드 */
    .watch-compare-card.locked .watch-compare-grid,
    .watch-compare-card.locked .watch-compare-verdict { filter:blur(5px); opacity:0.5; pointer-events:none; user-select:none; }

    /* 좌우 대칭 그리드 복구 */
    .watch-compare-grid { display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:stretch; margin-top:12px; }
    .watch-compare-col { background:#ffffff08; border:1px solid #ffffff12; border-radius:14px; padding:12px; min-width: 0; display:flex; flex-direction:column; }
    .watch-compare-name { font-size:14px; color:#fff; font-weight:900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .watch-compare-copy { font-size:11px; color:#bcc4ea; line-height:1.6; margin-top:7px; flex-grow:1; }
    .watch-compare-metrics { display:flex; flex-direction:column; gap:8px; margin-top:auto; }
    .watch-compare-metric { background:linear-gradient(180deg,#ffffff0d,#ffffff06); border:1px solid #ffffff12; border-radius:12px; padding:8px 9px; }
    .watch-compare-metric-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
    .watch-compare-metric-label { font-size:10px; color:#aeb7e9; font-weight:800; }
    .watch-compare-metric-value { font-size:11px; color:#f3f6ff; font-weight:900; }
    .watch-compare-bar-track { width:100%; height:8px; border-radius:999px; background:#0c1020; overflow:hidden; box-shadow:inset 0 0 0 1px #ffffff08; }
    .watch-compare-bar-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,#67cfff,#8b72ff 58%,#ffd56a); box-shadow:0 0 12px #67cfff44; transition:width .45s ease; min-width:10px; }
    .watch-compare-vs { display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; color:#b8bfff; }
    .watch-compare-verdict { font-size:12px; color:#e6ebff; line-height:1.7; margin-top:12px; background:#ffffff08; border:1px solid #ffffff12; border-radius:12px; padding:10px; }

    /* 자물쇠 오버레이 중앙 정렬 복구 */
    .compare-lock-overlay { position:absolute; inset:0; backdrop-filter:blur(2px); background:rgba(14, 14, 30, 0.4); display:none; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px 18px; z-index:10; }
    .watch-compare-card.locked .compare-lock-overlay { display:flex; }
    .compare-lock-icon { font-size:32px; margin-bottom:8px; }
    .compare-lock-title { font-size:17px; font-weight:900; color:#fff; }
    .compare-lock-sub { margin-top:8px; font-size:12px; line-height:1.6; color:#d8c58d; max-width:260px; }
    .compare-lock-btn { min-height:44px; margin-top:14px; padding:0 18px; border-radius:12px; background:linear-gradient(135deg,#5a3f0f,#8b6721); color:#fff; font-size:13px; font-weight:900; cursor:pointer; border:1px solid #e2bc63; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
    .watch-note-card { margin-top:14px; background:linear-gradient(135deg,#17132a,#12152d 55%,#0f1020); border:1.5px solid #4a4f8c; border-radius:18px; padding:16px; }
    .watch-note-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#b2b8ff; font-weight:900; }
    .watch-note-title { font-size:16px; color:#fff; font-weight:900; line-height:1.45; margin-top:8px; }
    .watch-note-body { font-size:12px; color:#bcc2e6; line-height:1.7; margin-top:8px; }
    .final-check-card { margin-top:14px; background:linear-gradient(145deg,#121a2d,#0a1020); border:1.5px solid #2d416b; border-radius:18px; padding:16px; box-shadow:0 10px 26px rgba(0,0,0,.2); }
    .final-check-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .final-check-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .final-check-title { font-size:16px; color:#fff; font-weight:900; line-height:1.45; margin-top:8px; }
    .final-check-sub { font-size:11px; color:#aeb8df; line-height:1.6; margin-top:6px; }
    .final-check-refresh { flex-shrink:0; min-height:36px; border-radius:999px; padding:0 12px; background:#0e2435; border:1px solid #3b89aa; color:#dff8ff; font-size:10px; font-weight:900; cursor:pointer; }
    .final-check-alert { padding:11px 12px; border-radius:13px; background:#ffffff08; border:1px solid #ffffff12; color:#eff4ff; font-size:12px; font-weight:900; line-height:1.55; }
    .final-check-alert.good { color:#d9ffe9; border-color:#00ff8840; background:#00ff8810; }
    .final-check-alert.warn { color:#fff1c5; border-color:#ffd70044; background:#ffd70010; }
    .final-check-alert.danger { color:#ffe0df; border-color:#ff5a5a55; background:#ff444414; }
    .final-check-list { display:grid; grid-template-columns:1fr; gap:8px; margin-top:10px; }
    .final-check-item { width:100%; display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; text-align:left; border-radius:13px; border:1px solid #ffffff12; background:#ffffff07; padding:10px; cursor:pointer; }
    .final-check-box { width:24px; height:24px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:#080d18; border:1px solid #2c355f; color:#4d587d; font-size:13px; font-weight:900; }
    .final-check-item.done .final-check-box { background:#00ff8814; border-color:#00ff8866; color:#00ff88; }
    .final-check-item.good { border-color:#00ff8830; }
    .final-check-item.warn { border-color:#ffd70038; background:#ffd7000a; }
    .final-check-item.danger { border-color:#ff5a5a4a; background:#ff44440d; }
    .final-check-name { color:#fff; font-size:12px; font-weight:900; line-height:1.4; }
    .final-check-copy { color:#aeb8df; font-size:10px; line-height:1.55; margin-top:3px; }
    .final-check-badge { min-width:42px; text-align:center; border-radius:999px; padding:4px 7px; color:#cfd8ef; background:#ffffff0a; border:1px solid #ffffff12; font-size:10px; font-weight:900; }
    .final-check-item.good .final-check-badge { color:#00ff88; background:#00ff8814; border-color:#00ff8840; }
    .final-check-item.warn .final-check-badge { color:#ffd700; background:#ffd70014; border-color:#ffd70044; }
    .final-check-item.danger .final-check-badge { color:#ff8fab; background:#ff444414; border-color:#ff5a5a55; }
    .final-check-done-btn { width:100%; min-height:42px; margin-top:10px; border-radius:13px; border:1.5px solid #9ee8ff; background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; font-size:12px; font-weight:900; cursor:pointer; }
    .final-check-done-btn.done { border-color:#00ff88; background:linear-gradient(135deg,#0f8f55,#00ff88); color:#04170d; }
    @media (max-width: 520px) {
      .final-check-card { margin-top:10px; padding:12px; border-radius:16px; }
      .final-check-head { flex-direction:row; align-items:center; margin-bottom:9px; }
      .final-check-kicker { font-size:9px; letter-spacing:1.3px; }
      .final-check-title { margin-top:4px; font-size:14px; }
      .final-check-sub { display:none; }
      .final-check-refresh { width:auto; min-height:32px; padding:0 10px; }
      .final-check-alert { padding:9px 10px; font-size:11px; }
      .final-check-list { max-height:none; overflow:visible; padding-right:0; gap:6px; }
      .final-check-item { grid-template-columns:24px 1fr auto; gap:8px; padding:8px; border-radius:11px; }
      .final-check-box { width:20px; height:20px; border-radius:7px; font-size:11px; }
      .final-check-copy { display:none; }
      .final-check-name { font-size:11px; }
      .final-check-badge { grid-column:auto; width:max-content; min-width:36px; padding:3px 6px; font-size:9px; }
      .final-check-done-btn { min-height:38px; margin-top:8px; }
    }
    .ticket-memo-card { margin-top:14px; background:linear-gradient(135deg,#101827,#11142a 55%,#0c1020); border:1.5px solid #2c3f67; border-radius:18px; padding:16px; }
    .ticket-memo-priority { border-color:#68d8ff80; box-shadow:0 0 0 1px #68d8ff18, 0 12px 30px rgba(8, 28, 58, .28); }
    .ticket-memo-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .ticket-memo-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .ticket-memo-title { font-size:16px; color:#fff; font-weight:900; line-height:1.45; margin-top:8px; }
    .ticket-memo-sub { font-size:11px; color:#aeb8df; line-height:1.6; margin-top:6px; }
    .ticket-memo-head-actions { flex-shrink:0; display:flex; gap:8px; align-items:center; }
    .ticket-memo-prefill,
    .ticket-memo-review-btn { flex-shrink:0; min-height:36px; border-radius:999px; padding:0 12px; background:#0e2435; border:1px solid #3b89aa; color:#dff8ff; font-size:10px; font-weight:900; cursor:pointer; }
    .ticket-memo-review-btn { background:linear-gradient(135deg,#ffd56a,#ffaa00); border-color:#ffdf86; color:#211300; box-shadow:0 8px 18px rgba(255, 190, 40, .18); }
    .ticket-memo-form { display:grid; grid-template-columns:88px 1fr 112px; gap:8px; }
    .ticket-memo-select, .ticket-memo-input, .ticket-memo-note-input { width:100%; box-sizing:border-box; border-radius:12px; border:1.5px solid #27375d; background:#080d18; color:#e8edf8; font-size:12px; font-weight:800; outline:none; }
    .ticket-memo-select, .ticket-memo-input { min-height:42px; padding:0 10px; }
    .ticket-memo-input[readonly] { cursor:default; color:#8fdfff; background:#07111f; border-color:#31578d; }
    .ticket-memo-note-input { margin-top:8px; padding:10px; line-height:1.55; resize:vertical; font-family:inherit; }
    .ticket-memo-input::placeholder, .ticket-memo-note-input::placeholder { color:#555577; font-weight:700; }
    .ticket-horse-picker { margin-top:8px; padding:10px; border-radius:14px; background:#ffffff06; border:1px solid #27375d; }
    .ticket-horse-picker-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:9px; }
    .ticket-horse-picker-title { color:#fff; font-size:12px; font-weight:900; }
    .ticket-horse-picker-sub { margin-top:4px; color:#8c97c8; font-size:10px; line-height:1.45; font-weight:800; }
    .ticket-horse-picker-clear { flex-shrink:0; min-height:28px; padding:0 9px; border-radius:999px; border:1px solid #3b89aa; background:#0e2435; color:#dff8ff; font-size:10px; font-weight:900; cursor:pointer; }
    .ticket-horse-picker-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(88px, 1fr)); gap:7px; }
    .ticket-horse-option { min-height:42px; border-radius:12px; border:1px solid #2c3f67; background:#0b1222; color:#e8edf8; display:flex; align-items:center; gap:7px; padding:6px 8px; cursor:pointer; text-align:left; transition:transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease; }
    .ticket-horse-option:active { transform:scale(.98); }
    .ticket-horse-option.selected { border-color:#ffd56a; background:linear-gradient(135deg,#2b2109,#161526); box-shadow:0 0 0 1px #ffd56a33, 0 0 14px rgba(255,213,106,.16); }
    .ticket-horse-option.disabled { opacity:.42; cursor:not-allowed; }
    .ticket-horse-option-no { width:24px; height:24px; border-radius:7px; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff; background:#38405c; font-size:11px; font-weight:900; }
    .ticket-horse-option-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:900; }
    .ticket-horse-picker-empty { grid-column:1/-1; padding:10px; border-radius:11px; border:1px dashed #ffffff18; color:#8c97c8; font-size:11px; line-height:1.55; text-align:center; }
    .ticket-memo-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
    .ticket-memo-save { min-height:42px; padding:0 16px; border-radius:12px; border:1.5px solid #9ee8ff; background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; font-size:12px; font-weight:900; cursor:pointer; }
    .ticket-memo-safe { color:#777fa8; font-size:10px; line-height:1.5; text-align:right; }
    .ticket-budget-guard { margin-top:12px; padding:12px; border-radius:16px; background:linear-gradient(135deg,#071220,#11152b); border:1px solid #24365d; }
    .ticket-budget-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .ticket-budget-kicker { font-size:9px; letter-spacing:1.4px; text-transform:uppercase; color:#7be0ff; font-weight:900; }
    .ticket-budget-title { margin-top:5px; color:#fff; font-size:14px; font-weight:900; }
    .ticket-budget-limit { flex-shrink:0; display:flex; align-items:center; gap:6px; color:#8c97c8; font-size:10px; font-weight:900; }
    .ticket-budget-limit input { width:96px; height:34px; box-sizing:border-box; border-radius:10px; border:1px solid #31456f; background:#050a14; color:#fff; padding:0 9px; font-size:12px; font-weight:900; outline:none; }
    .ticket-budget-limit input::placeholder { color:#4e587d; }
    .ticket-budget-meter { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:11px; }
    .ticket-budget-meter > div { border-radius:12px; background:#ffffff08; border:1px solid #ffffff10; padding:9px; }
    .ticket-budget-meter span { display:block; color:#8c97c8; font-size:10px; font-weight:800; margin-bottom:4px; }
    .ticket-budget-meter strong { color:#fff; font-size:14px; font-weight:900; }
    .ticket-budget-bar { height:7px; border-radius:999px; overflow:hidden; background:#ffffff12; margin-top:10px; }
    .ticket-budget-bar span { display:block; width:0%; height:100%; border-radius:999px; background:linear-gradient(90deg,#2c9fd1,#7be0ff); transition:width .25s ease, background .25s ease; }
    .ticket-budget-bar span.warning { background:linear-gradient(90deg,#ffd56a,#ffaa00); }
    .ticket-budget-bar span.danger { background:linear-gradient(90deg,#ff4b2b,#ff416c); }
    .ticket-budget-status { margin-top:9px; color:#aeb8df; font-size:10px; line-height:1.55; font-weight:700; }
    .ticket-budget-status.warning { color:#ffd56a; }
    .ticket-budget-status.danger { color:#ff8ca8; }
    .ticket-memo-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .ticket-memo-row { background:#ffffff08; border:1px solid #ffffff12; border-radius:14px; padding:11px 12px; display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; }
    .ticket-memo-row-main { color:#fff; font-size:13px; font-weight:900; line-height:1.45; }
    .ticket-memo-row-main span { color:#8fdfff; }
    .ticket-memo-row-sub { color:#aeb8df; font-size:11px; line-height:1.55; margin-top:5px; }
    .ticket-memo-row-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .ticket-memo-chip { display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:999px; background:#ffffff0a; border:1px solid #ffffff12; color:#cfd8ef; font-size:10px; font-weight:900; }
    .ticket-memo-chip.result-hit { color:#04170d; background:linear-gradient(135deg,#0f8f55,#00ff88); border-color:#00ff88; }
    .ticket-memo-chip.result-close { color:#221600; background:linear-gradient(135deg,#ffd56a,#ffaa00); border-color:#ffd56a; }
    .ticket-memo-chip.result-miss { color:#ffe0e6; background:#ff416c22; border-color:#ff416c66; }
    .ticket-memo-chip.result-pending { color:#8fdfff; background:#2c9fd11a; border-color:#2c9fd155; }
    .ticket-memo-delete { width:34px; height:34px; border-radius:10px; border:1px solid #3d4274; background:#171936; color:#cfd4ff; font-size:16px; cursor:pointer; }
    .ticket-memo-empty { padding:12px; border-radius:12px; background:#ffffff08; border:1px dashed #ffffff18; color:#8c97c8; font-size:11px; line-height:1.6; text-align:center; }
    @media (max-width: 520px) {
      .ticket-memo-head, .ticket-memo-actions, .ticket-memo-head-actions { flex-direction:column; align-items:stretch; }
      .ticket-memo-prefill, .ticket-memo-review-btn, .ticket-memo-save { width:100%; }
      .ticket-memo-safe { text-align:left; }
      .ticket-memo-form { grid-template-columns:1fr; }
      .ticket-horse-picker-head { flex-direction:column; align-items:stretch; }
      .ticket-horse-picker-clear { width:100%; }
      .ticket-horse-picker-list { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .ticket-budget-head, .ticket-budget-meter { grid-template-columns:1fr; }
      .ticket-budget-head { flex-direction:column; }
      .ticket-budget-limit, .ticket-budget-limit input { width:100%; }
      .ticket-memo-row { grid-template-columns:1fr; }
      .ticket-memo-delete { width:100%; }
    }
    .watch-vip-card { margin-top:14px; background:linear-gradient(135deg,#1d1607,#171321 55%,#11111b); border:1.5px solid #caa34a55; border-radius:18px; padding:15px; }
    .watch-vip-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#ffd56a; font-weight:900; }
    .watch-vip-title { font-size:15px; color:#fff; font-weight:900; line-height:1.45; margin-top:8px; }
    .watch-vip-sub { font-size:11px; color:#d8c18a; line-height:1.65; margin-top:7px; }
    .watch-vip-points { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
    .watch-vip-points span { font-size:10px; color:#f2dca6; background:#ffffff08; border:1px solid #ffffff12; border-radius:999px; padding:4px 8px; }
    .watch-vip-btn { width:100%; min-height:44px; margin-top:12px; border-radius:13px; border:1.5px solid #dcb45f; background:linear-gradient(135deg,#3a2a08,#6b4f12); color:#fff4d0; font-size:13px; font-weight:900; cursor:pointer; box-shadow:none; }
    .watch-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .watch-card { background:#0e0f22; border:1.5px solid #24284d; border-radius:14px; padding:12px; }
    .watch-card.focused { border-color:#63c8ff; box-shadow:0 0 0 2px #63c8ff22, 0 14px 30px #0c345544; background:linear-gradient(180deg,#10172a,#0f1324); }
    .watch-card-actions { display:flex; gap:8px; margin-top:10px; }
    .watch-card-action { min-height:34px; border-radius:10px; padding:0 12px; font-size:11px; font-weight:900; cursor:pointer; }
    .watch-card-action.vip { border:1.5px solid #dcb45f; background:linear-gradient(135deg,#3a2a08,#6b4f12); color:#fff4d0; }
    .watch-card-action.premium { border:1.5px solid #8fdfff; background:linear-gradient(135deg,#10324b,#164f72); color:#e8fbff; }
    .watch-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .watch-card-title-row { display:flex; align-items:center; gap:8px; min-width:0; }
    .watch-card-title { font-size:14px; font-weight:900; color:#fff; }
    .watch-card-chip { font-size:10px; font-weight:900; letter-spacing:1px; border-radius:999px; padding:4px 8px; }
    .watch-card-chip.good { color:#dff8e7; background:#153423; border:1px solid #2d6f48; }
    .watch-card-chip.watch { color:#f0e4ff; background:#261b39; border:1px solid #5b4380; }
    .watch-card-chip.caution { color:#ffe1d3; background:#3a1f17; border:1px solid #7f4d34; }
    .watch-remove-btn { width:30px; height:30px; border-radius:10px; border:1px solid #3d4274; background:#171936; color:#cfd4ff; font-size:16px; cursor:pointer; flex-shrink:0; }
    .watch-card-sub { font-size:11px; color:#b9bfdc; line-height:1.55; margin-top:7px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .watch-card-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .watch-card-meta span { font-size:10px; color:#aab3e4; background:#ffffff08; border:1px solid #ffffff12; border-radius:999px; padding:3px 7px; }
    .watch-history { margin-top:10px; background:#0a1020; border:1px solid #20284a; border-radius:12px; padding:10px; }
    .watch-history-title { font-size:10px; font-weight:900; letter-spacing:1.2px; text-transform:uppercase; color:#8fa7d8; }
    .watch-history-sub { margin-top:4px; font-size:10px; color:#7782b5; line-height:1.5; }
    .watch-history-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .watch-history-chip { font-size:10px; color:#d6defe; background:#ffffff08; border:1px solid #ffffff12; border-radius:999px; padding:4px 8px; }
    .watch-history-list { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
    .watch-history-row { display:grid; grid-template-columns:58px 1fr auto; gap:8px; align-items:center; font-size:11px; }
    .watch-history-date { color:#aab3e4; font-weight:800; }
    .watch-history-race { color:#dbe4ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .watch-history-badge { font-size:10px; font-weight:900; border-radius:999px; padding:4px 8px; }
    .watch-history-badge.win { color:#dff8e7; background:#153423; border:1px solid #2d6f48; }
    .watch-history-badge.place { color:#eef0ff; background:#232847; border:1px solid #4e5d9b; }
    .watch-history-badge.show { color:#fff0d6; background:#39290d; border:1px solid #8c6930; }
    .watch-history-badge.out { color:#ffd9d1; background:#311517; border:1px solid #804249; }
    .watch-empty { margin-top:14px; background:#101125; border:1.5px dashed #2f3361; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:80px 24px; text-align:center; }
    .watch-empty-icon { font-size:56px; animation:emptyBounce 2s ease-in-out infinite; }
    @keyframes emptyBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
    .watch-empty-title { font-size:17px; font-weight:800; color:#ccccdd; margin-top:16px; }
    .watch-empty-sub { font-size:13px; color:#666688; margin-top:6px; }
    .watch-empty-btn { background:#ffd70022; border:1px solid #ffd70066; color:#ffd700; border-radius:12px; padding:11px 28px; font-size:13px; font-weight:800; margin-top:20px; cursor:pointer; }

    /* ════ 마이페이지 탭 ════ */
    .my-page { padding:20px 14px; }
    .my-profile { display:flex; align-items:center; gap:14px; background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; padding:18px; margin-bottom:16px; }
    .my-avatar { width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,#1a1060,#2a1880); border:2px solid #6644ff44; display:flex; align-items:center; justify-content:center; font-size:26px; flex-shrink:0; }
    .my-name { font-size:17px; font-weight:900; color:#fff; }
    .my-grade { display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:800; color:#555577; background:#111128; border:1px solid #22223a; border-radius:5px; padding:2px 8px; margin-top:4px; }
    .my-grade .grade-text { color:#555577; }
    .preview-switcher { background:#0f1023; border:1.5px solid #24284d; border-radius:16px; padding:16px; margin-bottom:14px; }
    .preview-switcher-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#9ca3e1; font-weight:900; }
    .preview-switcher-title { font-size:15px; color:#fff; font-weight:900; margin-top:8px; }
    .preview-switcher-sub { font-size:11px; color:#a9b0dc; line-height:1.6; margin-top:6px; }
    .preview-tier-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
    .preview-tier-btn { min-height:44px; border-radius:12px; border:1.5px solid #343969; background:#171936; color:#d6dcff; font-size:12px; font-weight:900; cursor:pointer; }
    .preview-tier-btn.active { border-color:#ffd56a; background:linear-gradient(135deg,#3c2a07,#5c4410); color:#fff1c4; box-shadow:0 0 0 1px #ffd56a22 inset; }
    .preview-tier-btn.premium.active { border-color:#8fdfff; background:linear-gradient(135deg,#10324b,#164f72); color:#e8fbff; box-shadow:0 0 0 1px #8fdfff22 inset; }

    .my-section { margin-bottom:14px; border:1.5px solid #222b4f; border-radius:18px; background:linear-gradient(145deg,#0c1221,#0a0d18); overflow:hidden; box-shadow:0 8px 22px rgba(0,0,0,.18); }
    .my-section-head { width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:15px; border:none; background:transparent; text-align:left; cursor:pointer; }
    .my-section-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .my-section-title { color:#fff; font-size:16px; font-weight:900; line-height:1.45; margin-top:7px; }
    .my-section-sub { color:#9da8d5; font-size:11px; line-height:1.6; margin-top:5px; }
    .my-section-toggle { width:28px; height:28px; border-radius:999px; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#cfd8ff; background:#ffffff0a; border:1px solid #ffffff12; font-size:18px; line-height:1; transition:transform .25s ease, color .25s ease; }
    .my-section.open .my-section-toggle { transform:rotate(180deg); color:#ffd56a; }
    .my-section-body { display:flex; flex-direction:column; gap:12px; max-height:0; overflow:hidden; padding:0 12px; transition:max-height .32s ease, padding .25s ease; }
    .my-section.open .my-section-body { max-height:6000px; padding:0 12px 12px; }
    .my-section-body > .my-ticket-summary-card,
    .my-section-body > .race-review-card,
    .my-section-body > .review-pattern-card,
    .my-section-body > .beginner-guide,
    .my-section-body > .hit-history-card,
    .my-section-body > .vip-cta { margin:0 !important; }
    .my-section-body > .beginner-guide { padding:0 !important; }

    .my-ticket-summary-card { background:linear-gradient(145deg,#101827,#0c1324); border:1.5px solid #263a63; border-radius:18px; padding:16px; margin:0 0 16px; box-shadow:0 8px 22px rgba(0,0,0,.22); }
    .my-ticket-summary-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .my-ticket-summary-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .my-ticket-summary-title { color:#fff; font-size:16px; font-weight:900; line-height:1.45; margin-top:7px; }
    .my-ticket-summary-sub { color:#9da8d5; font-size:11px; line-height:1.6; margin-top:5px; }
    .my-ticket-summary-btn { flex-shrink:0; border:1px solid #3b89aa; background:#0d2638; color:#dff8ff; min-height:36px; padding:0 12px; border-radius:999px; font-size:10px; font-weight:900; cursor:pointer; }
    .my-ticket-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
    .my-ticket-summary-stat { background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:10px; min-width:0; }
    .my-ticket-summary-stat span { display:block; color:#8c97c8; font-size:10px; font-weight:800; margin-bottom:5px; }
    .my-ticket-summary-stat strong { display:block; color:#fff; font-size:15px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .my-ticket-summary-stat.warn strong { color:#ffd56a; }
    .my-ticket-summary-stat.danger strong { color:#ff8ca8; }
    .my-ticket-summary-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .my-ticket-summary-row { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#ffffff06; border:1px solid #ffffff10; border-radius:12px; padding:10px; }
    .my-ticket-summary-main { color:#fff; font-size:12px; font-weight:900; line-height:1.4; }
    .my-ticket-summary-main span { color:#8fdfff; }
    .my-ticket-summary-note { color:#8c97c8; font-size:10px; line-height:1.5; margin-top:3px; }
    .my-ticket-summary-budget { color:#ffd56a; font-size:11px; font-weight:900; white-space:nowrap; }
    .my-ticket-summary-empty { border:1px dashed #ffffff18; background:#ffffff08; border-radius:14px; padding:15px; color:#9da8d5; font-size:12px; line-height:1.7; text-align:center; }
    @media (max-width: 520px) {
      .my-ticket-summary-head { flex-direction:column; }
      .my-ticket-summary-btn { width:100%; }
      .my-ticket-summary-grid { grid-template-columns:1fr; }
      .my-ticket-summary-row { align-items:flex-start; flex-direction:column; }
      .my-ticket-summary-budget { white-space:normal; }
    }

    .race-review-card { background:linear-gradient(145deg,#171321,#0b1324); border:1.5px solid #3a335f; border-radius:18px; padding:16px; margin:0 0 16px; box-shadow:0 8px 22px rgba(0,0,0,.22); }
    .race-review-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .race-review-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#ffd56a; font-weight:900; }
    .race-review-title { color:#fff; font-size:16px; font-weight:900; line-height:1.45; margin-top:7px; }
    .race-review-sub { color:#b8b1d9; font-size:11px; line-height:1.6; margin-top:5px; }
    .race-review-prefill { flex-shrink:0; border:1px solid #8c7444; background:#2a210f; color:#fff1c4; min-height:36px; padding:0 12px; border-radius:999px; font-size:10px; font-weight:900; cursor:pointer; }
    .race-review-form { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .race-review-select, .race-review-textarea { width:100%; box-sizing:border-box; border-radius:12px; border:1.5px solid #343153; background:#080a16; color:#eef1ff; font-size:12px; font-weight:800; outline:none; }
    .race-review-select { min-height:42px; padding:0 10px; }
    .race-review-textarea { margin-top:8px; padding:10px; line-height:1.55; resize:vertical; font-family:inherit; }
    .race-review-textarea::placeholder { color:#686184; font-weight:700; }
    .auto-review-panel { margin:0 0 12px; border-radius:15px; padding:12px; background:#ffffff07; border:1px solid #ffffff12; }
    .auto-review-panel.ready { background:linear-gradient(135deg,#102033,#171321); border-color:#8fdfff44; }
    .auto-review-panel.done { background:linear-gradient(135deg,#10251a,#171321); border-color:#00ff8840; }
    .auto-review-panel.waiting { background:#ffffff06; border-style:dashed; }
    .auto-review-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .auto-review-kicker { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .auto-review-title { color:#fff; font-size:14px; font-weight:900; line-height:1.4; margin-top:5px; }
    .auto-review-pill { flex-shrink:0; display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border-radius:999px; color:#fff1c4; background:#ffd56a16; border:1px solid #ffd56a44; font-size:10px; font-weight:900; white-space:nowrap; }
    .auto-review-summary { color:#cfd8ef; font-size:11px; line-height:1.6; padding:10px; border-radius:12px; background:#00000022; border:1px solid #ffffff0d; }
    .auto-review-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
    .auto-review-stat { background:#ffffff08; border:1px solid #ffffff12; border-radius:12px; padding:10px; min-width:0; }
    .auto-review-stat span { display:block; color:#8c97c8; font-size:10px; font-weight:800; margin-bottom:5px; }
    .auto-review-stat strong { display:block; color:#fff; font-size:13px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .auto-review-actions { display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:7px; margin-top:10px; }
    .auto-review-btn { min-height:36px; border-radius:11px; padding:0 9px; border:1px solid #ffffff18; background:#ffffff08; color:#dfe8ff; font-size:10px; font-weight:900; cursor:pointer; }
    .auto-review-btn.primary { color:#041721; background:linear-gradient(135deg,#2c9fd1,#7be0ff); border-color:#9ee8ff; }
    .auto-review-btn.hit { color:#dfffea; background:#00ff8814; border-color:#00ff8844; }
    .auto-review-btn.close { color:#fff1c4; background:#ffd56a16; border-color:#ffd56a44; }
    .auto-review-btn.miss { color:#ffdfe6; background:#ff444414; border-color:#ff5a5a55; }
    .auto-review-empty { padding:12px; border-radius:12px; background:#ffffff08; border:1px dashed #ffffff18; color:#a9a1c8; font-size:11px; line-height:1.65; text-align:center; }
    .race-review-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
    .race-review-save { min-height:42px; padding:0 16px; border-radius:12px; border:1.5px solid #ffd56a; background:linear-gradient(135deg,#ffd56a,#ffaa00); color:#251400; font-size:12px; font-weight:900; cursor:pointer; }
    .race-review-safe { color:#8d86ad; font-size:10px; line-height:1.5; text-align:right; }
    .race-review-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .race-review-row { background:#ffffff07; border:1px solid #ffffff12; border-radius:14px; padding:12px; display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; }
    .race-review-main { display:flex; flex-wrap:wrap; align-items:center; gap:6px; color:#fff; font-size:12px; font-weight:900; line-height:1.45; }
    .race-review-badge { display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:999px; background:#ffd56a16; border:1px solid #ffd56a44; color:#ffd56a; font-size:10px; font-weight:900; }
    .race-review-badge.hit { color:#00ff88; background:#00ff8814; border-color:#00ff8840; }
    .race-review-badge.miss { color:#ff8fab; background:#ff444414; border-color:#ff5a5a55; }
    .race-review-copy { color:#c9c4df; font-size:11px; line-height:1.6; margin-top:6px; white-space:pre-wrap; }
    .race-review-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .race-review-chip { display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:999px; background:#ffffff0a; border:1px solid #ffffff12; color:#cfd8ef; font-size:10px; font-weight:900; }
    .race-review-delete { width:34px; height:34px; border-radius:10px; border:1px solid #4d4068; background:#1a142b; color:#e6dfff; font-size:16px; cursor:pointer; }
    .race-review-empty { border:1px dashed #ffffff18; background:#ffffff08; border-radius:14px; padding:15px; color:#a9a1c8; font-size:12px; line-height:1.7; text-align:center; }
    @media (max-width: 520px) {
      .race-review-head, .race-review-actions { flex-direction:column; align-items:stretch; }
      .race-review-prefill, .race-review-save { width:100%; }
      .race-review-form { grid-template-columns:1fr; }
      .auto-review-head { flex-direction:column; }
      .auto-review-grid, .auto-review-actions { grid-template-columns:1fr; }
      .race-review-safe { text-align:left; }
      .race-review-row { grid-template-columns:1fr; }
      .race-review-delete { width:100%; }
    }

    .review-pattern-card { background:linear-gradient(145deg,#0b1726,#101322); border:1.5px solid #23405e; border-radius:18px; padding:16px; margin:0 0 16px; box-shadow:0 8px 22px rgba(0,0,0,.22); }
    .review-pattern-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .review-pattern-kicker { font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .review-pattern-title { color:#fff; font-size:16px; font-weight:900; line-height:1.45; margin-top:7px; }
    .review-pattern-sub { color:#9fb2d5; font-size:11px; line-height:1.6; margin-top:5px; }
    .review-pattern-pill { flex-shrink:0; display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; background:#ffffff0a; border:1px solid #ffffff14; color:#dff8ff; font-size:10px; font-weight:900; }
    .review-pattern-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
    .review-pattern-stat { background:#ffffff08; border:1px solid #ffffff12; border-radius:13px; padding:10px; min-width:0; }
    .review-pattern-stat span { display:block; color:#8c97c8; font-size:10px; font-weight:800; margin-bottom:5px; }
    .review-pattern-stat strong { display:block; color:#fff; font-size:15px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .review-pattern-stat.hot strong { color:#ffd56a; }
    .review-pattern-stat.good strong { color:#00ff88; }
    .review-pattern-bars { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
    .review-pattern-row { display:grid; grid-template-columns:52px 1fr 34px; gap:8px; align-items:center; color:#dfe8ff; font-size:11px; font-weight:900; }
    .review-pattern-bar { height:8px; border-radius:999px; background:#ffffff12; overflow:hidden; }
    .review-pattern-bar span { display:block; height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg,#2c9fd1,#7be0ff); transition:width .25s ease; }
    .review-pattern-advice { margin-top:12px; padding:12px; border-radius:13px; background:#ffd56a10; border-left:3px solid #ffd56a; color:#f1e6bd; font-size:12px; line-height:1.65; font-weight:800; }
    .review-pattern-empty { border:1px dashed #ffffff18; background:#ffffff08; border-radius:14px; padding:15px; color:#9da8d5; font-size:12px; line-height:1.7; text-align:center; }
    .review-pattern-empty button { margin-top:10px; min-height:34px; border-radius:999px; border:1px solid #3b89aa; background:#0d2638; color:#dff8ff; padding:0 12px; font-size:10px; font-weight:900; cursor:pointer; }
    @media (max-width: 520px) {
      .review-pattern-head { flex-direction:column; }
      .review-pattern-grid { grid-template-columns:1fr; }
      .review-pattern-row { grid-template-columns:48px 1fr 30px; }
    }

    .my-stats-card { background:#0e0e1e; border:1.5px solid #1c1c36; border-radius:16px; padding:18px; margin-bottom:14px; }
    .my-card-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:#444466; font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:6px; }
    .my-card-label::after { content:''; flex:1; height:1px; background:#1e1e3a; }

    .stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
    .stat-box { background:#111128; border:1px solid #1e1e3a; border-radius:12px; padding:14px 12px; text-align:center; }
    .stat-val { font-size:22px; font-weight:900; color:#00e5ff; margin-bottom:3px; font-variant-numeric:tabular-nums; }
    .stat-val.green { color:#00ff88; }
    .stat-val.gold { color:#ffd700; }
    .stat-label { font-size:10px; color:#444466; font-weight:600; line-height:1.3; }

    .record-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid #0e0e20; }
    .record-row:last-child { border-bottom:none; }
    .record-label { font-size:12px; color:#7777aa; }
    .record-val { font-size:13px; font-weight:800; }
    .record-val.win { color:#00ff88; }
    .record-val.lose { color:#ff6b35; }

    .vip-cta { background:linear-gradient(145deg, #0e1a33, #152647); border:1.5px solid #243b61; border-radius:16px; padding:20px; margin-bottom:14px; }
    .vip-cta-title { font-size:14px; font-weight:800; color:#fff; margin-bottom:4px; }
    .vip-cta-sub { font-size:11px; color:#444466; margin-bottom:16px; line-height:1.6; }
    .vip-cta-perks { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
    .vip-perk { display:flex; align-items:center; gap:8px; font-size:12px; color:#7777aa; }
    .vip-perk-icon { width:22px; height:22px; background:#1a1200; border:1px solid #ffd70033; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0; }

    @keyframes goldShine { 0%,100%{box-shadow:0 4px 20px #ffd70033,0 0 0 0 #ffd70000} 50%{box-shadow:0 6px 28px #ffd70066,0 0 0 4px #ffd70011} }
    .vip-btn { width:100%; min-height:58px; padding:16px 18px; background:linear-gradient(135deg,#a86b00,#ffc229); border:2px solid #ffe27a; border-radius:16px; color:#241500; font-size:18px; font-weight:900; letter-spacing:.2px; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; animation:goldShine 2.2s infinite; -webkit-tap-highlight-color:transparent; transition:transform .15s, box-shadow .15s; box-shadow:0 12px 28px #ffbf2438; }
    .vip-btn:active { transform:scale(.97); }
    .vip-btn-price { font-size:12px; font-weight:700; color:#aa8800; margin-top:3px; }
    .vip-btn-note { text-align:center; font-size:11px; color:#6f5a00; margin-top:8px; line-height:1.5; }
    .vip-trust-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-top:14px; }
    .vip-trust-card { background:#121224; border:1px solid #222242; border-radius:12px; padding:11px 8px; text-align:center; }
    .vip-trust-card strong { display:block; font-size:13px; color:#fff; margin-top:4px; }
    .vip-trust-card span { font-size:10px; color:#66668e; line-height:1.4; }

    /* ════ 가격 카드 ════ */
    .pricing-wrap { margin:18px 14px 0; display:grid; gap:14px; }
    .pricing-card { border-radius:18px; padding:18px 16px; position:relative; overflow:hidden; }
    .pricing-card.free { background:linear-gradient(180deg,#101025,#0c0c1b); border:1.5px solid #25254a; }
    .pricing-card.vip { background:linear-gradient(180deg,#241800,#14121f); border:1.5px solid #ffd70055; box-shadow:0 10px 28px #00000033; }
    .pricing-card.vip::after { content:'인기'; position:absolute; top:14px; right:14px; font-size:10px; font-weight:900; color:#2a1c00; background:#ffd700; padding:4px 8px; border-radius:999px; }
    .pricing-card.premium { background:linear-gradient(180deg,#151325,#090b18); border:1.5px solid #62d1ff55; box-shadow:0 12px 30px #0a132233; }
    .pricing-card.premium::after { content:'상위 플랜'; position:absolute; top:14px; right:14px; font-size:10px; font-weight:900; color:#04141d; background:#74d7ff; padding:4px 8px; border-radius:999px; }
    .pricing-plan { font-size:13px; font-weight:900; color:#fff; }
    .pricing-price { font-size:25px; font-weight:900; color:#fff; margin-top:8px; }
    .pricing-price small { font-size:12px; color:#9c9cbc; font-weight:700; margin-left:4px; }
    .pricing-card.vip .pricing-price { color:#ffd700; }
    .pricing-card.premium .pricing-price { color:#74d7ff; }
    .pricing-desc { font-size:11px; color:#6d6d94; line-height:1.6; margin-top:6px; }
    .pricing-list { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
    .pricing-item { display:flex; align-items:flex-start; gap:8px; font-size:12px; color:#b5b5d4; line-height:1.5; }
    .pricing-item strong { color:#fff; }
    .pricing-cta { width:100%; margin-top:18px; min-height:54px; border-radius:14px; font-size:14px; font-weight:900; cursor:pointer; }
    .pricing-cta.free { background:#1a1a31; color:#d1d1ff; border:1.5px solid #353566; }
    .pricing-cta.vip { background:linear-gradient(135deg,#a86b00,#ffbf24); color:#2b1900; border:2px solid #ffe27a; box-shadow:0 10px 26px #ffbf2430; }
    .pricing-cta.premium { background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; border:2px solid #9ee8ff; box-shadow:0 12px 28px #62d1ff30; }
    .premium-highlight { margin:14px 14px 0; background:linear-gradient(135deg,#0e1828,#111728 55%,#0c0f1d); border:1.5px solid #62d1ff55; border-radius:18px; padding:18px 16px; }
    .premium-highlight-kicker { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:#8fdfff; font-weight:900; }
    .premium-highlight-title { font-size:19px; font-weight:900; color:#fff; margin-top:7px; line-height:1.35; }
    .premium-highlight-sub { font-size:12px; color:#b8d8e8; line-height:1.7; margin-top:7px; }
    .premium-highlight-points { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
    .premium-highlight-point { display:flex; align-items:flex-start; gap:8px; font-size:12px; color:#d8f1ff; line-height:1.55; }
    .premium-highlight-cta { width:100%; min-height:54px; margin-top:16px; border-radius:14px; font-size:14px; font-weight:900; background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; border:2px solid #9ee8ff; box-shadow:0 12px 28px #62d1ff30; cursor:pointer; }
    .premium-badges { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
    .premium-badges span { font-size:10px; color:#9fdfff; background:#ffffff08; border:1px solid #ffffff14; border-radius:999px; padding:5px 8px; }
    .premium-preview { margin-top:14px; background:#0c1322; border:1px solid #233a56; border-radius:16px; overflow:hidden; }
    .premium-preview-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 14px; border-bottom:1px solid #1d3148; }
    .premium-preview-title { font-size:12px; font-weight:900; color:#e7f8ff; }
    .premium-preview-live { font-size:10px; color:#74d7ff; font-weight:800; }
    .premium-preview-body { padding:14px; display:flex; flex-direction:column; gap:10px; }
    .premium-alert-card { background:linear-gradient(135deg,#122033,#172842); border:1px solid #28486a; border-radius:14px; padding:12px; }
    .premium-alert-label { font-size:9px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; color:#8fdfff; margin-bottom:6px; }
    .premium-alert-main { font-size:14px; font-weight:900; color:#fff; line-height:1.45; }
    .premium-alert-sub { font-size:11px; color:#b8d8e8; line-height:1.6; margin-top:5px; }
    .premium-alert-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
    .premium-alert-meta span { font-size:10px; color:#9fdfff; background:#ffffff08; border:1px solid #ffffff14; border-radius:999px; padding:4px 8px; }

    /* ════ 홈 CTA ════ */
    .home-cta { margin:18px 14px 0; background:linear-gradient(135deg,#1d1200,#2e1a00 55%,#171129); border:1.5px solid #ffb00066; border-radius:18px; padding:20px 16px; position:relative; overflow:hidden; }
    .home-cta::after { content:''; position:absolute; top:-40px; right:-30px; width:120px; height:120px; background:radial-gradient(circle,#ffd7002b 0%,transparent 70%); pointer-events:none; }
    .home-cta-kicker { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:#ffcf5a; font-weight:800; }
    .home-cta-title { font-size:20px; font-weight:900; color:#fff; margin-top:7px; line-height:1.35; }
    .home-cta-sub { font-size:12px; color:#d1bf8c; line-height:1.7; margin-top:8px; }
    .home-cta-points { display:flex; flex-direction:column; gap:9px; margin-top:15px; }
    .home-cta-point { font-size:13px; color:#f1e7c4; display:flex; align-items:center; gap:8px; }
    .home-cta-actions { display:flex; gap:12px; margin-top:18px; }
    .home-cta-btn { flex:1; min-height:56px; border-radius:14px; font-size:14px; font-weight:900; cursor:pointer; }
    .home-cta-btn.primary { background:linear-gradient(135deg,#a86b00,#ffbf24); color:#2b1900; border:2px solid #ffe27a; box-shadow:0 10px 26px #ffbf2433; }
    .home-cta-btn.secondary { background:#17172c; color:#d0d0fb; border:1.5px solid #363660; }
    .home-cta-note { font-size:10px; color:#9a8450; margin-top:10px; line-height:1.6; text-align:center; }
    .home-cta-trust { display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin-top:11px; }
    .home-cta-trust span { font-size:10px; color:#cbb67a; background:#ffffff08; border:1px solid #ffffff14; border-radius:999px; padding:5px 8px; }


    .my-history-empty { text-align:center; padding:30px 20px; color:#333355; font-size:13px; }

    /* ════ 배당 변화 알림 ════ */
    @keyframes surgeSlideIn { from{transform:translateY(-110%);opacity:0} to{transform:translateY(0);opacity:1} }
    @keyframes surgeSlideOut { from{transform:translateY(0);opacity:1} to{transform:translateY(-110%);opacity:0} }
    @keyframes surgePulse { 0%,100%{box-shadow:0 4px 24px #ff440033} 50%{box-shadow:0 4px 32px #ff440077} }
    .surge-container { position:fixed; top:0; left:0; right:0; z-index:1050; display:flex; flex-direction:column; gap:6px; padding:8px 12px; pointer-events:none; }
    .surge-card { background:linear-gradient(135deg,#1a0800,#2a1000); border:1.5px solid #ff6600aa; border-radius:12px; padding:11px 14px; display:flex; align-items:center; gap:10px; animation:surgeSlideIn .4s cubic-bezier(.4,0,.2,1) forwards, surgePulse 1.8s infinite; pointer-events:all; cursor:pointer; }
    .surge-card.fade-out { animation:surgeSlideOut .35s cubic-bezier(.4,0,.2,1) forwards; }
    .surge-card.down { border-color:#ff4444aa; background:linear-gradient(135deg,#1a0000,#2a0000); }
    .surge-card.up   { border-color:#ffaa00aa; background:linear-gradient(135deg,#1a1000,#2a1a00); }
    .surge-num { width:30px; height:30px; border-radius:8px; background:#ff440022; border:1.5px solid #ff440066; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:900; color:#ff6600; flex-shrink:0; }
    .surge-card.down .surge-num { color:#ff4444; border-color:#ff444466; background:#ff444422; }
    .surge-card.up   .surge-num { color:#ffaa00; border-color:#ffaa0066; background:#ffaa0022; }
    .surge-body { flex:1; min-width:0; }
    .surge-title { font-size:12px; font-weight:900; color:#fff; margin-bottom:2px; }
    .surge-reason { font-size:10px; color:#aa6644; line-height:1.4; }
    .surge-card.down .surge-reason { color:#ff8888; }
    .surge-card.up   .surge-reason { color:#ddaa44; }
    .surge-badge { font-size:10px; font-weight:900; padding:3px 7px; border-radius:5px; flex-shrink:0; }
    .surge-card.down .surge-badge { background:#ff444422; color:#ff4444; border:1px solid #ff444444; }
    .surge-card.up   .surge-badge { background:#ffaa0022; color:#ffaa00; border:1px solid #ffaa0044; }
    .surge-close { font-size:14px; color:#553322; padding:2px 4px; flex-shrink:0; }

    /* ════ PRO 사전 예약 팝업 ════ */
    .modal-backdrop { position:fixed; inset:0; background:#000000bb; z-index:1100; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .3s; }
    .modal-backdrop.open { opacity:1; pointer-events:all; }
    .modal-box { width:100%; max-width:392px; max-height:85vh; overflow-y:auto; background:#0e0e22; border:1.5px solid #ffd70055; border-radius:22px; padding:28px 22px 24px; position:relative; transform:translateY(30px) scale(.96); transition:transform .3s cubic-bezier(.4,0,.2,1); box-shadow:0 8px 40px #ffd70022; }
    .modal-backdrop.open .modal-box { transform:translateY(0) scale(1); }
    .modal-close { position:absolute; top:14px; right:16px; font-size:20px; color:#555577; cursor:pointer; padding:4px 6px; line-height:1; transition:color .15s; }
    .modal-close:hover { color:#aaaacc; }
    .modal-crown { font-size:42px; text-align:center; margin-bottom:10px; }
    .modal-plan-badge { display:inline-flex; align-items:center; justify-content:center; min-width:88px; margin:0 auto 10px; padding:5px 10px; border-radius:999px; font-size:10px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; background:#ffd70022; color:#ffd700; border:1px solid #ffd70055; }
    .modal-plan-badge.premium { background:#74d7ff22; color:#74d7ff; border-color:#74d7ff55; }
    .modal-title { font-size:20px; font-weight:900; color:#ffd700; text-align:center; margin-bottom:10px; line-height:1.35; }
    .modal-desc { font-size:14px; color:#a4a4cc; text-align:center; line-height:1.7; margin-bottom:18px; }
    .modal-desc strong { color:#ffdd55; }
    .modal-benefits { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
    .modal-benefit { display:flex; align-items:flex-start; gap:8px; background:#151528; border:1px solid #242448; border-radius:12px; padding:10px 12px; font-size:12px; color:#c7c7e8; line-height:1.55; text-align:left; }
    .modal-benefit strong { color:#fff; }
    .modal-horse-focus { margin:0 0 14px; background:#141426; border:1px solid #2a2a4a; border-radius:14px; padding:12px; display:none; }
    .modal-horse-focus.open { display:block; }
    .modal-horse-focus-kicker { font-size:10px; font-weight:900; letter-spacing:1.3px; text-transform:uppercase; color:#9da7dd; }
    .modal-horse-focus-title { font-size:14px; font-weight:900; color:#fff; margin-top:7px; line-height:1.45; }
    .modal-horse-focus-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
    .modal-horse-focus-tags span { font-size:10px; color:#dfe9ff; background:#ffffff08; border:1px solid #ffffff12; border-radius:999px; padding:4px 8px; }
    .modal-horse-focus-copy { font-size:11px; color:#b9c2eb; line-height:1.6; margin-top:9px; }
    .modal-checkout { margin:14px 0 16px; background:#141426; border:1px solid #2a2a4a; border-radius:14px; padding:13px 12px; }
    .modal-checkout-title { font-size:11px; font-weight:900; letter-spacing:1.3px; text-transform:uppercase; color:#8f8fbe; margin-bottom:10px; }
    .modal-checkout-row { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:#c7c7e8; padding:5px 0; }
    .modal-checkout-row strong { color:#fff; }
    .modal-checkout-row.total { margin-top:6px; padding-top:10px; border-top:1px solid #242448; font-size:13px; }
    .modal-checkout-row.total strong { color:#ffd700; }
    .modal-input { width:100%; background:#141428; border:1.5px solid #2a2a50; border-radius:14px; padding:15px 16px; font-size:16px; color:#e0e0f8; outline:none; transition:border-color .2s; letter-spacing:1px; }
    .modal-input:focus { border-color:#ffd70088; }
    .modal-input::placeholder { color:#333355; letter-spacing:0; }
    .modal-submit { width:100%; min-height:56px; margin-top:16px; padding:15px; background:linear-gradient(135deg,#a86b00,#ffbf24); border:2px solid #ffe27a; border-radius:15px; color:#2b1900; font-size:16px; font-weight:900; cursor:pointer; transition:transform .15s, box-shadow .15s; animation:goldShine 2.2s infinite; box-shadow:0 10px 26px #ffbf2430; }
    .modal-submit.premium { background:linear-gradient(135deg,#2c9fd1,#7be0ff); border-color:#9ee8ff; color:#041721; box-shadow:0 12px 28px #62d1ff30; }
    .modal-submit:active { transform:scale(.97); }
    .modal-note { font-size:11px; color:#55557f; text-align:center; margin-top:12px; line-height:1.7; }
    .notice-toast { position:fixed; left:14px; right:14px; bottom:calc(92px + env(safe-area-inset-bottom)); z-index:1150; background:linear-gradient(135deg,#101824,#162033); border:1.5px solid #35507a; border-radius:16px; padding:15px 16px; box-shadow:0 14px 34px #0000004d; opacity:0; transform:translateY(20px); pointer-events:none; transition:opacity .25s ease, transform .25s ease; }
    .notice-toast.open { opacity:1; transform:translateY(0); pointer-events:auto; }
    .notice-toast.success { border-color:#2f8f66; background:linear-gradient(135deg,#0f1d18,#163127); }
    .notice-toast.info { border-color:#4961a6; background:linear-gradient(135deg,#111a31,#1a2442); }
    .notice-title { font-size:14px; font-weight:900; color:#fff; margin-bottom:4px; }
    .notice-body { font-size:12px; color:#ced6ef; line-height:1.6; }
    .notice-close { position:absolute; top:10px; right:12px; color:#7e8ab2; font-size:16px; cursor:pointer; }
    .done-sheet { position:fixed; left:14px; right:14px; bottom:calc(92px + env(safe-area-inset-bottom)); z-index:1160; background:linear-gradient(135deg,#0f1d18,#163127); border:1.5px solid #2f8f66; border-radius:18px; padding:18px 16px; box-shadow:0 16px 36px #00000055; opacity:0; transform:translateY(24px); pointer-events:none; transition:opacity .25s ease, transform .25s ease; }
    .done-sheet.open { opacity:1; transform:translateY(0); pointer-events:auto; }
    .done-sheet-title { font-size:15px; font-weight:900; color:#fff; margin-bottom:6px; }
    .done-sheet-body { font-size:12px; color:#d9f4e6; line-height:1.7; }
    .done-sheet-chip-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
    .done-sheet-chip { font-size:10px; color:#c8f0d9; background:#ffffff10; border:1px solid #ffffff18; border-radius:999px; padding:5px 8px; }
    .done-sheet-btn { width:100%; min-height:46px; margin-top:14px; border-radius:12px; border:1.5px solid #79d6ac; background:#ffffff10; color:#e8fff2; font-size:13px; font-weight:900; cursor:pointer; }
    .vip-only-lock { margin-top:14px; background:#151528; border:1px dashed #3f3f69; border-radius:14px; padding:14px 12px; text-align:center; }
    .vip-only-lock.premium { background:#0d1827; border-color:#3d6a8c; }
    .vip-only-lock-label { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; font-weight:900; color:#8f8fbe; }
    .vip-only-lock.premium .vip-only-lock-label { color:#8fdfff; }
    .vip-only-lock-title { font-size:14px; color:#fff; font-weight:900; line-height:1.45; margin-top:7px; }
    .vip-only-lock-sub { font-size:11px; color:#a8a8cc; line-height:1.6; margin-top:6px; }
    .vip-only-lock.premium .vip-only-lock-sub { color:#b8d8e8; }
    .vip-only-lock-btn { min-height:44px; margin-top:12px; padding:0 14px; border-radius:12px; border:1.5px solid #ffe27a55; background:linear-gradient(135deg,#a86b00,#ffbf24); color:#2b1900; font-size:13px; font-weight:900; cursor:pointer; }
    .vip-only-lock.premium .vip-only-lock-btn { border-color:#9ee8ff; background:linear-gradient(135deg,#2c9fd1,#7be0ff); color:#041721; width:100%; }

    @media (max-width: 640px) {
      .compare-grid { grid-template-columns:1fr; }
      .compare-col.vip { border-left:none; border-top:1px solid #2a2240; }
      .compare-foot { flex-direction:column; align-items:stretch; }
      .compare-cta { width:100%; }
      .pick-split { grid-template-columns:1fr; }
      .pricing-wrap { gap:16px; }
      .premium-option-row { grid-template-columns:1fr; }
      .watch-stat-row { grid-template-columns:1fr; }
      .home-cta-actions { flex-direction:column; }
      .home-cta-btn, .pricing-cta, .vip-btn, .compare-cta, .modal-submit { width:100%; }
      .vip-trust-row { grid-template-columns:1fr; }
      .lock-btn { width:100%; max-width:260px; }
      .chat-fab { bottom:78px; right:14px; }
    }

    .watch-compare-card { height:auto !important; max-height:400px; }
    .watch-list { margin-top:16px; padding-top:0; }

/* 오늘의 예상지 요약 카드 */
.tip-sheet-card { margin: 12px 14px 0; padding: 15px; border-radius: 8px; background: linear-gradient(145deg, #0d1422 0%, #101827 52%, #0a101c 100%); border: 1px solid rgba(143,223,255,0.16); box-shadow: 0 10px 26px rgba(0,0,0,0.28); }
.tip-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.tip-sheet-kicker { font-size: 10px; color: #8fdfff; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.tip-sheet-title { margin-top: 3px; font-size: 17px; color: #fff; font-weight: 900; }
.tip-sheet-sub { margin-top: 5px; font-size: 11px; color: #8b96bd; line-height: 1.5; }
.tip-sheet-vip-btn { flex-shrink: 0; min-height: 34px; padding: 0 11px; border-radius: 6px; border: 1px solid rgba(255,215,0,0.45); background: rgba(255,215,0,0.08); color: #ffd700; font-size: 11px; font-weight: 900; cursor: pointer; }
.tip-sheet-main { padding: 11px 12px; border-radius: 7px; background: rgba(143,223,255,0.07); border: 1px solid rgba(143,223,255,0.14); color: #e8f6ff; font-size: 13px; font-weight: 800; line-height: 1.55; }
.tip-sheet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.tip-sheet-pick { min-height: 108px; padding: 11px; border-radius: 7px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.08); }
.tip-sheet-pick.axis { border-color: rgba(255,215,0,0.34); background: rgba(255,215,0,0.07); }
.tip-sheet-pick.challenge { border-color: rgba(143,223,255,0.24); }
.tip-sheet-pick.dark { border-color: rgba(255,170,68,0.24); }
.tip-sheet-pick.caution { border-color: rgba(255,65,108,0.24); }
.tip-sheet-label { display: inline-flex; align-items: center; min-height: 20px; padding: 0 7px; border-radius: 999px; background: rgba(255,255,255,0.08); color: #aeb7e9; font-size: 10px; font-weight: 900; }
.tip-sheet-pick.axis .tip-sheet-label { color: #ffd700; background: rgba(255,215,0,0.1); }
.tip-sheet-pick.challenge .tip-sheet-label { color: #8fdfff; background: rgba(143,223,255,0.1); }
.tip-sheet-pick.dark .tip-sheet-label { color: #ffaa44; background: rgba(255,170,68,0.1); }
.tip-sheet-pick.caution .tip-sheet-label { color: #ff6f93; background: rgba(255,65,108,0.1); }
.tip-sheet-pick strong { display: block; margin-top: 8px; color: #fff; font-size: 14px; font-weight: 900; line-height: 1.35; }
.tip-sheet-pick p { margin: 6px 0 0; color: #aeb7d8; font-size: 11px; line-height: 1.5; }
.pick-reason-line {
  margin-top: 8px;
  padding: 7px 8px;
  border-radius: 6px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
  color: #dce7ff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
}
.tip-sheet-pick.axis .pick-reason-line { border-color: rgba(255,215,0,0.22); color: #fff3b0; }
.tip-sheet-pick.challenge .pick-reason-line { border-color: rgba(143,223,255,0.20); color: #d7f4ff; }
.tip-sheet-pick.dark .pick-reason-line { border-color: rgba(255,170,68,0.20); color: #ffe1bc; }
.tip-sheet-pick.caution .pick-reason-line { border-color: rgba(255,65,108,0.20); color: #ffc2d0; }

@media (max-width: 420px) {
  .tip-sheet-grid { grid-template-columns: 1fr; }
  .tip-sheet-head { flex-direction: column; }
  .tip-sheet-vip-btn { width: 100%; }
}

/* 추천 참고 조합 카드 */
.ticket-combo-card { margin: 10px 14px 0; padding: 15px; border-radius: 8px; background: linear-gradient(145deg, #111625 0%, #0c1420 100%); border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 8px 22px rgba(0,0,0,0.24); }
.ticket-combo-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.ticket-combo-kicker { font-size: 10px; color: #ffaa44; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.ticket-combo-title { margin-top: 3px; font-size: 16px; color: #fff; font-weight: 900; }
.ticket-combo-sub { margin-top: 5px; font-size: 11px; color: #8b96bd; line-height: 1.5; }
.ticket-combo-btn { flex-shrink: 0; min-height: 34px; padding: 0 11px; border-radius: 6px; border: 1px solid rgba(143,223,255,0.35); background: rgba(143,223,255,0.08); color: #8fdfff; font-size: 11px; font-weight: 900; cursor: pointer; }
.ticket-combo-notice { padding: 9px 10px; border-radius: 7px; background: rgba(255,255,255,0.045); color: #99a4c8; font-size: 11px; line-height: 1.55; border: 1px dashed rgba(255,255,255,0.12); }
.ticket-combo-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 10px; }
.ticket-combo-item { padding: 11px; border-radius: 7px; background: rgba(0,0,0,0.18); border: 1px solid rgba(143,223,255,0.16); }
.ticket-combo-item.vip { border-color: rgba(255,215,0,0.24); background: rgba(255,215,0,0.045); }
.ticket-combo-item.locked { border-color: rgba(255,65,108,0.22); background: rgba(255,65,108,0.04); }
.ticket-combo-label { font-size: 10px; color: #aeb7e9; font-weight: 900; margin-bottom: 5px; }
.ticket-combo-item strong { display: block; color: #fff; font-size: 18px; font-weight: 900; line-height: 1.25; }
.ticket-combo-item.vip strong { color: #ffd700; }
.ticket-combo-item.locked strong { color: #ff8fab; }
.ticket-combo-item p { margin: 6px 0 0; color: #aeb7d8; font-size: 11px; line-height: 1.5; }

@media (min-width: 520px) {
  .ticket-combo-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 420px) {
  .ticket-combo-head { flex-direction: column; }
  .ticket-combo-btn { width: 100%; }
}

/* AI 적중 결과 카드 */
.ai-hit-card { margin: 10px 14px 0; padding: 15px; border-radius: 8px; background: linear-gradient(145deg, #101827 0%, #0a1220 58%, #090d18 100%); border: 1px solid rgba(255,215,0,0.16); box-shadow: 0 8px 22px rgba(0,0,0,0.24); }
.ai-hit-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.ai-hit-kicker { font-size: 10px; color: #ffd700; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.ai-hit-title { margin-top: 3px; font-size: 16px; color: #fff; font-weight: 900; }
.ai-hit-sub { margin-top: 5px; font-size: 11px; color: #8b96bd; line-height: 1.5; }
.ai-hit-btn { flex-shrink: 0; min-height: 34px; padding: 0 11px; border-radius: 6px; border: 1px solid rgba(255,215,0,0.35); background: rgba(255,215,0,0.08); color: #ffd700; font-size: 11px; font-weight: 900; cursor: pointer; }
.ai-hit-main { padding: 10px 11px; border-radius: 7px; background: rgba(255,215,0,0.055); border: 1px solid rgba(255,215,0,0.12); color: #fff3b0; font-size: 13px; font-weight: 900; line-height: 1.5; }
.ai-hit-main strong { display: block; color: #fff; font-size: 13px; margin-bottom: 4px; }
.ai-hit-main span { display: block; color: #cbd5f6; font-size: 11px; font-weight: 800; line-height: 1.55; }
.ai-hit-main.waiting { background: rgba(143,223,255,0.055); border-color: rgba(143,223,255,0.16); }
.ai-hit-main.watch { background: rgba(255,215,0,0.07); border-color: rgba(255,215,0,0.22); }
.ai-hit-main.good { background: rgba(0,255,136,0.07); border-color: rgba(0,255,136,0.25); }
.ai-hit-main.bad { background: rgba(255,65,108,0.075); border-color: rgba(255,65,108,0.32); }
.ai-hit-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 10px; }
.ai-hit-stat { min-height: 58px; padding: 9px 7px; border-radius: 7px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.08); text-align: center; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.ai-hit-stat span { color: #8b96bd; font-size: 10px; font-weight: 800; }
.ai-hit-stat strong { color: #fff; font-size: 16px; font-weight: 900; }
.ai-hit-stat strong.hot { color: #ff416c; text-shadow: 0 0 10px rgba(255,65,108,0.35); }
.ai-hit-stat strong.good { color: #00ff88; text-shadow: 0 0 10px rgba(0,255,136,0.3); }
.ai-hit-stat strong.low { color: #ff8fab; text-shadow: 0 0 10px rgba(255,65,108,0.25); }
.ai-hit-list { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.ai-hit-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 10px; border-radius: 7px; background: rgba(0,0,0,0.18); border: 1px solid rgba(255,255,255,0.08); }
.ai-hit-row-main { color: #e8f0ff; font-size: 12px; font-weight: 900; line-height: 1.4; }
.ai-hit-row-sub { margin-top: 3px; color: #8b96bd; font-size: 10px; line-height: 1.45; }
.ai-hit-row-badge { align-self: center; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 900; white-space: nowrap; }
.ai-hit-row-badge.win { color: #00ff88; background: rgba(0,255,136,0.1); border: 1px solid rgba(0,255,136,0.28); }
.ai-hit-row-badge.push { color: #ffd700; background: rgba(255,215,0,0.1); border: 1px solid rgba(255,215,0,0.28); }
.ai-hit-row-badge.lose { color: #ff8fab; background: rgba(255,65,108,0.08); border: 1px solid rgba(255,65,108,0.24); }
.ai-hit-row-badge.record { color: #8fdfff; background: rgba(143,223,255,0.1); border: 1px solid rgba(143,223,255,0.28); }
.ai-hit-empty { padding: 12px; border-radius: 7px; background: rgba(255,255,255,0.045); border: 1px dashed rgba(255,255,255,0.12); color: #8b96bd; font-size: 11px; line-height: 1.55; text-align: center; }

@media (max-width: 420px) {
  .ai-hit-head { flex-direction: column; }
  .ai-hit-btn { width: 100%; }
  .ai-hit-stats { grid-template-columns: 1fr; }
  .ai-hit-row { grid-template-columns: 1fr; }
  .ai-hit-row-badge { justify-self: flex-start; }
}

/* 예상지 모드 탭 */
.sheet-page { padding: 16px 14px 94px; }
.sheet-hero { padding: 17px 15px; border-radius: 8px; background: linear-gradient(145deg,#0d1422,#141a2b); border: 1px solid rgba(143,223,255,0.16); box-shadow: 0 10px 26px rgba(0,0,0,0.26); }
.sheet-kicker { font-size: 10px; color: #8fdfff; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.sheet-title { margin-top: 5px; color: #fff; font-size: 21px; font-weight: 900; }
.sheet-sub { margin-top: 7px; color: #9ba7cc; font-size: 12px; line-height: 1.55; }
.sheet-summary-card, .sheet-section-card, .sheet-vip-lock { margin-top: 10px; padding: 14px; border-radius: 8px; background: #0e1625; border: 1px solid rgba(255,255,255,0.1); }
.sheet-detail-stack, .my-dashboard-stack { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.sheet-detail-stack > *, .my-dashboard-stack > * { margin: 0 !important; }
.my-dashboard-stack { margin-bottom: 16px; }
.my-section-body > .my-dashboard-stack { margin: 0 !important; }
.sheet-summary-label, .sheet-section-title, .sheet-vip-kicker { color: #ffaa44; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.sheet-section-desc { margin-top: 6px; color: #8b96bd; font-size: 11px; font-weight: 700; line-height: 1.55; }
.sheet-summary-main { margin-top: 7px; color: #fff; font-size: 15px; font-weight: 900; line-height: 1.5; }
.sheet-summary-sub { margin-top: 5px; color: #aeb7d8; font-size: 12px; line-height: 1.55; }
.sheet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.sheet-pick-card { min-height: 118px; padding: 12px; border-radius: 8px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.1); }
.sheet-pick-card.axis { border-color: rgba(255,215,0,0.35); background: rgba(255,215,0,0.065); }
.sheet-pick-card.challenge { border-color: rgba(143,223,255,0.25); }
.sheet-pick-card.dark { border-color: rgba(255,170,68,0.25); }
.sheet-pick-card.caution { border-color: rgba(255,65,108,0.25); }
.sheet-pick-label { color: #8fdfff; font-size: 10px; font-weight: 900; }
.sheet-pick-card.axis .sheet-pick-label { color: #ffd700; }
.sheet-pick-card.dark .sheet-pick-label { color: #ffaa44; }
.sheet-pick-card.caution .sheet-pick-label { color: #ff8fab; }
.sheet-pick-name { margin-top: 7px; color: #fff; font-size: 15px; font-weight: 900; line-height: 1.35; }
.sheet-pick-copy { margin-top: 6px; color: #aeb7d8; font-size: 11px; line-height: 1.5; }
.sheet-pick-reason {
  margin-top: 9px;
  padding: 8px 9px;
  border-radius: 7px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
  color: #dce7ff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
}
.sheet-pick-card.axis .sheet-pick-reason { border-color: rgba(255,215,0,0.22); color: #fff3b0; }
.sheet-pick-card.challenge .sheet-pick-reason { border-color: rgba(143,223,255,0.20); color: #d7f4ff; }
.sheet-pick-card.dark .sheet-pick-reason { border-color: rgba(255,170,68,0.20); color: #ffe1bc; }
.sheet-pick-card.caution .sheet-pick-reason { border-color: rgba(255,65,108,0.20); color: #ffc2d0; }
.sheet-combo-list, .sheet-odds-list { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.sheet-combo-row, .sheet-odds-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border-radius: 7px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.08); }
.sheet-combo-row span, .sheet-odds-row span { color: #9ba7cc; font-size: 11px; font-weight: 800; }
.sheet-combo-row strong, .sheet-odds-row strong { color: #fff; font-size: 13px; font-weight: 900; text-align: right; }
.sheet-combo-row.vip strong { color: #ffd700; }
.sheet-combo-row.locked strong { color: #ff8fab; }
.sheet-empty { padding: 12px; border-radius: 7px; background: rgba(255,255,255,0.045); color: #7777aa; font-size: 12px; line-height: 1.5; }
.sheet-vip-lock { cursor: pointer; border-color: rgba(255,215,0,0.25); background: linear-gradient(145deg,#1b1708,#101423); }
.sheet-vip-title { margin-top: 6px; color: #fff3b0; font-size: 15px; font-weight: 900; line-height: 1.45; }
.sheet-vip-sub { margin-top: 6px; color: #cfc6a0; font-size: 12px; line-height: 1.55; }
.sheet-extra-panel { margin-top: 14px; padding: 13px; border-radius: 10px; background: linear-gradient(145deg,#0b1220,#0f1727); border: 1px solid rgba(143,223,255,0.12); }
.sheet-extra-head { padding: 2px 2px 10px; border-bottom: 1px dashed rgba(255,255,255,0.10); }
.sheet-extra-kicker { color: #8fdfff; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.sheet-extra-title { margin-top: 4px; color: #fff; font-size: 16px; font-weight: 900; }
.sheet-extra-sub { margin-top: 5px; color: #8b96bd; font-size: 11px; line-height: 1.55; }

@media (max-width: 420px) {
  .sheet-grid { grid-template-columns: 1fr; }
  .sheet-combo-row, .sheet-odds-row { align-items: flex-start; flex-direction: column; }
  .sheet-combo-row strong, .sheet-odds-row strong { text-align: left; }
}

/* 최근 5전 전적 색상 박스 */
.recent-form { display: flex; gap: 4px; align-items: center; margin-top: 8px; }
.form-box { width: 20px; height: 20px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 900; border: 1.5px solid transparent; }
.form-box.win { background: #00ff8815; border-color: #00ff8888; color: #00ff88; }
.form-box.place { background: #ffd70015; border-color: #ffd70088; color: #ffd700; }
.form-box.show { background: #ffaa4415; border-color: #ffaa4488; color: #ffaa44; }
.form-box.out { background: #ffffff0a; border-color: #ffffff33; color: #7777aa; }

/* 텍스트형 관심마 버튼 스타일 (레거시, 미사용) */
.fav-text-btn { background: transparent; border: 1px solid #444455; color: #aaaacc; padding: 5px 10px; border-radius: 4px; font-size: 11px; font-weight: 800; cursor: pointer; transition: all 0.2s ease; }
.fav-text-btn .on-text { display: none; }
.fav-text-btn .off-text { display: inline; }
.selected .fav-text-btn, .favorite .fav-text-btn { background: rgba(255,215,0,0.1); border-color: #ffd700; color: #ffd700; }
.selected .fav-text-btn .on-text, .favorite .fav-text-btn .on-text { display: inline; }
.selected .fav-text-btn .off-text, .favorite .fav-text-btn .off-text { display: none; }

/* 아이콘형 관심마 버튼 */
.fav-icon-btn { background: transparent; border: 1px solid #444455; color: #887766; min-width: 44px; min-height: 44px; border-radius: 6px; font-size: 16px; font-weight: 800; cursor: pointer; transition: all 0.2s ease, box-shadow 0.2s ease; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 4px 6px; line-height: 1; }
.fav-icon-btn .fav-label { font-size: 9px; font-weight: 700; color: #887766; }
.fav-icon-btn:active { transform: scale(0.93); }
.selected .fav-icon-btn, .favorite .fav-icon-btn { background: rgba(255,215,0,0.1); border-color: #ffd700; color: #ffd700; box-shadow: 0 0 10px rgba(255,215,0,0.45), 0 0 4px rgba(255,215,0,0.2); }
.selected .fav-icon-btn .fav-label, .favorite .fav-icon-btn .fav-label { color: #ffd700; }
.selected .fav-icon-btn .fav-off, .favorite .fav-icon-btn .fav-off { display: none; }
.selected .fav-icon-btn .fav-on, .favorite .fav-icon-btn .fav-on { display: inline; }
.fav-icon-btn .fav-on { display: none; }
.fav-icon-btn .fav-off { display: inline; }

/* 초보자 가이드 아코디언 UI */
.beginner-guide-card { cursor: pointer; transition: background 0.2s; position: relative; }
.beginner-guide-card:active { background: rgba(255,255,255,0.05); }
.guide-header-wrap { display: flex; justify-content: space-between; align-items: center; }
.guide-toggle-icon { font-size: 12px; color: #aaaacc; transition: transform 0.3s ease; }
.beginner-guide-card.expanded .guide-toggle-icon { transform: rotate(180deg); color: #ffd700; }
.beginner-guide-card .beginner-guide-body { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(255,255,255,0.1); line-height: 1.6; color: #ccc; font-size: 13px; }
.beginner-guide-card.expanded .beginner-guide-body { display: block; animation: slideDown 0.3s ease; }

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* PRO 결제 유도 바텀 시트 (Paywall) */
.paywall-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(3px); z-index: 9998; opacity: 0; visibility: hidden; transition: all 0.3s ease; }
.paywall-overlay.active { opacity: 1; visibility: visible; }
.paywall-sheet { position: fixed; bottom: -100%; left: 0; width: 100%; background: #0e0e1e; border-top-left-radius: 24px; border-top-right-radius: 24px; z-index: 9999; padding: 32px 24px 40px; box-sizing: border-box; transition: bottom 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); border-top: 2px solid #ffd700; box-shadow: 0 -10px 40px rgba(0,0,0,0.8); text-align: center; }
.paywall-sheet.active { bottom: 0; }
.paywall-close { position: absolute; top: 16px; right: 20px; font-size: 24px; color: #aaaacc; cursor: pointer; background: none; border: none; }
.paywall-title { font-size: 22px; font-weight: 900; color: #fff; margin-bottom: 12px; line-height: 1.4; }
.paywall-highlight { color: #ffd700; }
.paywall-desc { font-size: 14px; color: #aaaacc; margin-bottom: 24px; line-height: 1.6; }
.paywall-btn { display: block; width: 100%; background: linear-gradient(135deg, #ffd700, #ffaa00); color: #000; font-size: 16px; font-weight: 900; padding: 16px 0; border-radius: 12px; border: none; cursor: pointer; text-decoration: none; box-shadow: 0 4px 15px rgba(255,215,0,0.3); }
.paywall-btn:active { transform: scale(0.98); }

/* 무료 회원 블라인드 효과 */
.data-blind { filter: blur(4px); opacity: 0.5; user-select: none; pointer-events: none; }
.vip-lock-box { display: flex; align-items: center; justify-content: center; background: rgba(255,215,0,0.1); border: 1px dashed rgba(255,215,0,0.4); border-radius: 4px; color: #ffd700; font-size: 11px; font-weight: bold; width: 100%; height: 100%; min-height: 24px; cursor: pointer; }

/* 전개도 행 하이라이트 (toggle — 관심마 황금색과 구분되는 하늘색 톤) */
.pace-row { transition: background 0.25s ease, box-shadow 0.25s ease; }
.pace-row-active { background: rgba(100,200,255,0.15) !important; box-shadow: inset 4px 0 0 #64c8ff !important; }

/* 전개도 전체 블러 오버레이 */
.pace-blur-wrap { position: relative; }
.pace-paywall-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(8, 8, 20, 0.7); backdrop-filter: blur(6px); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 100; border-radius: 8px; text-align: center; padding: 20px; box-sizing: border-box; }
.pace-paywall-overlay .lock-icon { font-size: 40px; margin-bottom: 12px; }
.pace-paywall-overlay .msg { color: #fff; font-size: 16px; font-weight: 900; line-height: 1.5; margin-bottom: 16px; }
.pace-paywall-overlay .sub-msg { color: #ffd700; font-size: 13px; font-weight: bold; }

/* PRO 상세 분석 패널 (아코디언) */
.vip-detail-panel { max-height: 0; overflow: hidden; transition: max-height 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); background: linear-gradient(180deg, #111126 0%, #0a0a18 100%); border-top: none; }
.vip-detail-panel.open { max-height: 1000px; border-top: 1px solid rgba(255,215,0,0.2); }
.vip-detail-content { padding: 16px; display: flex; flex-direction: column; gap: 16px; }

/* AI 승률 바 */
.ai-prob-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.ai-prob-label { font-size: 11px; color: #aaaacc; font-weight: bold; }
.ai-prob-val { font-size: 13px; color: #fff; font-weight: 900; }
.ai-prob-bar-bg { width: 100%; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; overflow: hidden; }
.ai-prob-bar-fill { height: 100%; border-radius: 3px; transition: width 1s ease-out; }
.fill-win { background: linear-gradient(90deg, #ff4b2b, #ff416c); }
.fill-place { background: linear-gradient(90deg, #2c9fd1, #7be0ff); }

/* 미니 스탯 박스 */
.vip-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vip-stat-box { background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.05); padding: 10px; border-radius: 8px; text-align: center; }
.vip-stat-title { font-size: 10px; color: #8888aa; margin-bottom: 4px; }
.vip-stat-value { font-size: 16px; color: #ffd700; font-weight: 900; }

/* AI 한줄평 */
.ai-verdict-box { background: rgba(255,215,0,0.05); border-left: 3px solid #ffd700; padding: 12px; border-radius: 0 8px 8px 0; font-size: 12px; color: #e0e0ff; line-height: 1.5; font-weight: bold; }

/* 마이페이지 복기 인증 카드 */
.hit-history-wrap { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; padding-bottom: 30px; }
.hit-card { background: linear-gradient(145deg, #111126, #0a0a18); border-left: 4px solid #ffd700; border-radius: 12px; padding: 18px; box-shadow: 0 4px 15px rgba(0,0,0,0.4); position: relative; overflow: hidden; border-top: 1px solid rgba(255,255,255,0.05); border-right: 1px solid rgba(255,255,255,0.05); border-bottom: 1px solid rgba(255,255,255,0.05); }
.hit-card::after { content: 'HIT'; position: absolute; right: -10px; bottom: -15px; font-size: 64px; font-weight: 900; color: rgba(255,215,0,0.04); pointer-events: none; }
.hit-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; border-bottom: 1px dashed rgba(255,255,255,0.1); padding-bottom: 10px; }
.hit-date-race { font-size: 12px; color: #aaaacc; font-weight: bold; letter-spacing: 0.5px; }
.hit-badge { background: rgba(255,215,0,0.15); color: #ffd700; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 900; letter-spacing: 0.5px; border: 1px solid rgba(255,215,0,0.3); box-shadow: 0 0 8px rgba(255,215,0,0.2); }
.hit-body { display: flex; justify-content: space-between; align-items: flex-end; }
.hit-horses-wrap { display: flex; flex-direction: column; gap: 4px; }
.hit-horses-label { font-size: 10px; color: #8888aa; }
.hit-horses { font-size: 18px; color: #fff; font-weight: 900; letter-spacing: 2px; }
.hit-odds { text-align: right; }
.hit-odds-label { font-size: 11px; color: #8888aa; margin-bottom: 4px; }
.hit-odds-value { font-size: 26px; color: #ff416c; font-weight: 900; text-shadow: 0 0 12px rgba(255,65,108,0.4); letter-spacing: -0.5px; }
.vip-info-title { font-size: 11px; color: #8fdfff; font-weight: bold; margin-bottom: 6px; display: flex; align-items: center; gap: 4px; }
.vip-info-text { font-size: 12px; color: #e0e0ff; line-height: 1.5; font-weight: 500; }

/* 실시간 신뢰도 배지 */
.reliability-panel { margin-top: 12px; padding: 12px; border-radius: 14px; background: linear-gradient(145deg, #081423, #10182a); border: 1px solid rgba(143,223,255,0.18); }
.reliability-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.reliability-kicker { font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: #8fdfff; font-weight: 900; }
.reliability-title { margin-top: 5px; color: #fff; font-size: 14px; font-weight: 900; }
.reliability-board-btn { flex-shrink: 0; min-height: 32px; border-radius: 999px; padding: 0 11px; border: 1px solid rgba(255,215,0,0.38); background: rgba(255,215,0,0.09); color: #ffd700; font-size: 10px; font-weight: 900; cursor: pointer; }
.reliability-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.reliability-badge { min-height: 72px; border-radius: 11px; padding: 9px 8px; background: rgba(255,255,255,0.055); border: 1px solid rgba(255,255,255,0.1); display: flex; flex-direction: column; gap: 4px; }
.reliability-badge span { color: #9ba7cc; font-size: 9px; font-weight: 900; }
.reliability-badge strong { color: #fff; font-size: 13px; font-weight: 900; }
.reliability-badge em { color: #8b96bd; font-size: 9px; line-height: 1.4; font-style: normal; }
.reliability-badge.fresh { border-color: rgba(0,255,136,0.34); background: rgba(0,255,136,0.08); }
.reliability-badge.fresh strong { color: #00ff88; }
.reliability-badge.watch { border-color: rgba(255,215,0,0.36); background: rgba(255,215,0,0.08); }
.reliability-badge.watch strong { color: #ffd700; }
.reliability-badge.stale, .reliability-badge.danger { border-color: rgba(255,90,90,0.44); background: rgba(255,68,68,0.08); }
.reliability-badge.stale strong, .reliability-badge.danger strong { color: #ff8fab; }
.reliability-badge.pending { opacity: 0.72; }
.reliability-empty { grid-column: 1 / -1; padding: 11px; border-radius: 11px; border: 1px dashed rgba(255,255,255,0.14); color: #9ba7cc; font-size: 11px; text-align: center; }
.reliability-sub { margin-top: 9px; color: #aeb7d8; font-size: 10px; line-height: 1.55; }

/* 현장 전광판 모드 */
.tote-board-card { margin-top: 10px; padding: 14px; border-radius: 8px; background: linear-gradient(145deg, #07111f, #0c1525 58%, #080d18); border: 1px solid rgba(143,223,255,0.16); box-shadow: 0 10px 26px rgba(0,0,0,0.24); }
.tote-board-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.tote-board-kicker { color: #8fdfff; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.tote-board-title { margin-top: 5px; color: #fff; font-size: 18px; font-weight: 900; }
.tote-board-sub { margin-top: 6px; color: #9ba7cc; font-size: 11px; line-height: 1.5; }
.tote-board-refresh { flex-shrink: 0; min-height: 34px; border-radius: 999px; padding: 0 12px; border: 1px solid rgba(143,223,255,0.42); background: rgba(143,223,255,0.09); color: #8fdfff; font-size: 10px; font-weight: 900; cursor: pointer; }
.tote-board-source { padding: 9px 10px; border-radius: 8px; background: rgba(255,176,0,0.08); border: 1px solid rgba(255,176,0,0.22); color: #ffe1a0; font-size: 10px; font-weight: 800; line-height: 1.55; }
.tote-board-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
.tote-board-empty { grid-column: 1 / -1; padding: 14px; border-radius: 9px; background: rgba(255,255,255,0.045); border: 1px dashed rgba(255,255,255,0.12); color: #8b96bd; font-size: 12px; line-height: 1.55; text-align: center; }
.tote-pool-card { min-width: 0; border-radius: 10px; background: #060918; border: 1px solid rgba(143,223,255,0.14); overflow: hidden; }
.tote-pool-card.empty { opacity: 0.6; }
.tote-pool-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 11px; background: rgba(143,223,255,0.07); border-bottom: 1px solid rgba(143,223,255,0.12); }
.tote-pool-head strong { color: #fff; font-size: 13px; font-weight: 900; }
.tote-pool-head span { color: #8fdfff; font-size: 9px; font-weight: 900; white-space: nowrap; }
.tote-pool-source { padding: 7px 10px 0; color: #7777aa; font-size: 9px; font-weight: 800; line-height: 1.4; }
.tote-pool-list { display: flex; flex-direction: column; gap: 5px; padding: 8px; max-height: 380px; overflow: auto; }
.tote-pool-row { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; min-height: 36px; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.08); }
.tote-rank { width: 22px; height: 22px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: #041721; background: #8fdfff; font-size: 11px; font-weight: 900; }
.tote-numbers { color: #e8f0ff; font-size: 12px; font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tote-odds { color: #8fdfff; font-size: 13px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tote-pool-card.win .tote-odds { color: #ff8fab; }
.tote-pool-card.place .tote-odds { color: #7be0ff; }
.tote-pool-card.tla .tote-odds, .tote-pool-card.tri .tote-odds { color: #ffd700; }
.tote-pool-empty { padding: 12px; color: #7777aa; font-size: 11px; line-height: 1.5; }

@media (max-width: 720px) {
  .reliability-grid { grid-template-columns: 1fr 1fr; }
  .reliability-head, .tote-board-head { flex-direction: column; }
  .reliability-board-btn, .tote-board-refresh { width: 100%; }
  .tote-board-grid { grid-template-columns: 1fr; }
}

/* 공식 결과/복기 전환 패널 */
.official-result-panel { margin: 14px 14px 0; padding: 14px; border-radius: 16px; background: linear-gradient(145deg, #07161d, #101929 60%, #080d18); border: 1px solid rgba(0,255,136,0.24); box-shadow: 0 12px 32px rgba(0,0,0,0.28), inset 0 0 0 1px rgba(255,255,255,0.03); }
.official-result-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.official-result-kicker { color: #00ff88; font-size: 10px; font-weight: 900; letter-spacing: 1.2px; text-transform: uppercase; }
.official-result-title { margin-top: 5px; color: #fff; font-size: 18px; font-weight: 900; }
.official-result-sub { margin-top: 6px; color: #9fb0d4; font-size: 11px; line-height: 1.5; }
.official-result-action { flex-shrink: 0; min-height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid rgba(0,255,136,0.42); background: rgba(0,255,136,0.1); color: #00ff88; font-size: 11px; font-weight: 900; cursor: pointer; }
.official-result-top3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.official-rank-card { min-width: 0; padding: 11px 10px; border-radius: 12px; background: rgba(255,255,255,0.055); border: 1px solid rgba(255,255,255,0.1); display: flex; flex-direction: column; gap: 5px; }
.official-rank-card.r1 { background: rgba(255,215,0,0.11); border-color: rgba(255,215,0,0.34); box-shadow: 0 0 16px rgba(255,215,0,0.08); }
.official-rank-card span { color: #8fdfff; font-size: 10px; font-weight: 900; }
.official-rank-card.r1 span { color: #ffd700; }
.official-rank-card strong { color: #fff; font-size: 14px; font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.official-rank-card em { color: #93a0c7; font-size: 10px; line-height: 1.45; font-style: normal; }
.official-result-summary { margin-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; border-radius: 12px; background: rgba(0,0,0,0.22); border: 1px solid rgba(143,223,255,0.14); }
.official-result-summary div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.official-result-summary span { color: #8b96bd; font-size: 10px; font-weight: 900; }
.official-result-summary strong { color: #fff; font-size: 15px; font-weight: 900; }
.official-result-summary em { color: #8fdfff; font-size: 11px; font-style: normal; }
.official-result-summary button { flex-shrink: 0; min-height: 34px; padding: 0 12px; border-radius: 10px; border: 1px solid rgba(143,223,255,0.34); background: rgba(143,223,255,0.09); color: #8fdfff; font-size: 10px; font-weight: 900; cursor: pointer; }
.official-result-log { margin-top: 10px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.official-log-row { min-width: 0; padding: 10px; border-radius: 11px; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; gap: 4px; }
.official-log-row.hit { border-color: rgba(0,255,136,0.34); background: rgba(0,255,136,0.08); }
.official-log-row.push { border-color: rgba(255,215,0,0.34); background: rgba(255,215,0,0.08); }
.official-log-row.miss { border-color: rgba(255,90,90,0.34); background: rgba(255,68,68,0.075); }
.official-log-row span { color: #8b96bd; font-size: 10px; font-weight: 900; }
.official-log-row strong { color: #fff; font-size: 12px; font-weight: 900; }
.official-log-row.hit strong { color: #00ff88; }
.official-log-row.push strong { color: #ffd700; }
.official-log-row.miss strong { color: #ff8fab; }
.official-log-row em { color: #aeb7d8; font-size: 10px; line-height: 1.45; font-style: normal; }
.race-official-closed .urgent-banner.urgent { box-shadow: none; }

@media (max-width: 720px) {
  .official-result-panel { margin: 12px 8px 0; padding: 12px; }
  .official-result-head, .official-result-summary { flex-direction: column; align-items: stretch; }
  .official-result-action, .official-result-summary button { width: 100%; }
  .official-result-top3, .official-result-log { grid-template-columns: 1fr; }
}

/* 전개 예측도 의미 안내 */
.pace-meaning-card {
  margin: 0 10px 12px;
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(143,223,255,0.10), rgba(255,215,0,0.07));
  border: 1px solid rgba(143,223,255,0.26);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03);
}
.pace-meaning-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 7px;
}
.pace-meaning-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(255,215,0,0.14);
  border: 1px solid rgba(255,215,0,0.38);
  color: #ffd700;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2px;
}
.pace-meaning-head strong {
  color: #fff;
  font-size: 13px;
  font-weight: 900;
}
.pace-meaning-copy {
  color: #b8c3e6;
  font-size: 11px;
  line-height: 1.6;
}
.pace-meaning-grid {
  display: grid;
  grid-template-columns: 0.7fr 0.9fr 2fr;
  gap: 7px;
  margin-top: 10px;
}
.pace-meaning-grid div {
  min-width: 0;
  padding: 8px;
  border-radius: 9px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
}
.pace-meaning-grid span {
  display: block;
  color: #8b96bd;
  font-size: 9px;
  font-weight: 900;
  margin-bottom: 4px;
}
.pace-meaning-grid strong {
  color: #f4f7ff;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .pace-meaning-card { margin: 0 8px 10px; }
  .pace-meaning-grid { grid-template-columns: 1fr; }
}

.compliance-note {
  margin: 16px 14px 88px;
  padding: 13px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(143,223,255,0.18);
  color: #9ba7cf;
  font-size: 10px;
  line-height: 1.65;
}
.compliance-note strong {
  display: block;
  color: #8fdfff;
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.compliance-note span {
  display: block;
}
.compliance-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.compliance-links a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(143,223,255,0.28);
  background: rgba(143,223,255,0.08);
  color: #c8f3ff;
  font-size: 10px;
  font-weight: 900;
  text-decoration: none;
}

.legal-page {
  padding-bottom: 40px;
}
.legal-wrap {
  width: min(920px, calc(100% - 28px));
  margin: 0 auto;
  padding: 22px 0 40px;
}
.legal-back {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(143,223,255,0.28);
  color: #c8f3ff;
  background: rgba(143,223,255,0.08);
  text-decoration: none;
  font-size: 12px;
  font-weight: 900;
}
.legal-hero {
  margin-top: 18px;
  padding: 28px 24px;
  border-radius: 24px;
  background: linear-gradient(145deg, #0b1728, #121b33);
  border: 1.5px solid #28446f;
  box-shadow: 0 16px 34px rgba(0,0,0,0.28);
}
.legal-kicker {
  color: #8fdfff;
  font-size: 11px;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  font-weight: 900;
}
.legal-hero h1 {
  margin-top: 10px;
  color: #fff;
  font-size: 28px;
  line-height: 1.25;
  letter-spacing: -0.6px;
}
.legal-hero p {
  margin-top: 12px;
  color: #b8c3e6;
  font-size: 14px;
  line-height: 1.75;
}
.legal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.legal-card {
  margin-top: 12px;
  padding: 18px;
  border-radius: 18px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.1);
}
.legal-card.important {
  border-color: rgba(255,215,0,0.36);
  background: linear-gradient(145deg, rgba(255,215,0,0.12), rgba(255,255,255,0.045));
}
.legal-card h2 {
  color: #fff;
  font-size: 16px;
  font-weight: 900;
  margin-bottom: 10px;
}
.legal-card p,
.legal-card li {
  color: #c5cee8;
  font-size: 13px;
  line-height: 1.75;
}
.legal-card ul {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-left: 18px;
}
.legal-principles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.legal-principles div {
  padding: 13px;
  border-radius: 14px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
}
.legal-principles strong,
.legal-principles span {
  display: block;
}
.legal-principles strong {
  color: #ffd700;
  font-size: 12px;
  font-weight: 900;
}
.legal-principles span {
  margin-top: 7px;
  color: #c5cee8;
  font-size: 12px;
  line-height: 1.65;
}
.legal-footer-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(0,0,0,0.2);
  border: 1px solid rgba(143,223,255,0.14);
}
.legal-footer-card p {
  color: #8c97c8;
  font-size: 12px;
}
.legal-footer-card a {
  color: #8fdfff;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}
@media (max-width: 720px) {
  .legal-hero { padding: 22px 18px; border-radius: 20px; }
  .legal-hero h1 { font-size: 23px; }
  .legal-grid,
  .legal-principles { grid-template-columns: 1fr; }
  .legal-footer-card { align-items: flex-start; flex-direction: column; }
}

/* 분석 랭킹보드 */
.analysis-ranking-card {
  background: linear-gradient(145deg, #111827, #09111f 58%, #07131d);
  border: 1.5px solid rgba(143, 223, 255, 0.28);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.24);
}
.analysis-ranking-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.analysis-ranking-kicker {
  color: #8fdfff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.analysis-ranking-title {
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  line-height: 1.4;
  margin-top: 7px;
}
.analysis-ranking-sub {
  color: #9da8d5;
  font-size: 11px;
  line-height: 1.65;
  margin-top: 5px;
}
.analysis-ranking-badge {
  flex-shrink: 0;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 213, 106, 0.12);
  border: 1px solid rgba(255, 213, 106, 0.38);
  color: #ffd56a;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}
.analysis-ranking-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 12px 0;
}
.analysis-ranking-tab {
  min-height: 36px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color: #b8c4ec;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.analysis-ranking-tab.active {
  color: #041721;
  border-color: #9ee8ff;
  background: linear-gradient(135deg, #2c9fd1, #7be0ff);
  box-shadow: 0 0 18px rgba(123,224,255,0.18);
}
.analysis-ranking-my {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 10px;
  align-items: stretch;
  padding: 12px;
  border-radius: 15px;
  background: rgba(143,223,255,0.08);
  border: 1px solid rgba(143,223,255,0.18);
}
.analysis-ranking-score {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.analysis-ranking-score span {
  color: #8fdfff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.analysis-ranking-score strong {
  color: #fff;
  font-size: 27px;
  font-weight: 900;
  letter-spacing: -0.4px;
}
.analysis-ranking-grade {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(255,213,106,0.14);
  border: 1px solid rgba(255,213,106,0.36);
  color: #ffd56a;
  font-size: 10px;
  font-weight: 900;
}
.analysis-ranking-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.analysis-ranking-metric {
  padding: 9px;
  border-radius: 12px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
}
.analysis-ranking-metric span {
  display: block;
  color: #8c97c8;
  font-size: 10px;
  font-weight: 800;
  margin-bottom: 4px;
}
.analysis-ranking-metric strong {
  display: block;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
}
.analysis-ranking-breakdown {
  margin-top: 10px;
  border-radius: 14px;
  background: rgba(0,0,0,0.2);
  border: 1px solid rgba(143,223,255,0.16);
  overflow: hidden;
}
.analysis-ranking-breakdown summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  color: #dfe8ff;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}
.analysis-ranking-breakdown summary::-webkit-details-marker {
  display: none;
}
.analysis-ranking-breakdown summary strong {
  color: #8fdfff;
  font-size: 12px;
  font-weight: 900;
}
.analysis-ranking-breakdown-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 0 10px 10px;
}
.analysis-ranking-breakdown-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 11px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.07);
}
.analysis-ranking-breakdown-main {
  min-width: 0;
}
.analysis-ranking-breakdown-title {
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}
.analysis-ranking-breakdown-copy {
  color: #8c97c8;
  font-size: 10px;
  line-height: 1.5;
  margin-top: 3px;
}
.analysis-ranking-breakdown-score {
  color: #ffd56a;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.analysis-ranking-rulebox {
  margin-top: 10px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,213,106,0.07);
  border: 1px dashed rgba(255,213,106,0.28);
}
.analysis-ranking-rule-title {
  color: #ffd56a;
  font-size: 11px;
  font-weight: 900;
  margin-bottom: 8px;
}
.analysis-ranking-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.analysis-ranking-rule-grid div {
  min-height: 46px;
  padding: 9px;
  border-radius: 11px;
  background: rgba(0,0,0,0.18);
  border: 1px solid rgba(255,255,255,0.07);
}
.analysis-ranking-rule-grid strong,
.analysis-ranking-rule-grid span {
  display: block;
}
.analysis-ranking-rule-grid strong {
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}
.analysis-ranking-rule-grid span {
  color: #a7b0da;
  font-size: 10px;
  line-height: 1.45;
  margin-top: 4px;
}
.analysis-ranking-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 12px;
}
.analysis-ranking-row {
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 9px 10px;
  border-radius: 13px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.09);
}
.analysis-ranking-row.me {
  background: linear-gradient(135deg, rgba(143,223,255,0.14), rgba(255,213,106,0.08));
  border-color: rgba(143,223,255,0.34);
  box-shadow: inset 3px 0 0 #8fdfff;
}
.analysis-ranking-rank {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  color: #dfe8ff;
  font-size: 12px;
  font-weight: 900;
}
.analysis-ranking-user {
  min-width: 0;
}
.analysis-ranking-name {
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.analysis-ranking-row.me .analysis-ranking-name {
  color: #8fdfff;
}
.analysis-ranking-desc {
  color: #8c97c8;
  font-size: 10px;
  line-height: 1.45;
  margin-top: 3px;
}
.analysis-ranking-score-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  color: #ffd56a;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.analysis-ranking-note,
.analysis-ranking-empty {
  margin-top: 10px;
  color: #8c97c8;
  font-size: 10px;
  line-height: 1.65;
}
.analysis-ranking-empty {
  margin: 0;
  padding: 14px;
  border-radius: 13px;
  background: rgba(255,255,255,0.06);
  border: 1px dashed rgba(255,255,255,0.16);
  text-align: center;
}
@media (max-width: 520px) {
  .analysis-ranking-head,
  .analysis-ranking-my {
    grid-template-columns: 1fr;
    flex-direction: column;
  }
  .analysis-ranking-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .analysis-ranking-row {
    grid-template-columns: 30px 1fr;
  }
  .analysis-ranking-score-pill {
    grid-column: 2;
    width: max-content;
  }
  .analysis-ranking-breakdown-row,
  .analysis-ranking-rule-grid {
    grid-template-columns: 1fr;
  }
}
