/* Shared usability rules. Load after each page's component styles. */
:root{--ui-body:17px;--ui-control:16px;--ui-detail:14px;--ui-touch:44px}
body{font-size:var(--ui-body);line-height:1.55}
/* Action labels are always uppercase; input values and user data keep their case. */
button,.button,[role="button"],input[type="submit"],input[type="button"],input[type="reset"],button :is(span,strong,small){text-transform:uppercase!important}
button,.button,[role="button"],input[type="submit"],input[type="button"],input[type="reset"]{font-size:var(--ui-control)!important;line-height:1.35;min-height:var(--ui-touch);letter-spacing:.035em;font-weight:650}
button,.button,input,select,textarea{touch-action:manipulation}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]),select,textarea{font-size:var(--ui-control)!important;line-height:1.5;min-height:var(--ui-touch);padding:10px 12px}
input[type="checkbox"],input[type="radio"]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--accent,#a855f7)}
label,.field,.login-form label{font-size:16px!important;line-height:1.5;color:var(--ink,#f5f0ff)}
p,li,td{font-size:16px;line-height:1.6}
th{font-size:14px;line-height:1.5;letter-spacing:.04em}
.secondary,.muted,.source,.form-help,.form-error,.notice,.empty p,.login-copy p,.login-foot,.page-heading p{font-size:16px!important;line-height:1.6}
small,.section-code,.eyebrow,.obs-eyebrow,.obs-label,.obs-small,.obs-mini,.obs-footnote,.obs-chart-caption,.post-bottom,.stat-label,.stat-caption,.table-meta,.pagination,.workspace-footer{font-size:var(--ui-detail)!important;line-height:1.55}
.obs-copy,.obs-row strong,.post-text,.post-item p{font-size:17px;line-height:1.6}
.obs-breadcrumb{font-size:13px;line-height:1.5;flex-wrap:wrap}
.obs-nav{flex-wrap:wrap;font-size:13px;line-height:1.4}
.obs-nav>a,.obs-more>summary{min-height:44px;padding:12px 14px}
.obs-network-tabs a,.obs-clock{font-size:13px;line-height:1.4}
.obs-more nav{width:min(360px,calc(100vw - 32px))}
.obs-more nav a,.obs-more label,.obs-more button{font-size:16px;line-height:1.5;min-height:44px}
.obs-mobile-nav a{font-size:13px!important;line-height:1.3;min-height:48px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;padding:8px 4px}
.table-wrap td{font-size:16px;line-height:1.55;padding-block:16px}
.table-wrap th{font-size:14px;padding-block:14px}
.account-name .handle{font-size:17px}.account-name .secondary{font-size:14px!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #d8b4fe!important;outline-offset:4px}
dialog{width:720px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:32px}
.dialog-header{align-items:flex-start;gap:20px}.dialog-header h2{font-size:28px;line-height:1.2;margin:0}.dialog-header .icon-button{min-width:44px;min-height:44px;font-size:26px!important;flex-shrink:0}
.form-grid{gap:20px}.form-actions{gap:12px;margin-top:28px}.form-actions .button{padding:12px 22px}.checkbox-label{gap:12px;align-items:center}.form-grid .form-help{margin:0}
.login-wrap{max-width:580px;padding:40px 32px}.login-copy{padding:36px 0 24px}.login-copy h1{font-size:clamp(32px,4vw,46px);line-height:1.15}.login-form .button{min-height:52px}.login-foot{margin-top:36px}
@media(max-width:700px){
 dialog{padding:24px 20px}.dialog-header h2{font-size:24px}.form-grid{grid-template-columns:minmax(0,1fr);gap:18px}.form-actions{flex-wrap:wrap}.form-actions .button{flex:1;min-width:110px}.login-wrap{padding:28px 24px}.page-heading{padding:28px 20px}.page-heading h1{font-size:32px;line-height:1.12}.workspace-footer{overflow-wrap:anywhere}.obs-breadcrumb{font-size:12px}.obs-mobile-header{min-height:56px}
}
@media(prefers-reduced-motion:reduce){button,.button{transition:none!important}}
.heading-actions{flex-wrap:wrap;gap:12px;max-width:100%}
.workspace-footer>span{font-size:14px!important;line-height:1.5}
@media(max-width:700px){.heading-actions .button{white-space:normal;max-width:100%}.page-heading h1{font-size:clamp(26px,7vw,32px);overflow-wrap:break-word}}
.moriarti-nav{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.moriarti-nav a{font-size:14px;line-height:1.45;min-height:44px;display:inline-flex;align-items:center;white-space:normal;max-width:100%}
@media(max-width:700px){.moriarti-nav{padding:12px 16px}.moriarti-nav a{flex:0 1 auto}}
