:root {
  color-scheme: dark;
  --bg:#07111f; --panel:#0d1a2c; --panel2:#111f34; --line:#243650;
  --text:#f3f7fd; --muted:#98aac2; --blue:#69a9ff; --green:#48d39b;
  --yellow:#ffc763; --red:#ff7484; --purple:#a98bff; --shadow:0 16px 45px rgba(0,0,0,.28);
}
*{box-sizing:border-box} html{background:var(--bg);overscroll-behavior-y:auto} body{margin:0;background:radial-gradient(circle at 20% -10%,rgba(71,133,255,.18),transparent 34%),var(--bg);color:var(--text);font-family:Pretendard,"Noto Sans KR",system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh} button,input{font:inherit} button{cursor:pointer}.app-shell{width:min(850px,100%);margin:0 auto;padding:12px 12px 104px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:8px 2px 14px;background:linear-gradient(to bottom,rgba(7,17,31,.98) 70%,rgba(7,17,31,0));backdrop-filter:blur(14px)}.brand{display:flex;gap:11px;align-items:center}.brand-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(140deg,#3f9cff,#7a60ff);font-weight:950;font-size:21px;box-shadow:0 12px 25px rgba(75,128,255,.3)}h1,h2,h3,p{margin-top:0}.brand h1{font-size:19px;margin:0;letter-spacing:-.04em}.brand p{font-size:11px;color:var(--muted);margin:3px 0 0}.top-actions{display:flex;gap:8px}.icon-btn,.ghost-btn,.text-btn{border:1px solid var(--line);background:rgba(17,31,52,.88);color:var(--text);border-radius:13px}.icon-btn{width:43px;height:43px;font-size:25px}.icon-btn.spin{animation:spin .8s linear infinite}.ghost-btn{padding:9px 12px;font-weight:800}.text-btn{padding:7px 10px;color:var(--blue)}@keyframes spin{to{transform:rotate(360deg)}}.status-banner{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:12px;font-size:12px;color:#c7d4e5;background:rgba(13,26,44,.86)}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}.status-banner.loading .status-dot{background:var(--yellow);animation:pulse 1s infinite}.status-banner.success .status-dot{background:var(--green)}.status-banner.error .status-dot{background:var(--red)}@keyframes pulse{50%{opacity:.3}}.hero-card{padding:22px 18px;border-radius:24px;border:1px solid rgba(105,169,255,.28);background:linear-gradient(135deg,rgba(32,73,128,.94),rgba(13,27,48,.97) 58%,rgba(30,57,58,.84));box-shadow:var(--shadow);overflow:hidden}.eyebrow-row{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:12px;color:#c5d8f2}.tiny-chip,.chip{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:850;background:rgba(255,255,255,.09)}.hero-card h2{font-size:clamp(31px,8vw,50px);letter-spacing:-.06em;line-height:1.05;margin:15px 0 10px}.hero-card p{color:#c9d4e3;font-size:13px;line-height:1.55}.allocation-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.allocation-row div{padding:12px 9px;background:rgba(4,11,20,.36);border:1px solid rgba(255,255,255,.08);border-radius:14px}.allocation-row span{display:block;color:var(--muted);font-size:10px}.allocation-row strong{display:block;margin-top:5px;font-size:18px}.section-block{margin-top:13px;padding:17px 14px;border:1px solid var(--line);border-radius:20px;background:rgba(13,26,44,.94);box-shadow:var(--shadow)}.section-block.no-top{margin-top:0}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.section-heading h3{font-size:17px;letter-spacing:-.04em;margin:0}.section-heading p{color:var(--muted);font-size:11px;margin:4px 0 0;line-height:1.45}.chip.neutral{color:#d8e2ef}.chip.good{background:rgba(72,211,155,.13);color:var(--green)}.chip.warn{background:rgba(255,199,99,.13);color:var(--yellow)}.chip.bad{background:rgba(255,116,132,.13);color:var(--red)}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.metric-card{padding:13px;border:1px solid #21334d;border-radius:15px;background:#091525}.metric-card span{color:var(--muted);font-size:11px}.metric-card strong{display:block;font-size:20px;margin:7px 0 4px;font-variant-numeric:tabular-nums}.metric-card small{color:#b5c3d5;font-size:10px;line-height:1.4}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.price-card{padding:13px;border:1px solid #263952;border-radius:16px;background:#091525}.price-head{display:flex;justify-content:space-between;align-items:center}.price-head b{font-size:15px}.lev-badge{font-size:10px;background:rgba(105,169,255,.13);color:var(--blue);padding:4px 7px;border-radius:999px}.price-card .price{font-size:21px;font-weight:900;margin:12px 0 4px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.muted{color:var(--muted)}.spark{width:100%;height:32px;margin-top:8px;overflow:visible}.empty-state{padding:16px;border:1px dashed #3b506f;border-radius:15px;color:var(--muted);font-size:12px;line-height:1.55;text-align:center}.empty-state button{display:block;margin:12px auto 0}.primary-btn,.danger-btn{border:0;border-radius:13px;padding:12px 15px;font-weight:900;color:white}.primary-btn{background:linear-gradient(135deg,#4a94ff,#765fff)}.primary-btn.full{width:100%;margin-top:4px}.danger-btn{background:rgba(255,116,132,.12);border:1px solid rgba(255,116,132,.32);color:#ffd8dd;width:100%;margin-top:12px}.portfolio-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.portfolio-summary div{padding:11px;border-radius:14px;background:#091525;border:1px solid #21334d}.portfolio-summary span{font-size:10px;color:var(--muted)}.portfolio-summary strong{display:block;margin-top:5px;font-size:15px}.trade-list{display:grid;gap:8px}.trade-row{display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid #253850;border-radius:14px;background:#091525}.trade-row b{font-size:14px}.trade-row span{font-size:11px;color:var(--muted)}.trade-row strong{text-align:right;font-size:13px}.trade-row .buy{color:var(--green)}.trade-row .sell{color:var(--red)}.trade-row .hold{color:var(--muted)}.footnote{font-size:10px;color:var(--muted);line-height:1.45;margin:11px 2px 0}.summary-card{padding:14px;border-radius:16px;background:linear-gradient(135deg,rgba(31,64,106,.64),rgba(9,21,37,.9));border:1px solid #294160;font-size:12px;line-height:1.6;color:#d3deec}.summary-card ul{padding-left:18px;margin:8px 0}.summary-card.compact{margin-bottom:11px}.fear-gauge{display:flex;gap:18px;align-items:center;padding:16px;border-radius:18px;background:#091525;border:1px solid #243750}.gauge-ring{--score:50;position:relative;width:115px;height:115px;flex:0 0 115px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gauge-color,var(--yellow)) calc(var(--score)*1%),#26344a 0)}.gauge-ring::after{content:"";position:absolute;inset:10px;background:#0b1728;border-radius:50%}.gauge-ring strong,.gauge-ring span{position:relative;z-index:1}.gauge-ring strong{font-size:35px}.gauge-ring span{font-size:10px;color:var(--muted);margin-left:-18px;margin-top:36px}.fear-gauge h2{margin:0 0 7px;font-size:23px}.fear-gauge p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.component-list{display:grid;gap:9px;margin-top:11px}.component-card{padding:13px;border-radius:15px;background:#091525;border:1px solid #22354e}.component-top{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.component-top b{font-size:13px}.score-pill{padding:4px 7px;border-radius:999px;font-size:11px;background:rgba(105,169,255,.12);color:var(--blue)}.rating-pill{font-size:10px;color:var(--muted)}.score-bar{height:5px;background:#25344a;border-radius:99px;margin:9px 0;overflow:hidden}.score-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--yellow),var(--green));border-radius:99px}.component-card p{font-size:11px;color:#b9c7d8;line-height:1.55;margin:0}.component-card small{display:block;color:#72849c;font-size:9px;margin-top:7px}.info-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.info-card{padding:13px;border:1px solid #23364f;background:#091525;border-radius:15px}.info-title{display:flex;align-items:center;justify-content:space-between;gap:7px}.info-title b{font-size:12px}.trend-tag{font-size:9px;border-radius:999px;padding:4px 6px;background:rgba(255,255,255,.06);color:var(--muted)}.info-value{font-size:22px;font-weight:900;margin:9px 0 3px}.info-change{font-size:10px;color:var(--muted)}.info-card p{font-size:10px;color:#afbed1;line-height:1.5;margin:8px 0 0}.notice-card{margin-top:11px;padding:12px;border-radius:14px;background:rgba(255,199,99,.08);border:1px solid rgba(255,199,99,.24);color:#ffe2a9;font-size:10px;line-height:1.55}.settings-form{display:grid;gap:11px}.settings-form label>span{display:block;color:var(--muted);font-size:11px;font-weight:800;margin-bottom:6px}.input-wrap{display:flex;align-items:center;background:#091525;border:1px solid #29405d;border-radius:13px;overflow:hidden}.input-wrap input{width:100%;border:0;background:transparent;color:var(--text);padding:13px;outline:none;font-size:16px}.input-wrap em{font-style:normal;color:var(--muted);padding-right:13px;font-size:12px}.data-status{display:grid;gap:7px}.status-line{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:12px;background:#091525;border:1px solid #21344d;font-size:11px}.status-line span:last-child{color:var(--muted);text-align:right}.rule-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.rule-list li{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:13px;background:#091525;border:1px solid #22354e;font-size:11px}.rule-list li span{color:var(--blue);text-align:right}.footer{text-align:center;color:#63758e;font-size:9px;line-height:1.55;margin:18px 8px}.bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(8,18,32,.96);backdrop-filter:blur(18px);border-top:1px solid #243650}.nav-btn{border:0;background:transparent;color:#72849c;display:grid;place-items:center;gap:2px;font-size:9px;padding:5px}.nav-btn span{font-size:20px;line-height:1}.nav-btn.active{color:var(--blue);font-weight:900}.tab-page{display:none}.tab-page.active{display:block}.pull-hint{position:fixed;z-index:60;left:50%;top:8px;transform:translate(-50%,-150%);background:#152844;color:#c9d8ec;padding:8px 13px;border-radius:999px;font-size:10px;transition:.25s}.pull-hint.show{transform:translate(-50%,0)}
@media(max-width:600px){.allocation-row{grid-template-columns:repeat(2,1fr)}.price-grid{grid-template-columns:1fr}.price-card{display:grid;grid-template-columns:1fr auto 95px;align-items:center;gap:8px}.price-card .price{margin:0}.price-card .spark{margin:0}.metric-grid,.info-card-grid{grid-template-columns:1fr 1fr}.fear-gauge{gap:12px}.gauge-ring{width:102px;height:102px;flex-basis:102px}.portfolio-summary{grid-template-columns:1fr 1fr}.portfolio-summary div:last-child{grid-column:1/-1}}@media(max-width:380px){.metric-grid,.info-card-grid{grid-template-columns:1fr}.fear-gauge{align-items:flex-start}.gauge-ring{width:90px;height:90px;flex-basis:90px}.allocation-row strong{font-size:16px}}
