/* 화면 전체에 적용하는 역할별 글씨 및 버튼 기준. */
:root{--preview-page:24px;--preview-section:18px;--preview-item:16px;--preview-body:14px;--preview-note:12px;--preview-number:28px}
body{font-size:var(--preview-body)!important}
h1,.main-header h1{font-size:var(--preview-page)!important;line-height:1.4!important}
h2,.section-title,.card-header h2,.section-head h2{font-size:var(--preview-section)!important;line-height:1.4!important}
h3,.card-title,.slot-name strong,.core-top h3{font-size:var(--preview-item)!important;line-height:1.5!important}
p,td,th,label,.menu-item,.form-control,input,select,textarea,.option-row select,.gem input,.gem select{font-size:var(--preview-body)!important;line-height:1.6!important}
small,.help,.muted,.sub,.notice,.badge,.brand-subtitle,.raw-option,.core-meta,.result-sub,.slot-details,.timer-label,.filter-label,.empty-state p,.empty-state-large p,footer{font-size:var(--preview-note)!important;line-height:1.6!important}
.help *,.notice *,.muted *,.slot-details p,.slot-name small,.result-sub *{font-size:inherit!important}
.result-banner strong,.result-banner #delta,.stat-value,.metric,.hero-number strong{font-size:var(--preview-number)!important;line-height:1.3!important;font-variant-numeric:tabular-nums}
button,.btn,.primary,.secondary,.text-button{font-size:var(--preview-body)!important;min-height:40px!important;padding:8px 16px!important;line-height:1.4!important;border-radius:8px!important;font-weight:500!important}
.btn-sm,.btn-icon,.stepper,.btn-filter,.stage-control button{min-height:32px!important;height:32px!important;padding:4px 10px!important;font-size:var(--preview-body)!important}
input:not([type=checkbox]):not([type=radio]),select{min-height:40px!important;padding:8px 10px!important}
.gem input,.gem select,.stage-control input,.stage-control select,.option-row select{min-height:32px!important;height:32px!important;padding:4px 8px!important}
.controls label>.inline{margin-top:8px}.controls label>.inline input{margin-top:0!important}.controls label>.inline button{align-self:stretch;margin-top:0!important}

[hidden]{display:none!important}.character-picker{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.character-picker>label{flex:1;min-width:240px}.character-picker #manual-character{margin-top:8px}.character-picker input{margin-top:0!important}
