/* Pickleball Ops typography system
   Keeps all surfaces readable while respecting the White Label font token. */
:root{
    --ops-font-sans:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    --ops-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    --ops-font-size-base:14px;
    --ops-line-height-base:1.45;
    --ops-letter-tight:-.025em;
}
html{
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}
html,body,button,input,select,textarea{
    font-family:var(--ops-font-sans)!important;
}
body{
    font-size:var(--ops-font-size-base);
    line-height:var(--ops-line-height-base);
}
button,input,select,textarea{
    font-size:13px;
    line-height:1.35;
}
h1,h2,h3,h4,h5,h6,
.panel-head h2,.page-intro h2,.topbar h1{
    font-family:var(--ops-font-sans)!important;
    font-weight:780;
    letter-spacing:var(--ops-letter-tight);
}
strong,b{font-weight:750}
.eyebrow{
    font-size:10px!important;
    font-weight:850!important;
    letter-spacing:.13em!important;
}
.button,.btn{
    font-size:12px;
    font-weight:750;
    letter-spacing:-.005em;
}
.data-table{
    font-size:12px;
    line-height:1.35;
}
.data-table th{
    font-size:9px!important;
    font-weight:850!important;
    letter-spacing:.085em!important;
}
.table-sub,.muted,.field-help{
    line-height:1.45;
}
.badge{
    font-size:10px;
    font-weight:800;
}
code{
    font-family:var(--ops-font-mono)!important;
}

/* Dense operational surfaces: readable without losing speed/density. */
.staff-calendar-wrap .booking-date-title strong{font-size:18px!important;font-weight:800!important}
.staff-calendar-wrap .booking-tier strong{font-size:11px!important;font-weight:850!important}
.staff-calendar-wrap .booking-tier span{font-size:9px!important;line-height:1.35}
.staff-calendar-wrap .booking-schedule-table thead th{font-size:9px!important}
.staff-calendar-wrap .booking-slot-button strong{font-size:10px!important;font-weight:800!important}
.staff-calendar-wrap .booking-slot-button small{font-size:8px!important;line-height:1.2}
.staff-calendar-wrap .booking-slot-select-label{font-size:8px!important;font-weight:800!important}
.staff-booking-fields label,.staff-guest-fields label{font-size:10px!important;font-weight:750!important}
.staff-booking-fields select,.staff-booking-fields input,.staff-guest-fields input{font-size:12px!important}
.staff-slot-addons-head p{font-size:10px!important}
.staff-slot-addon-time strong{font-size:11px!important}
.staff-slot-addon-time small{font-size:9px!important}
.staff-slot-addon-toggle span{font-size:10px!important}
.staff-slot-addon-toggle small{font-size:9px!important}

.openplay-session-identity strong{font-size:16px!important;font-weight:800!important}
.openplay-session-identity small{font-size:10px!important}
.openplay-session-picker label>span{font-size:9px!important;font-weight:850!important}
.openplay-session-picker select{font-size:12px!important}
.openplay-kpi-strip span,.dupr-kpi-strip span{font-size:9px!important;font-weight:850!important}
.openplay-kpi-strip strong,.dupr-kpi-strip strong{font-size:23px!important;font-weight:800!important}
.openplay-kpi-strip small,.dupr-kpi-strip small{font-size:9px!important}
.match-desk-commandbar strong{font-size:15px!important;font-weight:800!important}
.match-desk-commandbar small{font-size:10px!important}
.match-desk-column-head h2{font-size:16px!important;font-weight:800!important}
.match-desk-count{font-size:11px!important}
.desk-skill-head span strong{font-size:11px!important}
.desk-skill-head span small{font-size:9px!important}
.desk-skill-head b{font-size:10px!important}
.desk-queue-copy strong{font-size:11px!important}
.desk-queue-copy small{font-size:9px!important}
.desk-queue-copy em{font-size:8px!important}
.desk-stage-head span b{font-size:12px!important}
.desk-stage-head span small{font-size:8px!important}
.desk-stage-teams>div>small{font-size:8px!important}
.desk-stage-player>span strong{font-size:10px!important}
.desk-stage-player>span small{font-size:8px!important}
.desk-live-head>span strong{font-size:13px!important}
.desk-live-head>span small{font-size:8px!important}
.desk-timer small{font-size:7px!important}
.desk-timer strong{font-size:24px!important;font-weight:850!important}
.desk-score-team>small{font-size:8px!important}
.desk-score-team>strong{font-size:10px!important}
.desk-score-vs{font-size:9px!important}
.desk-score-stepper input{font-size:18px!important;font-weight:850!important}

.member-web-app,.public-site{
    font-family:var(--ops-font-sans)!important;
}
.member-web-greeting h1{font-weight:800!important;letter-spacing:-.035em!important}
.member-player-stats strong,.member-loyalty-app-card strong{font-variant-numeric:tabular-nums}
/* ADMIN OPEN SANS HARD SCOPE 2026-10-03 */
body.ops-admin,
body.ops-admin *:not(.ni):not(code):not(pre){
    font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
}
body.ops-admin .ni{
    font-family:"Nioicon"!important;
}
body.ops-admin code,
body.ops-admin pre{
    font-family:var(--ops-font-mono)!important;
}
