/* Application typography. Keep type decisions here; component CSS owns layout. */
:root{
 --font-ui:Inter,Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI","Noto Sans KR",sans-serif;
 --text-page:24px;
 --text-section:18px;
 --text-card:16px;
 --text-body:14px;
 --text-input:16px;
 --text-meta:12px;
 --text-value:32px;
 --text-detail-value:36px;
 --weight-regular:400;
 --weight-medium:500;
 --weight-semibold:600;
 --weight-bold:700;
 --tone-title:#1d2c43;
 --tone-body:#3f4e65;
 --tone-meta:#64738a;
 font-family:var(--font-ui);
 font-size:var(--text-body);
 font-weight:var(--weight-regular);
 line-height:1.65;
 letter-spacing:0;
}
:root[data-theme=dark]{--tone-title:#edf3fc;--tone-body:#c3cfe1;--tone-meta:#9dacc3}
body{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.65;color:var(--tone-body)}
button,input,select,textarea{font-family:var(--font-ui)}
strong,b{font-weight:var(--weight-semibold)}
h1,h2,h3,h4,p{overflow-wrap:break-word}
h1,.page-heading h1,.guide-page h1,.modal-heading h2,.account-heading h2{
 font-size:var(--text-page);font-weight:var(--weight-bold);line-height:1.4;letter-spacing:-.025em;color:var(--tone-title);
}
h2,.panel-heading h2,.history-section-heading h2,.alert-form-title h2,.alert-list-heading h2,.guide-steps h2,.guide-policy h2,.market-guide h2,.welcome-card h2,.welcome-bottom h2,.dashboard-login h2,.empty-state h2,.form-panel h2{
 font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:1.5;letter-spacing:-.015em;color:var(--tone-title);
}
h3,.api-card h3,.market-guide h3,.section-label,.metric .metric-label,.overview-section .metric .metric-label,.dashboard-tile .metric .metric-label{
 font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:1.5;letter-spacing:0;color:var(--tone-title);
}
.metric .value,.overview-section .metric .value,.dashboard-tile .metric .value,.ring-center strong,.catalog-summary strong{
 font-size:var(--text-value);font-weight:var(--weight-bold);line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--tone-title);
}
.metric .value{flex-wrap:wrap;row-gap:2px}
.modal-summary strong{font-size:var(--text-detail-value);font-weight:var(--weight-bold);line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--tone-title)}
.metric .value small,.dashboard-tile .metric .value small,.modal-summary small,.ring-value-unit{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5;letter-spacing:0;color:var(--tone-meta)}
.page-heading p,.history-section-heading p,.api-card p,.welcome-card p,.welcome-bottom p,.market-guide p,.market-guide-grid p,.market-guide details,.market-guide details p,.guide-page,.guide-lead,.alert-form p,.telegram-panel p,.telegram-quick-steps,.saved-alert li,.saved-alert p,.alert-empty,.account-heading p,.empty-state p,.form-panel p,.dashboard-login p,.history-placeholder,.chart-empty,.notice,.error-banner,.alert-error,.alert-success,.availability-notice,.favorite-guide p{
 font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.75;letter-spacing:0;
}
.page-heading p,.history-section-heading p,.api-card p,.favorite-guide p,.account-heading p{color:var(--tone-body)}
.button,.heading-tools .button,.expand-button,.tile-chart-heading .expand-button,[data-action="expand-chart"]:not(.metric-value-button),.metric-alert a,.inline-link,.tabs button,.detail-tabs button,.chip,.chips .chip,.chart-controls .chip,.segmented button,.filter-row button,.table-pagination .button,.alert-card-actions .button,.telegram-token .button,.account-button,.account-tabs button,.welcome-actions .button,.welcome-card>a,.guide-page .welcome-actions>a:not(.button),.market-guide-actions a{
 font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.45;letter-spacing:0;
}
.tabs button.active,.account-tabs .active,.filter-row button.active,.chip.active{font-weight:var(--weight-semibold)}
.brand,.brand-name{font-size:24px;font-weight:var(--weight-bold);line-height:1.25;letter-spacing:-.025em}
.nav-item,.tree summary,.tree-sub summary,.tree-leaf,.tree-search input,.screen-zoom-buttons button,.brand-settings{
 font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5;letter-spacing:0;
}
.nav-item.active,.tree-leaf.selected,.tree-leaf.selected .name,#breadcrumb a[aria-current=page]{font-weight:var(--weight-semibold)}
.tree-leaf.selected::after{font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.5}
#breadcrumb,#breadcrumb .breadcrumb-current,#mobile-menu{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5;letter-spacing:0}
#breadcrumb .breadcrumb-current{font-size:var(--text-meta);font-weight:var(--weight-regular)}
.eyebrow,.sidebar-label,.welcome-kicker,.welcome-number{font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.5;letter-spacing:.08em;color:var(--tone-meta)}
.small-note,.muted,.panel-heading p,.panel-heading .meta,.metric-foot,.metric-date,.dashboard-tile .metric-date,.dashboard-tile .metric-foot,.metric-date .quote-delay,.chart-footer,.chart-range-label,#chart-dialog .chart-range-label,.tile-chart-heading .tile-chart-caption,.tile-chart-caption,.tile-chart-footer,.chart-zoom span,.tile-chart .chart-zoom span,.chart-interaction-hint,.modal-controls,.modal-footer,.modal-summary>span,.top-status-strip,.overview-hint small,.history-section-heading h2 span,.catalog-cadence,.catalog-summary span,.info-strip span,.scope-picker span,.choice-count,.choice-control .choice-count,.choice-empty,.guide-note,.guide-source,.alert-fresh-note,.alert-form-title>span,.alert-list-heading>span,.alert-schedule small,.account-privacy,#account-message,.site-footer,.site-footer .privacy-link,.ad-placement,.screen-zoom-heading,.screen-zoom-buttons button span,.nav-count,.tree summary small,.tree-sub summary small,.tree-leaf small,.status,.alert-state,.availability-notice small,.form-field small,.favorite-guide .alarm-notice,.provider-card,.connection,.brand small{
 font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.55;letter-spacing:0;
}
.metric-date,.dashboard-tile .metric-date,.chart-footer,.chart-range-label,.tile-chart-caption,.tile-chart-footer,.top-status-strip,.history-section-heading p,.panel-heading p,.panel-heading .meta,.catalog-cadence,.overview-hint small{color:var(--tone-meta)}
.metric-date .quote-delay{font-weight:var(--weight-medium)}
.metric-foot .change{font-weight:var(--weight-semibold)}
.favorite-guide strong,.availability-notice strong{font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:1.5;color:inherit}
.favorite-guide p a,.telegram-help summary,.telegram-terms dt,.market-guide summary{font-weight:var(--weight-medium)}
.welcome-hero h1{font-size:44px;font-weight:var(--weight-bold);line-height:1.3;letter-spacing:-.035em}
.welcome-hero>p{font-size:var(--text-card);font-weight:var(--weight-regular);line-height:1.85;letter-spacing:0}
.welcome-tags span{font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.5}
.form-field label,.query-control label,.scope-picker label,.choice-control>label,.alert-condition label,.alert-schedule>label,.alert-schedule legend,.weekday,.alert-enabled,.telegram-panel form>label,#account-form label{
 font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5;letter-spacing:0;
}
.form-field input,.form-field select,.query-control select,.scope-picker select,.choice-trigger,.choice-option,.choice-search input,.choice-control input,.search-box input,.alert-form :is(select,input:not([type=checkbox])),.telegram-panel input,#account-form input{
 font-size:var(--text-input);font-weight:var(--weight-regular);line-height:1.5;letter-spacing:0;
}
#account-form input::placeholder{font-size:var(--text-body);font-weight:var(--weight-regular)}
.scope-picker .choice-value,.scope-picker .choice-option>span{font-size:var(--text-input);font-weight:var(--weight-regular);line-height:1.5}
.data-table,.data-table td,.table-title,.table-link,a.table-link,.bar-row{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.6;letter-spacing:0}
.data-table th{font-size:var(--text-meta);font-weight:var(--weight-semibold);line-height:1.5;letter-spacing:0}
.data-table td.numeric,.numeric{font-variant-numeric:tabular-nums}
.updated-badge span,.updated-badge>.cadence-label{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.6}
.updated-badge strong,.updated-badge .source-basis strong{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:1.6;letter-spacing:0}
.updated-badge>span:not(.source-basis) strong,.updated-badge>.cadence-label strong{font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.6}
.legend-row{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.5}
.legend-row strong{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5}
.legend-row small,.ring-center>span{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5}
.chart-svg text,.compact-chart .chart-svg text{font-size:14px;font-weight:var(--weight-regular);font-family:var(--font-ui);letter-spacing:0;fill:var(--tone-meta)}
.chart-tooltip{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:1.6}
.chart-tooltip small{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5}
.chart-zoom button,.tile-chart .chart-zoom button,.today-window{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5}
.drag-handle{font-size:20px;line-height:1;font-weight:var(--weight-regular)}
.drag-handle span{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5}
.saved-alert a{font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:1.5}
.refresh-interval,.table-pagination{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5}
.search-clear,.favorite-guide>button,.account-close,.alert-remove-condition{font-size:24px;font-weight:var(--weight-regular);line-height:1}
.toast{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.6}
.fund-title{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5;color:var(--tone-title)}
.fund-value strong{font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:1.5;color:var(--tone-title)}
.fund-label,.fund-value small{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5;color:var(--tone-meta)}
.fund-date time{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.5;color:var(--tone-body)}
@media(max-width:720px){
 :root{--text-page:22px;--text-value:28px;--text-detail-value:32px}
 .welcome-hero h1{font-size:32px}
 #breadcrumb{font-size:var(--text-meta)}
}
