/* SEHAT ONLINE Plugin v1.1.6 | Coastal Breeze presentation bridge.
 * All rules are scoped to Sehat plugin components. No business logic changes.
 * Matches theme 1.0.28; also degrades gracefully on other themes.
 */
.so-bk,.so-pub,.so-shell,.so-dashboard,.so-int,
.so-doctor-portal,.so-doctor-shell,.so-doc-portal,.so-patient-portal{
 --so-coastal-steel:#6485a6;--so-coastal-blue:#cbdae1;
 --so-coastal-ivory:#f2f0e4;--so-coastal-peach:#fde3c8;
 --so-coastal-apricot:#f4c89e;--so-coastal-navy:#142e49;
 --so-coastal-primary:#365f84;--so-coastal-muted:#536b80;
 --so-coastal-line:#dce5ea;--so-coastal-soft:#f2f7f9;
 font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.so-bk,.so-bk.so-bk-picker{
 --bk-navy:#142e49;--bk-teal:#365f84;--bk-muted:#536b80;
 --bk-line:#dce5ea;--bk-bg:#f5f8fa;
 --so-site-navy:#142e49;--so-site-deep:#244e71;
 --so-site-teal:#365f84;--so-site-teal-hover:#244d71;
 --so-site-ink:#142e49;--so-site-muted:#536b80;
 --so-site-border:#dce5ea;--so-site-mint:#eaf3f7;
 color:#142e49!important;
}
.so-pub{
 --so-navy:#142e49;--so-ink:#142e49;--so-teal:#365f84;
 --so-border:#dce5ea;--so-soft:#f5f8fa;--so-muted:#536b80;
 --so-v2-navy:#142e49;--so-v2-teal:#365f84;
 --so-v2-border:#dce5ea;--so-v2-text:#536b80;
 --so-site-navy:#142e49;--so-site-deep:#244e71;
 --so-site-teal:#365f84;--so-site-teal-hover:#244d71;
 --so-site-ink:#142e49;--so-site-muted:#536b80;
 --so-site-border:#dce5ea;--so-site-mint:#eaf3f7;
 color:#142e49;
}
.so-shell{
 --so-navy:#142e49;--so-deep:#244b70;--so-teal:#365f84;
 --so-green:#365f84;--so-text:#142e49;--so-muted:#536b80;
 --so-line:#dce5ea;--so-field:#fff;--so-panel:#fff;
 --so-shell-bg:#f2f7f9;--so-link:#285c85;
 background:radial-gradient(circle at 84% 5%,#fde3c880,transparent 38%),linear-gradient(128deg,#f8f9f6,#eaf3f7)!important;
}
/* Typography matches the home and interior page editorial heading scale. */
.so-bk :is(h1,h2,h3,h4),.so-pub :is(h1,h2,h3,h4),
.so-shell :is(h1,h2,h3,h4),.so-dashboard :is(h1,h2,h3,h4){
 font-family:'DM Sans',system-ui,sans-serif!important;letter-spacing:-.035em!important;line-height:1.18!important;
}
.so-bk :is(h1,h2),.so-pub :is(h1,h2),.so-shell :is(h1,h2){color:#142e49}
.so-bk :is(p,small),.so-pub :is(p,small){line-height:1.65}
.so-bk :is(button,input,select,textarea),.so-pub :is(button,input,select,textarea),
.so-shell :is(button,input,select,textarea),.so-dashboard :is(button,input,select,textarea){font-family:'DM Sans',system-ui,sans-serif}
.so-bk :is(button,input,select,textarea,a):focus-visible,
.so-pub :is(button,input,select,textarea,a):focus-visible,
.so-shell :is(button,input,select,textarea,a):focus-visible,
.so-dashboard :is(button,input,select,textarea,a):focus-visible{
 outline:3px solid #6085a3!important;outline-offset:3px!important;
}
/* Specialist directory and profile. Avoid touching private contact info. */
.so-pub .so-pub-hero{background:radial-gradient(circle at 93% 4%,#fde3c8 0%,transparent 41%),linear-gradient(120deg,#f9f9f4,#e4eef3);border:1px solid #e4e9ea;border-radius:22px;box-shadow:none}
.so-pub :is(.so-pub-card,.so-v2-panel,.so-v2-side-panel,.so-v2-booking,.so-v2-box){border-color:#dce5ea!important;border-radius:15px;box-shadow:0 12px 32px #233f5810}
.so-pub :is(.so-pub-card,.so-v2-panel){background:#fff}
.so-pub :is(.so-pub-eyebrow,.so-pub-label,.so-v2-eyebrow,.so-v2-kicker){color:#436e90!important}
.so-pub :is(.so-pub-card h3,.so-pub-card h2,.so-v2-panel h2){color:#142e49!important}
.so-pub :is(.so-v2-service-icon,.so-v2-day.is-on){background:#e8f2f6!important;color:#365f84!important}
.so-pub :is(a.so-pub-primary,a.so-v2-book-now,.so-pub-book-btn),
.so-bk :is(.so-bk-next,.so-bk-submit,.so-bk-picker .so-bk-picker-select,.so-bk-picker .so-bk-picker-next),
.so-bk-picker .so-bk-picker-card-bottom a:not(.so-bk-picker-view){
 background:linear-gradient(115deg,#345f86,#5e85a4)!important;
 border-color:#365f84!important;color:#fff!important;box-shadow:none!important;
}
.so-pub :is(a.so-pub-primary,a.so-v2-book-now,.so-pub-book-btn):hover,
.so-bk :is(.so-bk-next,.so-bk-submit,.so-bk-picker .so-bk-picker-select,.so-bk-picker .so-bk-picker-next):hover,
.so-bk-picker .so-bk-picker-card-bottom a:not(.so-bk-picker-view):hover{
 background:#234a6e!important;color:#fff!important;border-color:#234a6e!important;
}
.so-pub :is(a.so-v2-book-now,a.so-pub-primary){border-radius:10px!important}
/* Booking — selection, calendar, slots, assessment, payment and submit states. */
.so-bk .so-bk-picker-layout,.so-bk .so-bk-panel,.so-bk .so-bk-aside,.so-bk .so-bk-picker-card,
.so-bk .so-bk-intro{border:1px solid #dce5ea!important;background:#fff;border-radius:16px;box-shadow:0 12px 32px #173c5c0c}
.so-bk-picker .so-bk-picker-filters,.so-bk-picker .so-bk-picker-help section,
.so-bk-picker .so-bk-picker-note{background:#f3f8fa!important;border-color:#dce5ea!important;color:#48657e}
.so-bk-picker .so-bk-picker-photo,.so-bk-picker .so-bk-picker-meta span,
.so-bk .so-bk-specialist,.so-bk .so-bk-instructions{background:#e7f1f6!important;color:#365f84!important}
.so-bk-picker .so-bk-picker-steps b{background:#e0ebf1!important;color:#365f84!important}
.so-bk-picker .so-bk-picker-steps .is-current b{background:#365f84!important;color:#fff!important}
.so-bk .so-bk-slots button:hover,.so-bk .so-bk-slots button[aria-pressed=true],
.so-bk .so-bk-slots button.is-selected,.so-bk .so-bk-slots button[aria-selected=true]{
 background:#365f84!important;border-color:#365f84!important;color:#fff!important;
}
.so-bk .so-bk-mode:has(input:checked),.so-bk .so-bk-pay:has(input:checked){
 border-color:#6485a6!important;background:#eaf3f7!important;box-shadow:0 0 0 2px #cbdae188!important;
}
.so-bk :is(input[type=checkbox],input[type=radio]),
.so-shell :is(input[type=checkbox],input[type=radio]){accent-color:#365f84!important}
.so-bk .so-bk-field :is(input,textarea,select){background:#fff!important;border-color:#cfdfe8!important;color:#142e49!important;border-radius:10px!important}
.so-bk .so-bk-field :is(input,textarea,select):focus{border-color:#608aac!important;outline:3px solid #cbdae188!important}
.so-bk-picker .so-bk-picker-card-bottom a.so-bk-picker-view,.so-bk-picker .so-bk-picker-scroll-tools button,
.so-bk-picker .so-bk-picker-reset{background:#ebf3f7!important;border-color:#c4d7e3!important;color:#315e83!important;border-radius:9px}
.so-bk-picker .so-bk-picker-scroll-tools button:hover{background:#d9e9f2!important}
.so-bk-picker .so-bk-picker-bar-actions select{border-color:#cddfe9;background:#fff;color:#15324d}
/* Login / registration / dashboard entry. Retain its server-side validation. */
.so-shell .so-header,.so-shell :is(.so-login-card,.so-auth-card,.so-panel,.so-card,.so-register-card){background:#fff;border-color:#dce6ec;box-shadow:0 13px 35px #173e6012;border-radius:16px}
.so-shell .so-brand-copy strong{color:#142e49}
.so-shell .so-brand-copy em{color:#537da0}
.so-shell :is(.so-promo,.so-login-promo,.so-hero-panel){background:radial-gradient(circle at 90% 11%,#507f9c,transparent 38%),linear-gradient(125deg,#142e49,#315e84)!important;color:#fff}
.so-shell :is(.so-promo,.so-login-promo,.so-hero-panel) :is(h1,h2,h3){color:#fff!important}
.so-shell :is(.so-submit,.so-primary,.so-btn-primary,.so-action-primary,button[type=submit]):not(.so-theme-toggle){background:#365f84!important;color:#fff!important;border-color:#365f84!important;border-radius:9px}
.so-shell :is(.so-submit,.so-primary,.so-btn-primary,.so-action-primary,button[type=submit]):not(.so-theme-toggle):hover{background:#234a6e!important;border-color:#234a6e!important}
.so-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:#cddde7;border-radius:10px;background:#fff;color:#142e49}
.so-shell .so-toggle-track{background:#365f84}
.so-shell .so-website-link:hover,.so-shell .so-theme-toggle:hover{background:#e9f2f7}
/* Internships and supervision public forms — layout only. */
.so-int :is(.so-int-card,.so-int-form,.so-int-panel),
.so-internship-apply :is(form,.so-int-card),.so-free-session :is(form,.so-int-card){
 border-color:#dce5ea;border-radius:15px;background:#fff;
}
.so-int :is(h2,h3){color:#142e49}
.so-int :is(button[type=submit],.so-int-primary){background:#365f84!important;border-color:#365f84!important;color:#fff!important}
/* Dashboard, admin financial and doctor portals: only hue, not status semantics. */
.so-dashboard{
 --sd-navy:#142e49;--sd-blue:#244d70;--sd-teal:#365f84;
 --sd-ink:#142e49;--sd-muted:#536b80;--sd-bg:#f0f5f8;
 --sd-border:#dce5ea;--sd-hover:#e3eef4;--sd-soft:#f8fafb;
 --dr-accent:#365f84;--dr-strong:#244b6d;
}
.so-dashboard :is(.so-d-card,.so-d-panel,.so-admin-card,.so-int-card,.so-card){border-color:#dce5ea}
.so-dashboard :is(table tbody tr:nth-child(even)){background:#365f8408}
.so-dashboard :is(table tbody tr:hover){background:#6485a619}
.so-dashboard :is(.so-btn-primary,button.so-primary,.so-button-primary){background:#365f84;border-color:#365f84;color:#fff}
.so-dashboard :is(.so-btn-primary,button.so-primary,.so-button-primary):hover{background:#244b6d}
/* Dark modes are explicitly maintained, including older and newer mode attributes. */
.so-shell[data-so-theme="dark"]{
 --so-text:#e8f0f6;--so-muted:#b4c5d5;--so-line:#38516b;
 --so-field:#172e45;--so-panel:#10253d;--so-shell-bg:#0c2035;
 --so-link:#afd0e9;
 background:radial-gradient(circle at 15% 0%,#2a4f68,transparent 35%),#0c2035!important;
}
.so-shell[data-so-theme="dark"] :is(.so-header,.so-login-card,.so-auth-card,.so-panel,.so-card,.so-register-card){background:#122b44;border-color:#36516c}
.so-shell[data-so-theme="dark"] :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:#173550;color:#e9f2fa;border-color:#47607a}
.so-shell[data-so-theme="dark"] .so-brand-copy strong{color:#fff}
.so-shell[data-so-theme="dark"] :is(h1,h2,h3){color:#f5f9fd}
.so-dashboard[data-theme="dark"],.so-dashboard[data-so-theme="dark"],
.so-dashboard.is-dark,.so-dashboard.so-dark{
 --sd-navy:#10283e;--sd-blue:#183852;--sd-teal:#91b6d1;
 --sd-ink:#ecf5fb;--sd-muted:#b8cada;--sd-bg:#0d2238;
 --sd-border:#37526b;--sd-hover:#23435f;--sd-soft:#15334b;
 --dr-accent:#91b6d1;--dr-strong:#254863;
}
.so-dashboard[data-so-theme="dark"] :is(table tbody tr:nth-child(even)){background:#a2c5e010}
.so-dashboard[data-so-theme="dark"] :is(table tbody tr:hover){background:#a2c5e01b}
/* Avoid horizontal overflow from wide booking/payment tables on phones. */
@media(max-width:900px){
 .so-bk,.so-pub,.so-shell{min-width:0;max-width:100%}
 .so-bk :is(.so-bk-panel,.so-bk-picker-layout,.so-bk-picker-card),.so-pub :is(.so-pub-card,.so-v2-panel){max-width:100%;min-width:0}
 .so-dashboard :is(.so-table-wrap,.so-responsive-table){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:600px){
 .so-pub,.so-bk{padding-inline:10px}
 .so-shell{padding:16px 11px 20px}
 .so-shell .so-header{padding:13px 15px}
 .so-bk .so-bk-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
 .so-bk-picker .so-bk-picker-scroll-tools{gap:8px}
}
@media(prefers-reduced-motion:reduce){
 .so-bk *, .so-pub *, .so-shell *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
