:root{
  --bg:#080b10;--panel:#111722;--panel2:#151d29;--text:#f4f7fb;--muted:#8995a8;--line:#222c3b;
  --green:#2bd576;--red:#ff6470;--yellow:#f0c75e;--blue:#6aa7ff;--shadow:0 10px 30px rgba(0,0,0,.24)
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Pretendard","Noto Sans KR",sans-serif;background:radial-gradient(circle at top,#101927 0,var(--bg) 36%);color:var(--text)}button{font:inherit}.app-shell{max-width:520px;margin:0 auto;min-height:100vh;padding:env(safe-area-inset-top) 18px calc(92px + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px 2px 18px}.eyebrow{font-size:11px;letter-spacing:.18em;color:#7f91aa;font-weight:700}.topbar h1{margin:5px 0 0;font-size:24px;letter-spacing:-.04em}.icon-btn{border:1px solid var(--line);background:#101722;color:#dbe6f6;width:42px;height:42px;border-radius:14px;font-size:21px}.glass{background:linear-gradient(180deg,rgba(23,31,44,.96),rgba(14,20,30,.96));border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow)}.market-card{border-radius:24px;padding:20px}.market-card__head{display:flex;align-items:center;justify-content:space-between;gap:18px}.market-card h2{margin:10px 0 0;font-size:25px;letter-spacing:-.04em}.pill{font-size:12px;padding:6px 9px;border-radius:999px;font-weight:700}.pill.neutral{background:rgba(240,199,94,.12);color:var(--yellow)}.score-ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;border:5px solid rgba(43,213,118,.22);outline:2px solid var(--green);font-weight:800;font-size:18px}.muted,.page-head p{color:var(--muted);line-height:1.55}.market-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.market-grid div{background:#0c121b;border:1px solid var(--line);border-radius:14px;padding:12px}.market-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.market-grid strong{font-size:14px}.up{color:var(--green)}.down{color:var(--red)}.demo-note{display:block;color:#657189;margin-top:14px;line-height:1.45}.section-block{margin-top:26px}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title-row h3{margin:0;font-size:18px}.text-btn{border:0;background:transparent;color:#7daeff;font-size:13px}.stack{display:grid;gap:12px}.stock-card{border-radius:20px;padding:16px;background:linear-gradient(180deg,#111824,#0d131d);border:1px solid var(--line)}.stock-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stock-name{display:flex;gap:12px}.ticker-badge{width:44px;height:44px;border-radius:14px;background:#1b2635;display:grid;place-items:center;font-size:12px;font-weight:800;color:#b9cdf0}.stock-card h4{margin:2px 0 3px;font-size:16px}.stock-card .ticker{font-size:12px;color:var(--muted)}.watch-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#0c121b;color:#aab7ca;font-size:20px}.watch-btn.saved{color:var(--yellow)}.score-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.metric-chip{font-size:11px;padding:6px 8px;border-radius:999px;background:#182232;color:#b8c7dc}.stock-reason{font-size:13px;line-height:1.55;color:#d8e0eb;margin:0}.risk{font-size:12px;color:#f0a5ab;margin-top:9px}.insight-card{display:flex;gap:13px;padding:16px;border-radius:18px}.insight-icon{font-size:22px;color:#7daeff}.insight-card p{margin:0;line-height:1.6;color:#dbe4f0}.page-head{padding:8px 2px 16px}.page-head h2{margin:0;font-size:26px}.page-head p{margin:7px 0 0;font-size:13px}.history-card{padding:16px;border-radius:18px;margin-bottom:12px}.history-date{color:#7daeff;font-size:12px;margin-bottom:7px}.history-card p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.empty-state{text-align:center;padding:36px 18px;border-radius:18px;color:var(--muted);line-height:1.7}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(520px,100%);display:grid;grid-template-columns:repeat(5,1fr);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(8,11,16,.92);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.06);z-index:20}.nav-item{border:0;background:transparent;color:#68778d;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px}.nav-item span{font-size:20px}.nav-item small{font-size:10px}.nav-item.active{color:#f3f7ff}.tab-page{display:none}.tab-page.active{display:block}.toast{position:fixed;left:50%;bottom:104px;transform:translate(-50%,20px);opacity:0;background:#eef4ff;color:#101722;padding:10px 14px;border-radius:999px;font-size:12px;font-weight:700;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (min-width:700px){body{padding:18px}.app-shell{border:1px solid var(--line);border-radius:30px;min-height:calc(100vh - 36px);overflow:hidden}.bottom-nav{bottom:18px;border-radius:0 0 30px 30px}}
.live-strip{display:flex;align-items:center;gap:7px;margin:14px 0 8px;color:#8fa0b6;font-size:11px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(43,213,118,.10)}
.mini-chart{height:168px;margin:0 -4px 10px;border-radius:14px;overflow:hidden;background:#0b111a;border:1px solid rgba(255,255,255,.04)}
.chart-btn{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);background:#121c2a;color:#dce8f7;border-radius:13px;padding:11px 13px;font-size:12px;font-weight:700}.chart-btn span{font-size:20px;line-height:1;color:#7daeff}
.modal-open{overflow:hidden}.chart-modal{display:none;position:fixed;inset:0;z-index:100}.chart-modal.open{display:block}.chart-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.64);backdrop-filter:blur(8px)}.chart-sheet{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);height:min(88vh,820px);background:#090e15;border:1px solid #233047;border-bottom:0;border-radius:26px 26px 0 0;padding:18px 14px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(0,0,0,.45);display:flex;flex-direction:column}.chart-sheet__head{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 10px}.chart-sheet__head h2{font-size:20px;margin:4px 0 0}.chart-notice{font-size:10px;color:#7d899b;line-height:1.4;padding:0 4px 10px}.advanced-chart{flex:1;min-height:0;border-radius:16px;overflow:hidden;background:#0b111a;border:1px solid var(--line)}

.price-row{display:flex;align-items:baseline;gap:9px;margin:15px 0 9px}.price-row strong{font-size:21px;letter-spacing:-.03em}.price-row span{font-size:13px;font-weight:800}.price-row small{margin-left:auto;color:#66758a;font-size:10px;border:1px solid var(--line);padding:3px 6px;border-radius:999px}.mini-chart.internal{width:100%;display:block;border:1px solid rgba(255,255,255,.05);padding:8px;background:#0a111a;cursor:pointer}.mini-chart.internal svg{display:block;width:100%;height:100%}.chart-up{color:var(--green)}.chart-down{color:var(--red)}.range-row{display:flex;gap:8px;padding:0 4px 10px}.range-btn{border:1px solid var(--line);background:#101722;color:#8f9db0;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:800}.range-btn.active{background:#eaf2ff;color:#0a111a;border-color:#eaf2ff}.advanced-chart{flex:1;min-height:260px;padding:18px 10px;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0b121c,#081019);border:1px solid var(--line)}.advanced-chart svg{display:block;width:100%;height:100%;min-height:260px}.chart-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 4px 0}.chart-stats div{background:#0d141e;border:1px solid var(--line);border-radius:12px;padding:10px}.chart-stats span{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.chart-stats strong{font-size:13px}
.data-status{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 12px;border-radius:14px;background:#0c121b;border:1px solid var(--line)}
.data-status .status-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--yellow);box-shadow:0 0 0 4px rgba(240,199,94,.1)}
.data-status.ok .status-dot{background:var(--green);box-shadow:0 0 0 4px rgba(43,213,118,.1)}
.data-status strong,.data-status small{display:block}.data-status strong{font-size:12px}.data-status small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}
.source-badge.live{color:var(--green)!important;border-color:rgba(43,213,118,.25)!important}.source-badge.demo{color:var(--yellow)!important;border-color:rgba(240,199,94,.22)!important}
.chart-loading{height:100%;min-height:260px;display:grid;place-items:center;color:var(--muted);font-size:12px}
.spinning{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
