:root {
  color-scheme: light;
  --ink: #35251a;
  --muted: #74665b;
  --paper: #fff;
  --ivory: #fffaf2;
  --lavender: #fff0d5;
  --line: #eadbc6;
  --purple: #df6817;
  --purple-deep: #ad470b;
  --good: #15936b;
  --bad: #d84d59;
  --yellow: #a96500;
  --blue: #276bc2;
  --shadow: 0 18px 48px rgba(112, 57, 18, .11);
  color: var(--ink);
  background: var(--ivory);
  font-family: "Noto Sans JP", "Yu Gothic UI", "Yu Gothic", system-ui, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 0; background: linear-gradient(180deg, #fff2dc 0, var(--ivory) 260px); }
button, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; }
[hidden] { display: none !important; }
.beta-notice { min-height: 32px; padding: 7px 12px; background: #5a2c14; color: #fff; font-size: 11px; line-height: 1.5; text-align: center; }
.top-nav { position: sticky; z-index: 20; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 8px 12px; border-bottom: 1px solid var(--line); background: rgba(251,250,247,.94); backdrop-filter: blur(12px); }
.brand { display: flex; align-items: center; gap: 9px; min-width: 0; text-decoration: none; }
.brand-mark { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; border: 1px solid #efc58e; border-radius: 50%; background: var(--lavender); color: var(--purple-deep); font-size: 23px; font-weight: 900; }
.brand small, .brand strong { display: block; }
.brand small { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.brand strong { overflow: hidden; max-width: 190px; font-size: 13px; white-space: nowrap; text-overflow: ellipsis; }
.phase-badge { flex: 0 0 auto; padding: 7px 9px; border: 1px solid #efc58e; border-radius: 12px; background: #fff1dc; color: var(--purple-deep); font-size: 11px; font-weight: 800; }
.mode-home { width:min(calc(100% - 24px),760px); min-height:calc(100dvh - 118px); margin:14px auto 28px; padding:clamp(22px,6vw,46px) clamp(14px,5vw,38px); border:1px solid var(--line); border-radius:26px; background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(255,246,229,.97)); box-shadow:var(--shadow); }
.mode-home-heading { display:flex; align-items:center; gap:12px; }
.mode-home-mark { display:grid; place-items:center; flex:0 0 54px; width:54px; height:54px; border:1px solid #efc58e; border-radius:18px; background:#fff0d5; font-size:30px; }
.mode-home-heading h1 { margin:3px 0 0; font-size:clamp(23px,7vw,34px); line-height:1.35; }
.mode-home-heading p { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.mode-home-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:clamp(30px,9vh,68px); }
.mode-home-cards > button { display:grid; align-content:center; justify-items:center; gap:7px; min-width:0; min-height:clamp(190px,32vh,270px); padding:18px 10px; border:1px solid #efc58e; border-radius:22px; background:linear-gradient(155deg,#fffaf1,#ffe8c5); color:var(--ink); box-shadow:0 12px 28px rgba(166,76,10,.11); text-align:center; }
.mode-home-cards > button:nth-child(2) { border-color:#c7d9ee; background:linear-gradient(155deg,#f9fcff,#e7f1fc); }
.mode-card-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:17px; background:#e8781e; color:#fff; font-size:25px; font-weight:900; }
.mode-home-cards > button:nth-child(2) .mode-card-icon { background:#3476bb; }
.mode-home-cards strong { font-size:clamp(24px,8vw,36px); line-height:1.2; }
.mode-home-cards small { min-height:34px; color:var(--muted); font-size:10px; line-height:1.55; }
.mode-home-cards em { margin-top:5px; color:#a34d08; font-size:10px; font-style:normal; font-weight:900; }
.mode-home-cards > button:nth-child(2) em { color:#245b9c; }
.mode-home-cards > button:focus-visible,.mode-home-cards > button:active { outline:3px solid rgba(223,104,23,.32); outline-offset:3px; }
.mode-home-foot { margin:22px 2px 0; color:var(--muted); font-size:9px; line-height:1.65; text-align:center; }
.compact-mode-switcher { --mode-color:#df6817; display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:8px 12px; width:min(calc(100% - 24px),940px); margin:9px auto 0; padding:8px 10px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.96); box-shadow:0 8px 22px rgba(112,57,18,.08); }
.compact-mode-switcher[data-mode="large_day"],.compact-mode-switcher[data-mode="large_swing"] { grid-template-columns:auto auto minmax(180px,220px) minmax(0,1fr); }
.compact-mode-switcher[data-mode="large_day"] { --mode-color:#276bc2; }
.compact-mode-switcher[data-mode="large_swing"] { --mode-color:#16805d; }
.compact-mode-switcher > button { min-height:42px; padding:7px 10px; border:1px solid #efc58e; border-radius:11px; background:#fff8eb; color:#8d4308; font-size:10px; font-weight:900; }
.compact-mode-switcher > span { display:grid; min-width:78px; }
.compact-mode-switcher > span small { color:var(--muted); font-size:8px; }
.compact-mode-switcher > span strong { color:var(--purple-deep); font-size:12px; }
.compact-mode-switcher > p { min-width:0; margin:0; color:var(--muted); font-size:9px; line-height:1.5; }
.global-mode-switcher { --mode-color:#df6817; --mode-soft:#fff3dd; width:min(calc(100% - 24px),940px); margin:10px auto 0; padding:10px; border:1px solid color-mix(in srgb,var(--mode-color) 35%,#fff); border-radius:17px; background:rgba(255,255,255,.96); box-shadow:0 10px 28px rgba(112,57,18,.09); }
.global-mode-switcher[data-mode="large_day"] { --mode-color:#276bc2; --mode-soft:#edf5ff; }
.global-mode-switcher[data-mode="large_swing"] { --mode-color:#16805d; --mode-soft:#edf9f4; }
.global-mode-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 3px 7px; }
.global-mode-heading > span { display:grid; min-width:0; }
.global-mode-heading small { color:var(--mode-color); font-size:8px; font-weight:900; letter-spacing:.1em; }
.global-mode-heading strong { margin-top:1px; font-size:12px; }
.global-mode-heading em { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:var(--mode-soft); color:var(--mode-color); font-size:9px; font-style:normal; font-weight:900; }
.global-mode-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; padding:4px; border-radius:13px; background:var(--mode-soft); }
.global-mode-tabs button { display:grid; place-items:center; gap:1px; min-width:0; min-height:46px; padding:5px 3px; border:0; border-radius:10px; background:transparent; color:var(--muted); line-height:1.15; }
.global-mode-tabs button span { font-size:9px; }
.global-mode-tabs button strong { font-size:11px; }
.global-mode-tabs button.active { background:var(--mode-color); color:#fff; box-shadow:0 4px 12px color-mix(in srgb,var(--mode-color) 28%,transparent); }
.large-mode-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; margin-top:6px; padding:4px; border:1px solid #b9d2f2; border-radius:12px; background:#f3f7fd; }
.compact-mode-switcher .large-mode-tabs { min-width:0; margin:0; }
.large-mode-tabs[hidden] { display:none; }
.large-mode-tabs button { min-height:42px; border:0; border-radius:9px; background:transparent; color:#48637e; font-size:11px; font-weight:900; }
.large-mode-tabs button.active { background:var(--mode-color); color:#fff; box-shadow:0 4px 11px rgba(39,107,194,.18); }
.global-mode-switcher > p { margin:7px 3px 0; color:var(--muted); font-size:9px; line-height:1.55; }
body[data-global-mode="large_day"] { background:linear-gradient(180deg,#edf5ff 0,var(--ivory) 300px); }
body[data-global-mode="large_swing"] { background:linear-gradient(180deg,#edf9f4 0,var(--ivory) 300px); }
body[data-size-mode="large"] .mobile-feature-tabs { grid-template-columns:repeat(5,1fr); }
.desktop-feature-tabs { display: none; }
main { width: min(100%, 1120px); margin: 0 auto; padding: 18px 12px 104px; }
.site-intro { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 14px 15px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.78); }
.site-intro > div { display: grid; gap: 3px; min-width: 0; }.site-intro strong { overflow-wrap: anywhere; font-size: 14px; }.site-intro small { color: var(--muted); font-size: 10px; line-height: 1.5; }.data-kind { flex: 0 0 auto; padding: 7px 9px; border-radius: 999px; background: #e9f8f1; color: var(--good); font-size: 10px; font-weight: 900; }
.pwa-install-banner { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:9px; align-items:center; margin:0 0 12px; padding:10px 42px 10px 11px; border:1px solid #eebf82; border-radius:15px; background:linear-gradient(135deg,#fff3dc,#fffaf1); box-shadow:0 8px 22px rgba(185,85,8,.08); }
.pwa-install-banner[hidden] { display:none; }.pwa-install-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:#fff; font-size:21px; }.pwa-install-banner > span:nth-child(2) { display:grid; min-width:0; }.pwa-install-banner strong { font-size:11px; }.pwa-install-banner small { margin-top:2px; color:var(--muted); font-size:9px; line-height:1.45; }.pwa-install-banner button { min-height:40px; padding:7px 10px; border:0; border-radius:10px; background:#d85f0d; color:#fff; font-size:10px; font-weight:900; }.pwa-install-banner #pwa-install-close { position:absolute; top:5px; right:5px; width:32px; min-height:32px; padding:0; background:transparent; color:var(--muted); font-size:18px; }
.context-strip { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--muted); }
.context-strip > div { display: grid; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.72); }
.context-strip span, .section-kicker { color: var(--purple-deep); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.context-strip strong { font-size: 12px; }
.context-strip small { overflow: hidden; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.ai-panel { overflow: hidden; padding: 18px 12px 20px; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.9); box-shadow: var(--shadow); }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 4px; }
.section-heading h1 { margin: 0; font-size: clamp(22px, 6.5vw, 32px); line-height: 1.35; letter-spacing: -.03em; }
.section-heading p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.market-regime { --regime-color:#8b6f59; --regime-soft:#f6f2ee; margin-top:15px; padding:14px; border:1px solid color-mix(in srgb,var(--regime-color) 34%,#fff); border-left:5px solid var(--regime-color); border-radius:17px; background:linear-gradient(145deg,#fff,var(--regime-soft)); box-shadow:0 10px 28px rgba(95,55,20,.08); }
.market-regime.regime-bottoming { --regime-color:#168866; --regime-soft:#edf9f4; }.market-regime.regime-trend_long { --regime-color:#11855d; --regime-soft:#eefaf5; }.market-regime.regime-trend_short { --regime-color:#3769aa; --regime-soft:#eff5fc; }.market-regime.regime-topping { --regime-color:#c45427; --regime-soft:#fff2e9; }.market-regime.regime-neutral { --regime-color:#766d66; --regime-soft:#f5f3f1; }.market-regime.error { --regime-color:var(--bad); --regime-soft:#fff4f4; }
.market-regime-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }.market-regime-heading h2 { margin:3px 0 0; font-size:17px; line-height:1.35; }.market-regime-badge { flex:0 0 auto; max-width:130px; padding:5px 8px; border-radius:999px; background:#fff; color:var(--regime-color); font-size:9px; font-weight:900; text-align:center; }
.market-regime-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px 9px; margin-top:12px; padding:11px 12px; border-radius:13px; background:var(--regime-color); color:#fff; }.market-regime-hero>strong { min-width:0; font-size:clamp(20px,6vw,27px); line-height:1.3; }.market-regime-hero>span { padding:5px 7px; border:1px solid rgba(255,255,255,.62); border-radius:999px; font-size:9px; font-weight:900; white-space:nowrap; }.market-regime-hero>p { grid-column:1/-1; margin:0; color:rgba(255,255,255,.92); font-size:10px; line-height:1.65; }
.market-regime-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:9px; }.market-regime-metrics>div { display:grid; align-content:start; min-width:0; min-height:66px; padding:8px 9px; border:1px solid rgba(139,111,89,.18); border-radius:11px; background:rgba(255,255,255,.9); }.market-regime-metrics span,.market-regime-metrics strong,.market-regime-metrics small { overflow-wrap:anywhere; }.market-regime-metrics span { color:var(--muted); font-size:8px; font-weight:800; }.market-regime-metrics strong { margin-top:2px; color:var(--regime-color); font-size:13px; line-height:1.35; }.market-regime-metrics small { margin-top:2px; color:var(--muted); font-size:8px; line-height:1.35; }
.market-regime-details { margin-top:8px; overflow:hidden; border:1px solid rgba(139,111,89,.22); border-radius:11px; background:#fff; }.market-regime-details>summary { display:flex; align-items:center; min-height:44px; padding:9px 11px; color:var(--regime-color); cursor:pointer; font-size:10px; font-weight:900; }.market-regime-detail-body { padding:0 11px 11px; border-top:1px solid var(--line); }.market-regime-detail-body h3 { margin:11px 0 5px; color:var(--ink); font-size:10px; }.market-regime-detail-body ul { display:grid; gap:4px; margin:0; padding-left:18px; }.market-regime-detail-body li,.market-us-line { overflow-wrap:anywhere; color:var(--muted); font-size:9px; line-height:1.6; }.market-us-line { margin:9px 0 0; padding:8px; border-radius:9px; background:var(--regime-soft); color:var(--ink); font-weight:800; }.market-source-list a { display:inline-flex; min-height:28px; align-items:center; color:var(--regime-color); font-weight:900; }.market-regime-foot { margin:8px 2px 0; color:var(--muted); font-size:8px; line-height:1.55; }
.market-regime.error>p { margin:10px 0 0; color:var(--muted); font-size:10px; line-height:1.6; }.market-regime.error .secondary-button { min-height:40px; padding:7px 9px; font-size:9px; }.market-regime-skeleton { display:grid; gap:7px; margin-top:12px; }.market-regime-skeleton span { height:18px; border-radius:8px; background:linear-gradient(90deg,#eee8df,#fff,#eee8df); background-size:240% 100%; animation:shimmer 1.4s infinite; }.market-regime-skeleton span:first-child { height:54px; }.market-regime-skeleton span:last-child { width:67%; }
.icon-button, .primary-button, .secondary-button, .close-button { min-height: 44px; border-radius: 13px; font-weight: 800; }
.icon-button { display: grid; grid-template-columns: auto auto; align-items: center; gap: 2px 5px; flex: 0 0 auto; min-width: 70px; padding: 6px 9px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 10px; }
.icon-button > span:first-child { grid-row: span 2; color: var(--purple); font-size: 22px; }
.icon-button strong { color: var(--purple-deep); font-size: 11px; }
.primary-button { padding: 10px 14px; border: 1px solid var(--purple-deep); background: var(--purple-deep); color: #fff; }
.secondary-button { padding: 10px 14px; border: 1px solid var(--line); background: #fff; color: var(--ink); }
.close-button { width: 44px; padding: 0; border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 25px; }
.data-status { display: grid; gap: 7px; margin-top: 16px; padding: 12px; border: 1px solid #efd4ac; border-radius: 15px; background: #fff8ed; }
.data-status.ready { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.data-status dl { display: contents; }
.data-status div { min-width: 0; }
.data-status dt { color: var(--muted); font-size: 10px; }
.data-status dd { overflow-wrap: anywhere; margin: 2px 0 0; font-size: 12px; font-weight: 800; }
.data-status .status-line { grid-column: 1 / -1; display: flex; gap: 7px; min-height: 29px; padding: 6px 8px; border-radius: 9px; background: #fff; font-size: 11px; font-weight: 800; }
.data-status .warning { background: #fff0cf; color: #6f4500; }
.data-status .error { background: #fff0f1; color: #9e2935; }
.daily-review { margin-top:16px; padding:15px; border:1px solid #edc789; border-radius:17px; background:linear-gradient(145deg,#fffaf1,#fff1d8); }
.daily-review-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.daily-review-heading h2 { margin:3px 0 0; font-size:17px; line-height:1.35; }
.daily-review-dates { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:#fff; color:var(--muted); font-size:10px; font-weight:900; }
.daily-review-note { margin:9px 0 0; color:var(--muted); font-size:11px; line-height:1.65; }
.daily-review-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:11px; }
.daily-review-metrics div { min-width:0; padding:9px; border:1px solid rgba(224,167,79,.45); border-radius:11px; background:#fff; }
.daily-review-metrics span,.daily-review-metrics strong { display:block; overflow-wrap:anywhere; }
.daily-review-metrics span { color:var(--muted); font-size:9px; }
.daily-review-metrics strong { margin-top:3px; color:var(--purple-deep); font-size:13px; }
.daily-review-details { display:grid; gap:7px; margin-top:10px; }
.daily-review-details details { overflow:hidden; border:1px solid #efd4ac; border-radius:11px; background:#fff; }
.daily-review-details summary { display:flex; align-items:center; min-height:44px; padding:8px 11px; cursor:pointer; color:var(--purple-deep); font-size:11px; font-weight:900; }
.daily-review-list { display:grid; max-height:390px; overflow:auto; border-top:1px solid #f2dec0; }
.daily-review-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px 10px; min-width:0; padding:9px 11px; border-bottom:1px solid #f7ead7; }
.daily-review-row:last-child { border-bottom:0; }
.daily-review-row > div:first-child { min-width:0; }
.daily-review-row > div:first-child span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.daily-review-row > div:first-child span:first-child { color:var(--muted); font-size:9px; font-weight:900; }
.daily-review-row > div:first-child span:last-child { margin-top:2px; font-size:11px; font-weight:800; }
.daily-review-row > strong { font-size:12px; color:var(--good); }
.daily-review-row > strong.negative { color:var(--bad); }
.daily-review-row > div:last-child { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:4px; }
.daily-review-row > div:last-child:empty { display:none; }
.daily-review-row > div:last-child span { padding:3px 6px; border-radius:999px; background:#fff0cf; color:#765000; font-size:9px; font-weight:900; }
.daily-review-row.unavailable { opacity:.58; }
.daily-review-empty { margin:0; padding:14px; color:var(--muted); font-size:11px; text-align:center; }
.status-skeleton { height: 16px; border-radius: 7px; background: linear-gradient(90deg,#e9e4f8,#f8f6ff,#e9e4f8); background-size: 240% 100%; animation: shimmer 1.4s infinite; }
.status-skeleton.short { width: 64%; }
.candidate-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 10px; }
.candidate-toolbar > div { display: grid; min-width: 0; }
.candidate-toolbar strong { font-size: 17px; }
.candidate-toolbar span { overflow: hidden; color: var(--muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.candidate-toolbar .primary-button { flex: 0 0 auto; }
.class-legend { display: flex; gap: 6px; overflow-x: auto; margin: 0 -2px 12px; padding: 2px 2px 6px; scrollbar-width: none; }
.class-legend::-webkit-scrollbar { display: none; }
.class-legend span { flex: 0 0 auto; padding: 5px 8px; border: 1px solid currentColor; border-radius: 999px; background: #fff; font-size: 9px; font-weight: 800; }
.legend-purple { color: #6747cf; }.legend-yellow { color: var(--yellow); }.legend-blue { color: var(--blue); }.legend-gray { color: #626779; }.legend-red { color: var(--bad); }
.candidate-list { display: grid; gap: 12px; }
.candidate-card { position: relative; min-width: 0; border: 1px solid var(--line); border-left: 5px solid var(--class-color,var(--purple)); border-radius: 17px; background: #fff; box-shadow: 0 8px 24px rgba(35,29,74,.06); }
.candidate-card[data-color="purple"] { --class-color: #7357e8; }.candidate-card[data-color="yellow"] { --class-color: #c98600; }.candidate-card[data-color="blue"] { --class-color: var(--blue); }.candidate-card[data-color="gray"] { --class-color: #7a7f8f; }.candidate-card[data-color="red"] { --class-color: var(--bad); }
.candidate-main { display: block; padding: 13px 12px 12px; border-radius: inherit; text-decoration: none; }
.candidate-main:focus-visible, button:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(223,104,23,.38); outline-offset: 2px; }
.candidate-topline { display: flex; flex-wrap:wrap; align-items: center; gap: 6px; padding-right: 42px; }
.rank { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 9px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 900; }
.classification, .market { padding: 4px 7px; border-radius: 999px; font-size: 9px; font-weight: 900; }
.classification { border: 1px solid var(--class-color); background: #faf8ff; color: var(--class-color); }.market { background: #f2f2f6; color: var(--muted); }
.ceiling-risk-badge { padding:4px 7px; border:1px solid currentColor; border-radius:999px; font-size:9px; font-weight:900; white-space:nowrap; }
.ceiling-risk-badge.high { background:#fff0f1; color:#ad2332; }
.ceiling-risk-badge.medium { background:#fff3d2; color:#7e4b00; }
.watch-button { position: absolute; z-index: 2; top: 10px; right: 10px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--purple); font-size: 23px; }
.watch-button.active { background: var(--lavender); color: var(--purple-deep); }
.candidate-title-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; margin-top: 10px; }
.candidate-title-row > div:first-child { min-width: 0; }.code { color: var(--purple-deep); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.name { overflow-wrap: anywhere; margin: 2px 0 0; font-size: 17px; line-height: 1.4; }.price { display: grid; min-width: 82px; text-align: right; }.price span { color: var(--muted); font-size: 9px; }.price strong { font-size: 16px; }.price em { color: var(--good); font-size: 10px; font-style: normal; font-weight: 800; }.price em.negative { color: var(--bad); }
.score-strip { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fbfaff; }
.score-strip div { display: grid; gap: 2px; min-width: 0; padding: 9px 5px; text-align: center; }.score-strip div + div { border-left: 1px solid var(--line); }.score-strip span { color: var(--muted); font-size: 9px; }.score-strip strong { color: var(--purple-deep); font-size: 15px; }
.compact-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 10px 0 0; }.compact-metrics div { min-width: 0; padding: 8px; border-radius: 10px; background: #f7f7fa; }.compact-metrics dt { color: var(--muted); font-size: 8px; }.compact-metrics dd { overflow: hidden; margin: 2px 0 0; font-size: 11px; font-weight: 800; white-space: nowrap; text-overflow: ellipsis; }
.reason-risk-grid { display: grid; gap: 8px; margin-top: 11px; }.reason-risk-grid > div { min-width: 0; padding: 9px 10px; border-radius: 11px; background: #f7fbf9; }.reason-risk-grid > div + div { background: #fff8f1; }.mini-label { font-size: 9px; font-weight: 900; }.mini-label.good { color: var(--good); }.mini-label.risk { color: var(--yellow); }.reason-risk-grid ul { display: grid; gap: 4px; margin: 5px 0 0; padding-left: 17px; }.reason-risk-grid li { overflow-wrap: anywhere; font-size: 11px; line-height: 1.55; }
.detail-cta { display: flex; justify-content: flex-end; gap: 6px; margin-top: 11px; color: var(--purple-deep); font-size: 11px; font-weight: 900; }
.skeleton-card { min-height: 315px; border-left-color: #d9d6e4; background: linear-gradient(90deg,#f5f3f9,#fff,#f5f3f9); background-size: 240% 100%; animation: shimmer 1.4s infinite; }@keyframes shimmer { to { background-position: -240% 0; } }
.message-card { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; text-align: center; }.message-card strong,.message-card span { display: block; }.message-card span { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.7; }.message-card button { margin-top: 12px; }.candidate-disclaimer { margin: 14px 3px 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.view-icon { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; border-radius: 17px; background: var(--lavender); color: var(--purple-deep); font-size: 25px; font-weight: 900; }.mikan-icon { background:#fff0d6; }.pullback-icon { background: #eaf5ff; color: var(--blue); }.warrant-icon { background: #fff0f1; color: var(--bad); }.watch-icon { background: #fff6d9; color: var(--yellow); }
.view-explainer { display: grid; gap: 3px; margin-top: 14px; padding: 11px 12px; border-radius: 12px; background: #f7f4ff; }.view-explainer strong { color: var(--purple-deep); font-size: 11px; }.view-explainer span { color: var(--muted); font-size: 11px; line-height: 1.6; }.view-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 2px 10px; }.view-toolbar strong { font-size: 17px; }.view-toolbar span { color: var(--muted); font-size: 10px; text-align: right; }
.mikan-explainer { background:#fff6e8; }.mikan-explainer strong { color:#a34d08; }.mikan-caveat { display:grid; gap:4px; margin-top:9px; padding:10px 12px; border:1px solid #efc58e; border-radius:12px; background:#fffdfa; }.mikan-caveat strong { color:#8d4308; font-size:10px; }.mikan-caveat span { color:var(--muted); font-size:10px; line-height:1.6; }
.opening-volume-panel { margin-top:12px; padding:12px; border:1px solid #efc58e; border-radius:15px; background:linear-gradient(145deg,#fffaf1,#fff); }
.intraday-explainer { background:#fff8e8; }
.intraday-explainer strong { color:#b14d08; }
.intraday-icon { color:#d85f0d; }
.opening-volume-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.opening-volume-heading h2 { margin:2px 0 0; font-size:16px; line-height:1.4; }
.opening-volume-status { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:#fff0d8; color:#9a4a08; font-size:8px; font-weight:900; }
.opening-volume-summary,.opening-volume-note { margin:8px 1px 0; color:var(--muted); font-size:9px; line-height:1.6; }
.opening-volume-list { display:grid; gap:7px; margin-top:9px; }
.opening-volume-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; min-height:52px; padding:8px 9px; border:1px solid #f0d092; border-left:4px solid #e8781e; border-radius:11px; background:#fff; text-decoration:none; }
.opening-volume-item.risk { border-color:#efbec4; border-left-color:var(--bad); background:#fff8f8; }
.opening-volume-item.intraday-new:not(.risk) { border-left-color:#e8781e; background:#fffaf2; }
.opening-volume-item.mikan-jump:not(.risk) { border-left-color:#15936b; background:#f7fdf9; }
.opening-volume-item.mikan-jump:not(.risk) b { background:#15936b; }
.opening-volume-item.mikan-jump:not(.risk) em { color:#117453; }
.opening-volume-item > span:first-child { display:flex; align-items:center; gap:7px; min-width:0; }
.opening-volume-item b { display:grid; place-items:center; flex:0 0 23px; width:23px; height:23px; border-radius:7px; background:#e8781e; color:#fff; font-size:9px; }
.opening-volume-item.risk b { background:var(--bad); }
.opening-volume-item strong { overflow:hidden; font-size:11px; white-space:nowrap; text-overflow:ellipsis; }
.opening-volume-item > span:nth-child(2) { grid-column:1/-1; color:var(--muted); font-size:8px; }
.opening-volume-item em { align-self:center; color:#9a4a08; font-size:9px; font-style:normal; font-weight:900; }
.opening-volume-item.risk em { color:#b12c3d; }
.size-filter-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; margin-top:12px; padding:5px; border:1px solid #efc58e; border-radius:14px; background:#fff8eb; }
.size-filter-tabs button { min-width:0; min-height:46px; padding:7px 6px; border:0; border-radius:10px; background:transparent; color:#7e5d3c; font-size:11px; font-weight:900; line-height:1.35; }
.size-filter-tabs button.active { background:#e8781e; color:#fff; box-shadow:0 4px 12px rgba(190,91,14,.18); }
.trade-mode-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; margin-top:12px; padding:5px; border:1px solid #efc58e; border-radius:14px; background:#fff8eb; }
.trade-mode-tabs button { display:grid; place-items:center; gap:1px; min-width:0; min-height:52px; padding:6px 3px; border:0; border-radius:10px; background:transparent; color:#7e5d3c; line-height:1.2; }
.trade-mode-tabs button span { font-size:9px; }
.trade-mode-tabs button strong { font-size:11px; }
.trade-mode-tabs button.active { background:#e8781e; color:#fff; box-shadow:0 4px 12px rgba(190,91,14,.18); }
.mikan-size-note { margin:7px 3px 0; color:var(--muted); font-size:9px; line-height:1.6; }
.size-badge { padding:5px 8px; border-radius:999px; background:#fff0d8; color:#9a4a08; font-size:9px; font-weight:900; }
.special-card[data-size-group="large"] .size-badge { background:#eaf2ff; color:#245b9c; }
.special-list,.warrant-list { display: grid; gap: 12px; }.special-card,.warrant-card { position: relative; min-width: 0; padding: 14px; border: 1px solid var(--line); border-left: 5px solid var(--card-accent,var(--purple)); border-radius: 17px; background: #fff; box-shadow: 0 8px 24px rgba(112,57,18,.07); }.special-card[data-color="purple"] { --card-accent:#7357e8; }.special-card[data-color="yellow"] { --card-accent:#c98600; }.special-card[data-color="blue"] { --card-accent:var(--blue); }.special-card[data-color="gray"] { --card-accent:#7a7f8f; }
.special-top,.warrant-top { display: flex; flex-wrap:wrap; align-items: center; gap: 6px; padding-right: 43px; }.special-rank { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 9px; background: var(--ink); color:#fff; font-size: 12px; font-weight:900; }.status-pill,.risk-pill { padding: 5px 8px; border-radius: 999px; background: #f1ecff; color: var(--purple-deep); font-size: 9px; font-weight: 900; }.special-market { padding: 5px 8px; border-radius: 999px; background:#f2f2f6; color:var(--muted); font-size:9px; font-weight:800; }
.special-heading { display: grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; margin-top:10px; }.special-heading > div { min-width:0; }.special-heading h2,.warrant-card h2 { overflow-wrap:anywhere; margin:2px 0 0; font-size:17px; line-height:1.4; }.special-price { text-align:right; }.special-price span,.special-price strong { display:block; }.special-price span { font-size:9px; color:var(--muted); }.special-price strong { font-size:16px; }.special-price em { font-size:10px; color:var(--good); font-style:normal; font-weight:900; }.special-price em.negative { color:var(--bad); }
.special-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:12px; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fbfaff; }.special-metrics div { display:grid; gap:2px; min-width:0; padding:9px 5px; text-align:center; }.special-metrics div+div { border-left:1px solid var(--line); }.special-metrics span { color:var(--muted); font-size:9px; }.special-metrics strong { overflow:hidden; font-size:13px; white-space:nowrap; text-overflow:ellipsis; }.condition-pair { display:grid; gap:7px; margin-top:10px; }.condition-row { padding:9px 10px; border-radius:10px; background:#f4fbf7; }.condition-row.invalid { background:#fff5ee; }.condition-row span,.condition-row strong { display:block; }.condition-row span { color:var(--muted); font-size:9px; }.condition-row strong { margin-top:2px; font-size:11px; line-height:1.55; }.compact-notes { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:9px; }.compact-notes>div { min-width:0; padding:9px 10px; border-radius:10px; background:#f8f8fb; }.compact-notes span { font-size:9px; font-weight:900; color:var(--good); }.compact-notes>div+div span { color:var(--yellow); }.compact-notes ul { margin:5px 0 0; padding-left:16px; }.compact-notes li { font-size:10px; line-height:1.55; }
.mode-action { display:grid; gap:3px; margin-top:9px; padding:10px 11px; border:1px solid #efc58e; border-radius:11px; background:#fff8eb; }
.mode-action span { color:#8d4308; font-size:9px; font-weight:900; }
.mode-action strong { font-size:13px; }
.mode-action small { color:var(--muted); font-size:9px; line-height:1.55; }
.special-card[data-trade-mode="large_day"] .mode-action { border-color:#b9d2f2; background:#f2f7ff; }
.special-card[data-trade-mode="large_day"] .mode-action span { color:#245b9c; }
.special-card[data-trade-mode="large_swing"] .mode-action { border-color:#b9d9c9; background:#f2faf6; }
.special-card[data-trade-mode="large_swing"] .mode-action span { color:#16704f; }
.special-card .watch-button,.warrant-card .watch-button { top:10px; right:10px; }
.special-detail-link { display:flex; align-items:center; justify-content:flex-end; min-height:44px; margin-top:7px; color:#a34d08; font-size:11px; font-weight:900; text-decoration:none; }
.mobile-detail-toggle { display:none; width:100%; min-height:44px; margin-top:8px; border:1px solid #e7c99f; border-radius:11px; background:#fff9ef; color:#8d4308; font-size:11px; font-weight:900; }
.warrant-legend { display:flex; gap:6px; overflow-x:auto; margin-top:14px; padding-bottom:4px; scrollbar-width:none; }.warrant-legend span { flex:0 0 auto; padding:6px 9px; border-radius:999px; font-size:9px; font-weight:900; }.risk-high { background:#fff0f1; color:#a42432; }.risk-medium { background:#fff3d2; color:#7e4b00; }.risk-low { background:#eaf7f1; color:#0b7853; }.warrant-card { --card-accent:var(--bad); }.warrant-card[data-risk="medium"] { --card-accent:#c98600; }.warrant-card[data-risk="low"] { --card-accent:var(--good); }.warrant-card h2 { margin-top:9px; padding-right:45px; }.warrant-subtitle { margin:3px 0 0; color:var(--muted); font-size:10px; }.risk-pill.high { background:#fff0f1; color:#a42432; }.risk-pill.medium { background:#fff3d2; color:#7e4b00; }.risk-pill.low { background:#eaf7f1; color:#0b7853; }.warrant-summary { margin:10px 0 0; padding:10px; border-radius:10px; background:#f8f7fb; font-size:11px; line-height:1.65; }.warrant-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:10px; }.warrant-metrics div { min-width:0; padding:9px; border:1px solid var(--line); border-radius:10px; }.warrant-metrics span,.warrant-metrics strong { display:block; }.warrant-metrics span { color:var(--muted); font-size:9px; }.warrant-metrics strong { overflow-wrap:anywhere; margin-top:2px; font-size:11px; line-height:1.45; }.warrant-next { margin-top:9px; padding:9px 10px; border-radius:10px; background:#fff8f1; }.warrant-next span,.warrant-next strong { display:block; }.warrant-next span { color:var(--yellow); font-size:9px; font-weight:900; }.warrant-next strong { margin-top:2px; font-size:11px; }.page-watchlist { margin-top:16px; }.full-button { width:100%; margin-top:12px; }
.floor-signal-pill { padding:5px 8px; border-radius:999px; background:#f2f2f6; color:var(--muted); font-size:9px; font-weight:900; }.floor-signal-pill.below,.floor-below-legend { background:#ffe1c2; color:#9b3f00; }.warrant-card[data-floor="below"] { --card-accent:#ef7414; background:#fffaf4; box-shadow:0 9px 28px rgba(212,94,0,.13); }
.warrant-search { display:grid; gap:6px; margin-top:12px; padding:11px; border:1px solid #efc58e; border-radius:13px; background:#fffaf2; }
.warrant-search label { color:#8d4308; font-size:10px; font-weight:900; }
.warrant-search > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.warrant-search input { min-width:0; min-height:44px; padding:9px 11px; border:1px solid var(--line); border-radius:11px; background:#fff; color:var(--ink); font-size:13px; }
.warrant-search button { min-height:44px; padding:8px 12px; border:1px solid #dfb980; border-radius:11px; background:#fff; color:#8d4308; font-size:10px; font-weight:900; }
.warrant-search small { color:var(--muted); font-size:9px; line-height:1.5; }
.source-link { display:inline-flex; align-items:center; min-height:44px; margin-top:8px; padding:8px 2px; color:var(--purple-deep); font-size:11px; font-weight:900; text-decoration:none; }
.warrant-floor-details { margin-top:9px; border:1px solid #ddd5fb; border-radius:11px; background:#faf8ff; }
.warrant-floor-details summary { min-height:44px; padding:13px 11px; color:var(--purple-deep); font-size:11px; font-weight:900; cursor:pointer; }
.warrant-floor-details ul { display:grid; gap:8px; margin:0; padding:0 11px 11px; list-style:none; }
.warrant-floor-details li { display:grid; gap:3px; padding:9px; border-radius:9px; background:#fff; }
.warrant-floor-details li strong { overflow-wrap:anywhere; font-size:10px; }
.warrant-floor-details li span { overflow-wrap:anywhere; color:var(--ink); font-size:11px; line-height:1.6; }
.warrant-floor-details li .floor-comparison { color:var(--muted); font-size:9px; font-weight:800; }.warrant-floor-details li .floor-comparison.below { color:#b14d08; }
.warrant-floor-details li a { color:var(--purple-deep); font-size:10px; font-weight:800; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 12px; color: var(--purple-deep); font-size: 12px; font-weight: 900; text-decoration: none; }.detail-title-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: end; margin-top: 8px; }.detail-title-row h1 { overflow-wrap: anywhere; margin: 2px 0 0; font-size: clamp(23px,7vw,34px); line-height: 1.35; }.detail-scores { margin-bottom: 14px; }.detail-block { margin-top: 10px; padding: 13px; border-radius: 13px; background: #f4fbf7; }.detail-block.risk-block { background: #fff8f1; }.detail-block h2 { margin: 0; color: var(--good); font-size: 13px; }.detail-block.risk-block h2 { color: var(--yellow); }.detail-block ul { display: grid; gap: 6px; margin: 8px 0 0; padding-left: 19px; }.detail-block li { font-size: 12px; line-height: 1.65; }.phase-note { margin-top: 14px; padding: 13px; border: 1px dashed #c9bdfa; border-radius: 13px; background: #f8f5ff; }.phase-note strong { color: var(--purple-deep); font-size: 12px; }.phase-note p { color: var(--muted); font-size: 11px; line-height: 1.7; }.phase-note code { display: block; overflow-wrap: anywhere; color: var(--muted); font-size: 9px; line-height: 1.6; }
.detail-large-context { display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:6px 9px; margin:-3px 0 14px; padding:10px 12px; border:1px solid #efc58e; border-radius:12px; background:#fffaf2; }
.detail-large-context[hidden] { display:none; }
.detail-large-context-title { color:#8d4308; font-size:10px; font-weight:900; }
.detail-large-context strong { padding:4px 7px; border-radius:999px; background:#ef7414; color:#fff; font-size:11px; }
.detail-large-context > span:last-child { min-width:0; color:var(--muted); font-size:10px; line-height:1.5; }
.mobile-feature-tabs { position: fixed; z-index: 30; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(7,1fr); min-height: calc(69px + env(safe-area-inset-bottom)); padding: 6px 3px env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow: 0 -8px 24px rgba(38,28,78,.08); }
.mobile-feature-tabs button { display: grid; place-items: center; align-content: center; gap: 2px; min-width: 0; min-height: 54px; padding:3px; border:0; border-radius: 12px; background:transparent; color: var(--muted); }.mobile-feature-tabs span { font-size: 21px; line-height: 1; }.mobile-feature-tabs strong { font-size: 9px; }.mobile-feature-tabs button.active { background: var(--lavender); color: var(--purple-deep); }
.pagination { display:grid; grid-template-columns:minmax(96px,1fr) auto minmax(96px,1fr); align-items:center; gap:8px; margin:18px 0 4px; padding:10px; border:1px solid var(--line); border-radius:14px; background:#fff8ed; }
.pagination button { min-height:44px; padding:8px 12px; border:1px solid #dfb980; border-radius:11px; background:#fff; color:var(--purple-deep); font-size:11px; font-weight:900; }
.pagination button:last-child { justify-self:stretch; background:var(--purple-deep); color:#fff; }
.pagination button:disabled { cursor:default; opacity:.42; }
.pagination span { color:var(--muted); font-size:10px; font-weight:800; text-align:center; white-space:nowrap; }
.drawer-backdrop { position: fixed; z-index: 50; inset: 0; background: rgba(12,14,34,.48); }.bottom-drawer { position: fixed; z-index: 60; right: 0; bottom: 0; left: 0; max-height: min(88dvh,760px); overflow-y: auto; padding: 8px 14px calc(18px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; background: #fff; box-shadow: 0 -18px 60px rgba(18,16,42,.24); overscroll-behavior: contain; }.drawer-handle { width: 42px; height: 4px; margin: 0 auto 10px; border-radius: 10px; background: #d7d4df; }
.drawer-header { position: sticky; z-index: 1; top: -8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 -2px 12px; padding: 8px 2px; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); }.drawer-header h2 { margin: 2px 0 0; font-size: 21px; }
.filter-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.filter-grid label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 800; }select,textarea { width: 100%; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); }select { min-height: 44px; padding: 8px 30px 8px 10px; font-size: 12px; }textarea { padding: 10px; resize: vertical; font-size: 12px; line-height: 1.5; }
fieldset { margin: 14px 0 0; padding: 10px; border: 1px solid var(--line); border-radius: 13px; }legend { padding: 0 5px; color: var(--muted); font-size: 10px; font-weight: 900; }.check-grid { display: grid; gap: 8px; }.color-checks { grid-template-columns: repeat(2,1fr); }.check-grid label { display: flex; align-items: center; gap: 8px; min-height: 36px; font-size: 12px; }.check-grid input { width: 20px; height: 20px; accent-color: var(--purple); }.drawer-actions { display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px; margin-top: 14px; }body.drawer-open { overflow: hidden; }
.watchlist-items { display: grid; gap: 8px; }.watchlist-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 12px; }.watchlist-row strong,.watchlist-row span { display: block; }.watchlist-row span { overflow: hidden; color: var(--muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }.watchlist-row button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--bad); }.transfer-panel { margin-top: 14px; padding: 11px; border: 1px solid var(--line); border-radius: 13px; }.transfer-panel summary { min-height: 36px; font-size: 12px; font-weight: 800; cursor: pointer; }.transfer-panel p { color: var(--muted); font-size: 10px; line-height: 1.6; }
@media (min-width:700px) { .global-mode-switcher { display:grid; grid-template-columns:auto minmax(300px,1fr) minmax(210px,.65fr); align-items:center; gap:6px 12px; width:min(100% - 40px,940px); padding:8px 10px; }.global-mode-heading { padding:0; }.large-mode-tabs { margin-top:0; }.global-mode-switcher > p { grid-column:1/-1; margin-top:1px; }.desktop-feature-tabs { position:sticky; z-index:19; top:64px; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; width:min(100% - 40px,940px); margin:10px auto 0; padding:5px; border:1px solid var(--line); border-radius:17px; background:rgba(255,255,255,.95); box-shadow:0 10px 28px rgba(38,28,78,.08); backdrop-filter:blur(10px); }.desktop-feature-tabs button { min-height:46px; border:0; border-radius:12px; background:transparent; color:var(--muted); font-size:12px; font-weight:900; }.desktop-feature-tabs button span { margin-right:5px; }.desktop-feature-tabs button.active { background:var(--lavender); color:var(--purple-deep); }.global-mode-switcher[data-mode="small_day"] { grid-template-columns:auto minmax(360px,1fr); }.global-mode-switcher[data-mode="small_day"] > p { grid-column:1/-1; } body[data-size-mode="large"] .desktop-feature-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); } main { padding: 20px 20px 60px; }.ai-panel { padding: 26px; }.market-regime-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }.opening-volume-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.candidate-list,.special-list,.warrant-list { grid-template-columns: repeat(2,minmax(0,1fr)); }.daily-review-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }.reason-risk-grid { grid-template-columns: 1.15fr .85fr; }.bottom-drawer { right: max(20px,calc((100vw - 720px)/2)); left: max(20px,calc((100vw - 720px)/2)); bottom: 20px; border-radius: 24px; }.mobile-feature-tabs { display:none; } }
@media (min-width:1024px) { .candidate-list,.special-list,.warrant-list { grid-template-columns: repeat(3,minmax(0,1fr)); }.filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width:699px) {
  .mode-home { min-height:calc(100dvh - 112px); margin-top:10px; padding-top:24px; }
  .mode-home-cards { margin-top:clamp(30px,7vh,54px); }
  .compact-mode-switcher { grid-template-columns:auto auto; }
  .compact-mode-switcher[data-mode="large_day"],.compact-mode-switcher[data-mode="large_swing"] { grid-template-columns:auto minmax(0,1fr); }
  .compact-mode-switcher .large-mode-tabs { grid-column:1/-1; width:100%; }
  .compact-mode-switcher > p { grid-column:1/-1; padding:0 2px; }
  .global-mode-switcher { margin-top:8px; padding:8px; }
  .global-mode-heading { padding-bottom:5px; }
  .global-mode-tabs button { min-height:43px; }
  .detail-preview { padding-top:14px; }
  .detail-preview .back-link { margin-bottom:7px; }
  .detail-preview .section-kicker { font-size:9px; }
  .detail-mobile-top-card { align-items:center; margin-top:4px; padding:12px; border:1px solid #efc58e; border-radius:15px 15px 0 0; background:#fffaf2; }
  .detail-mobile-top-card .code { font-size:10px; }
  .detail-mobile-top-card h1 { font-size:clamp(25px,8.8vw,34px); line-height:1.2; }
  .detail-mobile-top-card .price strong { font-size:20px; }
  .detail-preview .detail-scores { grid-template-columns:1.35fr .8fr .8fr; margin:0 0 12px; border-radius:0 0 15px 15px; }
  .detail-preview .detail-scores div { min-width:0; padding:10px 5px; }
  .detail-preview .detail-scores span { font-size:9px; }
  .detail-preview .detail-scores strong { overflow-wrap:anywhere; font-size:15px; line-height:1.45; }
  .detail-preview .detail-scores > div:first-child strong { font-size:13px; }
  .detail-large-context { grid-template-columns:auto auto; margin-top:0; }
  .detail-large-context > span:last-child { grid-column:1/-1; }
  .candidate-card .score-strip { grid-template-columns:1fr; }
  .candidate-card .score-strip > div:not(:first-child),.candidate-card .compact-metrics,.candidate-card .reason-risk-grid { display:none; }
  .candidate-card .score-strip div { padding:8px; }
  .candidate-card .detail-cta { min-height:38px; align-items:center; margin-top:5px; }
  .special-card { padding:12px; }
  .special-card .special-metrics { grid-template-columns:1fr; margin-top:9px; }
  .special-card .special-metrics > div:not(:first-child) { display:none; }
  .special-card:not(.mobile-expanded) .condition-pair,.special-card:not(.mobile-expanded) .compact-notes { display:none; }
  .special-card .mobile-detail-toggle { display:block; }
  .special-card[data-kind="mikan"] .mobile-detail-toggle { display:none; }
}
@media (max-width:350px) { .mode-home { width:calc(100% - 16px); padding-inline:10px; }.mode-home-cards { gap:7px; }.mode-home-cards > button { min-height:180px; padding-inline:6px; border-radius:18px; }.mode-home-cards strong { font-size:23px; }.mode-home-cards small { font-size:9px; } }
@media (max-width:350px) { .brand strong { max-width: 145px; font-size: 12px; }.phase-badge { padding-inline: 7px; }.section-heading { display: grid; }.icon-button { grid-template-columns: auto auto auto; justify-content: center; width: 100%; }.icon-button > span:first-child { grid-row: auto; }.candidate-toolbar { align-items: stretch; flex-direction: column; }.candidate-toolbar .primary-button { width: 100%; }.compact-metrics { grid-template-columns: 1fr 1fr; }.compact-metrics div:last-child { grid-column: 1/-1; }.pagination { grid-template-columns:1fr 1fr; }.pagination span { grid-column:1/-1; grid-row:1; }.pagination button { grid-row:2; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
.detail-section { margin-top:14px; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fff; }.detail-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }.detail-section-heading h2 { margin:2px 0 0; font-size:17px; }.chart-actions { display:flex; gap:5px; }.chart-actions button { min-width:40px; min-height:40px; padding:0 9px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--purple-deep); font-weight:900; }.chart-help,.detail-note,.reference-note { color:var(--muted); font-size:10px; line-height:1.65; }.chart-shell { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:linear-gradient(#fff,#fbfaff); }.chart-shell canvas { display:block; width:100%; height:330px; touch-action:none; }.chart-legend { display:flex; flex-wrap:wrap; gap:8px 12px; margin-top:8px; font-size:9px; font-weight:800; }.chart-legend span::before { content:""; display:inline-block; width:12px; height:2px; margin-right:4px; vertical-align:middle; background:currentColor; }.chart-legend .ma5 { color:#7956db; }.chart-legend .ma25 { color:#e09000; }.chart-legend .ma75 { color:#2183b9; }.chart-legend .signal { color:#d43f56; }.detail-accordion { margin-top:10px; border:1px solid var(--line); border-radius:14px; background:#fff; }.detail-accordion summary { min-height:48px; padding:14px; color:var(--ink); font-size:13px; font-weight:900; cursor:pointer; }.detail-accordion[open] summary { border-bottom:1px solid var(--line); }.detail-accordion>p,.detail-accordion>.similar-columns,.detail-accordion>.scenario-grid,.detail-accordion>.contribution-list,.detail-accordion>.assessment-grid,.detail-accordion>.backtest-grid { margin:12px; }.scenario-grid,.assessment-grid,.backtest-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.scenario-grid div,.assessment-grid div,.backtest-grid div { min-width:0; padding:10px; border-radius:10px; background:#f8f7fb; }.scenario-grid dt,.assessment-grid span,.backtest-grid span { color:var(--muted); font-size:9px; }.scenario-grid dd,.assessment-grid strong,.backtest-grid strong { display:block; overflow-wrap:anywhere; margin:3px 0 0; font-size:12px; }.similar-columns { display:grid; gap:12px; }.similar-columns h3 { margin:0 0 6px; font-size:11px; }.similar-list { display:grid; gap:7px; }.similar-case { display:grid; grid-template-columns:minmax(0,1fr) 96px; gap:8px; align-items:center; padding:9px; border-radius:10px; background:#f8f7fb; }.similar-case strong,.similar-case span { display:block; }.similar-case strong { overflow-wrap:anywhere; font-size:10px; }.similar-case span { margin-top:2px; color:var(--muted); font-size:8px; }.similar-case svg { width:96px; height:42px; }.contribution-list { display:grid; gap:6px; }.contribution-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:8px 10px; border-radius:9px; background:#f8f7fb; font-size:10px; }.contribution-item strong.up { color:var(--good); }.contribution-item strong.down { color:var(--bad); }
.material-research { margin:12px; padding:12px; border:1px solid #efc58e; border-radius:13px; background:#fffaf2; }
.material-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.material-heading h3 { margin:2px 0 0; font-size:14px; }
.material-status { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:#f2f2f6; color:var(--muted); font-size:9px; font-weight:900; }
.material-status.success { background:#e8f7ef; color:var(--good); }
.material-status.partial { background:#fff0d8; color:#8d5200; }
.material-list { display:grid; gap:7px; margin-top:9px; }
.material-item { padding:9px 10px; border-left:4px solid #8d8a99; border-radius:10px; background:#fff; }
.material-item.risk { border-left-color:var(--bad); background:#fff7f7; }
.material-item.positive { border-left-color:var(--good); background:#f5fbf8; }
.material-item.earnings { border-left-color:var(--blue); background:#f4faff; }
.material-item>div { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--muted); font-size:8px; }
.material-impact { color:var(--ink); font-weight:900; }
.material-item.risk .material-impact { color:var(--bad); }
.material-item.positive .material-impact { color:var(--good); }
.material-item.earnings .material-impact { color:var(--blue); }
.material-item>a { display:block; overflow-wrap:anywhere; margin-top:5px; color:var(--ink); font-size:11px; font-weight:900; line-height:1.55; text-decoration:none; }
.material-item>a::after { content:" ↗"; color:var(--purple-deep); }
.material-item p { margin:4px 0 0; color:var(--muted); font-size:9px; line-height:1.5; }
.material-empty { margin:0; padding:10px; border-radius:9px; background:#fff; color:var(--muted); font-size:10px; line-height:1.6; }
.material-disclosures { margin-top:10px; border-top:1px solid #eed9ba; }
.material-disclosures>summary { min-height:42px; padding:11px 2px 3px; border:0 !important; color:#8d5200; font-size:10px; }
.external-research-links { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:11px; }
.external-research-links a { display:grid; place-items:center; min-height:44px; padding:8px; border:1px solid #dfb980; border-radius:10px; background:#fff; color:#8d4308; font-size:10px; font-weight:900; text-align:center; text-decoration:none; }
.intraday-signal { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:34px; margin-top:9px; padding:7px 9px; border:1px solid #d8c8ef; border-radius:10px; background:#f8f4ff; color:#604098; }
.intraday-signal strong { overflow-wrap:anywhere; font-size:10px; line-height:1.4; }
.intraday-signal span { flex:0 0 auto; color:var(--muted); font-size:8px; font-weight:800; }
.intraday-signal.hold { border-color:#bcdcc8; background:#f0faf3; color:#187343; }
.intraday-signal.active { border-color:#f0d092; background:#fff8e8; color:#9b5700; }
.intraday-signal.risk { border-color:#efbec4; background:#fff2f3; color:#b12c3d; }
.intraday-signal.unknown { color:var(--muted); }
.trade-plan-panel { --plan-color:#df6817; margin-top:14px; padding:14px; border:1px solid #efc58e; border-left:5px solid var(--plan-color); border-radius:17px; background:linear-gradient(145deg,#fff,#fff7e9); box-shadow:0 10px 28px rgba(145,72,15,.08); }
.trade-plan-panel[data-mode="large_day"] { --plan-color:#276bc2; border-color:#b9d2f2; background:linear-gradient(145deg,#fff,#eef6ff); }
.trade-plan-panel[data-mode="large_swing"] { --plan-color:#16805d; border-color:#b9d9c9; background:linear-gradient(145deg,#fff,#eef9f3); }
.trade-plan-panel[data-mode="small_day"][data-status="caution"] { --plan-color:#b56b00; border-color:#efd098; background:linear-gradient(145deg,#fff,#fff8e8); }
.trade-plan-panel[data-mode="small_day"][data-status="avoid"] { --plan-color:#b12c3d; border-color:#efbec4; background:linear-gradient(145deg,#fff,#fff1f3); }
.trade-plan-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.trade-plan-heading h2 { margin:3px 0 0; font-size:18px; }
.trade-plan-status { flex:0 0 auto; padding:6px 8px; border-radius:999px; background:var(--plan-color); color:#fff; font-size:9px; font-weight:900; }
.trade-plan-summary { margin:9px 0 0; color:var(--ink); font-size:11px; font-weight:800; line-height:1.65; }
.trade-plan-levels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:11px; }
.trade-plan-levels>div { display:grid; align-content:start; min-width:0; min-height:82px; padding:10px; border:1px solid rgba(117,88,64,.15); border-radius:12px; background:rgba(255,255,255,.93); }
.trade-plan-levels span { color:var(--muted); font-size:8px; font-weight:900; }
.trade-plan-levels strong { overflow-wrap:anywhere; margin-top:3px; color:var(--plan-color); font-size:16px; line-height:1.3; }
.trade-plan-levels .stop strong { color:var(--bad); }
.trade-plan-levels .target strong { color:var(--good); }
.trade-plan-levels small { overflow-wrap:anywhere; margin-top:3px; color:var(--muted); font-size:8px; line-height:1.45; }
.trade-plan-rr { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.trade-plan-rr>span { padding:6px 8px; border-radius:999px; background:#fff; color:var(--muted); font-size:9px; font-weight:800; }
.trade-plan-rr strong { color:var(--plan-color); }
.trade-plan-notes { display:grid; gap:7px; margin-top:9px; }
.trade-plan-notes>div { padding:9px 10px; border-radius:11px; background:rgba(255,255,255,.9); }
.trade-plan-notes ul { display:grid; gap:3px; margin:5px 0 0; padding-left:17px; }
.trade-plan-notes li { font-size:10px; line-height:1.55; }
.chart-legend .entry-level { color:#df6817; }.chart-legend .stop-level { color:var(--bad); }.chart-legend .target-level { color:var(--good); }
.intraday-detail summary { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.intraday-detail-status { padding:4px 7px; border-radius:999px; background:#f3edf9; color:#604098; font-size:8px; white-space:nowrap; }
.intraday-detail-status.hold { background:#eaf7ee; color:#187343; }
.intraday-detail-status.active { background:#fff3d9; color:#9b5700; }
.intraday-detail-status.risk { background:#ffeaed; color:#b12c3d; }
.intraday-detail-status.unknown { background:#f1f1f1; color:var(--muted); }
@media (min-width:700px) { .similar-columns { grid-template-columns:repeat(3,minmax(0,1fr)); }.chart-shell canvas { height:380px; } }
@media (min-width:700px) { .trade-plan-levels { grid-template-columns:repeat(4,minmax(0,1fr)); }.trade-plan-notes { grid-template-columns:1fr 1fr; } }
