:root{
  --bg:#eef7ff;--card:#fff;--navy:#0b2455;--navy2:#153c7a;--text:#0d285c;--muted:#657b9b;--line:#d5e5f4;
  --blue:#1678ff;--cyan:#11b7ef;--long:#ef233c;--long2:#ff5264;--longsoft:#ffe8ed;--short:#079463;--short2:#19bd83;--shortsoft:#e8f7f0;
  --amber:#f59e0b;--purple:#7557e8;--shadow:0 10px 28px rgba(18,65,126,.10)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;color:var(--text);background:linear-gradient(150deg,#eaf7ff 0%,#fff 44%,#eef8ff 100%)}button{font:inherit}
.app-shell{width:min(100%,540px);margin:0 auto;min-height:100vh;padding:16px 13px 30px;background:rgba(255,255,255,.78)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.brand-wrap{display:flex;align-items:center;gap:10px;min-width:0}.logo{width:54px;height:54px;border-radius:15px;object-fit:cover;box-shadow:0 0 0 1px rgba(22,120,255,.22),0 8px 20px rgba(15,91,177,.18)}.brand{font-size:28px;font-weight:950;font-style:italic;letter-spacing:-1.2px;color:var(--navy);line-height:1}.brand span{color:#129cff}.subtitle{font-size:11px;color:var(--muted);font-weight:800;margin-top:5px}.top-actions{display:flex;gap:7px}.ghost-btn{width:40px;height:40px;border-radius:12px;border:1px solid #cfe0ef;background:#fff;color:var(--navy);font-size:21px;box-shadow:0 4px 12px rgba(18,65,126,.08)}.install-btn{border:0;background:linear-gradient(135deg,#1678ff,#11b7ef);color:#fff;border-radius:12px;padding:10px 12px;font-weight:900;font-size:12px;box-shadow:0 7px 17px rgba(22,120,255,.24)}
.market-card{border-radius:18px;border:1px solid #d7e9f7;background:linear-gradient(135deg,#f4fbff 0%,#fff 55%,#fff5f6 100%);padding:15px;box-shadow:var(--shadow)}.market-kicker{font-size:12px;color:#1678ff;font-weight:950}.market-bias{font-size:20px;font-weight:950;color:var(--navy);margin:7px 0 10px}.market-meta{display:flex;flex-wrap:wrap;gap:7px}.market-meta span{border-radius:999px;background:#eaf5ff;border:1px solid #d2e9ff;color:#22598c;padding:6px 9px;font-size:11px;font-weight:900}
.engine-row{display:flex;gap:7px;overflow:auto;padding:10px 1px 2px}.engine{white-space:nowrap;border:1px solid #d9e8f4;background:#fff;color:#547297;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900}.engine.ok{background:#ecfbf4;color:#08764f;border-color:#bfe9d8}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#e9f1fb;padding:5px;border-radius:15px;margin:12px 0 10px;position:sticky;top:6px;z-index:8;box-shadow:0 8px 20px rgba(18,65,126,.08)}.tab{border:0;border-radius:11px;background:transparent;padding:11px 4px;color:#607695;font-weight:950}.tab.active[data-tab=long]{color:#fff;background:linear-gradient(135deg,var(--long2),var(--long));box-shadow:0 5px 14px rgba(239,35,60,.24)}.tab.active[data-tab=short]{color:#fff;background:linear-gradient(135deg,var(--short2),var(--short));box-shadow:0 5px 14px rgba(7,148,99,.24)}.tab.active[data-tab=factors]{color:#fff;background:linear-gradient(135deg,#1678ff,#11b7ef);box-shadow:0 5px 14px rgba(22,120,255,.24)}
.tab-panel{display:none}.tab-panel.active{display:block}.section-note{font-size:12px;line-height:1.55;color:#536b8d;background:#fff;border:1px solid #d9e8f4;border-radius:13px;padding:10px 11px;margin-bottom:9px;box-shadow:0 4px 14px rgba(18,65,126,.05)}
.stock-list{display:grid;gap:11px}.stock-card{background:#fff;border:1px solid #d8e6f2;border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(18,65,126,.07);cursor:pointer}.stock-card.primary-long{border-left:6px solid var(--long);background:linear-gradient(105deg,#fff6f7 0,#fff 25%)}.stock-card.primary-short{border-left:6px solid var(--short);background:linear-gradient(105deg,#f3fff9 0,#fff 25%)}
.stock-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rank{font-size:11px;font-weight:950;color:#557098}.stock-name{font-size:21px;font-weight:950;color:var(--navy)}.ticker{font-size:12px;color:#6c82a4;margin-left:5px}.price{font-size:20px;font-weight:950;color:#09214d;text-align:right}.score{font-size:12px;font-weight:950;text-align:right;margin-top:2px}.score.long{color:var(--long)}.score.short{color:var(--short)}.thesis{font-size:12.5px;line-height:1.55;color:#4f6688;margin-top:8px}
.dual-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.scenario{border-radius:13px;padding:10px;border:1px solid}.scenario.long{background:var(--longsoft);border-color:#ffd1d7}.scenario.short{background:var(--shortsoft);border-color:#c9efdf}.scenario-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;font-weight:950}.scenario.long .scenario-head{color:var(--long)}.scenario.short .scenario-head{color:var(--short)}.priority{font-size:9px;padding:3px 5px;border-radius:999px;background:#fff;border:1px solid currentColor}.scenario-line{margin-top:7px}.scenario-line .k{font-size:9px;color:#7184a1;font-weight:800}.scenario-line .v{font-size:11px;color:#102b6a;font-weight:950;margin-top:2px;line-height:1.3}.tap-hint{font-size:10px;color:#7890ae;text-align:right;margin-top:8px;font-weight:800}
.factor-grid{display:grid;gap:10px}.factor-group{background:#fff;border:1px solid #d8e6f2;border-radius:16px;padding:14px;box-shadow:0 6px 18px rgba(18,65,126,.06)}.factor-group h3{margin:0 0 9px;font-size:16px;color:var(--navy)}.factor-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px dashed #d6e4f1;font-size:12px}.factor-item:first-of-type{border-top:0}.tag{font-size:10px;font-weight:950;padding:4px 7px;border-radius:999px}.tag.blue{background:#eaf4ff;color:#1678ff}.tag.purple{background:#f2edff;color:#7557e8}.tag.cyan{background:#e8f9fd;color:#078ca9}.tag.amber{background:#fff5df;color:#a56500}
.rules-card{margin-top:13px;background:linear-gradient(135deg,#f6fbff,#fff);border:1px solid #d8e7f3;border-radius:17px;padding:15px;box-shadow:var(--shadow)}.section-title{font-weight:950;color:var(--navy);margin-bottom:7px}.rule{font-size:12.5px;line-height:1.65;color:#4f6688}footer{text-align:center;color:#7c8faa;font-size:10.5px;margin-top:17px}
.modal{position:fixed;inset:0;display:none;z-index:60}.modal.show{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(5,17,35,.52)}.modal-sheet{position:absolute;left:0;right:0;bottom:0;margin:auto;width:min(100%,540px);max-height:88vh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:22px 17px 30px}.close-btn{position:absolute;right:13px;top:11px;width:34px;height:34px;border:0;border-radius:50%;background:#edf5ff;color:#244d80;font-size:24px}.detail-title{font-size:26px;font-weight:950;color:var(--navy)}.detail-sub{font-size:12px;color:#7184a1;margin-top:3px}.detail-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.detail-scenario{border-radius:15px;padding:12px;border:1px solid}.detail-scenario.long{background:var(--longsoft);border-color:#ffcbd2}.detail-scenario.short{background:var(--shortsoft);border-color:#c2ead9}.detail-scenario h3{margin:0 0 8px;font-size:15px}.detail-scenario.long h3{color:var(--long)}.detail-scenario.short h3{color:var(--short)}.drow{padding:6px 0;border-top:1px dashed rgba(71,103,142,.18)}.drow:first-of-type{border-top:0}.drow .k{font-size:10px;color:#7385a0}.drow .v{font-size:12px;color:#0f2a5c;font-weight:950;margin-top:2px}.why{font-size:12.5px;line-height:1.65;color:#47617f;margin-top:13px;background:#f7fbff;border:1px solid #e0edf7;border-radius:13px;padding:11px}.detail-score{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#0b2455,#185aa8);color:#fff;padding:12px 13px;border-radius:14px;margin-top:12px}.detail-score b{font-size:22px}
@media(max-width:390px){.app-shell{padding-left:11px;padding-right:11px}.brand{font-size:24px}.logo{width:49px;height:49px}.market-bias{font-size:18px}.dual-grid,.detail-two{grid-template-columns:1fr 1fr}.scenario{padding:9px 8px}.scenario-line .v{font-size:10.5px}}
/* V6.2 live-data only: keep locked homepage layout intact */
.rank{white-space:nowrap}.ghost-btn:disabled{opacity:.55}.market-meta span:first-child{max-width:100%;overflow:hidden;text-overflow:ellipsis}.stock-card .tap-hint{font-weight:700}

/* V6.3 Auto Live + full stock analysis */
.empty,.loading-card,.error-card{background:#fff;border:1px solid #d8e6f2;border-radius:14px;padding:16px;color:#607695;font-size:12px;line-height:1.6;text-align:center}.error-card{background:#fff7f7;color:#9b2430;border-color:#ffd0d5}.loading-card b{font-size:18px;color:var(--navy)}
.search-box{display:grid;grid-template-columns:1fr auto;gap:8px;margin:15px 0 10px}.search-box input{min-width:0;border:1px solid #cbddec;border-radius:13px;padding:13px 12px;font-size:16px;color:var(--navy);outline:none}.search-box input:focus{border-color:#3b91ff;box-shadow:0 0 0 3px rgba(22,120,255,.10)}.search-box button{border:0;border-radius:13px;background:linear-gradient(135deg,#1678ff,#11b7ef);color:#fff;font-weight:950;padding:0 15px}.search-results{display:grid;gap:7px}.search-result{width:100%;border:1px solid #d8e6f2;background:#fff;border-radius:13px;padding:12px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--navy)}.search-result span:first-child{display:flex;align-items:baseline;gap:7px}.search-result b{font-size:16px}.search-result small{color:#7890ae;font-weight:800}
.analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.verdict{font-size:13px;font-weight:950;padding:7px 10px;border-radius:999px;background:#eef4fb;color:#5f7390}.verdict.long{background:var(--longsoft);color:var(--long);border:1px solid #ffd1d7}.verdict.short{background:var(--shortsoft);color:var(--short);border:1px solid #c9efdf}.analysis-status{margin-top:10px;border-radius:12px;padding:9px 11px;background:#eef6ff;color:#15569a;font-weight:950;font-size:12px}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.scorebox{border-radius:14px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between}.scorebox span{font-size:11px;font-weight:900}.scorebox b{font-size:23px}.scorebox.long{background:var(--longsoft);color:var(--long);border:1px solid #ffd1d7}.scorebox.short{background:var(--shortsoft);color:var(--short);border:1px solid #c9efdf}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.metric{background:#f8fbff;border:1px solid #e1ecf5;border-radius:13px;padding:10px}.mk{font-size:9.5px;color:#7b8ea8;font-weight:900}.mv{font-size:14px;color:#102b6a;font-weight:950;margin-top:4px}.ms{font-size:9px;color:#8295ae;margin-top:2px}.autopsy{margin-top:12px;border:1px solid #ffe1b0;background:#fffaf0;border-radius:14px;padding:11px}.autopsy h3{margin:0 0 7px;font-size:13px;color:#995f00}.risk{font-size:11.5px;line-height:1.55;color:#76571e;margin-top:4px}
@media(max-width:390px){.metrics{grid-template-columns:1fr 1fr}.scorebox b{font-size:21px}.search-box{grid-template-columns:1fr auto}}

/* =========================================================
   EdgePilot V6.4 — POLISHED UI LOCK
   Visual refinement only. DOM, data hooks and interaction IDs stay intact.
   ========================================================= */
:root{
  --bg:#f3f7fb;
  --card:#ffffff;
  --navy:#10264d;
  --navy2:#183f78;
  --text:#12284c;
  --muted:#71839d;
  --line:#dce5ef;
  --blue:#2563eb;
  --cyan:#0ea5e9;
  --long:#e5253f;
  --long2:#ef3e55;
  --longsoft:#ffe8ed;
  --short:#0b8f63;
  --short2:#16a879;
  --shortsoft:#e8f7f0;
  --shadow:0 8px 24px rgba(16,38,77,.075);
  --shadow-soft:0 3px 12px rgba(16,38,77,.055);
}
html,body{
  background:#eef3f8;
}
body{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.app-shell{
  width:min(100%,540px);
  padding:16px 14px 34px;
  background:linear-gradient(180deg,#f8fbfe 0,#f4f7fb 100%);
  box-shadow:0 0 0 1px rgba(16,38,77,.03);
}
.topbar{
  margin-bottom:14px;
  padding:2px 2px 0;
}
.logo{
  width:52px;height:52px;border-radius:16px;
  box-shadow:0 7px 18px rgba(16,38,77,.14),0 0 0 1px rgba(16,38,77,.06);
}
.brand{
  font-size:27px;
  letter-spacing:-1px;
  font-weight:900;
}
.brand span{color:#1675e8}
.subtitle{
  color:#7a8ba4;
  letter-spacing:.45px;
  font-size:10.5px;
  margin-top:6px;
}
.ghost-btn{
  width:42px;height:42px;border-radius:14px;
  border:1px solid #d9e3ed;background:#fff;
  box-shadow:var(--shadow-soft);
  font-size:20px;
}
.ghost-btn:active,.install-btn:active,.tab:active,.stock-card:active{transform:translateY(1px)}
.install-btn{
  background:#0f58bc;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 6px 16px rgba(15,88,188,.18);
}
.market-card{
  position:relative;
  overflow:hidden;
  border-radius:20px;
  border:1px solid #dbe6f1;
  background:#fff;
  padding:16px 16px 15px;
  box-shadow:var(--shadow);
}
.market-card:before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,#1f6fe5,#16a0dd);
}
.market-kicker{
  font-size:11px;
  color:#4075bd;
  letter-spacing:.25px;
}
.market-bias{
  font-size:20px;
  line-height:1.3;
  margin:6px 0 11px;
  letter-spacing:-.3px;
}
.market-meta{gap:6px}
.market-meta span{
  background:#f3f7fc;
  border:1px solid #e0e8f1;
  color:#4f698d;
  padding:6px 9px;
  font-size:10.5px;
  font-weight:850;
}
.engine-row{
  gap:6px;
  padding:9px 0 1px;
  scrollbar-width:none;
}
.engine-row::-webkit-scrollbar{display:none}
.engine{
  border:1px solid #dce6ef;
  background:#fff;
  color:#607897;
  padding:7px 10px;
  font-size:10.5px;
  box-shadow:0 1px 0 rgba(16,38,77,.02);
}
.tabs{
  gap:4px;
  background:#e9eef5;
  padding:4px;
  border-radius:14px;
  margin:12px 0 11px;
  top:5px;
  box-shadow:0 7px 18px rgba(16,38,77,.08),0 0 0 1px rgba(16,38,77,.025);
}
.tab{
  min-height:42px;
  border-radius:10px;
  padding:10px 4px;
  color:#647995;
  font-size:13px;
  letter-spacing:.05px;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
}
.tab.active[data-tab=long]{
  background:#e52f48;
  box-shadow:0 4px 11px rgba(229,47,72,.19);
}
.tab.active[data-tab=short]{
  background:#0d9064;
  box-shadow:0 4px 11px rgba(13,144,100,.18);
}
.tab.active[data-tab=factors]{
  background:#1f67cc;
  box-shadow:0 4px 11px rgba(31,103,204,.18);
}
.section-note{
  border:0;
  border-left:3px solid #c9d7e7;
  border-radius:10px;
  padding:8px 10px;
  margin-bottom:9px;
  background:#f8fafc;
  box-shadow:none;
  color:#667b98;
}
.stock-list{gap:10px}
.stock-card{
  position:relative;
  border:1px solid #dce5ee;
  border-radius:17px;
  padding:14px 14px 13px;
  box-shadow:0 5px 16px rgba(16,38,77,.055);
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.stock-card:hover{box-shadow:0 8px 22px rgba(16,38,77,.08)}
.stock-card.primary-long{
  border-left:4px solid var(--long);
  background:linear-gradient(90deg,#fff8f9 0,#fff 26%);
}
.stock-card.primary-short{
  border-left:4px solid var(--short);
  background:linear-gradient(90deg,#f6fcf9 0,#fff 26%);
}
.rank{
  font-size:10px;
  letter-spacing:.25px;
  color:#7c8da5;
}
.stock-name{
  font-size:20px;
  letter-spacing:-.25px;
  color:#12284c;
}
.ticker{color:#8796aa;font-size:11px}
.price{font-size:21px;letter-spacing:-.2px;color:#0f2446}
.score{font-size:11px;margin-top:3px}
.thesis{
  color:#5f7391;
  font-size:12px;
  line-height:1.55;
  margin-top:7px;
}
.dual-grid{gap:8px;margin-top:10px}
.scenario{
  border-radius:12px;
  padding:10px;
  border-width:1px;
}
.scenario.long{background:#fff7f8;border-color:#f5cfd5}
.scenario.short{background:#f5fbf8;border-color:#cfe9dd}
.scenario-head{font-size:11.5px}
.priority{
  font-size:8.5px;
  padding:3px 6px;
  background:rgba(255,255,255,.78);
}
.scenario-line{margin-top:6px}
.scenario-line .k{font-size:8.8px;color:#8291a5;letter-spacing:.1px}
.scenario-line .v{font-size:11.2px;color:#1a3157;line-height:1.34}
.tap-hint{font-size:9.5px;color:#8a99ad;margin-top:7px}
.factor-group{
  border:1px solid #dce5ee;
  border-radius:16px;
  padding:14px;
  box-shadow:var(--shadow-soft);
}
.factor-group h3{font-size:15px}
.factor-item{border-top-color:#e4ebf2;color:#425d7d}
.rules-card{
  margin-top:12px;
  background:#fff;
  border:1px solid #dce5ee;
  border-radius:17px;
  padding:14px;
  box-shadow:var(--shadow-soft);
}
.section-title{font-size:14px;letter-spacing:.05px}
.rule{font-size:12px;line-height:1.62;color:#617690}
footer{color:#8b99ab;font-size:10px;margin-top:18px}
.modal-backdrop{background:rgba(9,21,39,.50);backdrop-filter:blur(2px)}
.modal-sheet{
  width:min(100%,540px);
  border-radius:26px 26px 0 0;
  padding:23px 16px 32px;
  box-shadow:0 -18px 45px rgba(9,21,39,.18);
}
.modal-sheet:before{
  content:"";display:block;width:42px;height:4px;border-radius:99px;background:#d7e0e9;margin:-11px auto 15px;
}
.close-btn{
  right:14px;top:13px;
  background:#f1f5f9;color:#526b8b;
}
.detail-title{font-size:25px;letter-spacing:-.5px}
.detail-sub{color:#8493a7}
.detail-scenario{border-radius:14px;padding:12px}
.detail-score{
  background:#102a55;
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 7px 18px rgba(16,42,85,.15);
}
.why{background:#f8fafc;border-color:#e3e9f0;color:#536b87}
.empty,.loading-card,.error-card{
  border-radius:14px;
  border-color:#dce5ee;
  box-shadow:var(--shadow-soft);
}
.search-box input{
  border:1px solid #d4dfe9;
  border-radius:13px;
  background:#fdfefe;
  color:#12284c;
  box-shadow:inset 0 1px 0 rgba(16,38,77,.02);
}
.search-box input:focus{
  border-color:#6ea4ea;
  box-shadow:0 0 0 3px rgba(37,99,235,.08);
}
.search-box button{
  background:#1f67cc;
  box-shadow:0 5px 13px rgba(31,103,204,.16);
}
.search-result{
  border-color:#dde6ef;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(16,38,77,.035);
}
.analysis-status{
  background:#f0f5fb;
  color:#285d9c;
  border:1px solid #dce7f4;
}
.scorebox{border-radius:13px}
.scorebox.long{background:#fff6f7;border-color:#f4d1d6}
.scorebox.short{background:#f4fbf8;border-color:#d2e8de}
.metric{
  background:#fafcfe;
  border-color:#e3eaf1;
  border-radius:12px;
}
.mk{color:#8492a6}
.mv{color:#18355f}
.ms{color:#91a0b3}
.autopsy{
  border-color:#eadbbd;
  background:#fffaf2;
}
.autopsy h3{color:#8a5a12}
.risk{color:#765d2f}
@media(max-width:390px){
  .app-shell{padding-left:11px;padding-right:11px}
  .brand{font-size:24px}
  .logo{width:48px;height:48px}
  .market-bias{font-size:18px}
  .stock-name{font-size:19px}
  .price{font-size:20px}
}

/* V6.8 — data hardening only; homepage layout remains locked */
.analysis-livebar{display:flex;justify-content:space-between;align-items:center;margin:0 44px 10px 0;padding:7px 10px;border-radius:999px;background:#f3f7fc;color:#6e829f;font-size:10px;font-weight:900}
.decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.decision-box{background:#f8fbff;border:1px solid #dfeaf4;border-radius:13px;padding:10px;text-align:center;color:#18376a}.decision-box span{display:block;font-size:9px;color:#7890ad;font-weight:900}.decision-box b{display:inline-block;margin-top:4px;font-size:21px}.decision-box small{font-size:9px;color:#8b9ab0}.decision-box.good{background:#f4fbf8;border-color:#d4eadf}.decision-box.mid{background:#fffaf0;border-color:#f0dfbb}.decision-box.bad{background:#fff6f7;border-color:#f1d4d8}.decision-box .range-value{font-size:13px;line-height:1.25}
.analysis-status.status-risk{background:#fff5e8;color:#935400;border:1px solid #f2d5a2}.analysis-status.status-blocked{background:#fff1f2;color:#9b2430;border:1px solid #f2cbd0}.analysis-status.status-normal{border:1px solid #d8e8f6}
.autopsy.exposed{background:#fff7f7;border-color:#f1d3d7}.autopsy.exposed h3{color:#9c3440}.data-health{margin-top:12px;border:1px solid #dce8f2;background:#f8fbfe;border-radius:14px;padding:11px;font-size:11px;line-height:1.6;color:#5e7390}.warn-text,.api-warn{color:#b35d00!important;font-weight:950}.analysis-warning{margin:0 0 10px;padding:10px 12px;border-radius:12px;border:1px solid #f0d7a4;background:#fff9ec;color:#8b5c00;font-size:11px;font-weight:800;line-height:1.5}
@media(max-width:390px){.decision-grid{grid-template-columns:1fr 1fr}.decision-box:last-child{grid-column:1/-1}.analysis-livebar{margin-right:40px}}


/* =========================================================
   EdgePilot V6.8 MOBILE APP — phone/PWA shell only
   Keeps the locked visual language and trading logic intact.
   ========================================================= */
html{height:100%;overscroll-behavior-y:none;background:#eef3f8}
body{min-height:100%;min-height:100dvh;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;padding:0;margin:0}
button,.stock-card,.search-result{touch-action:manipulation}
button{min-height:44px}
.app-shell{
  width:100%;max-width:540px;min-height:100dvh;
  padding-top:max(12px,env(safe-area-inset-top));
  padding-bottom:calc(28px + env(safe-area-inset-bottom));
}
.topbar{position:relative;z-index:12}
.install-btn{min-height:44px;white-space:nowrap}
.ghost-btn{min-width:44px;min-height:44px}
.tabs{top:max(5px,env(safe-area-inset-top));}
.modal-sheet{
  max-height:calc(92dvh - env(safe-area-inset-top));
  padding-bottom:calc(26px + env(safe-area-inset-bottom));
  overscroll-behavior:contain;
}
.search-box input{min-height:46px;font-size:16px}
.search-box button{min-height:46px;min-width:66px}

@media(max-width:430px){
  .app-shell{padding-left:10px;padding-right:10px}
  .topbar{gap:7px;margin-bottom:10px}
  .brand-wrap{gap:8px}
  .logo{width:46px;height:46px;border-radius:14px}
  .brand{font-size:23px;letter-spacing:-.8px}
  .subtitle{font-size:9.5px;margin-top:4px;letter-spacing:.25px}
  .top-actions{gap:5px}
  .install-btn{padding:8px 10px;font-size:11px;border-radius:12px}
  .ghost-btn{width:44px;height:44px;border-radius:12px}
  .market-card{padding:13px 13px 12px;border-radius:17px}
  .market-bias{font-size:18px;margin:5px 0 9px}
  .market-meta span{font-size:10px;padding:5px 8px}
  .engine-row{padding-top:8px}
  .engine{font-size:10px;padding:6px 9px}
  .tabs{margin:10px 0 9px;border-radius:13px}
  .tab{font-size:12px;min-height:44px}
  .section-note{font-size:11px;padding:8px 9px}
  .stock-card{padding:12px 11px;border-radius:15px}
  .stock-name{font-size:19px}.price{font-size:19px}
  .thesis{font-size:11.5px}
  .dual-grid{gap:6px}
  .scenario{padding:8px 7px}
  .scenario-head{font-size:10.5px}
  .scenario-line .k{font-size:8.2px}
  .scenario-line .v{font-size:10.2px;overflow-wrap:anywhere}
  .tap-hint{font-size:9px}
  .rules-card{padding:12px}.rule{font-size:11.5px}
  .modal-sheet{width:100%;border-radius:22px 22px 0 0;padding-left:14px;padding-right:14px}
  .detail-title{font-size:23px}
}

@media(max-width:350px){
  .brand{font-size:21px}.subtitle{font-size:9px}
  .install-btn{padding:7px 8px;font-size:10px}
  .dual-grid{grid-template-columns:1fr}
  .detail-two{grid-template-columns:1fr}
}

@media(display-mode:standalone){
  .app-shell{padding-top:max(14px,env(safe-area-inset-top))}
  body{background:#f4f7fb}
  .install-btn{display:none!important}
}


/* =========================================================
   EdgePilot V7.0 — PREMIUM PRO UI
   Institutional-grade visual layer. Same core workflow.
   ========================================================= */
:root{--ink:#071a36;--ink2:#0d2d59;--electric:#2f7df4;--aqua:#36c4e8;--surface:#ffffff;--surface2:#f5f8fc;--hair:#dce5ef;--shadow-pro:0 18px 45px rgba(6,31,67,.10);--shadow-card:0 9px 26px rgba(6,31,67,.07)}
html,body{background:#edf2f7;color:var(--ink)}
body{position:relative;overflow-x:hidden}.ambient{position:fixed;pointer-events:none;border-radius:50%;filter:blur(20px);opacity:.45;z-index:0}.ambient-a{width:360px;height:360px;right:-140px;top:-140px;background:radial-gradient(circle,#b9dcff 0,rgba(185,220,255,0) 68%)}.ambient-b{width:300px;height:300px;left:-160px;bottom:10%;background:radial-gradient(circle,#c9f2ec 0,rgba(201,242,236,0) 70%)}
.app-shell{position:relative;z-index:1;width:min(100%,1160px);max-width:1160px;padding:18px clamp(12px,2.4vw,28px) 42px;background:linear-gradient(180deg,rgba(250,252,255,.96),rgba(243,247,251,.98));box-shadow:0 0 0 1px rgba(7,26,54,.03)}
.topbar{padding:4px 2px 8px}.logo{width:54px;height:54px;border-radius:17px;box-shadow:0 10px 28px rgba(8,41,85,.18),0 0 0 1px rgba(8,41,85,.06)}.brand{font-style:normal;font-size:29px;font-weight:950;letter-spacing:-1.2px;color:#071a36}.brand span{background:linear-gradient(135deg,#2d73ea,#28b7df);-webkit-background-clip:text;background-clip:text;color:transparent}.subtitle{font-size:10px;letter-spacing:1.05px;color:#73859c}.install-btn{background:linear-gradient(135deg,#0c2f61,#1f68c7);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 22px rgba(12,47,97,.20)}.ghost-btn{position:relative;background:#fff;border:1px solid #d7e2ec;box-shadow:0 7px 18px rgba(6,31,67,.08)}.search-glyph{display:block;width:15px;height:15px;border:2px solid #244c7c;border-radius:50%;margin:auto;position:relative}.search-glyph:after{content:"";position:absolute;width:7px;height:2px;background:#244c7c;right:-5px;bottom:-2px;transform:rotate(45deg);border-radius:4px}
.market-card{border:0;border-radius:26px;padding:20px;background:radial-gradient(circle at 88% 12%,rgba(54,196,232,.22),transparent 28%),linear-gradient(135deg,#071a36 0%,#0c3268 58%,#145ca6 100%);box-shadow:0 20px 48px rgba(7,26,54,.20);color:#fff;overflow:hidden}.market-card:before{display:none}.market-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.market-kicker{color:#8fcef9;font-size:10.5px;letter-spacing:1.2px}.live-dot{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:900;color:#b8d8fb;letter-spacing:.8px}.live-dot i{width:7px;height:7px;border-radius:50%;background:#48e0b4;box-shadow:0 0 0 5px rgba(72,224,180,.10)}.market-bias{color:#fff;font-size:25px;letter-spacing:-.7px;margin:9px 0 17px}.market-pulse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.pulse-box{padding:12px;border-radius:16px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.10);backdrop-filter:blur(9px)}.pulse-box span{display:block;font-size:9px;color:#93b6df;font-weight:850;letter-spacing:.5px}.pulse-box b{display:block;margin-top:5px;font-size:18px;color:#fff;letter-spacing:-.2px}.pulse-box small{display:block;margin-top:3px;font-size:8.5px;color:#9bb9da}.market-meta{margin-top:12px}.market-meta span{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12);color:#c8def6}
.engine-row{gap:7px;padding:11px 1px 3px}.engine{background:rgba(255,255,255,.86);border:1px solid #dae4ed;color:#47627f;box-shadow:0 4px 14px rgba(6,31,67,.045)}.engine.ok{background:#eafaf4;color:#087650;border-color:#c7eadc}
.tabs{max-width:640px;margin:13px 0 12px;background:#e7edf4;border:1px solid #dce4ed;border-radius:16px;padding:4px;box-shadow:0 8px 20px rgba(6,31,67,.07)}.tab{display:flex;align-items:center;justify-content:center;gap:7px;color:#64758a}.tab-dot{width:7px;height:7px;border-radius:50%}.long-dot{background:var(--long)}.short-dot{background:var(--short)}.tab.active[data-tab=long],.tab.active[data-tab=short],.tab.active[data-tab=factors]{box-shadow:0 7px 17px rgba(6,31,67,.14)}
.section-note{max-width:880px;background:transparent;border:0;border-left:2px solid #b9c7d8;border-radius:0;padding:4px 0 4px 10px;color:#6c7d92;box-shadow:none}.stock-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stock-card{position:relative;overflow:hidden;border:1px solid #dbe4ee;border-radius:22px;padding:16px;background:#fff;box-shadow:var(--shadow-card);transition:.18s ease}.stock-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(6,31,67,.10)}.stock-card:first-child{grid-column:1/-1}.stock-card.primary-long{border-color:#f1c4cd;background:linear-gradient(135deg,#ffeef2 0%,#fff5f7 58%,#ffffff 100%)}.stock-card.primary-short{border-color:#c1e5d5;background:linear-gradient(135deg,#eaf8f2 0%,#f4fbf8 58%,#ffffff 100%)}.card-rail{position:absolute;left:0;top:0;bottom:0;width:4px;background:#d2dce8}.primary-long .card-rail{background:linear-gradient(180deg,#ff6d7c,#d91f39)}.primary-short .card-rail{background:linear-gradient(180deg,#31c68d,#078e63)}.stock-ident{min-width:0}.rank{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1px;color:#91a0b2}.rank span{display:inline-flex;width:26px;height:26px;border-radius:9px;align-items:center;justify-content:center;background:#eff4f8;color:#315174;font-weight:950;letter-spacing:0}.stock-name{font-size:22px;color:#0a2448;margin-top:5px}.ticker{font-size:10.5px;color:#8a99aa}.status-line{display:flex;gap:6px;align-items:center;margin-top:7px}.setup-grade{display:inline-flex;align-items:center;justify-content:center;width:25px;height:21px;border-radius:7px;font-size:10px;font-weight:950}.grade-a{background:#e8f8f1;color:#087452}.grade-b{background:#eef4fc;color:#2b65aa}.grade-c{background:#fff5e7;color:#a36200}.trigger-pill{font-size:9px;font-weight:900;padding:4px 7px;border-radius:999px;background:#f1f5f8;color:#657990}.trigger-pill.long{background:#fff0f2;color:#bb1f34}.trigger-pill.short{background:#ecfaf4;color:#087a55}.score-cluster{text-align:right}.price{font-size:23px;color:#081f42}.edge-score{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;margin-top:3px}.edge-score span{font-size:7px;letter-spacing:.9px;color:#9aa7b6;font-weight:900}.edge-score b{font-size:20px}.edge-score small{font-size:8px;color:#9aa7b6}.edge-score.long b{color:var(--long)}.edge-score.short b{color:var(--short)}.signal-bar{height:4px;border-radius:999px;background:#edf1f5;margin:12px 0 10px;overflow:hidden}.signal-bar i{display:block;height:100%;border-radius:999px}.signal-bar i.long{background:linear-gradient(90deg,#f87785,#d91f39)}.signal-bar i.short{background:linear-gradient(90deg,#38cc94,#078e63)}.thesis{font-size:12px;color:#4f657f;margin-top:0}.micro-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.micro-chips span{font-size:8.5px;color:#6e8198;background:#f4f7fa;border:1px solid #e4eaf0;border-radius:999px;padding:4px 7px}.dual-grid{gap:8px;margin-top:10px}.scenario{border-radius:15px;padding:10px}.scenario.long{background:#ffe9ee!important;border-color:#f0bac4}.scenario.short{background:#e8f7f0!important;border-color:#bfe3d3}.scenario-head span:first-child{display:flex;align-items:center;gap:6px}.side-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.scenario.long .side-dot{background:var(--long)}.scenario.short .side-dot{background:var(--short)}.priority{font-size:8px;background:#fff}.tap-hint{font-size:9px;color:#8a98aa;margin-top:9px}.tap-hint span{font-size:15px;vertical-align:-1px}
.factor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.factor-group{border-radius:20px;border-color:#dce5ee;box-shadow:var(--shadow-card)}.rules-card{border:0;border-radius:22px;background:#071a36;color:#fff;padding:17px;box-shadow:0 16px 40px rgba(7,26,54,.14)}.rules-card .section-title{color:#8fcaf7;letter-spacing:1.2px;font-size:10px}.rules-card .rule{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:start;color:#d3e0ef;padding:8px 0;border-top:1px solid rgba(255,255,255,.07)}.rules-card .rule:first-of-type{border-top:0}.rules-card .rule b{color:#57b7ef;font-size:10px;letter-spacing:.8px}.rules-card .rule span{font-size:11.5px;line-height:1.55}footer{letter-spacing:.8px;color:#91a0b2}
.modal-backdrop{background:rgba(5,15,31,.62);backdrop-filter:blur(5px)}.modal-sheet{width:min(100%,900px);border-radius:28px 28px 0 0;padding:24px 20px 34px;background:#f7f9fc;box-shadow:0 -25px 70px rgba(5,15,31,.24)}.analysis-livebar{background:#eaf0f6;border:0;color:#607690;letter-spacing:.4px}.analysis-hero{padding:16px;border-radius:22px;background:radial-gradient(circle at 90% 0,rgba(61,172,235,.18),transparent 30%),linear-gradient(135deg,#071a36,#0b3a75);color:#fff;box-shadow:0 14px 36px rgba(7,26,54,.16)}.analysis-hero .detail-title{color:#fff}.analysis-hero .ticker,.analysis-hero .detail-sub{color:#98b9dc}.analysis-hero .verdict{border-color:rgba(255,255,255,.12)}.hero-price-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:14px}.hero-price{font-size:34px;letter-spacing:-1px}.hero-change{font-size:12px;margin-left:8px;font-weight:900}.hero-change.up{color:#ff8090}.hero-change.down{color:#59d7a9}.hero-grade{display:flex;align-items:baseline;gap:5px}.hero-grade span{font-size:8px;color:#8fb1d6;letter-spacing:1px}.hero-grade b{font-size:25px;color:#fff}.hero-trigger{margin-top:10px;font-size:11px;color:#bdd3ea}.decision-grid{grid-template-columns:repeat(3,1fr);margin-top:11px}.decision-box{background:#fff;border:1px solid #dde6ef;border-radius:16px;box-shadow:0 5px 15px rgba(6,31,67,.04)}.scorebox{border-width:1px}.scorebox.long{background:#ffe9ee!important;border-color:#f0bac4}.scorebox.short{background:#e8f7f0!important;border-color:#bfe3d3}.spread-meter{margin-top:10px;background:#fff;border:1px solid #dfe7ef;border-radius:15px;padding:10px}.spread-meter>span{font-size:9px;color:#71839a;font-weight:900}.spread-meter>div{display:grid;grid-template-columns:1fr 1fr;gap:4px;height:5px;margin-top:7px}.spread-meter i{height:5px;border-radius:999px;max-width:100%}.spread-meter i.long{background:var(--long)}.spread-meter i.short{background:var(--short)}.metric{background:#fff;border-color:#e0e7ef}.no-trade{margin-top:11px;padding:12px 13px;border-radius:16px;background:#0c2c57;color:#fff;display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center}.no-trade span{font-size:8px;letter-spacing:1.2px;color:#82b8e8}.no-trade b{font-size:16px;text-align:right}.no-trade small{grid-column:1/-1;color:#a8c4df;font-size:9px}.why{display:flex;flex-wrap:wrap;gap:5px;align-items:center;background:#fff;border-color:#e1e8ef}.why b{margin-right:4px;color:#193a63}.why span{font-size:9px;padding:4px 7px;border-radius:999px;background:#eef3f8;color:#526b86}.detail-scenario{border-radius:18px}.detail-scenario.long{background:linear-gradient(135deg,#ffe8ed,#fff2f5)!important;border-color:#efb4c0}.detail-scenario.short{background:linear-gradient(135deg,#e6f7ef,#f0fbf6)!important;border-color:#b8e0cf}.autopsy{border-radius:18px;background:#fff9ee}.autopsy.exposed{background:#fff5f6}.risk{position:relative;padding-left:11px}.risk:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;position:absolute;left:0;top:.62em}.data-health{background:#fff;border-color:#e0e8ef;border-radius:16px}
@media(max-width:760px){.app-shell{max-width:540px;padding-left:11px;padding-right:11px}.market-pulse-grid{grid-template-columns:repeat(3,1fr)}.pulse-box{padding:9px}.pulse-box b{font-size:14px}.pulse-box small{font-size:7.5px}.stock-list{grid-template-columns:1fr}.stock-card:first-child{grid-column:auto}.factor-grid{grid-template-columns:1fr}.market-bias{font-size:21px}.detail-two{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.market-pulse-grid{gap:6px}.pulse-box{padding:8px 7px}.pulse-box span{font-size:8px}.pulse-box b{font-size:13px}.stock-name{font-size:20px}.hero-price{font-size:30px}.decision-grid{grid-template-columns:1fr 1fr}.decision-box:last-child{grid-column:1/-1}}

/* V7.0.1 COLOR CLARITY PATCH — stronger long/short separation */
.verdict.long,.trigger-pill.long{background:#ffe5ea!important;border-color:#efb5c0!important;color:#c51f38!important}
.verdict.short,.trigger-pill.short{background:#e4f6ee!important;border-color:#b9dfcf!important;color:#087653!important}
.primary-long .rank span{background:#ffe3e9;color:#bd1f36}.primary-short .rank span{background:#e2f5ec;color:#087653}
.primary-long .micro-chips span{background:#fff1f4;border-color:#f4d3da}.primary-short .micro-chips span{background:#edf9f4;border-color:#d0eadf}

/* =========================================================
   EdgePilot V7.1 — ELITE TRADING TERMINAL
   Visual system rebuild only. Trading logic / IDs stay intact.
   ========================================================= */
:root{
  --elite-ink:#06152a;
  --elite-navy:#081d39;
  --elite-navy2:#0d376b;
  --elite-blue:#2d7cf3;
  --elite-cyan:#39c6e9;
  --elite-pearl:#f5f8fc;
  --elite-line:rgba(20,58,100,.10);
  --elite-shadow:0 18px 44px rgba(4,22,47,.12);
  --elite-shadow-soft:0 8px 24px rgba(4,22,47,.075);
}
html,body{
  background:
    radial-gradient(circle at 14% -10%,rgba(57,198,233,.18),transparent 28%),
    radial-gradient(circle at 92% 2%,rgba(45,124,243,.20),transparent 24%),
    linear-gradient(180deg,#071426 0,#0a1c34 34%,#eaf1f8 34.2%,#eef4fa 100%);
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.23;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(to bottom,#000 0,#000 28%,transparent 56%);
}
.ambient{opacity:.34;filter:blur(42px)}
.ambient-a{background:radial-gradient(circle,#3b82f6 0,rgba(59,130,246,0) 68%)}
.ambient-b{background:radial-gradient(circle,#34d399 0,rgba(52,211,153,0) 70%)}
.app-shell{
  width:min(100%,1180px);max-width:1180px;margin:0 auto;min-height:100vh;
  padding:18px clamp(12px,2.6vw,30px) 46px;
  background:linear-gradient(180deg,rgba(248,251,255,.98),rgba(241,246,251,.99));
  border-left:1px solid rgba(255,255,255,.58);border-right:1px solid rgba(255,255,255,.58);
  box-shadow:0 0 90px rgba(2,15,32,.18);
}
.topbar{
  position:relative;margin:0 -2px 16px;padding:12px 14px;border-radius:22px;
  background:linear-gradient(135deg,rgba(7,25,52,.96),rgba(11,47,92,.96));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 16px 38px rgba(2,17,38,.22),inset 0 1px 0 rgba(255,255,255,.09);
  overflow:hidden;
}
.topbar:after{
  content:"";position:absolute;right:-70px;top:-110px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(57,198,233,.24),transparent 67%);pointer-events:none;
}
.logo{width:56px;height:56px;border-radius:17px;box-shadow:0 10px 28px rgba(0,0,0,.28),0 0 0 1px rgba(110,209,255,.22)}
.brand{color:#fff;font-size:30px;font-weight:950;letter-spacing:-1.4px;text-shadow:0 1px 0 rgba(255,255,255,.08)}
.brand span{background:linear-gradient(135deg,#74baff,#31d3f1);-webkit-background-clip:text;background-clip:text;color:transparent}
.subtitle{color:#9ab5d4;font-size:9.8px;letter-spacing:1.4px}
.install-btn,.ghost-btn{position:relative;z-index:2}
.install-btn{background:linear-gradient(135deg,#2d7cf3,#1a5fc7);border-color:rgba(255,255,255,.18);box-shadow:0 8px 22px rgba(37,110,231,.34),inset 0 1px 0 rgba(255,255,255,.18)}
.ghost-btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.search-glyph{border-color:#d8eaff}.search-glyph:after{background:#d8eaff}

.market-card{
  border-radius:28px;padding:22px 22px 20px;
  background:
    radial-gradient(circle at 92% 0%,rgba(59,197,235,.30),transparent 28%),
    radial-gradient(circle at 68% 140%,rgba(45,124,243,.24),transparent 42%),
    linear-gradient(135deg,#06162d 0%,#09264d 46%,#0c4b86 100%);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 26px 60px rgba(2,20,45,.26),inset 0 1px 0 rgba(255,255,255,.08);
}
.market-card:after{
  content:"";position:absolute;right:20px;bottom:15px;width:150px;height:66px;opacity:.22;
  background:linear-gradient(135deg,transparent 0 36%,#64d9f7 37% 40%,transparent 41% 52%,#64d9f7 53% 56%,transparent 57% 67%,#64d9f7 68% 72%,transparent 73%);
  transform:skewX(-12deg);pointer-events:none;
}
.market-kicker{font-size:9.5px;letter-spacing:1.9px;color:#89c8ff}
.live-dot{color:#c7ddf7}.live-dot i{background:#56e8b8;box-shadow:0 0 0 5px rgba(86,232,184,.10),0 0 14px rgba(86,232,184,.55)}
.market-bias{font-size:29px;line-height:1.15;letter-spacing:-1.1px;margin:10px 0 18px;max-width:700px}
.market-pulse-grid{gap:10px}.pulse-box{
  min-height:88px;padding:13px 14px;border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.055));
  border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(12px)
}
.pulse-box span{font-size:8.5px;letter-spacing:.8px;color:#8eb3dc}.pulse-box b{font-size:20px;letter-spacing:-.5px}.pulse-box small{font-size:8px;color:#a5bfdb}
.market-meta span{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#d2e3f6}

.engine-row{margin-top:2px;padding:11px 2px 4px}.engine{
  background:rgba(255,255,255,.86);border:1px solid rgba(15,55,97,.10);color:#496684;
  box-shadow:0 4px 14px rgba(4,22,47,.045),inset 0 1px 0 #fff;backdrop-filter:blur(8px)
}
.tabs{
  max-width:680px;padding:5px;border-radius:18px;background:rgba(224,232,242,.92);border:1px solid rgba(15,55,97,.08);
  box-shadow:0 12px 28px rgba(4,22,47,.08),inset 0 1px 0 rgba(255,255,255,.75)
}
.tab{min-height:44px;border-radius:13px;font-size:12.5px;letter-spacing:.2px}
.tab.active[data-tab=long]{background:linear-gradient(135deg,#ff5b6d,#d91f39);box-shadow:0 7px 18px rgba(217,31,57,.24),inset 0 1px 0 rgba(255,255,255,.25)}
.tab.active[data-tab=short]{background:linear-gradient(135deg,#35c995,#078e63);box-shadow:0 7px 18px rgba(7,142,99,.22),inset 0 1px 0 rgba(255,255,255,.22)}
.tab.active[data-tab=factors]{background:linear-gradient(135deg,#397cf1,#1d5eb9);box-shadow:0 7px 18px rgba(45,124,243,.24),inset 0 1px 0 rgba(255,255,255,.22)}
.section-note{margin:4px 0 12px;border-left:0;padding:0 2px;color:#627790;font-size:11.5px}.section-note b{color:#0a2850}

.stock-list{gap:14px}.stock-card{
  border-radius:24px;padding:18px;border:1px solid rgba(17,53,91,.10);
  box-shadow:0 12px 30px rgba(5,30,63,.075),inset 0 1px 0 rgba(255,255,255,.94);
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.stock-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.76),transparent 30%);opacity:.55}
.stock-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(5,30,63,.12)}
.stock-card.primary-long{background:linear-gradient(135deg,#fff3f6 0%,#fff9fa 56%,#fff 100%);border-color:rgba(217,31,57,.20)}
.stock-card.primary-short{background:linear-gradient(135deg,#ecfaf4 0%,#f8fdfb 56%,#fff 100%);border-color:rgba(7,142,99,.18)}
.card-rail{width:5px;box-shadow:1px 0 9px rgba(5,30,63,.05)}
.primary-long .card-rail{background:linear-gradient(180deg,#ff8795,#d91f39 52%,#b91832)}
.primary-short .card-rail{background:linear-gradient(180deg,#64dfb4,#0da271 52%,#06724f)}
.rank{font-size:8.7px;letter-spacing:1.2px}.rank span{width:28px;height:28px;border-radius:10px;background:#edf3f8;color:#173c65;box-shadow:inset 0 1px 0 #fff}
.primary-long .rank span{background:linear-gradient(135deg,#ffe4e9,#ffd3da);color:#bd1f36}.primary-short .rank span{background:linear-gradient(135deg,#e3f6ed,#d5f0e4);color:#087653}
.stock-name{font-size:23px;letter-spacing:-.6px;color:#081f3f}.ticker{font-size:10px;color:#8b9bac}
.status-line{margin-top:8px}.setup-grade{width:27px;height:23px;border-radius:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.trigger-pill{padding:5px 8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.price{font-size:24px;letter-spacing:-.6px}.edge-score b{font-size:21px}.edge-score span{font-size:6.8px;letter-spacing:1.15px}
.signal-bar{height:5px;margin:13px 0 11px;background:#e8eef4;box-shadow:inset 0 1px 2px rgba(3,20,43,.06)}
.signal-bar i.long{background:linear-gradient(90deg,#ff8995,#e42c45,#c91631)}.signal-bar i.short{background:linear-gradient(90deg,#6fe0b9,#1eb982,#087e59)}
.thesis{font-size:12.2px;line-height:1.6;color:#4b6179}.micro-chips span{font-size:8.2px;padding:4px 7px;background:#f2f6fa;border-color:#e1e8ef}
.dual-grid{gap:10px;margin-top:12px}.scenario{
  border-radius:18px;padding:12px;border-width:1px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)
}
.scenario.long{background:linear-gradient(145deg,#ffe8ed,#fff4f6)!important;border-color:#efb9c3}
.scenario.short{background:linear-gradient(145deg,#e5f7ef,#f2fbf7)!important;border-color:#b9dfcf}
.scenario-head{font-size:11px}.priority{padding:3px 6px;background:rgba(255,255,255,.72);backdrop-filter:blur(4px)}
.scenario-line{margin-top:7px}.scenario-line .k{font-size:8.4px;letter-spacing:.3px}.scenario-line .v{font-size:11.4px;line-height:1.35;color:#122c55}.tap-hint{font-size:8.8px;color:#8595a8}

.factor-group{border-radius:22px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:var(--elite-shadow-soft)}
.rules-card{
  border-radius:24px;background:linear-gradient(135deg,#06162d,#0b2a54);border:1px solid rgba(255,255,255,.05);
  box-shadow:0 20px 44px rgba(4,22,47,.16),inset 0 1px 0 rgba(255,255,255,.07)
}

.modal-backdrop{background:rgba(1,9,20,.72);backdrop-filter:blur(10px)}
.modal-sheet{
  background:linear-gradient(180deg,#f7fafe,#eef4f9);border:1px solid rgba(255,255,255,.72);
  box-shadow:0 -32px 90px rgba(1,12,28,.34);padding:25px 22px 38px
}
.modal-sheet:before{width:48px;height:5px;background:linear-gradient(90deg,#dce6ef,#aabed1,#dce6ef)}
.close-btn{background:rgba(255,255,255,.82);border:1px solid #dbe5ef;box-shadow:0 6px 16px rgba(4,22,47,.08)}
.analysis-hero{
  border-radius:25px;padding:18px;background:
    radial-gradient(circle at 88% 0,rgba(62,199,236,.30),transparent 27%),
    linear-gradient(135deg,#06162d,#092b56 55%,#0c4b86);
  box-shadow:0 20px 46px rgba(4,22,47,.21),inset 0 1px 0 rgba(255,255,255,.08)
}
.hero-price{font-size:38px;letter-spacing:-1.5px}.hero-grade b{font-size:27px}.hero-trigger{font-size:10.5px;color:#c4d8ed}
.decision-box{border-radius:18px;box-shadow:0 8px 20px rgba(4,22,47,.05),inset 0 1px 0 #fff}
.scorebox{border-radius:17px}.scorebox.long{background:linear-gradient(135deg,#ffe7ec,#fff3f6)!important;border-color:#efb8c2}.scorebox.short{background:linear-gradient(135deg,#e4f7ee,#f1fbf6)!important;border-color:#b8decd}
.spread-meter{border-radius:17px;box-shadow:0 6px 18px rgba(4,22,47,.04)}
.metric{border-radius:16px;box-shadow:0 5px 15px rgba(4,22,47,.035)}
.no-trade{border-radius:18px;background:linear-gradient(135deg,#081d39,#0d376b);box-shadow:0 11px 26px rgba(4,22,47,.14)}
.why{border-radius:17px}.detail-scenario{border-radius:21px;padding:14px;box-shadow:0 9px 22px rgba(4,22,47,.05),inset 0 1px 0 rgba(255,255,255,.78)}
.detail-scenario.long{background:linear-gradient(135deg,#ffe7ec,#fff4f6)!important}.detail-scenario.short{background:linear-gradient(135deg,#e3f7ed,#f2fbf7)!important}
.autopsy,.data-health{border-radius:19px;box-shadow:0 7px 18px rgba(4,22,47,.04)}
.search-box input{background:rgba(255,255,255,.9);border-color:#d6e1eb;box-shadow:inset 0 1px 0 #fff,0 5px 16px rgba(4,22,47,.04)}
.search-box button{background:linear-gradient(135deg,#2d7cf3,#1c5fbd);box-shadow:0 8px 18px rgba(45,124,243,.23)}
.search-result{border-radius:15px;background:rgba(255,255,255,.88);box-shadow:0 6px 16px rgba(4,22,47,.045)}
footer{color:#8a9aab;letter-spacing:1.05px}

@media(min-width:761px){
  .app-shell{border-radius:28px 28px 0 0;margin-top:22px}
  .topbar{margin-top:0}
  .market-card{display:grid;grid-template-columns:1.15fr .85fr;column-gap:18px;align-items:start}
  .market-topline,.market-bias,.market-meta{grid-column:1}
  .market-pulse-grid{grid-column:2;grid-row:1/4;align-self:stretch}
  .market-meta{align-self:end}
  .market-card:after{right:44%;bottom:16px}
}
@media(max-width:760px){
  html,body{background:linear-gradient(180deg,#071426 0,#071426 176px,#eef4fa 176px,#eef4fa 100%)}
  .app-shell{padding-top:max(10px,env(safe-area-inset-top));background:linear-gradient(180deg,#f7fafe,#f1f6fb)}
  .topbar{margin:0 0 12px;border-radius:0 0 22px 22px;padding:12px 12px 13px}
  .logo{width:50px;height:50px}.brand{font-size:26px}.subtitle{font-size:8.6px}
  .market-card{border-radius:24px;padding:18px 16px}.market-bias{font-size:23px}.market-pulse-grid{gap:7px}.pulse-box{min-height:76px;padding:10px}.pulse-box b{font-size:15px}.pulse-box small{font-size:7.2px}
  .stock-card{border-radius:20px;padding:15px}.stock-name{font-size:21px}.price{font-size:22px}.dual-grid{gap:8px}.scenario{padding:10px}
  .modal-sheet{border-radius:26px 26px 0 0;padding-left:14px;padding-right:14px}.analysis-hero{border-radius:22px}.hero-price{font-size:34px}
}
@media(max-width:390px){
  .top-actions{gap:5px}.install-btn{padding:8px 9px;font-size:10px}.ghost-btn{width:40px;height:40px}
  .market-card{padding:16px 13px}.market-bias{font-size:21px}.pulse-box span{font-size:7.5px}.pulse-box b{font-size:13.5px}
  .scenario-line .v{font-size:10.8px}
}
@media(display-mode:standalone){
  body{background:#eef4fa}.app-shell{padding-top:max(6px,env(safe-area-inset-top))}.topbar{margin-top:0}
}

/* V7.2 Data Integrity Gate */
.data-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.data-module{background:#fff;border:1px solid #dce5ef;border-radius:18px;padding:14px 15px;box-shadow:0 8px 22px rgba(23,48,78,.05)}
.data-module span{display:block;color:#8190a3;font-size:12px;font-weight:800;margin-bottom:5px}
.data-module b{font-size:15px;color:#17304e}
.data-module.ok{border-color:#bfe6d9;background:#f4fcf9}.data-module.ok b{color:#168a69}
.data-module.bad{border-color:#f0c9cf;background:#fff6f7}.data-module.bad b{color:#c8354d}
@media(max-width:520px){.data-module-grid{grid-template-columns:1fr 1fr}}

/* V7.3 Broker Branch Intelligence */
.branch-panel{margin:14px 0;padding:16px;border:1px solid #dbe5ef;border-radius:20px;background:linear-gradient(180deg,#ffffff,#f8fbfe);box-shadow:0 8px 22px rgba(4,22,47,.045)}
.branch-panel.unavailable{background:linear-gradient(180deg,#fbfcfe,#f5f8fb)}
.branch-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.branch-title span{font-size:9px;font-weight:900;letter-spacing:1px;color:#7d91a9}
.branch-title h3{margin:3px 0 0;color:#102e54;font-size:17px}
.branch-badge{flex:0 0 auto;padding:7px 9px;border-radius:999px;font-size:10px;font-weight:900;background:#edf2f7;color:#61748a;border:1px solid #dce5ee}
.branch-badge.good{background:#e9f8f1;color:#087b56;border-color:#bfe5d5}.branch-badge.warn{background:#fff4df;color:#a86500;border-color:#f0d29b}.branch-badge.danger{background:#fff0f2;color:#c52c43;border-color:#efc0c7}
.branch-panel>p{margin:0 0 12px;color:#3d5874;font-size:12px;line-height:1.65;font-weight:700}
.branch-rows{display:grid;gap:8px}.branch-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border-radius:15px;background:#f7fafd;border:1px solid #e3eaf1}
.branch-rank{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eaf1f8;color:#214a75;font-weight:900;font-size:11px}
.branch-name b,.branch-behavior b{display:block;color:#15385f;font-size:12px}.branch-name small,.branch-behavior small{display:block;margin-top:3px;color:#8493a4;font-size:9.5px;white-space:nowrap}
.branch-behavior{text-align:right}.branch-behavior.good b{color:#087b56}.branch-behavior.warn b{color:#a86500}.branch-behavior.danger b{color:#c52c43}
.branch-note{margin-top:11px;padding-top:10px;border-top:1px solid #e5ebf2;color:#728399;font-size:10px;line-height:1.6}.branch-note b{color:#3b5875}
.branch-empty{color:#8392a4;font-size:11px;padding:8px 0}
@media(max-width:520px){.branch-row{grid-template-columns:28px minmax(0,1fr)}.branch-behavior{grid-column:2;text-align:left}.branch-name small,.branch-behavior small{white-space:normal}}

/* =========================================================
   EdgePilot V7.3.2 — APPROVED LONG/SHORT VISUAL LOCK
   Approved: larger strategy text + deeper soft pink / mint.
   No signal logic or Worker endpoints changed.
   ========================================================= */
:root{
  --longsoft:#ffdde5;
  --shortsoft:#d9f3e6;
}
.stock-card.primary-long{background:linear-gradient(135deg,#ffe6eb 0%,#fff2f5 58%,#fff 100%)!important;border-color:rgba(217,31,57,.28)}
.stock-card.primary-short{background:linear-gradient(135deg,#ddf5e9 0%,#eefaf4 58%,#fff 100%)!important;border-color:rgba(7,142,99,.25)}
.scenario.long{background:linear-gradient(145deg,#ffd9e2,#ffedf1)!important;border-color:#eea8b6}
.scenario.short{background:linear-gradient(145deg,#d5f2e4,#eaf8f1)!important;border-color:#9fd7bf}
.scenario-head{font-size:14px!important;line-height:1.25}.priority{font-size:10.5px!important;padding:4px 7px!important}
.scenario-line{margin-top:9px!important}.scenario-line .k{font-size:10.5px!important;line-height:1.2}.scenario-line .v{font-size:14.5px!important;line-height:1.35!important;letter-spacing:.05px}.scenario-line .v small{font-size:11px!important}
.scorebox.long{background:linear-gradient(135deg,#ffdbe3,#ffedf1)!important;border-color:#eea9b6}.scorebox.short{background:linear-gradient(135deg,#d5f2e4,#eaf8f1)!important;border-color:#9fd7bf}
.detail-scenario.long{background:linear-gradient(135deg,#ffd9e2,#ffedf1)!important;border-color:#eea8b6}.detail-scenario.short{background:linear-gradient(135deg,#d5f2e4,#eaf8f1)!important;border-color:#9fd7bf}
.detail-scenario h3{font-size:19px!important}.drow{padding:8px 0!important}.drow .k{font-size:12px!important}.drow .v{font-size:16px!important;line-height:1.38}.drow .v small{font-size:11.5px}
@media(max-width:390px){.scenario-head{font-size:13px!important}.scenario-line .k{font-size:10px!important}.scenario-line .v{font-size:13px!important}.detail-scenario h3{font-size:18px!important}.drow .v{font-size:15px!important}}

/* =========================================================
   EdgePilot V7.4 — LIVE FLOATING DATA
   5s quote motion + 20s ranking recalculation.
   ========================================================= */
.live-price-wrap{display:flex;flex-direction:column;align-items:flex-end;min-width:94px}
.quote-change{margin-top:2px;font-size:11.5px;font-weight:950;letter-spacing:.15px}.quote-change.up{color:#d91f39}.quote-change.down{color:#078e63}.quote-time{margin-top:2px;font-size:8px;font-weight:800;color:#8da0b3;white-space:nowrap}
.live-chip{font-weight:900!important;color:#1776d2!important;background:#eaf5ff!important;border-color:#cfe7fb!important}.live-chip:before{content:'';display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#27b97f;box-shadow:0 0 0 0 rgba(39,185,127,.45);animation:epLivePulse 1.8s infinite}
.price.tick-up{animation:epTickUp .65s ease}.price.tick-down{animation:epTickDown .65s ease}
#quotePulsePill{font-weight:900;color:#d9f6ff!important;background:rgba(60,197,238,.14)!important;border-color:rgba(96,210,242,.24)!important}
@keyframes epLivePulse{0%{box-shadow:0 0 0 0 rgba(39,185,127,.45)}70%{box-shadow:0 0 0 7px rgba(39,185,127,0)}100%{box-shadow:0 0 0 0 rgba(39,185,127,0)}}
@keyframes epTickUp{0%{color:#d91f39;transform:scale(1)}35%{color:#d91f39;transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes epTickDown{0%{color:#078e63;transform:scale(1)}35%{color:#078e63;transform:scale(1.08)}100%{transform:scale(1)}}
@media(max-width:390px){.live-price-wrap{min-width:82px}.quote-change{font-size:10.5px}.quote-time{font-size:7.5px}}


/* V7.5.0 — 4-tab layout + overnight module */
.tabs{grid-template-columns:repeat(4,minmax(0,1fr));max-width:760px}
.overnight-dot{background:#7b5cff}
.tab.active[data-tab=overnight]{color:#fff;background:linear-gradient(135deg,#8b6cff,#5e49d8);box-shadow:0 7px 18px rgba(94,73,216,.23),inset 0 1px 0 rgba(255,255,255,.22)}
.overnight-plan{display:grid;grid-template-columns:1.35fr .8fr 1fr;gap:7px;margin-top:10px}
.overnight-plan>div{background:rgba(245,248,252,.92);border:1px solid #e3e9f0;border-radius:13px;padding:8px 9px;min-width:0}
.overnight-plan span{display:block;font-size:8px;color:#8a99aa;font-weight:800;letter-spacing:.4px;margin-bottom:3px}.overnight-plan b{display:block;font-size:11px;color:#15365d;line-height:1.35}
@media(max-width:460px){.tabs{gap:3px}.tab{font-size:10.5px;padding-left:2px;padding-right:2px}.overnight-plan{grid-template-columns:1fr}}
