/* SANA 3.0 — unified understated newsroom design layer. No navigation or permission changes. */
:root{--sfe-v3-accent:#18446c;--sfe-v3-line:#e1e6ec;--sfe-v3-text:#142b40;--sfe-v3-muted:#657587;--sfe-v3-radius:12px;--sfe-v3-focus:0 0 0 3px rgba(27,86,135,.21)}
:focus-visible{outline:2px solid #1c668f;outline-offset:3px}
button,a,input,select,textarea{touch-action:manipulation}
button:not(:disabled),input[type=submit]:not(:disabled),a{transition:background-color .12s ease,color .12s ease,border-color .12s ease}
button:disabled,.btn:disabled{opacity:.48;cursor:not-allowed}
button,.btn,input[type=submit],input[type=button]{font:inherit}
input,select,textarea{font:inherit;min-width:0}
.card,.pane,.plan-card,.treatment-card,.review-treatment-card{box-shadow:none}
.card,.pane,.plan-card,.treatment-card,.review-treatment-card{border-color:var(--sfe-v3-line)}
.card-action-menu>summary,.cal-menu-trigger{min-width:38px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}
.topbar,.app-sidebar,.page{min-width:0}
.topbar-brand-mobile,.sfe-logo-wordmark{min-width:0}
.page p:empty,.page .muted:empty,.page .hint:empty{display:none}
.page .btn,.page button{max-width:100%}
.page [role=status]{overflow-wrap:anywhere}
.page h1,.page h2,.page h3{overflow-wrap:anywhere;line-height:1.34}
.page h1{letter-spacing:-.012em}
.page :is(.alert,.notice,.error){line-height:1.55}
.page :is(input,textarea,select){border-radius:10px}
.page :is(.btn,.button){border-radius:10px}
@media(max-width:760px){
 .page{padding-inline:clamp(12px,4vw,20px);overflow-wrap:anywhere}
 .page :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}
 .page :is(.btn,button){min-height:38px}
 .page :is(.card,.pane,.plan-card){max-width:100%}
 .page table{font-size:.88rem}
 .page .cal-action-menu>summary{min-width:40px;min-height:40px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}

/* Uniform control rhythm; long filter groups can scroll instead of clipping. */
@media(max-width:760px){
 .page .btn,.page button:not(.topbar-menu-trigger):not(.sfe-sidebar-toggle):not(.topbar-menu-trigger){font-size:max(12px, .78rem)}
 .planning-lane-tabs{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
 .planning-lane-tabs a{flex-shrink:0}
 .sfe-home-section-head p:empty{display:none}
}
