:root{--bg: #fbfbfd;--surface: #ffffff;--border: #e3e6ec;--text: #1c2128;--muted: #6b7480;--accent: #3b7dd8;--extreme-fear: #b4232a;--fear: #d2792f;--neutral: #8a8f98;--greed: #3f8f5a;--extreme-greed: #1f6f45;--up: #17794a;--down: #b4232a}@media(prefers-color-scheme:dark){:root{--bg: #14171c;--surface: #1b1f26;--border: #2c323c;--text: #e6e9ee;--muted: #98a1ae}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,system-ui,sans-serif;line-height:1.6;font-size:15px}.app{max-width:1180px;margin:0 auto;padding:24px 20px 48px}.app-header{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--border)}.brand h1{margin:0;font-size:1.6rem;letter-spacing:-.02em}.tagline{margin:2px 0 0;color:var(--muted);font-size:.86rem}nav{display:flex;gap:4px}nav button{padding:7px 14px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:.9rem;cursor:pointer}nav button:hover{color:var(--text)}nav button.active{background:var(--surface);border-color:var(--border);color:var(--text);font-weight:600}h2{font-size:1.15rem;margin:32px 0 12px;letter-spacing:-.01em}h3{font-size:1rem;margin:0}.muted{color:var(--muted)}.state{padding:40px 0;text-align:center;color:var(--muted)}.state-error{color:var(--down);text-align:left}.freshness{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:.85rem}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}.badge-warn{background:#d2792f24;color:var(--fear)}.badge-error{background:#b4232a24;color:var(--down)}.fng-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.fng-cell{display:flex;flex-direction:column;gap:8px}.fng-card{padding:18px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.fng-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.fng-index{color:var(--muted);font-weight:400;font-size:.85rem}.fng-date{color:var(--muted);font-size:.78rem;white-space:nowrap}.fng-score-row{display:flex;align-items:baseline;gap:12px;margin:12px 0 8px}.fng-score{font-size:2.6rem;font-weight:700;letter-spacing:-.03em;line-height:1}.fng-label{font-size:1rem;font-weight:600}.tone-extreme-fear .fng-score,.tone-extreme-fear .fng-label{color:var(--extreme-fear)}.tone-fear .fng-score,.tone-fear .fng-label{color:var(--fear)}.tone-neutral .fng-score,.tone-neutral .fng-label{color:var(--neutral)}.tone-greed .fng-score,.tone-greed .fng-label{color:var(--greed)}.tone-extreme-greed .fng-score,.tone-extreme-greed .fng-label{color:var(--extreme-greed)}.meter-track{height:9px;border-radius:999px;position:relative;margin-top:4px;background:linear-gradient(90deg,var(--extreme-fear),var(--fear),var(--neutral),var(--greed),var(--extreme-greed));opacity:.55}.meter-marker{position:absolute;top:50%;width:4px;height:20px;border-radius:2px;background:var(--text);border:2px solid var(--surface);transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000059}.meter-bands{display:flex;justify-content:space-between;list-style:none;margin:5px 0 0;padding:0;font-size:.66rem;color:var(--muted)}.fng-missing{color:var(--muted);font-size:.85rem;margin:8px 0}.fng-note{margin:12px 0 0;padding:9px 11px;border-radius:7px;background:#d2792f1a;font-size:.8rem;line-height:1.5}.fng-extended{margin:12px 0 0;font-size:.86rem}.fng-extended.muted{font-size:.78rem}.fng-extended-hint{color:var(--muted);font-size:.78rem}.components{margin-top:12px}.components summary{cursor:pointer;font-size:.84rem;color:var(--muted)}.components dl{margin:10px 0 0}.component-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.85rem}.component-row dt{color:var(--muted)}.component-row dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.components-hint{margin:8px 0 0;font-size:.74rem;color:var(--muted)}.chart{width:100%}.chart-empty{font-size:.82rem;padding:8px 0}.category{margin-bottom:22px}.category-title{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.fact-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(238px,1fr))}.fact-card{padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.fact-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.fact-card h3{font-size:.88rem;font-weight:600}.fact-latest{display:flex;align-items:baseline;gap:9px;margin:9px 0 10px}.fact-value{font-size:1.42rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.fact-change{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.tone-up{color:var(--up)}.tone-down{color:var(--down)}.tone-flat{color:var(--muted)}.fact-rows{margin:0}.fact-row{display:flex;justify-content:space-between;padding:2px 0;font-size:.81rem}.fact-row dt{color:var(--muted)}.fact-row dd{margin:0;font-variant-numeric:tabular-nums}.category-note{margin:0 0 9px;font-size:.76rem;color:var(--muted);line-height:1.5;max-width:760px}.prose{max-width:720px}.prose h3{font-size:1.02rem;margin:26px 0 8px}.prose h4{font-size:.92rem;margin:18px 0 6px}.prose p,.prose li{font-size:.92rem}.prose ul{padding-left:20px}.disclaimer{margin-top:40px;padding-top:18px;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted);line-height:1.6}.disclaimer strong{color:var(--text)}.disclaimer-sub{font-size:.76rem}.validation-meta{font-size:.8rem;color:var(--muted)}.prose h5{font-size:.86rem;margin:14px 0 6px;color:var(--muted)}.table-scroll{overflow-x:auto;margin:8px 0 12px}.validation-table{border-collapse:collapse;font-size:.82rem;min-width:100%}.validation-table th,.validation-table td{padding:5px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.validation-table th{color:var(--muted);font-weight:600}.validation-table td.num{text-align:right;font-variant-numeric:tabular-nums}.validation-table td.pass{color:var(--up);font-weight:600}.validation-table td.fail{color:var(--down);font-weight:600}.validation-tests{font-size:.84rem;padding-left:20px;margin:4px 0 14px}.validation-verdict{padding:12px 14px;border-radius:8px;background:#b4232a14;border-left:3px solid var(--down)}
