:root{--bg: #0b1020;--bgGlow: rgba(250, 204, 21, .08);--card: rgba(255, 255, 255, .06);--cardBorder: rgba(255, 255, 255, .12);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .65);--shadow: 0 16px 40px rgba(0, 0, 0, .35);--accent: #fbbf24}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Pretendard,Inter,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:var(--text);background:radial-gradient(circle at top,var(--bgGlow),transparent 34%),linear-gradient(180deg,#11182f,#0b1020 45%,#070b14)}button,input,textarea,select{font:inherit}.wrap{max-width:980px;margin:0 auto;padding:32px 16px 40px}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.title h1{margin:0;font-size:clamp(2rem,4vw,2.6rem);line-height:1.02;letter-spacing:-.04em}.eyebrow{margin:0 0 10px;color:#ffffffb3;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.sub{max-width:560px;margin:10px 0 0;color:var(--muted);font-size:15px;line-height:1.6}.actions{display:flex;gap:8px}.headerControls{display:grid;gap:10px;justify-items:end}.menu{display:flex;gap:8px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0a;box-shadow:0 10px 30px #0000002e}.menuBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#ffffffbd;padding:10px 14px;border-radius:999px;cursor:pointer;font-weight:700;transition:background .16s ease,color .16s ease,transform .16s ease}.menuBtn:hover{color:#fffffff5;transform:translateY(-1px)}.menuBtn.isActive{color:#08111d;background:linear-gradient(135deg,#fbbf24,#fde68a);box-shadow:0 8px 20px #fbbf243d}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--cardBorder);background:#ffffff0a;color:var(--text);padding:9px 12px;border-radius:12px;cursor:pointer;box-shadow:0 8px 18px #00000040;transition:background .16s ease,border-color .16s ease,transform .16s ease}.btn:hover{border-color:#ffffff38;background:#ffffff14;transform:translateY(-1px)}.btnPrimary{border-color:#fbbf2480;background:#fbbf241f}.btnIcon{width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{opacity:.72;cursor:not-allowed;transform:none}.card{border:1px solid var(--cardBorder);background:var(--card);border-radius:20px;padding:18px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.card+.card{margin-top:14px}.cardHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.cardTitle{margin:0;font-size:14px;color:#fffc;font-weight:700;letter-spacing:-.01em}.cardBadge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;letter-spacing:-.01em;color:#ffffffe6;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);white-space:nowrap}.skeleton{position:relative;overflow:hidden;border-radius:999px;background:#ffffff14}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.18) 50%,transparent 100%);animation:skeletonShimmer 1.35s ease-in-out infinite}.skeletonText{height:12px}.skeletonValue{height:34px;border-radius:14px}.skeletonHeroValue{width:160px;height:36px;border-radius:14px}.skeletonPrice{width:110px;height:28px;border-radius:12px}.skeletonCircle{width:min(320px,100%);aspect-ratio:1 / 1;border-radius:50%}.skeletonDot{width:10px;height:10px;margin-top:4px;border-radius:999px}.skeletonBar{width:100%;height:18px;border-radius:999px}.skeletonBarLarge{width:min(420px,100%);height:22px;border-radius:999px}.skeletonAlignEnd{justify-items:end}.skeletonW12{width:12%}.skeletonW16{width:16%}.skeletonW20{width:20%}.skeletonW24{width:24%}.skeletonW28{width:28%}.skeletonW32{width:32%}.skeletonW36{width:36%}.skeletonW40{width:40%}.skeletonW44{width:44%}.skeletonW52{width:52%}.skeletonW60{width:60%}.grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:center}.gauge{display:flex;align-items:center;justify-content:center;padding-top:6px}.gaugeSkeleton{width:min(420px,100%);display:flex;justify-content:center}.gaugeSvg{width:min(420px,100%);height:auto}.track{fill:none;stroke:#ffffff24;stroke-width:18;stroke-linecap:round}.arc{fill:none;stroke:url(#gaugeGrad);stroke-width:18;stroke-linecap:round}.riseArc{stroke:url(#riseGaugeGrad)}.gaugeMarkRing{fill:#0b1020eb;stroke:#ffffff52;stroke-width:2}.gaugeMarkDot{stroke:#ffffffe0;stroke-width:1.5}.needle line{stroke:#ffffffeb;stroke-width:3;stroke-linecap:round}.needle circle{fill:#fffffff2}.value{font-size:28px;font-weight:800;letter-spacing:-.02em;fill:#fffffff5}.label{font-size:12px;fill:#ffffffad}.tick{font-size:12px;fill:#ffffff8c}.stats{display:flex;flex-direction:column;gap:14px}.kpiLabel{font-size:12px;color:var(--muted)}.kpiValue{font-size:34px;font-weight:800;letter-spacing:-.03em;margin-top:4px}.kpiHint{margin-top:4px;color:#ffffffb8}.rows{display:grid;gap:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.12)}.row{display:flex;justify-content:space-between;gap:12px}.rowLabel{color:var(--muted);font-size:13px}.rowValue{font-size:13px;font-variant-numeric:tabular-nums;text-align:right}.details{border-top:1px dashed rgba(255,255,255,.16);padding-top:10px}.details summary{cursor:pointer;color:#ffffffc7;font-size:13px}.crises{border-top:1px dashed rgba(255,255,255,.16);padding-top:10px;display:grid;gap:10px}.crisesTitle{font-size:13px;color:#fffc}.crisisList{display:grid;gap:8px}.crisisItem{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff08}.crisisDot{width:10px;height:10px;border-radius:999px;margin-top:4px;box-shadow:0 0 0 3px #ffffff0f}.crisisName{font-size:13px}.crisisMeta{grid-column:2 / span 2;color:#ffffff9e;font-size:12px}.crisisPct{font-size:13px;color:#ffffffeb;font-variant-numeric:tabular-nums}.rankings{border-top:1px dashed rgba(255,255,255,.16);padding-top:10px;display:grid;gap:10px}.rankList{display:grid;gap:8px}.rankItem{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff08}.rankBadge{min-width:38px;padding:4px 8px;border-radius:999px;background:#60a5fa24;color:#bfdbfefa;font-size:12px;font-weight:700;text-align:center}.rankValue{font-size:13px;font-weight:600;color:#ffffffeb}.rankDate{font-size:12px;color:#ffffff9e;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.fxCard{display:grid;gap:10px;margin-bottom:14px;padding:14px 16px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(180deg,#60a5fa1f,#ffffff08)}.fxCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.fxLabel{font-size:12px;color:var(--muted)}.fxValue{margin-top:4px;font-size:32px;font-weight:800;letter-spacing:-.03em}.fxChange{display:grid;gap:4px;justify-items:end;font-variant-numeric:tabular-nums;font-size:14px}.fxMeta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#ffffffad}.fearGreedCard{display:grid;gap:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.16)}.fearGreedHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fearGreedScore{display:flex;align-items:baseline;gap:8px;margin-top:4px;font-size:28px;font-weight:800;letter-spacing:-.03em}.fearGreedScore span{font-size:13px;font-weight:600;color:#ffffffb8}.fearGreedMeta{display:grid;gap:4px;justify-items:end;font-size:12px;color:#ffffffad}.fearGreedGauge{position:relative;height:16px}.fearGreedPanel{width:min(420px,100%);display:grid;gap:12px}.fearGreedGaugeLarge{position:relative;height:22px}.fearGreedTrack{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:linear-gradient(90deg,#ef4444,#f59e0b 35%,#f8fafc 50%,#84cc16 70%,#22c55e);opacity:.28}.fearGreedFill{position:absolute;left:0;top:0;bottom:0;border-radius:999px}.fearGreedNeedle{position:absolute;top:-4px;width:14px;height:24px;border-radius:999px;border:2px solid rgba(255,255,255,.9);background:#08111d;box-shadow:0 6px 16px #00000059}.fearGreedScale{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#ffffff9e}.etfGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.etfCard{border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff08;padding:12px;display:grid;gap:8px}.etfCardLink{color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.etfCardLink:hover{transform:translateY(-2px);border-color:#ffffff3d;background:#ffffff0f;box-shadow:0 14px 28px #0f172a2e}.etfCardLink:focus-visible{outline:2px solid rgba(96,165,250,.9);outline-offset:3px}.etfTop{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.etfSymbol{font-size:13px;font-weight:700;letter-spacing:-.01em}.etfName{font-size:12px;color:#ffffffad}.etfPrice{font-size:22px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.etfCurrency{font-size:12px;color:var(--muted)}.etfChange{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-variant-numeric:tabular-nums}.etfMeta{font-size:12px;color:#ffffff9e}.flowCard{display:grid;gap:12px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.16)}.flowLegend{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:11px;color:#ffffff9e}.flowLegendSell{justify-self:start;color:#93c5fd}.flowLegendCenter{color:#ffffff80}.flowLegendBuy{justify-self:end;color:#fca5a5}.flowRows{display:grid;gap:10px}.flowRow{display:grid;gap:6px}.flowRowTop{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.flowName{font-size:13px;color:#ffffffd6}.flowValue{font-size:13px;font-variant-numeric:tabular-nums}.isBuyText{color:#fca5a5}.isSellText{color:#93c5fd}.flowTrack{position:relative;height:18px;border-radius:999px;background:#ffffff0f;overflow:hidden}.flowAxis{position:absolute;left:calc(50% - 1px);top:2px;bottom:2px;width:2px;border-radius:999px;background:#ffffff3d}.flowBar{position:absolute;top:2px;bottom:2px;border-radius:999px}.isBuyBar{left:50%;background:linear-gradient(90deg,#fb7185,#ef4444)}.isSellBar{right:50%;background:linear-gradient(90deg,#60a5fa,#2563eb)}.isUp{color:#fda4af}.isDown{color:#86efac}.isFlat{color:#ffffffc7}.isFear{background:linear-gradient(90deg,#b91c1c,#ef4444)}.isCool{background:linear-gradient(90deg,#f97316,#f59e0b)}.isWarm{background:linear-gradient(90deg,#d4d4d8,#fde68a)}.isGreed{background:linear-gradient(90deg,#65a30d,#16a34a)}.marketCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.marketCard{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;border:1px solid rgba(255,255,255,.12);background:#ffffff08;color:var(--text);border-radius:16px;padding:14px;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.marketCard:hover{border-color:#ffffff3d;background:#ffffff0f;transform:translateY(-1px)}.marketCard.isActive{border-color:#fbbf246b;background:linear-gradient(180deg,#fbbf241f,#ffffff0a)}.marketCardTop{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.marketCardTop strong{font-size:15px}.marketCardTop span{font-size:12px;color:var(--muted)}.marketCardValue{font-size:28px;font-weight:800;letter-spacing:-.03em}.marketCardMeta{margin-top:6px;font-size:12px;color:#ffffffad}.stack{display:grid;gap:10px}.status{min-height:20px;font-size:13px;color:#ffffffd1}@keyframes skeletonShimmer{to{transform:translate(100%)}}@media (max-width: 860px){.wrap{padding-top:24px}.header,.cardHeader,.row{flex-direction:column;align-items:flex-start}.actions{width:100%;justify-content:flex-start}.headerControls{width:100%;justify-items:start}.menu{width:100%;overflow-x:auto}.grid{grid-template-columns:1fr}.fxCardTop,.fxMeta,.fearGreedHeader{flex-direction:column;align-items:flex-start}.fearGreedMeta{justify-items:start}.rowValue{text-align:left}}
