/* Marksman contrast and hierarchy audit: scoped visual overrides.
   Normal text >=4.5:1; primary text 7:1+; interactive outlines >=3:1. */
:root{--ink:#151515;--muted:#525252;--line:#d6d6d6}
body{font-size:15px}
h1{font-size:clamp(28px,3vw,36px);font-weight:750;line-height:1.18}
h2,h3{color:#151515;font-weight:700}
.eyebrow,.header-right,.muted,.stats label,.stats small,.stats p,
.appointment-time small,.appointment-main span,.renewal-row small,
.regular-chips span,footer,.renewal-panel>p,.renewal-panel>small,
.policy-note p,.toolbar p,th,td,.empty p,.regular-time small,.guide p,
.checklist-item p,.calendar-day header span,.calendar-event small,
.calendar-empty,.calendar-hint,.booking-note,.slot small,.form-note,
.field>span,.checkbox,.booking-confirm>strong,.mobile-brand small,
.signin-card>p,.signin-note,td small{color:#525252}
.eyebrow{font-size:11px;letter-spacing:1.3px}
.header-right{font-size:13px}
.preview-bar{font-size:13px;color:#333;background:#eaeaea}
.preview-bar b,.preview-bar button{font-size:12px;color:#222}
.page-header{margin-bottom:26px}
.badge{font-size:12px;font-weight:650;line-height:1.4;color:#333;background:#ededed;padding:7px 10px}
.badge.green{color:#151515;background:#ededed;border:1px solid #c4c4c4}
.badge.amber{color:#fff;background:#252525;border:1px solid #252525}
.badge.booking-paused{background:#fff;color:#252525;border:1px solid #858585}
.stats label{font-size:13px;font-weight:600}
.stats small,.stats p{font-size:12px}
.stats article>div{font-weight:750}
.stats .stat-word{font-size:23px;line-height:1.3}
.panel-heading h2{font-size:20px}
.panel-heading .eyebrow{font-size:11px}
.text-btn{font-size:13px;font-weight:650;color:#252525;min-height:36px;padding:8px 0;text-decoration:underline;text-underline-offset:4px}
.btn{font-size:14px;font-weight:700;min-height:44px;padding:13px 18px;gap:12px}
.btn.dark,.btn.primary{background:#111;color:#fff;border-color:#111}
.btn.secondary{background:#fff;color:#252525;border-color:#858585}
.icon-btn{color:#252525;border-color:#858585;min-width:44px;min-height:44px}
.toolbar input,.toolbar select,.toolbar-actions select,.field input,.field select{border-color:#858585;color:#252525;background:#fff;min-height:46px;font-size:16px}
input::placeholder{color:#666;opacity:1}
.field>span{font-size:13px;font-weight:650}
.field{margin-bottom:20px}
.checkbox,.form-note{font-size:13px}
.checkbox input{width:18px;height:18px;flex:0 0 18px}
.form-error{color:#151515;font-size:14px;font-weight:650}
.form-error:not(:empty){padding:12px;border:2px solid #252525;border-radius:6px;background:#f4f4f4}
button:disabled{opacity:1;background:#e8e8e8;color:#525252;border-color:#c4c4c4;cursor:not-allowed;filter:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{
 outline:3px solid #111;outline-offset:3px;box-shadow:0 0 0 6px #fff}
.sidebar button:focus-visible,.sidebar a:focus-visible{outline-color:#fff;box-shadow:0 0 0 6px #080808}
table{font-size:14px}
th{font-size:12px;font-weight:700;letter-spacing:.7px;background:#f4f4f4;padding:16px 22px}
td{padding:20px 22px}
td strong,.person strong{color:#151515;font-weight:700}
.table-panel tbody tr:hover{background:#fafafa}
.person .avatar{font-size:12px}
.appointment-time{font-size:21px;font-weight:750}
.appointment-time small,.appointment-main span{font-size:12px}
.appointment-main strong{font-size:15px;font-weight:700}
.appointment-end .badge{font-size:12px}
.renewal-row strong{font-size:16px}
.renewal-row small{font-size:13px;line-height:1.6}
.pending-invites .panel-heading h2{font-size:18px}
.pending-invites .renewal-row p{font-size:15px;font-weight:650;color:#252525;margin-top:8px}
.pending-invites .pad{font-size:13px}
.regular-time span,.regular-chips span,.regular-chips strong{font-size:13px}
.regular-time small{display:block;font-size:12px;line-height:1.5;margin-top:4px}
.regular-time>strong{font-size:18px;font-weight:750}
.regular-chips>div{max-width:none}
.compact-panel p,.policy-note p{font-size:13px}
.policy-note strong{font-size:15px;color:#252525}
.guide p,.checklist-item p{font-size:14px}
.checklist-item strong{font-size:15px}
.calendar-day header span,.calendar-empty{font-size:12px}
.calendar-event>span{font-size:13px;font-weight:650}
.calendar-event strong{font-size:14px}
.calendar-event small{font-size:12px}
.booking-note,.calendar-hint{font-size:13px}
.slot{color:#252525;border-color:#858585;min-height:64px}
.slot strong{font-size:21px;font-weight:750}
.slot small,.slot-days h3,.slot-days p{font-size:13px}
.slot.regular{border:2px solid #252525;background:#f0f0f0}
.empty h3{font-size:20px;color:#252525}
.empty p{font-size:14px}
.action-card h2,.client-hero h2{color:#fff;font-weight:700}
.action-card p,.client-hero p{color:#c4c4c4;font-size:14px}
.action-card .eyebrow,.client-hero .eyebrow{color:#c4c4c4}
.renewal-panel>p{font-size:14px}
.renewal-panel>small{font-size:13px}
.nav-item{color:#c4c4c4;font-size:14px;min-height:48px}
.nav-item.active{background:#fff;color:#080808;font-weight:750}
.nav-caption,.sidebar-note p,.account small{color:#b5b5b5;font-size:12px}
.brand small{font-size:10px;color:#c4c4c4}
footer,footer span{font-size:12px;letter-spacing:.5px;line-height:1.6}
.dialog-body .muted{font-size:14px}
.signin-note{font-size:13px}
@media(max-width:600px){
 .page-header{align-items:flex-start;flex-wrap:wrap;gap:12px}
 .page-header h1{font-size:29px}
 .page-header .eyebrow{font-size:10px}
 .header-right{margin:0}
 .header-right .badge{font-size:12px}
 .preview-bar,.preview-bar button{font-size:12px}
 .preview-bar span{max-width:none}
 .stats{grid-template-columns:1fr;gap:10px}
 .stats article{padding:18px;display:grid;grid-template-columns:1fr auto;align-items:center}
 .stats label{font-size:13px;min-height:0;max-width:180px}
 .stats article>div{font-size:30px;margin:0;letter-spacing:-.5px}
 .stats .stat-word{font-size:19px;padding:0;max-width:175px;text-align:right}
 .stats small{font-size:12px}
 .panel-heading h2{font-size:19px}
 .panel-heading .eyebrow{font-size:10px}
 .toolbar-actions{flex-wrap:wrap;gap:10px}
 .toolbar-actions>.btn{flex:1}
 .table-panel table{min-width:0;display:block}
 .table-panel thead{display:none}
 .table-panel tbody{display:block}
 .table-panel tr{display:grid;grid-template-columns:1fr 1fr;padding:18px;gap:16px;border-bottom:1px solid #d6d6d6}
 .table-panel td{border:0;padding:0;display:block;min-width:0}
 .table-panel td:first-child{grid-column:1/-1}
 .table-panel td:last-child:has(button){grid-column:1/-1}
 .table-panel td[data-label]:before{content:attr(data-label);display:block;color:#525252;font-size:12px;font-weight:650;margin-bottom:6px}
 .table-panel td:first-child:before{display:none}
 .appointment-main strong{font-size:14px}
 .appointment-main span,.appointment-time small{font-size:12px}
 .appointment-end .badge{font-size:11px;max-width:105px;text-align:center}
 .text-btn{font-size:13px}
 .renewal-row{flex-wrap:wrap}
 .renewal-row small{overflow-wrap:anywhere}
 .nav-item>span{font-size:10px}
 .nav-item.active{background:#fff;color:#080808}
 .policy-note p,.checklist-item p,.guide p{font-size:13px}
 .mobile-brand small{font-size:10px;letter-spacing:1px}
 footer{flex-direction:column;align-items:flex-start;gap:8px}
 footer span{max-width:none;text-align:left;font-size:12px}
}
