/* X's default web scale: body 15/20, headings 20/24 and 17/20,
   secondary text 14/16 and 13/16. Keep Nodora's existing font family. */
:root{
 --type-title:20px;--type-section:17px;--type-body:15px;
 --type-control:14px;--type-caption:13px;--type-input:16px;
 --type-body-leading:20px;--type-control-leading:20px;
 --type-caption-leading:16px
}
body,.page,.modal-card,.notification-panel,.header-dropdown{
 font-size:var(--type-body);line-height:var(--type-body-leading)
}
body :is(.page,.modal-card) :is(h1,h2),body #socialDialogTitle{
 font-size:var(--type-title)!important;line-height:24px!important
}
body :is(.page,.modal-card,.header-dropdown,.notification-panel,.desktop-panel) :is(h3,h4){
 font-size:var(--type-section)!important;line-height:20px!important
}
body :is(.page p,.modal-card p,.profile-bio,.news-preview p,.chat-message-text,
 .thread-reply p,.space-card p,.space-summary p,.launch-card p,.repost-preview p,
 .header-dropdown p,.notification-panel p,.notification-item p,
 .composer-card-description,.desktop-empty){
 font-size:var(--type-body);line-height:var(--type-body-leading)
}
/* Names, handles, timestamps and post text all use the same reading size.
   Override the former mobile 13px body / 11px identity reductions. */
body[data-home-layout] .post .post-body,
body[data-home-layout] .post .post-head>.post-body,
body[data-home-layout] .post :is(.author-link,.post-handle,.post-time,.post-time time),
body[data-home-layout] .post .compact-author .small,
body .author-link,body #composerName,body .space-post-identity{
 font-size:var(--type-body)!important;line-height:var(--type-body-leading)!important
}
body .compact-mini-composer{
 font-size:var(--type-body)!important;line-height:var(--type-body-leading)
}
/* One control size, including native controls and menu items. */
body :is(.btn,.chip,.wallet-choice,.feed-sort-menu button,.post-options-menu button,
 .profile-session-actions>button,.page summary,.modal-card summary,.page label,
 .modal-card label,.image-upload-button,.setting-label,.reward-choice span,
 .poll-choice span,.profile-dropdown .wallet-choice,.news-filters .chip,
 .launch-links>a,.growth-manage>summary,.growth-space-links .chip,
 .desktop-pill,.desktop-tabs button,.desktop-link){
 font-size:var(--type-control)!important;line-height:var(--type-control-leading)
}
body #feedSortButton,body #postBtn,body #uploadPhotoChoice,
body #socialDialog.composer-card-dialog :is(.poll-editor-actions>button,#addPollChoice),
body #socialDialog.composer-card-dialog #composerChartForm>label,
body #socialDialog.composer-card-dialog .composer-card-description{
 font-size:var(--type-control)!important;line-height:var(--type-control-leading)
}
body #socialDialog.composer-card-dialog [aria-label="Poll duration"]{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px
}
body #socialDialog.composer-card-dialog [data-poll-hours]{
 min-width:0;padding-inline:4px;white-space:nowrap
}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select,.input,#postText,.topbar .search input){
 font-size:var(--type-input)!important;line-height:22px
}
body :is(.chart-settings select,.chart-settings .input,.chart-ranges select){
 font-size:var(--type-control)!important;line-height:var(--type-control-leading)
}
/* Captions and action counts share the smaller text size and existing colour. */
body :is(.small,small,time,.notice,.error,.market-facts,.market-source,.market-date,
 .news-credit,.news-preview-label,.legal-links,.profile-policy-links,.password-note,
 .mention-help,.auth-divider,.post-gif figcaption,.launch-date,.promotion-delivery,
 .transient-feedback,.recent-own-reply,.reward-explanation,.holding-card small,
 .profile-stats-grid span,.vote-stats span,.desktop-topic-note,.desktop-footnote,
 .desktop-paper,.sentiment-history){
 font-size:var(--type-caption);line-height:var(--type-caption-leading)
}
body :is(.page p.small,.modal-card p.small,.chat-quote,.chat-message time){
 font-size:var(--type-caption)!important;line-height:var(--type-caption-leading)
}
body[data-home-layout] .post .post-actions :is(.vote-score,.action-count){
 font-size:var(--type-caption)!important;line-height:20px!important;font-weight:600;
 color:var(--muted)!important
}
body[data-home-layout] #page-tokencheck .compact-sentiment .sentiment-heading h2{
 font-size:var(--type-section)!important;line-height:20px!important
}
body[data-home-layout] .headline-ticker a{
 font-size:var(--type-body)!important;line-height:var(--type-body-leading)
}
body[data-home-layout] .headline-ticker .ticker-label{
 font-size:var(--type-caption)!important;line-height:var(--type-caption-leading)
}
body :is(.desktop-space-title b,.desktop-person b,.desktop-launch b,.desktop-trend b,
 .desktop-progress b),body #sideNav button{
 font-size:var(--type-body);line-height:var(--type-body-leading)
}
body :is(.desktop-space-title small,.desktop-person small,.desktop-launch small,
 .desktop-trend small,.desktop-progress small,.desktop-tags a){
 font-size:var(--type-caption);line-height:var(--type-caption-leading)
}
/* Short attachment labels stay legible inside the existing compact toolbar.
   Market cards retain their responsive prices so three complete cards fit. */
body[data-home-layout] .composer .composer-action-row>button:not(#postBtn){
 font-size:var(--type-caption)!important
}
@media(max-width:540px){
 body[data-home-layout] .composer .composer-action-row>button:not(#postBtn){font-size:11px!important}
}
