:root{--ink:#16333b;--brand:#0b5d6b;--brand2:#11869a;--brand3:#e9f6f7;--bg:#f3f7f8;--line:#dbe7e9;--muted:#70868d;--good:#16805b;--warn:#b46a13;--bad:#b13d4c;--white:#fff;--shadow:0 12px 34px rgba(22,58,69,.07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,#073f4b,#062f38);color:#dff0f2;padding:22px 15px;position:sticky;top:0;height:100vh;z-index:20}.brand{display:flex;gap:11px;align-items:center;font-size:21px;font-weight:850;margin:4px 8px 26px}.brandmark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#1d91a4,#0a5664);box-shadow:inset 0 0 0 1px #ffffff25,0 8px 22px #021b2170;color:white;font-weight:900}.brand div{display:grid}.brand small{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#9ec6cc;font-weight:650}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;gap:11px;align-items:center;padding:10px 12px;border-radius:11px;color:#cce4e8;font-weight:620}.sidebar nav a:hover{background:#ffffff12;color:#fff}.side-note{position:absolute;bottom:22px;left:20px;right:20px;padding:13px;border-radius:13px;background:#ffffff0c;border:1px solid #ffffff12;display:grid}.side-note span{font-size:11px;color:#9fc5ca}.topbar{height:72px;padding:0 28px;background:#ffffffeb;backdrop-filter:blur(15px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:15}.top-title{display:grid}.top-title small{color:var(--muted);font-size:12px}.topbar form{margin-left:0}.user-chip{margin-left:auto;display:flex;gap:9px;align-items:center}.user-chip>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand3);color:var(--brand);font-weight:900}.user-chip div{display:grid;line-height:1.15}.user-chip small{color:var(--muted);font-size:10px}.ghost,.icon-btn{border:1px solid var(--line);background:white;border-radius:10px;padding:8px 11px;color:var(--ink)}.icon-btn{display:none;font-size:20px}.content{padding:28px;max-width:1600px}.eyebrow{color:var(--brand2);font-size:11px;font-weight:850;letter-spacing:.12em;margin-bottom:5px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h1{margin:0;font-size:29px;letter-spacing:-.03em}.page-head p{margin:4px 0 0;color:var(--muted)}.actions{display:flex;gap:9px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand);background:var(--brand);color:#fff;padding:10px 14px;border-radius:10px;font-weight:760;cursor:pointer;white-space:nowrap}.btn:hover{filter:brightness(1.04)}.btn.secondary{background:#fff;color:var(--brand);border-color:#c8dde1}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:var(--shadow)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats article{position:relative;background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.stats article:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;right:-28px;bottom:-35px;background:var(--brand3)}.stat-icon{width:35px;height:35px;border-radius:10px;background:var(--brand3);display:grid;place-items:center;color:var(--brand);font-weight:850;margin-bottom:10px}.stats span,.stats small{display:block;color:var(--muted)}.stats strong{display:block;font-size:27px;margin:3px 0}.stats small{font-size:11px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.panel-head h3{margin:0}.panel-head p{margin:2px 0;color:var(--muted);font-size:12px}.panel-head>a{font-size:12px;color:var(--brand);font-weight:750}.row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #edf2f3}.row:last-child{border-bottom:0}.row-main{flex:1;min-width:0}.row-main b,.row-main small{display:block}.row-main small,.muted{color:var(--muted)}.avatar{width:38px;height:38px;flex:0 0 38px;border-radius:11px;display:grid;place-items:center;background:var(--brand3);color:var(--brand);font-weight:850;text-transform:uppercase}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#eaf3f4;color:#45656d;white-space:nowrap}.status-active,.status-paid,.status-completed{background:#e6f5ef;color:var(--good)}.status-scheduled{background:#e8f2fb;color:#316d9c}.status-pending,.status-review{background:#fff3de;color:var(--warn)}.status-cancelled,.status-failed,.status-missed{background:#fdebed;color:var(--bad)}.status-paused,.status-refunded{background:#eff0f1;color:#667}.progress-row{display:flex;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #edf2f3}.progress-row:last-child{border:0}.progress-bar{height:6px;background:#edf3f4;border-radius:99px;overflow:hidden;margin-top:7px}.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#21a4b5);border-radius:inherit}.score{text-align:right}.score strong,.score small{display:block}.score small{font-size:10px;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick{background:linear-gradient(145deg,#fff,#f7fbfb);border:1px solid var(--line);padding:17px;border-radius:15px;display:grid;gap:4px}.quick span{font-size:12px;color:var(--muted)}.searchbar{display:flex;gap:8px;margin-bottom:14px}.searchbar input{flex:1}.form-control,.searchbar input,.complete-form input{width:100%;padding:10px 11px;border:1px solid #cedde0;border-radius:10px;background:#fff;color:var(--ink);outline:none}.form-control:focus,.searchbar input:focus,.complete-form input:focus{border-color:#6fb4bf;box-shadow:0 0 0 3px #0c71851a}.form-card{max-width:1050px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}.field label{font-size:12px;font-weight:760}.field small{color:var(--muted)}.field em{color:var(--bad);font-size:11px}.form-actions{display:flex;gap:9px;border-top:1px solid #edf2f3;margin-top:18px;padding-top:16px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:12px;border-bottom:1px solid #edf2f3;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#73898f;background:#fbfcfc}td small{display:block;color:var(--muted);font-size:11px}.patient-cell{display:flex;gap:10px;align-items:center}.patient-cell div{display:grid}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.assessment-card,.plan-card,.exercise-card{transition:.15s}.assessment-card:hover,.plan-card:hover{transform:translateY(-2px);border-color:#bad9de}.card-top{display:flex;justify-content:space-between}.body-badge{display:inline-block;color:var(--brand);background:var(--brand3);border-radius:8px;padding:5px 8px;font-size:11px;font-weight:800}.pain-score{font-size:26px;font-weight:900;color:var(--bad);display:grid;line-height:1}.pain-score small{font-size:9px;color:var(--muted)}.mini-stats{display:flex;gap:20px;border-top:1px solid #edf2f3;padding-top:12px}.mini-stats span{display:grid;font-size:10px;color:var(--muted)}.mini-stats b{font-size:18px;color:var(--ink)}.profile-hero{display:flex;align-items:center;gap:17px;margin-bottom:18px;background:linear-gradient(135deg,#fff,#f0f8f9)}.profile-avatar{width:72px;height:72px;border-radius:20px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:900}.profile-hero h2{margin:0}.profile-hero p{margin:2px 0 8px;color:var(--muted)}.profile-stats{margin-left:auto;display:flex;gap:12px}.profile-stats span{min-width:90px;padding:10px;border-left:1px solid var(--line);display:grid;font-size:10px;color:var(--muted)}.profile-stats b{font-size:21px;color:var(--ink)}.details{margin:0}.details div{padding:10px 0;border-bottom:1px solid #edf2f3}.details div:last-child{border:0}.details dt{font-size:11px;color:var(--muted)}.details dd{margin:2px 0 0;white-space:pre-line}.pain-chip{font-size:11px;color:var(--bad);font-weight:800}.filter-pills{display:flex;gap:7px;margin-bottom:14px;overflow:auto}.filter-pills a{padding:7px 11px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:750}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.day-card{background:#fff;border:1px solid var(--line);border-radius:14px;min-height:170px;overflow:hidden}.day-card>header{padding:11px;border-bottom:1px solid var(--line);display:flex;gap:6px;align-items:end}.day-card header strong{font-size:20px}.day-card header small{color:var(--muted)}.day-card.today{border-color:#63afbb;box-shadow:0 0 0 2px #0d7b8e12}.day-card>div{padding:8px}.calendar-event{padding:8px;background:var(--brand3);border-left:3px solid var(--brand);border-radius:8px;margin-bottom:6px}.calendar-event b,.calendar-event span{display:block;font-size:10px}.calendar-event span{color:var(--muted)}.no-event{font-size:10px;color:#a0b0b4}.assessment-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px}.body-panel{height:max-content;position:sticky;top:94px}.bodymap{height:560px;position:relative;border-radius:14px;background:linear-gradient(180deg,#f7fbfb,#edf6f7);overflow:hidden}.silhouette{position:absolute;inset:35px 60px;opacity:.13;pointer-events:none}.silhouette .head{position:absolute;width:65px;height:65px;border-radius:50%;background:var(--brand);left:50%;transform:translateX(-50%)}.silhouette .torso{position:absolute;width:115px;height:210px;background:var(--brand);top:70px;left:50%;transform:translateX(-50%);border-radius:45% 45% 35% 35%}.silhouette .arm{position:absolute;width:35px;height:215px;background:var(--brand);top:86px;border-radius:30px}.silhouette .arm.left{left:28px;transform:rotate(7deg)}.silhouette .arm.right{right:28px;transform:rotate(-7deg)}.silhouette .leg{position:absolute;width:43px;height:235px;background:var(--brand);top:270px;border-radius:25px}.silhouette .leg.left{left:72px}.silhouette .leg.right{right:72px}.bodymap button{position:absolute;z-index:3;border:1px solid #80bdc6;background:#ffffffdd;color:var(--brand);border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;cursor:pointer}.bodymap button.selected{background:var(--brand);color:#fff}.exercise-rx{padding:12px;border:1px solid var(--line);border-radius:12px;margin:9px 0}.exercise-rx div{display:flex;justify-content:space-between;gap:10px}.exercise-rx div span,.exercise-rx small{color:var(--muted);font-size:11px}.exercise-rx p{margin:5px 0}.metric-bars{display:grid;gap:6px;margin-top:9px}.metric-bars span{display:grid;grid-template-columns:65px 1fr 45px;align-items:center;gap:8px;font-size:10px}.metric-bars i{height:5px;background:#edf2f3;border-radius:20px;overflow:hidden}.metric-bars u{display:block;height:100%;background:var(--brand2);text-decoration:none}.progress-row.large{align-items:flex-start}.progress-row.large p{margin:4px 0}.exercise-icon,.report-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--brand3);color:var(--brand);font-size:18px;font-weight:900}.exercise-card .body-badge{margin:12px 0 2px}.precaution{margin:12px 0;padding:9px;background:#fff5e6;border-radius:9px;color:#795016;font-size:11px;display:grid}.report-cards{margin-bottom:18px}.report-cards p{min-height:48px}.document{max-width:950px;margin:0 auto;background:#fff;padding:34px}.document>header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--brand);padding-bottom:18px}.brand-doc{font-size:24px;font-weight:900;color:var(--brand)}.brand-doc span{font-size:14px}.document h1{font-size:23px;margin:7px 0 0}.doc-meta{text-align:right;display:grid}.doc-meta span{color:var(--muted);font-size:11px}.doc-patient{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:18px 0}.doc-patient div{background:#f7fafb;padding:10px;border-radius:9px}.doc-patient small,.doc-patient b{display:block}.doc-patient small{color:var(--muted);font-size:10px}.document section{margin:15px 0}.document section h3{font-size:12px;text-transform:uppercase;color:var(--brand);letter-spacing:.05em}.document section p{white-space:pre-line}.document footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:18px;margin-top:25px;color:var(--muted);font-size:11px}.print-actions{max-width:950px;margin:0 auto 12px;text-align:right}.receipt{max-width:720px}.receipt-amount{text-align:center;padding:28px;background:#f6fbfb;margin:18px 0;border-radius:14px}.receipt-amount small{display:block;color:var(--muted)}.receipt-amount strong{display:block;font-size:36px}.receipt-lines div{display:flex;justify-content:space-between;gap:20px;padding:10px;border-bottom:1px solid #edf2f3}.receipt-lines dt{color:var(--muted)}.receipt-lines dd{margin:0;text-align:right}.patient-welcome{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.patient-welcome h1{font-size:31px;margin:0}.patient-welcome p{margin:4px 0;color:var(--muted)}.next-visit{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;min-width:280px;display:grid;box-shadow:var(--shadow)}.next-visit small,.next-visit span{color:var(--muted)}.plan-hero{background:linear-gradient(135deg,#0a5967,#117c8d);color:#fff;padding:24px;border-radius:18px;margin-bottom:18px;display:flex;justify-content:space-between;gap:20px}.plan-hero .badge{background:#ffffff20;color:#fff}.plan-hero h2{margin:8px 0 3px}.plan-hero p{margin:0;max-width:720px;color:#d9eef1}.plan-meta{display:flex;gap:10px}.plan-meta span{display:grid;min-width:120px;padding:10px;background:#ffffff13;border:1px solid #ffffff18;border-radius:12px;font-size:10px}.plan-meta b{font-size:16px}.portal-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:18px}.patient-exercise{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #edf2f3}.patient-exercise.done{opacity:.68}.exercise-number{width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:var(--brand3);color:var(--brand);display:grid;place-items:center;font-weight:900}.patient-exercise p{margin:6px 0}.warning{font-size:10px;color:var(--warn)}.complete-form{display:grid;gap:6px;width:160px}.complete-form input{padding:7px;font-size:10px}.complete-form .btn{padding:7px;font-size:10px}.completed{color:var(--good);font-weight:900;white-space:nowrap}.portal-progress{padding:12px 0;border-bottom:1px solid #edf2f3}.portal-progress>div:first-child{display:flex;justify-content:space-between}.portal-progress small{color:var(--muted)}.portal-progress>strong{float:right}.empty{color:var(--muted);padding:20px;text-align:center}.empty.big{padding:55px}.messages{margin-bottom:12px}.alert{background:#e5f5ee;color:#126447;border:1px solid #bfe6d5;padding:10px 12px;border-radius:10px}.overlay{display:none}
@media(max-width:1150px){.calendar-grid{grid-template-columns:repeat(4,1fr)}.cards{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.portal-grid{grid-template-columns:1fr}.assessment-layout{grid-template-columns:280px 1fr}}
@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:250px;transition:.2s;box-shadow:20px 0 60px #03191f55}.sidebar.open{left:0}.overlay.show{display:block;position:fixed;inset:0;background:#001b2055;z-index:18}.icon-btn{display:block}.topbar{padding:0 14px}.top-title small{display:none}.user-chip div{display:none}.content{padding:18px}.grid2,.quick-grid,.portal-grid{grid-template-columns:1fr}.assessment-layout{grid-template-columns:1fr}.body-panel{position:relative;top:auto}.bodymap{height:440px}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-stats{width:100%;margin:0}.calendar-grid{grid-template-columns:repeat(2,1fr)}.plan-hero{flex-direction:column}.document{padding:20px}.doc-patient{grid-template-columns:1fr 1fr}.patient-welcome{align-items:flex-start;flex-direction:column}.next-visit{width:100%}}
@media(max-width:560px){.content{padding:13px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr;gap:9px}.stats article{padding:14px}.stats strong{font-size:22px}.cards{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}.calendar-grid{grid-template-columns:1fr 1fr}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr)}.profile-stats span{min-width:0;border-left:0;border-top:1px solid var(--line)}.document>header,.document footer{flex-direction:column}.doc-meta{text-align:left}.patient-exercise{display:grid;grid-template-columns:auto 1fr}.complete-form{grid-column:1/-1;width:100%;grid-template-columns:1fr 1fr auto}.patient-exercise .completed{grid-column:2}.plan-meta{display:grid;grid-template-columns:1fr 1fr}.top-title strong{font-size:13px}.ghost{padding:7px 9px}.doc-patient{grid-template-columns:1fr 1fr}}
@media print{.sidebar,.topbar,.print-actions,.overlay{display:none!important}.app-shell{display:block}.content{padding:0;background:#fff}.document{border:0;box-shadow:none;max-width:none;padding:0}.document footer{position:relative}.panel{box-shadow:none}body{background:#fff}}
/* V8 professional operations */
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:12px;background:#fff;padding:4px}.nav-label{font-size:9px;letter-spacing:.14em;color:#78a9b0;padding:15px 15px 5px;font-weight:900}.inline-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-filter input,.inline-filter select{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.timeline-day{max-width:1000px}.time-slot{display:grid;grid-template-columns:85px 1fr;gap:14px;margin-bottom:10px}.time{font-size:19px;font-weight:900;color:var(--brand);padding-top:15px;text-align:right}.time small{display:block;font-size:9px;color:var(--muted)}.slot-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:8px 18px;box-shadow:var(--shadow)}.slot-card h3,.slot-card p{margin:0}.slot-card p{color:var(--muted);font-size:11px;margin-top:3px}.slot-actions{grid-column:1/-1;display:flex;gap:12px;border-top:1px solid var(--line);padding-top:9px;font-size:11px}.slot-actions form{margin:0}.slot-actions button{border:0;background:none;color:var(--brand);font:inherit;font-weight:800;cursor:pointer}.btn.mini{padding:6px 9px;font-size:10px}.table-sub{display:block;color:var(--muted);margin-top:3px}.patient-timeline{padding:24px}.timeline-item{position:relative;display:grid;grid-template-columns:18px 105px 1fr;gap:14px;min-height:105px}.timeline-item:before{content:"";position:absolute;left:7px;top:18px;bottom:-18px;width:2px;background:var(--line)}.timeline-item:last-child:before{display:none}.timeline-dot{width:16px;height:16px;border-radius:50%;background:var(--brand);border:4px solid #dff1f3;margin-top:8px;z-index:1}.timeline-date{padding-top:6px;font-size:11px;font-weight:800}.timeline-date small{display:block;color:var(--muted);font-weight:500}.timeline-card{background:#f8fbfb;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}.timeline-card h3{margin:3px 0}.timeline-card p{margin:0;color:var(--muted)}.notification-row{display:flex;gap:12px;align-items:center;padding:14px;border-bottom:1px solid var(--line)}.notification-row.unread{background:#f0f9fa}.notification-icon{width:38px;height:38px;border-radius:12px;background:var(--brand3);color:var(--brand);display:grid;place-items:center}.notification-row p{margin:3px 0;color:var(--muted)}.mobile-bottom{display:none}
@media(max-width:850px){body:has(.mobile-bottom) .content{padding-bottom:88px}.mobile-bottom{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:30;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));box-shadow:0 -8px 30px #00242a15}.mobile-bottom a{display:grid;place-items:center;color:var(--muted);font-size:9px;gap:2px}.mobile-bottom b{font-size:19px;color:var(--brand)}.time-slot{grid-template-columns:55px 1fr}.time{font-size:15px}.slot-card{grid-template-columns:1fr}.slot-card>.badge{justify-self:start}.patient-timeline{padding:12px}.timeline-item{grid-template-columns:18px 70px 1fr;gap:8px}.timeline-card{padding:10px}.notification-row{align-items:flex-start}.notification-row form{margin-left:auto}}


/* V9 — World-Class Glass Native UI */
:root{--ink:#eaf7f8;--brand:#24d7c4;--brand2:#65f1dc;--brand3:rgba(36,215,196,.12);--bg:#06131d;--line:rgba(255,255,255,.10);--muted:#8da8b1;--good:#43d69b;--warn:#f1b85b;--bad:#ff7587;--white:#fff;--shadow:0 24px 70px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.055)}
html{background:#06131d}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 8%,rgba(30,113,166,.22),transparent 30%),radial-gradient(circle at 92% 12%,rgba(17,151,124,.16),transparent 30%),linear-gradient(145deg,#071725 0%,#06131d 52%,#071c1d 100%);background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px}a{color:inherit}.app-shell{grid-template-columns:280px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,rgba(8,30,43,.94),rgba(5,22,31,.92));border-right:1px solid rgba(255,255,255,.08);padding:20px 14px;box-shadow:18px 0 55px rgba(0,0,0,.18);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.brand{font-size:18px;margin:4px 7px 22px;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.07)}.brandmark{width:44px;height:44px;border-radius:15px;background:linear-gradient(145deg,#2ce0cb,#0d7d87);box-shadow:0 10px 30px rgba(26,211,191,.20),inset 0 1px 0 rgba(255,255,255,.35);color:#032a2c}.brand small{color:#78a4ad}.sidebar nav{gap:3px}.sidebar nav a{color:#a9c3ca;padding:9px 11px;border:1px solid transparent;border-radius:12px;font-size:13px;transition:.18s ease}.sidebar nav a:hover,.sidebar nav a.active{color:#f5ffff;background:linear-gradient(135deg,rgba(36,215,196,.13),rgba(49,125,188,.09));border-color:rgba(86,225,211,.15);transform:translateX(2px)}.nav-label{color:#5d818b;padding:15px 11px 5px;font-size:9px}.side-note{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09)}
.topbar{height:76px;background:rgba(6,21,31,.66);border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);padding:0 32px}.top-title strong{color:#f4ffff}.top-title small{color:#78949d}.icon-btn,.ghost{color:#dff8f7;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10)}.user-chip>span{background:rgba(36,215,196,.12);border:1px solid rgba(76,226,211,.18);color:#72f3df}.user-chip b{color:#f1fbfc}.content{padding:32px;max-width:1680px;margin:0 auto;width:100%}
.eyebrow{color:#55e7d3;font-size:10px;letter-spacing:.18em}.page-head h1{font-size:34px;color:#f5ffff;letter-spacing:-.045em}.page-head p{color:#8da8b1}.btn{border:1px solid rgba(70,232,211,.28);background:linear-gradient(135deg,#17bda9,#15859b);color:#fff;border-radius:12px;box-shadow:0 10px 26px rgba(14,152,145,.16),inset 0 1px 0 rgba(255,255,255,.16)}.btn.secondary{background:rgba(255,255,255,.055);color:#dffafa;border-color:rgba(255,255,255,.11)}
.panel,.stats article,.quick,.assessment-card,.plan-card,.exercise-card,.slot-card,.timeline-card,.day-card{background:linear-gradient(145deg,rgba(17,43,57,.76),rgba(8,29,40,.68));border:1px solid rgba(255,255,255,.095);box-shadow:var(--shadow);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}.panel{border-radius:20px}.stats{gap:16px}.stats article{border-radius:19px;min-height:150px}.stats article:after{background:radial-gradient(circle,rgba(43,224,202,.14),transparent 68%);width:140px;height:140px}.stat-icon{background:rgba(39,218,197,.11);border:1px solid rgba(57,224,205,.15);color:#5ce8d5}.stats span,.stats small,.panel-head p,.row-main small,.muted{color:#819da6}.stats strong,.panel-head h3,.row-main b{color:#f6ffff}.row,.progress-row{border-color:rgba(255,255,255,.065)}.avatar{background:rgba(37,214,194,.12);border:1px solid rgba(62,221,204,.12);color:#66ead8}.badge{background:rgba(255,255,255,.065);color:#a8c0c6;border:1px solid rgba(255,255,255,.06)}.status-active,.status-paid,.status-completed{background:rgba(67,214,155,.12);color:#69e7b3}.status-scheduled{background:rgba(74,156,224,.12);color:#8bc8f3}.status-pending,.status-review{background:rgba(241,184,91,.12);color:#f4c97f}.status-cancelled,.status-failed,.status-missed{background:rgba(255,117,135,.12);color:#ff9aa8}.progress-bar{background:rgba(255,255,255,.075)}.progress-bar i{background:linear-gradient(90deg,#20c7b5,#51e2cf)}.quick{border-radius:18px;transition:.2s}.quick:hover{transform:translateY(-3px);border-color:rgba(65,225,206,.25)}.quick b{color:#effcfc}.quick span{color:#829fa7}
.form-control,.searchbar input,.complete-form input,.inline-filter input,.inline-filter select,select,textarea,input{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.11);color:#edfafa}.form-control:focus,.searchbar input:focus,.complete-form input:focus,input:focus,select:focus,textarea:focus{border-color:rgba(76,230,212,.48);box-shadow:0 0 0 3px rgba(36,215,196,.09);outline:none}select option{background:#0d2633;color:#eefafa}.field label{color:#cce1e4}.tablewrap{border-radius:15px}th{background:rgba(255,255,255,.035);color:#7e9ca5}th,td{border-color:rgba(255,255,255,.065)}td{color:#dcebed}.profile-hero{background:linear-gradient(135deg,rgba(20,54,68,.78),rgba(10,35,45,.70))}.details div,.mini-stats,.form-actions{border-color:rgba(255,255,255,.065)}.day-card>header{border-color:rgba(255,255,255,.07)}.calendar-event{background:rgba(37,214,194,.10);border-left-color:#36d5c1}.bodymap{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018))}.alert{background:rgba(62,207,153,.11);color:#87ebc1;border-color:rgba(62,207,153,.18)}.empty{color:#78949d}.timeline-card{background:rgba(255,255,255,.035)}.timeline-item:before{background:rgba(255,255,255,.09)}.timeline-dot{background:#31d5c1;border-color:#153d43}.notification-row{border-color:rgba(255,255,255,.07)}.notification-row.unread{background:rgba(39,211,192,.055)}.notification-icon{background:rgba(39,211,192,.10);color:#5ce8d5}
.mobile-bottom{background:rgba(7,24,34,.88)!important;border-top-color:rgba(255,255,255,.09)!important;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 -15px 45px rgba(0,0,0,.25)!important}.mobile-bottom a{color:#79969f}.mobile-bottom b{color:#4ddcca}.mobile-bottom a.active{color:#efffff}.mobile-bottom a.active b{color:#6af0dd}.overlay.show{background:rgba(0,10,16,.62);backdrop-filter:blur(5px)}
@media(max-width:850px){.sidebar{background:rgba(6,24,34,.97);width:min(86vw,310px);left:-330px;padding-bottom:110px;overflow-y:auto}.content{padding:20px 16px}.topbar{height:68px;padding:0 13px}.page-head h1{font-size:29px}.panel{border-radius:18px}}
@media(max-width:560px){body{font-size:14px}.content{padding:15px 12px 94px}.page-head h1{font-size:27px}.stats{gap:10px}.stats article{padding:14px;border-radius:16px;min-height:126px}.stats strong{font-size:24px}.panel{padding:15px}.top-title{max-width:170px}.top-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .ghost{font-size:0;width:37px;height:37px;padding:0}.topbar .ghost:after{content:"↗";font-size:16px}.mobile-bottom{left:10px!important;right:10px!important;bottom:10px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:20px;padding:8px 7px calc(8px + env(safe-area-inset-bottom))!important}}


/* ==========================================================
   OLEB PHYSIOTHERAPY CLINIC — V11 NATIVE CARD SYSTEM
   Global component coverage for every application surface
   ========================================================== */
:root{
  --app-bg:#04121b;--app-bg-2:#071d28;--glass:rgba(11,35,48,.78);
  --glass-strong:rgba(14,43,56,.92);--stroke:rgba(255,255,255,.09);
  --stroke-hi:rgba(82,232,215,.20);--text:#effcfd;--text-2:#b5cbd0;
  --text-3:#7898a1;--aqua:#36dcc8;--aqua-2:#69f0de;--blue:#56a9e8;
  --green:#59dfa8;--amber:#f3c56f;--red:#ff8c9a;
  --card-shadow:0 22px 60px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.045);
  --card-radius:20px;--mobile-radius:18px;
}
body{overflow-x:hidden}
main{min-width:0}
.content{min-height:calc(100vh - 76px)}
/* Generic grids used by multiple older templates */
.grid{display:grid;gap:16px;margin-bottom:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Make every generic .card a premium native glass card */
.card,.table-card,.receipt,.print-sheet,.report-card{
  position:relative;
  background:
    linear-gradient(145deg,rgba(18,48,62,.82),rgba(7,27,38,.78));
  border:1px solid var(--stroke);
  border-radius:var(--card-radius);
  box-shadow:var(--card-shadow);
  backdrop-filter:blur(20px) saturate(145%);
  -webkit-backdrop-filter:blur(20px) saturate(145%);
  padding:20px;
  overflow:hidden;
}
.card:before,.panel:before,.stats article:before,.quick:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,rgba(255,255,255,.035),transparent 32%);
  border-radius:inherit;
}
.card>*,.panel>*,.stats article>*,.quick>*{position:relative;z-index:1}
.card h2,.card h3,.card h4,.panel h2,.panel h3{color:var(--text)}
.card p{color:var(--text-2)}
.card small{color:var(--text-3)}
.card + .card{margin-top:16px}

/* Analytics / KPI cards */
.metric{display:block;font-size:30px;line-height:1.05;color:#fff;margin-top:8px;letter-spacing:-.045em}
.grid-3>.card{min-height:132px;display:flex;flex-direction:column;justify-content:space-between}
.grid-3>.card small{
  text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800
}
.grid-3>.card:after{
  content:"";position:absolute;width:115px;height:115px;border-radius:50%;
  right:-40px;bottom:-50px;background:radial-gradient(circle,rgba(54,220,200,.13),transparent 70%)
}

/* Generic rows / lists used across operational screens */
.list-row{
  display:flex;align-items:center;gap:12px;padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.065)
}
.list-row:last-child{border-bottom:0}
.list-row>div:first-child{min-width:0;flex:1}
.list-row b{color:var(--text)}
.list-row p,.list-row small{color:var(--text-3);margin:2px 0}
.table-wrap,.tablewrap{overflow:auto;border-radius:15px;-webkit-overflow-scrolling:touch}
.table-card{padding:0}
.table-card table{margin:0}
.table-card th{position:sticky;top:0;z-index:2}
table a{color:#73e9dc;font-weight:700}
tbody tr{transition:.15s ease}
tbody tr:hover{background:rgba(255,255,255,.025)}

/* Forms everywhere, including Django form.as_p */
form p{margin:0 0 15px}
form p label{display:block;margin:0 0 7px;font-size:11px;font-weight:800;color:#c9e2e5;letter-spacing:.02em}
form p input:not([type=checkbox]):not([type=radio]),
form p select,form p textarea{
  width:100%;min-height:46px;border-radius:12px;padding:11px 13px;
  background:rgba(255,255,255,.06);color:#f1fbfc;border:1px solid rgba(255,255,255,.105);
  outline:none;transition:.16s ease
}
form p textarea{min-height:105px;resize:vertical}
form p input:focus,form p select:focus,form p textarea:focus{
  border-color:rgba(83,232,214,.48);box-shadow:0 0 0 4px rgba(54,220,200,.08);
  background:rgba(255,255,255,.075)
}
form p .helptext,.helptext{display:block;color:#75959e;font-size:10px;margin-top:5px}
.errorlist{
  list-style:none;padding:9px 11px;margin:0 0 10px;border-radius:10px;
  background:rgba(255,121,137,.10);border:1px solid rgba(255,121,137,.16);
  color:#ff9eaa;font-size:11px
}
input[type=checkbox],input[type=radio]{accent-color:#36dcc8}
input::placeholder,textarea::placeholder{color:#63818a}
input[type=date]::-webkit-calendar-picker-indicator,
input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.65}

/* Strong page sections and action containers */
.page-head{padding-bottom:4px}
.page-head .actions{flex-wrap:wrap}
.actions .btn{min-height:42px}
.panel{position:relative;overflow:hidden}
.panel-head{padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.055);margin-bottom:2px}
.panel-head h3{font-size:16px}
.quick-grid,.cards{gap:16px}
.quick{min-height:115px;align-content:center}
.quick b{font-size:15px}
.quick span{line-height:1.45}
.empty{
  padding:28px 16px;text-align:center;border:1px dashed rgba(255,255,255,.08);
  border-radius:14px;background:rgba(255,255,255,.018)
}

/* Clean sidebar footer overlap seen in screenshot */
.sidebar{display:flex;flex-direction:column;overflow:hidden}
.sidebar nav{overflow-y:auto;overflow-x:hidden;padding-right:3px;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}
.side-note{
  position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
  margin:12px 6px 2px;flex:0 0 auto
}

/* Authentication — same native visual system as the application */
.auth-body{
  min-height:100svh;margin:0;color:var(--text);
  background:
    radial-gradient(circle at 10% 8%,rgba(44,133,193,.20),transparent 31%),
    radial-gradient(circle at 88% 15%,rgba(41,211,177,.15),transparent 30%),
    linear-gradient(145deg,#061826,#04121b 55%,#08231f);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.auth-shell{
  min-height:100svh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);
}
.auth-visual{
  position:relative;padding:clamp(34px,6vw,92px);display:flex;flex-direction:column;
  justify-content:center;overflow:hidden
}
.auth-visual:after{
  content:"";position:absolute;width:480px;height:480px;border-radius:50%;left:-120px;bottom:-200px;
  border:1px solid rgba(91,233,216,.09);box-shadow:0 0 0 70px rgba(70,210,193,.025),0 0 0 140px rgba(70,210,193,.018)
}
.auth-mark{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;font-size:21px;font-weight:950;color:#04292c;background:linear-gradient(145deg,#66eddc,#11a6a0);box-shadow:0 22px 55px rgba(14,177,164,.22),inset 0 1px 0 rgba(255,255,255,.4)}
.auth-kicker{margin-top:30px;color:#5de3d2;font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.auth-visual h1{font-size:clamp(38px,5vw,64px);line-height:1.02;letter-spacing:-.055em;max-width:760px;margin:12px 0 18px;color:#f5ffff}
.auth-visual>p{max-width:610px;color:#92afb7;font-size:16px}
.auth-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:720px;margin-top:30px}
.auth-feature{
  min-height:105px;padding:15px;border-radius:17px;background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);backdrop-filter:blur(16px)
}
.auth-feature b{display:block;color:#eaffff;margin-bottom:5px;font-size:13px}
.auth-feature span{color:#7899a2;font-size:11px;line-height:1.45}
.auth-side{display:flex;align-items:center;justify-content:center;padding:34px;border-left:1px solid rgba(255,255,255,.07);background:rgba(4,20,29,.42);backdrop-filter:blur(26px)}
.auth-card{
  width:100%;max-width:520px;padding:clamp(24px,4vw,38px);border-radius:26px;
  background:linear-gradient(145deg,rgba(18,48,62,.84),rgba(7,27,38,.76));
  border:1px solid rgba(255,255,255,.10);box-shadow:0 34px 95px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.05)
}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:27px}
.auth-brand .auth-mark{width:44px;height:44px;border-radius:14px;font-size:16px}
.auth-brand b{display:block;color:#f3ffff;font-size:15px}
.auth-brand small{display:block;color:#72929c;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.auth-card h2{margin:0;color:#f5ffff;font-size:30px;letter-spacing:-.035em}
.auth-card>.auth-sub{color:#86a4ad;margin:5px 0 25px}
.auth-card .btn{width:100%;min-height:48px;margin-top:4px}
.auth-footer{margin:20px 0 0;color:#809ea7;font-size:12px;text-align:center}
.auth-footer a{color:#69eadb;font-weight:800}
.auth-trust{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.auth-trust span{font-size:9px;color:#7e9ba4;border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.025);border-radius:99px;padding:6px 8px}

/* Native mobile app treatment */
.mobile-staff-bottom{display:none}
@media(max-width:1000px){
  .grid-3,.grid.three,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  html,body{overscroll-behavior-y:none}
  .app-shell{display:block}
  main{width:100%}
  .content{min-height:calc(100svh - 68px);padding-bottom:92px!important}
  .topbar{
    padding-top:env(safe-area-inset-top);height:calc(68px + env(safe-area-inset-top));
  }
  .sidebar{height:100svh;padding-top:calc(14px + env(safe-area-inset-top))}
  .side-note{margin-top:auto}
  .mobile-staff-bottom{
    display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:32;
    left:10px;right:10px;bottom:10px;padding:8px 7px calc(8px + env(safe-area-inset-bottom));
    border-radius:20px;background:rgba(7,24,34,.91);border:1px solid rgba(255,255,255,.10);
    box-shadow:0 18px 55px rgba(0,0,0,.32);backdrop-filter:blur(24px) saturate(150%);
    -webkit-backdrop-filter:blur(24px) saturate(150%)
  }
  .mobile-staff-bottom a{display:grid;place-items:center;gap:2px;color:#76959e;font-size:9px;font-weight:700}
  .mobile-staff-bottom b{font-size:19px;color:#4ddcca}
  .mobile-staff-bottom a.active{color:#f2ffff}.mobile-staff-bottom a.active b{color:#75efdf}
  .auth-shell{grid-template-columns:1fr}
  .auth-visual{display:none}
  .auth-side{min-height:100svh;padding:18px 14px calc(18px + env(safe-area-inset-bottom));border:0;align-items:flex-start;padding-top:calc(28px + env(safe-area-inset-top))}
  .auth-card{max-width:600px;border-radius:24px;padding:23px}
}
@media(max-width:620px){
  .grid-3,.grid-2,.grid.two,.grid.three,.cards{grid-template-columns:1fr}
  .grid-3>.card{min-height:112px}
  .metric{font-size:27px}
  .page-head{align-items:flex-start}
  .page-head .actions{width:100%}
  .page-head .actions .btn{flex:1}
  .card,.panel,.table-card{border-radius:var(--mobile-radius)}
  .list-row{align-items:flex-start}
  .auth-card h2{font-size:27px}
  .auth-card{box-shadow:0 20px 60px rgba(0,0,0,.28)}
}
@media(max-width:420px){
  .stats{grid-template-columns:1fr 1fr}
  .stats article{min-height:118px}
  .auth-side{padding-left:10px;padding-right:10px}
  .auth-card{padding:20px 16px;border-radius:22px}
}

/* V12 compact patient registration */
.auth-register .auth-shell{grid-template-columns:minmax(0,1fr) minmax(600px,.92fr)}
.auth-register .auth-visual{padding:clamp(30px,4.6vw,72px)}
.auth-register .auth-visual h1{font-size:clamp(36px,4.25vw,58px);max-width:690px}
.auth-register .auth-side{align-items:center;padding:24px 30px}
.auth-register .auth-card{max-width:680px;padding:27px 30px}
.auth-register .auth-brand{margin-bottom:18px}.auth-register .auth-card h2{font-size:28px}
.auth-register .auth-card>.auth-sub{margin-bottom:18px}
.registration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px}
.registration-grid .field{margin:0}.registration-grid .field.full{grid-column:1/-1}
.registration-grid label{display:block;margin:0 0 6px;font-size:11px;font-weight:800;color:#c9e2e5}
.registration-grid input:not([type=checkbox]):not([type=radio]),.registration-grid select,.registration-grid textarea{width:100%;min-height:43px;border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.06);color:#f1fbfc;border:1px solid rgba(255,255,255,.105);outline:none}
.registration-grid textarea{min-height:72px}.registration-grid input:focus,.registration-grid select:focus,.registration-grid textarea:focus{border-color:rgba(83,232,214,.48);box-shadow:0 0 0 4px rgba(54,220,200,.08)}
.registration-grid .errorlist{margin:5px 0 0}.registration-grid .helptext{display:block;color:#75959e;font-size:9px;margin-top:4px}
.auth-register .btn{margin-top:17px}.auth-register .auth-trust{margin-top:13px}.auth-register .auth-footer{margin-top:14px}
@media(min-width:851px) and (max-height:850px){.auth-register .auth-side{align-items:flex-start;padding-top:16px}.auth-register .auth-card{padding-top:21px;padding-bottom:21px}.registration-grid{gap:9px 14px}.registration-grid input:not([type=checkbox]):not([type=radio]),.registration-grid select{min-height:39px}.registration-grid textarea{min-height:56px}}
@media(max-width:850px){.auth-register .auth-shell{grid-template-columns:1fr}.auth-register .auth-side{padding:calc(20px + env(safe-area-inset-top)) 12px calc(24px + env(safe-area-inset-bottom))}.auth-register .auth-card{max-width:620px;padding:22px 18px}}
@media(max-width:620px){.registration-grid{grid-template-columns:1fr;gap:13px}.registration-grid .field.full{grid-column:auto}.auth-register .auth-card h2{font-size:26px}}


/* ==========================================================
   V13 — SINGLE-SCREEN DESKTOP REGISTRATION
   Keeps mobile/PWA behavior intact
   ========================================================== */
@media(min-width:851px){
  .auth-register{
    overflow:hidden;
  }
  .auth-register .auth-shell{
    height:100svh;
    min-height:700px;
    grid-template-columns:minmax(0,1.04fr) minmax(620px,.96fr);
  }
  .auth-register .auth-visual{
    min-height:0;
    justify-content:center;
    padding:28px clamp(34px,4.2vw,66px);
  }
  .auth-register .auth-mark{
    width:56px;height:56px;border-radius:18px;font-size:19px;
  }
  .auth-register .auth-kicker{
    margin-top:22px;
  }
  .auth-register .auth-visual h1{
    font-size:clamp(40px,4.15vw,57px);
    max-width:640px;
    margin:10px 0 14px;
    line-height:1.00;
  }
  .auth-register .auth-visual>p{
    max-width:620px;
    font-size:14px;
    line-height:1.65;
    margin:0;
  }
  .auth-register .auth-feature-grid{
    margin-top:22px;
    gap:10px;
    max-width:690px;
  }
  .auth-register .auth-feature{
    min-height:88px;
    padding:13px 14px;
  }

  .auth-register .auth-side{
    height:100svh;
    min-height:700px;
    overflow:hidden;
    align-items:center;
    padding:18px 26px;
  }
  .auth-register .auth-card{
    width:100%;
    max-width:700px;
    max-height:calc(100svh - 36px);
    overflow:hidden;
    padding:22px 28px 20px;
    border-radius:24px;
  }
  .auth-register .auth-brand{
    margin-bottom:12px;
  }
  .auth-register .auth-brand .auth-mark{
    width:42px;height:42px;border-radius:13px;font-size:15px;
  }
  .auth-register .auth-card h2{
    font-size:26px;
    margin:0;
  }
  .auth-register .auth-card>.auth-sub{
    margin:4px 0 13px;
    font-size:12px;
  }
  .auth-register .registration-grid{
    gap:8px 14px;
  }
  .auth-register .registration-grid label{
    margin-bottom:4px;
    font-size:10px;
  }
  .auth-register .registration-grid input:not([type=checkbox]):not([type=radio]),
  .auth-register .registration-grid select{
    min-height:38px;
    padding:8px 11px;
    border-radius:11px;
  }
  .auth-register .registration-grid textarea{
    min-height:52px;
    padding:8px 11px;
    border-radius:11px;
  }
  .auth-register .btn{
    min-height:43px;
    margin-top:12px;
    padding:9px 14px;
  }
  .auth-register .auth-trust{
    margin-top:9px;
    gap:6px;
  }
  .auth-register .auth-trust span{
    padding:4px 7px;
    font-size:8px;
  }
  .auth-register .auth-footer{
    margin:9px 0 0;
    font-size:11px;
  }
}
@media(min-width:851px) and (max-height:760px){
  .auth-register .auth-shell,
  .auth-register .auth-side{
    min-height:620px;
  }
  .auth-register .auth-visual{
    padding-top:20px;
    padding-bottom:20px;
  }
  .auth-register .auth-feature-grid{
    margin-top:16px;
  }
  .auth-register .auth-feature{
    min-height:76px;
    padding:11px 12px;
  }
  .auth-register .auth-card{
    padding-top:16px;
    padding-bottom:15px;
  }
  .auth-register .auth-brand{
    margin-bottom:8px;
  }
  .auth-register .auth-card>.auth-sub{
    margin-bottom:9px;
  }
  .auth-register .registration-grid{
    gap:6px 12px;
  }
  .auth-register .registration-grid input:not([type=checkbox]):not([type=radio]),
  .auth-register .registration-grid select{
    min-height:35px;
    padding:7px 10px;
  }
  .auth-register .registration-grid textarea{
    min-height:44px;
  }
  .auth-register .btn{
    min-height:39px;
    margin-top:9px;
  }
  .auth-register .auth-trust{
    margin-top:7px;
  }
  .auth-register .auth-footer{
    margin-top:7px;
  }
}
/* Mobile remains native, single-column, scrollable */
@media(max-width:850px){
  .auth-register{
    overflow:auto;
  }
  .auth-register .auth-shell,
  .auth-register .auth-side{
    height:auto;
    min-height:100svh;
  }
  .auth-register .auth-side{
    overflow:visible;
  }
  .auth-register .auth-card{
    max-height:none;
    overflow:visible;
  }
}


/* ==========================================================
   V14 — OVERFLOW-SAFE AUTH LAYOUT
   Never hides registration/login actions or links.
   ========================================================== */

/* Desktop: keep the polished viewport composition, but allow the page
   and right panel to grow naturally if content exceeds screen height. */
@media(min-width:851px){
  .auth-body{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .auth-register .auth-shell{
    height:auto !important;
    min-height:100svh !important;
    align-items:stretch;
  }

  .auth-register .auth-visual{
    min-height:100svh;
    position:sticky;
    top:0;
    align-self:start;
  }

  .auth-register .auth-side{
    height:auto !important;
    min-height:100svh !important;
    overflow:visible !important;
    align-items:center;
  }

  .auth-register .auth-card{
    max-height:none !important;
    overflow:visible !important;
    margin:18px 0;
  }

  /* Login also gets the same no-clipping protection. */
  .auth-body:not(.auth-register) .auth-shell{
    height:auto;
    min-height:100svh;
  }

  .auth-body:not(.auth-register) .auth-visual{
    min-height:100svh;
    position:sticky;
    top:0;
    align-self:start;
  }

  .auth-body:not(.auth-register) .auth-side{
    min-height:100svh;
    height:auto;
    overflow:visible;
  }

  .auth-body:not(.auth-register) .auth-card{
    max-height:none;
    overflow:visible;
    margin:18px 0;
  }
}

/* On shorter laptop screens, use an internal page scroll rather than
   clipping the bottom of the registration card. */
@media(min-width:851px) and (max-height:820px){
  .auth-register .auth-visual{
    position:relative;
    min-height:auto;
  }

  .auth-register .auth-side{
    align-items:flex-start;
    padding-top:14px;
    padding-bottom:18px;
  }

  .auth-register .auth-card{
    margin:0;
  }

  .auth-register .auth-trust,
  .auth-register .auth-footer{
    display:flex !important;
  }

  .auth-register .auth-footer{
    justify-content:center;
  }
}

/* Always keep post-submit / secondary navigation visible. */
.auth-register .auth-trust{
  display:flex;
  flex-wrap:wrap;
}

.auth-register .auth-footer{
  display:block;
  padding-bottom:2px;
}

.auth-register .auth-footer a{
  white-space:nowrap;
}

/* Validation messages can increase form height; never clip them. */
.auth-register .errorlist,
.auth-register .helptext{
  position:relative;
  z-index:2;
}

/* Mobile continues as a fully scrollable native screen. */
@media(max-width:850px){
  .auth-body,
  .auth-register{
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  .auth-register .auth-shell,
  .auth-register .auth-side,
  .auth-register .auth-card{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }

  .auth-register .auth-footer{
    padding-bottom:calc(8px + env(safe-area-inset-bottom));
  }
}


/* ==========================================================
   V15 — FINAL BALANCED PROFESSIONAL POLISH
   Consistent, restrained glass. No over-floating.
   ========================================================== */
:root{
  --balance-radius:18px;
  --balance-shadow:0 14px 38px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.035);
  --balance-border:rgba(255,255,255,.085);
  --balance-surface:linear-gradient(145deg,rgba(16,43,56,.78),rgba(8,28,38,.76));
}

/* Global rhythm */
body{font-size:14px}
.content{padding-top:26px;padding-bottom:30px}
.page-head{margin-bottom:20px}
.page-head h1{font-size:32px;line-height:1.08}
.page-head p{font-size:13px;line-height:1.55}
.eyebrow{font-size:9px}

/* Calm all glass panels and remove excessive floating depth */
.panel,.card,.stats article,.quick,.assessment-card,.plan-card,.exercise-card,.slot-card,.timeline-card,.day-card,.table-card,.receipt,.print-sheet,.report-card{
  border-radius:var(--balance-radius);
  border-color:var(--balance-border);
  background:var(--balance-surface);
  box-shadow:var(--balance-shadow);
}
.quick:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 40px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.035);
}
.sidebar nav a:hover,.sidebar nav a.active{transform:none}
.btn{box-shadow:0 8px 20px rgba(15,152,145,.14),inset 0 1px 0 rgba(255,255,255,.12)}
.btn:hover{transform:none}

/* Consistent control sizing */
.form-control,.searchbar input,.complete-form input,.inline-filter input,.inline-filter select,
select,textarea,input:not([type=checkbox]):not([type=radio]){
  min-height:42px;
  border-radius:11px;
}
textarea{min-height:82px}
.field label,form p label{font-size:10px;margin-bottom:5px}
.btn{min-height:40px;border-radius:11px;padding:9px 14px}

/* Dashboard cards */
.stats{gap:13px}
.stats article{min-height:132px;padding:17px}
.stats strong{font-size:27px}
.stat-icon{width:36px;height:36px}
.grid,.grid-2,.grid-3,.grid.two,.grid.three,.cards{gap:13px}
.card{padding:17px}
.metric{font-size:27px}
.list-row{padding:12px 0}

/* Sidebar + header */
.sidebar{padding:17px 12px}
.brand{margin-bottom:17px}
.sidebar nav a{padding:8px 10px;font-size:12px;border-radius:10px}
.nav-label{padding-top:12px}
.side-note{border-radius:14px;padding:12px}
.topbar{height:70px;padding:0 26px}
.content{min-height:calc(100vh - 70px)}

/* Authentication: one unified proportion system */
.auth-shell{
  grid-template-columns:minmax(0,1fr) minmax(520px,.82fr);
}
.auth-visual{
  padding:clamp(30px,4.5vw,68px);
}
.auth-visual .auth-mark{
  width:54px;height:54px;border-radius:17px;font-size:18px;
}
.auth-kicker{margin-top:20px}
.auth-visual h1{
  font-size:clamp(38px,4vw,54px);
  line-height:1.02;
  max-width:630px;
  margin:10px 0 14px;
}
.auth-visual>p{
  max-width:625px;
  font-size:14px;
  line-height:1.6;
}
.auth-feature-grid{
  margin-top:22px;
  gap:10px;
}
.auth-feature{
  min-height:82px;
  padding:12px 13px;
  border-radius:15px;
}
.auth-feature b{font-size:12px}
.auth-feature span{font-size:10px}

.auth-side{
  padding:22px 26px;
}
.auth-card{
  max-width:610px;
  padding:25px 27px;
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.04);
}
.auth-brand{margin-bottom:17px}
.auth-brand .auth-mark{width:42px;height:42px;border-radius:13px}
.auth-card h2{font-size:27px}
.auth-card>.auth-sub{font-size:12px;margin:4px 0 17px}
.auth-card form p{margin-bottom:11px}
.auth-card form p input:not([type=checkbox]):not([type=radio]),
.auth-card form p select{
  min-height:42px;
}
.auth-card .btn{min-height:43px}
.auth-trust{margin-top:12px}
.auth-footer{margin-top:13px}

/* Registration gets same proportion, slightly wider only where needed */
.auth-register .auth-shell{
  grid-template-columns:minmax(0,1fr) minmax(610px,.9fr) !important;
}
.auth-register .auth-card{
  max-width:680px;
  padding:23px 27px 21px !important;
  margin:14px 0 !important;
}
.auth-register .registration-grid{
  gap:9px 13px;
}
.auth-register .registration-grid input:not([type=checkbox]):not([type=radio]),
.auth-register .registration-grid select{
  min-height:39px;
}
.auth-register .registration-grid textarea{
  min-height:54px;
}
.auth-register .btn{margin-top:11px}
.auth-register .auth-trust{margin-top:9px}
.auth-register .auth-footer{margin-top:9px}

/* Prevent giant blank vertical gaps on auth screens */
@media(min-width:851px){
  .auth-body .auth-shell{
    min-height:100svh;
    height:auto;
  }
  .auth-body .auth-visual{
    min-height:100svh;
    justify-content:center;
  }
  .auth-body .auth-side{
    min-height:100svh;
    align-items:center;
  }
  .auth-body .auth-card{
    max-height:none;
    overflow:visible;
  }
}

/* Short desktop/laptop screens: compact without clipping */
@media(min-width:851px) and (max-height:780px){
  .auth-visual{padding-top:18px;padding-bottom:18px}
  .auth-visual h1{font-size:clamp(35px,3.6vw,48px)}
  .auth-feature-grid{margin-top:15px}
  .auth-feature{min-height:70px;padding:10px 11px}
  .auth-side{padding-top:14px;padding-bottom:14px;align-items:flex-start}
  .auth-card{padding-top:18px;padding-bottom:18px;margin:0}
  .auth-brand{margin-bottom:10px}
  .auth-card>.auth-sub{margin-bottom:11px}
  .auth-card form p{margin-bottom:8px}
  .auth-register .registration-grid{gap:6px 12px}
}

/* Tablet/mobile: clear native cards, restrained floating */
@media(max-width:850px){
  .topbar{height:64px}
  .content{padding:16px 13px 90px!important}
  .panel,.card,.stats article,.quick,.table-card{border-radius:16px}
  .mobile-bottom,.mobile-staff-bottom{
    left:8px!important;right:8px!important;bottom:8px!important;
    border-radius:17px!important;
    box-shadow:0 10px 30px rgba(0,0,0,.26)!important;
  }
  .auth-side{
    align-items:flex-start;
    padding:calc(18px + env(safe-area-inset-top)) 11px calc(22px + env(safe-area-inset-bottom));
  }
  .auth-card{
    max-width:620px;
    padding:21px 17px;
    border-radius:19px;
    box-shadow:0 14px 36px rgba(0,0,0,.24);
  }
}
@media(max-width:560px){
  .page-head h1{font-size:26px}
  .stats article{min-height:114px}
  .stats strong{font-size:23px}
  .card,.panel{padding:14px}
  .auth-card h2{font-size:25px}
}


/* ==========================================================
   V16 — PERSISTENT BACK + HOME ORIENTATION
   ========================================================== */
.topbar{
  gap:10px;
}
.menu-trigger{flex:0 0 auto}
.nav-orientation{
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}
.nav-back,.nav-home{
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 11px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.045);
  color:#cfe4e8;
  font:inherit;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.nav-back:hover,.nav-home:hover{
  background:rgba(54,220,200,.08);
  border-color:rgba(76,226,211,.18);
  color:#f4ffff;
}
.nav-home{
  color:#75e9db;
}
.top-title{
  min-width:0;
  margin-right:auto;
}
.top-title strong,.top-title small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.topbar .user-chip{flex:0 0 auto}

/* Home should always remain obvious in sidebar/mobile */
.sidebar nav a:first-child{
  border-color:rgba(54,220,200,.07);
}
.sidebar nav a:first-child:before{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:#4ddcca;
  box-shadow:0 0 0 4px rgba(77,220,202,.06);
  flex:0 0 auto;
}
.mobile-bottom a:first-child,
.mobile-staff-bottom a:first-child{
  color:#a8c6cb;
}

/* Desktop: menu is useful only for narrow/overlay sidebar,
   orientation controls remain visible. */
@media(min-width:851px){
  .nav-orientation{margin-left:1px}
}

/* Tablet / PWA */
@media(max-width:850px){
  .topbar{gap:6px}
  .nav-back,.nav-home{
    width:36px;height:36px;
    padding:0;
    font-size:16px;
    border-radius:11px;
  }
  .nav-back span,.nav-home span{display:none}
  .top-title{margin-left:1px}
}

/* Very narrow phones: preserve both Back and Home, compact identity */
@media(max-width:430px){
  .topbar{padding-left:8px;padding-right:8px}
  .menu-trigger,.nav-back,.nav-home{
    width:34px;height:34px;
  }
  .top-title small{display:none}
  .top-title strong{font-size:11px}
  .user-chip>div{display:none}
  .user-chip>span{width:33px;height:33px}
}


/* ==========================================================
   V17 — PUBLIC HOMEPAGE / PWA LAUNCH
   ========================================================== */
.public-home{
  min-height:100svh;
  margin:0;
  color:#effcfd;
  background:
    radial-gradient(circle at 8% 4%,rgba(40,129,187,.20),transparent 30%),
    radial-gradient(circle at 92% 8%,rgba(45,205,170,.14),transparent 28%),
    linear-gradient(145deg,#061826,#04121b 55%,#08231f);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.public-home *{box-sizing:border-box}
.public-topbar{
  min-height:76px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:13px clamp(18px,5vw,76px);
  border-bottom:1px solid rgba(255,255,255,.07);
  background:rgba(5,20,29,.62);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  position:sticky;top:0;z-index:20;
}
.public-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#efffff;min-width:0}
.public-brand img,.public-logo{
  width:44px;height:44px;border-radius:14px;object-fit:cover;display:grid;place-items:center;
  flex:0 0 auto;background:linear-gradient(145deg,#66eddc,#11a6a0);color:#04292c;font-weight:950;
  border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.16)
}
.public-brand b{display:block;font-size:14px}
.public-brand small{display:block;font-size:9px;color:#789ba4;letter-spacing:.04em;margin-top:2px}
.public-actions{display:flex;align-items:center;gap:9px}
.public-link{
  min-height:40px;display:inline-flex;align-items:center;padding:0 13px;border-radius:11px;
  text-decoration:none;color:#c4dade;font-size:11px;font-weight:800;border:1px solid rgba(255,255,255,.075);
  background:rgba(255,255,255,.035)
}
.public-cta{min-height:40px!important;text-decoration:none!important}
.public-main{max-width:1500px;margin:0 auto;padding:clamp(34px,6vw,90px) clamp(18px,5vw,76px) 36px}
.public-hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(470px,.76fr);gap:clamp(34px,6vw,90px);align-items:center}
.public-copy h1{
  font-size:clamp(50px,6.5vw,92px);line-height:.95;letter-spacing:-.065em;
  color:#f5ffff;margin:12px 0 22px;max-width:820px
}
.public-copy>p{max-width:700px;color:#9cb9c0;font-size:16px;line-height:1.7}
.public-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.public-hero-actions .btn{min-height:46px;display:inline-flex;align-items:center;text-decoration:none}
.public-trust{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.public-trust span{
  border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.025);
  color:#789ba4;border-radius:99px;padding:6px 9px;font-size:9px
}
.public-care-card,.public-card{
  background:linear-gradient(145deg,rgba(16,43,56,.80),rgba(7,28,38,.76));
  border:1px solid rgba(255,255,255,.085);border-radius:20px;
  box-shadow:0 16px 42px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035);
}
.public-care-card{padding:22px}
.care-head{display:flex;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.065)}
.care-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#58e3d2,#13a4a0);color:#052a2e;font-weight:950}
.care-head small{display:block;color:#5bd9ca;font-size:9px;font-weight:900;letter-spacing:.13em}
.care-head b{display:block;color:#efffff;margin-top:3px;font-size:15px}
.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.care-grid article{padding:15px;border:1px solid rgba(255,255,255,.065);background:rgba(255,255,255,.028);border-radius:15px}
.care-grid article span{display:block;color:#56dece;font-size:9px;font-weight:900;margin-bottom:8px}
.care-grid article b{font-size:13px;color:#edffff}
.care-grid article p{font-size:10px;line-height:1.5;color:#789aa3;margin:6px 0 0}
.public-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(34px,5vw,64px)}
.public-card{padding:18px}
.public-card b{font-size:13px;color:#efffff}
.public-card p{font-size:11px;line-height:1.55;color:#7d9ca5;margin:7px 0 0}
.public-footer{
  max-width:1500px;margin:0 auto;padding:18px clamp(18px,5vw,76px) 24px;
  display:flex;justify-content:space-between;gap:12px;color:#62818a;font-size:9px
}
@media(max-width:900px){
  .public-hero{grid-template-columns:1fr}
  .public-care-card{max-width:700px}
  .public-copy h1{font-size:clamp(48px,10vw,76px)}
}
@media(max-width:620px){
  .public-topbar{min-height:66px;padding:10px 12px}
  .public-brand small{display:none}
  .public-brand b{font-size:12px}
  .public-actions .public-link{display:none}
  .public-main{padding:32px 13px 86px}
  .public-copy h1{font-size:clamp(43px,13vw,62px);margin-bottom:16px}
  .public-copy>p{font-size:13px}
  .public-hero-actions{display:grid;grid-template-columns:1fr;margin-top:22px}
  .public-hero-actions .btn{justify-content:center;width:100%}
  .care-grid{grid-template-columns:1fr 1fr}
  .public-services{grid-template-columns:1fr}
  .public-footer{padding:16px 13px 26px;display:block}
  .public-footer span{display:block;margin-top:4px}
}
@media(max-width:420px){
  .care-grid{grid-template-columns:1fr}
  .public-care-card{padding:16px}
}


/* ==========================================================
   V18 — CONSULTATION / BOOKING CTA
   ========================================================== */
.public-book{
  min-height:40px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 14px;border-radius:11px;text-decoration:none;
  color:#04292c;font-size:11px;font-weight:900;
  background:linear-gradient(135deg,#61ead9,#22c2b4);
  border:1px solid rgba(116,242,225,.30);
  box-shadow:0 8px 20px rgba(24,184,171,.13),inset 0 1px 0 rgba(255,255,255,.22);
}
.public-book:hover,.public-book-primary:hover{filter:brightness(1.035)}
.public-book-primary{
  background:linear-gradient(135deg,#5ce6d5,#1db6b3)!important;
  color:#04292c!important;
  border-color:rgba(116,242,225,.30)!important;
  font-weight:900;
}
.hero-text-link{
  align-self:center;color:#72dcd0;text-decoration:none;font-size:11px;font-weight:800;
  padding:9px 4px;
}
.hero-text-link:hover{text-decoration:underline}
.public-card{
  display:flex;align-items:flex-start;gap:12px;
}
.public-card>div{flex:1;min-width:0}
.service-icon{
  width:34px;height:34px;flex:0 0 34px;border-radius:11px;display:grid;place-items:center;
  background:rgba(54,220,200,.09);border:1px solid rgba(72,226,209,.12);
  color:#55dfd0;font-weight:900;
}
.public-card-action{
  border-color:rgba(64,224,206,.16);
  background:linear-gradient(145deg,rgba(17,54,64,.82),rgba(8,30,39,.78));
}
.public-card-action>a{
  align-self:center;white-space:nowrap;color:#69e7d8;text-decoration:none;
  font-size:10px;font-weight:900;padding:8px 10px;border-radius:10px;
  border:1px solid rgba(66,220,203,.12);background:rgba(54,220,200,.045)
}
.public-card-action>a:hover{background:rgba(54,220,200,.08)}
@media(max-width:760px){
  .public-actions .public-book{display:none}
  .public-hero-actions{gap:8px}
}
@media(max-width:620px){
  .public-hero-actions .hero-text-link{text-align:center;width:100%}
  .public-card-action{display:grid;grid-template-columns:auto 1fr}
  .public-card-action>a{grid-column:2;justify-self:start}
}


/* ==========================================================
   V19 — FULL NATIVE MOBILE PWA
   ========================================================== */
:root{
  --mobile-nav-h:72px;
  --mobile-top-h:60px;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
}

/* App-like motion and touch */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{-webkit-tap-highlight-color:transparent}
button,a,input,select,textarea{touch-action:manipulation}
button,a{-webkit-user-select:none;user-select:none}
input,textarea{-webkit-user-select:text;user-select:text}

/* Native shell */
@media(max-width:850px){
  body:not(.auth-body):not(.public-home){
    background:#04121b;
  }

  .app-shell{display:block!important}
  .sidebar{
    width:min(86vw,310px);
    height:100dvh;
    position:fixed;
    top:0;bottom:0;
    z-index:80;
    padding-top:calc(14px + var(--safe-t));
    transform:translateX(-110%);
    left:0!important;
    transition:transform .22s ease;
    box-shadow:24px 0 60px rgba(0,0,0,.36);
  }
  .sidebar.open{transform:translateX(0)}
  .overlay{z-index:70}
  .overlay.show{display:block}

  main{
    width:100%;
    min-height:100dvh;
    padding:0;
  }

  .topbar{
    position:sticky;
    top:0;
    z-index:50;
    height:calc(var(--mobile-top-h) + var(--safe-t));
    padding:var(--safe-t) 10px 0;
    background:rgba(5,20,29,.90);
    border-bottom:1px solid rgba(255,255,255,.075);
    backdrop-filter:blur(24px) saturate(150%);
    -webkit-backdrop-filter:blur(24px) saturate(150%);
  }

  .top-title strong{font-size:11px}
  .top-title small{display:none}
  .user-chip>div{display:none}
  .user-chip>span{
    width:34px;height:34px;
    border-radius:11px;
  }
  .topbar form .ghost{
    width:34px;height:34px;
    padding:0;
    font-size:0;
    border-radius:11px;
  }
  .topbar form .ghost:after{
    content:"↗";
    font-size:15px;
  }

  .menu-trigger,.nav-back,.nav-home{
    width:34px!important;
    height:34px!important;
    min-width:34px;
    border-radius:11px!important;
    padding:0!important;
  }

  .content{
    padding:15px 12px calc(var(--mobile-nav-h) + var(--safe-b) + 22px)!important;
    min-height:calc(100dvh - var(--mobile-top-h));
    max-width:none!important;
  }

  .page-head{
    margin-bottom:15px;
    display:block;
  }
  .page-head h1{
    font-size:25px;
    line-height:1.08;
    margin-top:5px;
  }
  .page-head p{
    font-size:12px;
    line-height:1.5;
    margin-top:7px;
  }
  .page-head .actions{
    margin-top:12px;
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .page-head .actions .btn{
    width:100%;
    justify-content:center;
    text-align:center;
  }

  /* Everything becomes card-first */
  .panel,.card,.stats article,.quick,.assessment-card,.plan-card,.exercise-card,
  .slot-card,.timeline-card,.day-card,.table-card,.receipt,.report-card{
    border-radius:17px!important;
    box-shadow:0 10px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.03)!important;
  }

  .grid,.grid-2,.grid-3,.grid.two,.grid.three,.cards,.stats,.quick-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .stats article{
    min-height:108px!important;
    padding:14px!important;
  }
  .stats strong{font-size:23px!important}
  .stat-icon{width:33px;height:33px;border-radius:10px}

  .panel,.card{padding:14px!important}
  .panel-head{
    align-items:flex-start;
    gap:8px;
  }
  .panel-head h3{font-size:14px}
  .panel-head p{font-size:10px}

  .row,.list-row{
    padding:12px 0!important;
    align-items:flex-start;
  }
  .row-main b,.list-row b{font-size:12px}
  .row-main small,.list-row small{font-size:10px;line-height:1.45}

  /* Native form controls */
  input:not([type=checkbox]):not([type=radio]),
  select,textarea,.form-control{
    width:100%;
    min-height:46px!important;
    font-size:16px!important; /* prevents iOS zoom */
    border-radius:13px!important;
    padding:11px 12px!important;
  }
  textarea{min-height:96px!important}
  .field label,form p label{
    font-size:10px!important;
    letter-spacing:.02em;
  }
  .btn{
    min-height:46px!important;
    border-radius:13px!important;
    font-size:12px!important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* Tables become horizontal native sheets */
  .tablewrap,.table-wrap{
    overflow-x:auto!important;
    margin:0 -2px;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .tablewrap::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{display:none}
  table{
    min-width:680px;
    font-size:11px;
  }
  th,td{padding:10px!important}

  /* Bottom tab bar — native app style */
  .mobile-bottom,.mobile-staff-bottom{
    display:grid!important;
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(8px + var(--safe-b))!important;
    height:64px;
    z-index:60!important;
    padding:6px!important;
    border-radius:19px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    background:rgba(6,24,34,.94)!important;
    box-shadow:0 16px 38px rgba(0,0,0,.34)!important;
    backdrop-filter:blur(24px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(24px) saturate(150%)!important;
  }
  .mobile-bottom{grid-template-columns:repeat(4,1fr)}
  .mobile-staff-bottom{grid-template-columns:repeat(4,1fr)}
  .mobile-bottom a,.mobile-staff-bottom a{
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    gap:2px;
    border-radius:13px;
    text-decoration:none;
    font-size:9px!important;
    font-weight:800;
    color:#76949d;
  }
  .mobile-bottom a b,.mobile-staff-bottom a b{
    font-size:18px!important;
    line-height:1;
    color:#4cdccc;
  }
  .mobile-bottom a.active,.mobile-staff-bottom a.active{
    background:rgba(54,220,200,.08);
    color:#efffff;
  }

  /* Patient/clinical cards */
  .profile-hero{
    border-radius:17px;
    padding:16px;
  }
  .profile-avatar{width:50px;height:50px}
  .mini-stats{grid-template-columns:repeat(2,1fr)}
  .details{grid-template-columns:1fr!important}
  .timeline-card{padding:13px!important}
  .notification-row{padding:12px!important;border-radius:14px}
  .exercise-card,.assessment-card,.plan-card{padding:14px!important}

  /* Calendar becomes swipeable */
  .calendar-grid{
    display:flex!important;
    overflow-x:auto;
    gap:10px;
    scroll-snap-type:x mandatory;
    padding-bottom:4px;
    scrollbar-width:none;
  }
  .calendar-grid::-webkit-scrollbar{display:none}
  .day-card{
    flex:0 0 min(84vw,330px);
    scroll-snap-align:start;
  }

  /* PWA install banner */
  .pwa-install-banner{
    position:fixed;
    left:10px;right:10px;
    bottom:calc(82px + var(--safe-b));
    z-index:65;
    display:none;
    align-items:center;
    gap:10px;
    padding:12px;
    border-radius:16px;
    background:rgba(10,35,46,.96);
    border:1px solid rgba(83,231,214,.16);
    box-shadow:0 16px 40px rgba(0,0,0,.32);
    backdrop-filter:blur(20px);
  }
  .pwa-install-banner.show{display:flex}
  .pwa-install-icon{
    width:40px;height:40px;border-radius:12px;
    display:grid;place-items:center;
    background:linear-gradient(145deg,#5ce7d5,#1aaca7);
    color:#04292c;font-weight:950;flex:0 0 auto;
  }
  .pwa-install-copy{min-width:0;flex:1}
  .pwa-install-copy b{display:block;font-size:11px;color:#f2ffff}
  .pwa-install-copy span{display:block;font-size:9px;color:#7f9da5;margin-top:2px}
  .pwa-install-actions{display:flex;gap:6px}
  .pwa-install-actions button{
    border:0;border-radius:10px;padding:8px 10px;font-size:9px;font-weight:900;
  }
  #pwaInstallBtn{background:#42dccb;color:#062a2c}
  #pwaInstallDismiss{background:rgba(255,255,255,.06);color:#a8c0c6}

  /* Standalone/PWA feel */
  @media(display-mode:standalone){
    .topbar{
      padding-top:var(--safe-t);
    }
    body{
      overscroll-behavior-y:none;
    }
  }
}

/* Very small phone */
@media(max-width:390px){
  .stats{grid-template-columns:1fr 1fr!important}
  .content{padding-left:9px!important;padding-right:9px!important}
  .page-head .actions{grid-template-columns:1fr}
  .public-actions .public-cta{padding-left:10px;padding-right:10px}
}

/* Public home becomes app-launch friendly on mobile */
@media(max-width:620px){
  .public-home{
    min-height:100dvh;
  }
  .public-topbar{
    position:sticky;
    top:0;
    z-index:50;
    padding-top:calc(8px + var(--safe-t));
    min-height:calc(62px + var(--safe-t));
    backdrop-filter:blur(24px) saturate(150%);
  }
  .public-main{
    padding-bottom:calc(30px + var(--safe-b));
  }
  .public-care-card,.public-card{
    border-radius:17px;
    box-shadow:0 10px 28px rgba(0,0,0,.22);
  }
  .public-services{gap:10px}
}

/* Auth screens full native mobile */
@media(max-width:850px){
  .auth-body{
    min-height:100dvh;
    background:#04121b;
  }
  .auth-side{
    min-height:100dvh!important;
    padding:calc(18px + var(--safe-t)) 10px calc(20px + var(--safe-b))!important;
  }
  .auth-card{
    width:100%;
    max-width:none!important;
    border-radius:20px!important;
    padding:20px 16px!important;
    box-shadow:none!important;
    border-color:rgba(255,255,255,.085)!important;
  }
  .auth-brand{margin-bottom:16px}
  .auth-card h2{font-size:25px!important}
  .auth-feature-grid{display:none!important}
  .registration-grid{grid-template-columns:1fr!important}
}


/* ==========================================================
   V20 — UNIVERSAL MOBILE GLASS NATIVE CARD SYSTEM
   Applies a unified card language across ALL mobile surfaces.
   ========================================================== */
@media(max-width:850px){

  :root{
    --m-glass:linear-gradient(145deg,rgba(16,45,58,.88),rgba(7,27,38,.84));
    --m-glass-soft:linear-gradient(145deg,rgba(17,47,60,.72),rgba(8,29,39,.70));
    --m-stroke:rgba(255,255,255,.09);
    --m-stroke-accent:rgba(72,226,209,.16);
    --m-radius:17px;
    --m-shadow:0 10px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035);
  }

  /* Universal card treatment for all known application surfaces */
  .panel,.card,.stats article,.quick,.assessment-card,.plan-card,.exercise-card,
  .slot-card,.timeline-card,.day-card,.table-card,.receipt,.print-sheet,.report-card,
  .profile-hero,.notification-row,.calendar-event,.bodymap,.mini-stats,.details>div,
  .progress-row,.form-card,.summary-card,.info-card,.metric-card,.dashboard-card,
  .invoice-card,.payment-card,.package-card,.service-card,.patient-card,.appointment-card,
  .session-card,.document-card,.referral-card,.soap-card,.vital-card,.outcome-card,
  .discharge-card,.intake-card,.consent-card,.staff-card,.queue-card,
  .public-care-card,.public-card{
    background:var(--m-glass)!important;
    border:1px solid var(--m-stroke)!important;
    border-radius:var(--m-radius)!important;
    box-shadow:var(--m-shadow)!important;
    backdrop-filter:blur(18px) saturate(145%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(145%)!important;
  }

  /* Any direct content section/article not already componentized becomes a card */
  .content>section:not(.page-head):not(.messages),
  .content>article,
  .content>.details,
  .content>.tablewrap,
  .content>.table-wrap{
    border-radius:var(--m-radius);
  }

  /* Standalone forms become native glass cards automatically */
  .content>form:not(.inline-filter):not(.complete-form),
  .content>.form-wrap,
  .content>.form-container{
    background:var(--m-glass)!important;
    border:1px solid var(--m-stroke)!important;
    border-radius:var(--m-radius)!important;
    box-shadow:var(--m-shadow)!important;
    padding:14px!important;
    backdrop-filter:blur(18px) saturate(145%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(145%)!important;
  }

  /* Django form paragraphs become compact inner cards where appropriate */
  .content form:not(.inline-filter):not(.complete-form) p{
    padding:10px!important;
    margin:0 0 9px!important;
    border-radius:13px;
    background:rgba(255,255,255,.025);
    border:1px solid rgba(255,255,255,.055);
  }

  /* Fieldsets and grouped clinical forms */
  fieldset{
    margin:0 0 11px!important;
    padding:12px!important;
    border:1px solid var(--m-stroke)!important;
    border-radius:15px!important;
    background:rgba(255,255,255,.025)!important;
  }
  legend{
    padding:0 6px;
    color:#72e7d9;
    font-size:10px;
    font-weight:900;
    letter-spacing:.06em;
  }

  /* Make list rows feel like native cards instead of separators */
  .row,.list-row{
    padding:12px!important;
    margin:0 0 8px!important;
    border:1px solid rgba(255,255,255,.065)!important;
    border-radius:14px!important;
    background:rgba(255,255,255,.025)!important;
  }
  .row:last-child,.list-row:last-child{margin-bottom:0!important}

  /* Progress records */
  .progress-row{
    padding:13px!important;
    margin-bottom:9px;
  }

  /* Tables sit inside a glass sheet */
  .tablewrap,.table-wrap{
    background:var(--m-glass-soft)!important;
    border:1px solid var(--m-stroke)!important;
    border-radius:16px!important;
    box-shadow:0 8px 22px rgba(0,0,0,.18)!important;
    padding:4px!important;
  }
  table{
    border-collapse:separate!important;
    border-spacing:0 6px!important;
    background:transparent!important;
  }
  thead th{
    background:rgba(255,255,255,.03)!important;
    border:0!important;
  }
  tbody tr{
    background:rgba(255,255,255,.025)!important;
  }
  tbody td{
    border-top:1px solid rgba(255,255,255,.045)!important;
    border-bottom:1px solid rgba(255,255,255,.045)!important;
  }
  tbody td:first-child{
    border-left:1px solid rgba(255,255,255,.045)!important;
    border-radius:12px 0 0 12px;
  }
  tbody td:last-child{
    border-right:1px solid rgba(255,255,255,.045)!important;
    border-radius:0 12px 12px 0;
  }

  /* Notifications */
  .notification-row{
    padding:13px!important;
    margin-bottom:9px!important;
  }
  .notification-row.unread{
    border-color:var(--m-stroke-accent)!important;
    background:linear-gradient(145deg,rgba(23,62,70,.88),rgba(9,33,43,.86))!important;
  }

  /* Patient details / profile groups */
  .details{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  .details>div{
    padding:12px!important;
    margin:0!important;
  }
  .mini-stats{
    padding:10px!important;
    gap:8px!important;
  }
  .mini-stats>div{
    padding:10px!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.025)!important;
    border:1px solid rgba(255,255,255,.055)!important;
  }

  /* Calendar / timetable */
  .calendar-event{
    padding:11px!important;
    margin:0 0 8px!important;
    border-left:0!important;
    border-color:rgba(72,226,209,.12)!important;
  }
  .day-card>header{
    margin:-14px -14px 10px!important;
    padding:11px 14px!important;
    background:rgba(255,255,255,.025)!important;
    border-radius:16px 16px 0 0!important;
  }

  /* Clinical body map */
  .bodymap{
    padding:12px!important;
    overflow:hidden;
  }

  /* Badges/chips get native pill treatment */
  .badge,.status-active,.status-paid,.status-completed,.status-scheduled,
  .status-pending,.status-review,.status-cancelled,.status-failed,.status-missed{
    border-radius:999px!important;
    padding:5px 8px!important;
    font-size:9px!important;
    font-weight:900!important;
    border:1px solid rgba(255,255,255,.06)!important;
  }

  /* Action toolbars become cards too */
  .actions,.form-actions,.inline-filter,.filters,.toolbar{
    gap:8px!important;
  }
  .content>.actions,.content>.form-actions,.content>.inline-filter,.content>.filters,.content>.toolbar{
    padding:10px!important;
    border-radius:14px!important;
    background:rgba(255,255,255,.025)!important;
    border:1px solid rgba(255,255,255,.055)!important;
  }

  /* Empty states remain intentional rather than flat */
  .empty{
    min-height:90px;
    display:grid;
    place-items:center;
    text-align:center;
    padding:18px!important;
    border-radius:14px!important;
    border:1px dashed rgba(106,223,210,.13)!important;
    background:rgba(255,255,255,.02)!important;
  }

  /* Mobile public homepage: all content cards */
  .public-care-card{
    padding:14px!important;
  }
  .care-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .care-grid article{
    min-height:112px;
    padding:12px!important;
    border-radius:14px!important;
    background:rgba(255,255,255,.03)!important;
    border:1px solid rgba(255,255,255,.06)!important;
  }
  .public-services{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  .public-card{
    padding:13px!important;
    min-height:94px;
  }

  /* Native tactile feedback, restrained */
  .card:active,.quick:active,.public-card:active,.row:active,.list-row:active{
    transform:scale(.995);
  }

  /* Keep mobile layout dense, never oversized */
  .card h2,.panel h2{font-size:18px!important}
  .card h3,.panel h3{font-size:14px!important}
  .card p,.panel p{font-size:11px!important;line-height:1.5}
}

/* Narrow phones: 2x2 public clinical journey grid stays compact */
@media(max-width:420px){
  .care-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .care-grid article{
    min-height:105px;
  }
}


/* ==========================================================
   V21 — NATIVE MOBILE INFORMATION ARCHITECTURE
   Compact first screen + 2x2 quick actions + public bottom nav
   ========================================================== */
@media(max-width:620px){
  .public-topbar{
    min-height:58px!important;
    padding:calc(7px + var(--safe-t)) 10px 7px!important;
  }
  .public-brand img,.public-logo{
    width:38px!important;height:38px!important;border-radius:12px!important;
  }
  .public-brand b{font-size:11px!important}
  .public-actions{gap:6px}
  .public-actions .public-cta{
    min-height:36px!important;
    padding:0 10px!important;
    font-size:10px!important;
  }

  .public-main{
    padding:20px 12px calc(90px + var(--safe-b))!important;
  }

  .public-hero{
    display:block!important;
  }
  .public-copy .eyebrow{
    font-size:8px!important;
    margin-bottom:8px;
  }
  .public-copy h1{
    font-size:clamp(38px,12vw,50px)!important;
    line-height:.98!important;
    margin:0 0 13px!important;
    max-width:290px!important;
  }
  .public-copy>p{
    font-size:12px!important;
    line-height:1.55!important;
    margin:0!important;
    max-width:100%!important;
  }
  .public-hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:17px!important;
  }
  .public-hero-actions .btn{
    min-height:44px!important;
    width:100%!important;
  }
  .hero-text-link{
    text-align:center;
    padding:5px 0 0!important;
    font-size:10px!important;
  }
  .public-trust{
    margin-top:12px!important;
    gap:6px!important;
  }
  .public-trust span{
    padding:5px 7px!important;
    font-size:8px!important;
  }

  /* Main clinical journey becomes 2x2 native quick action cards */
  .public-care-card{
    margin-top:18px!important;
    padding:12px!important;
  }
  .care-head{
    padding-bottom:10px!important;
    margin-bottom:8px;
  }
  .care-head .care-icon{
    width:36px!important;height:36px!important;border-radius:11px!important;
  }
  .care-head small{font-size:8px!important}
  .care-head b{font-size:12px!important}
  .care-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:10px!important;
  }
  .care-grid article{
    min-height:98px!important;
    padding:11px!important;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
  .care-grid article span{font-size:8px!important;margin-bottom:5px!important}
  .care-grid article b{font-size:11px!important}
  .care-grid article p{font-size:9px!important;line-height:1.4!important}

  /* Lower service cards become concise actionable mobile cards */
  .public-services{
    margin-top:12px!important;
    gap:8px!important;
  }
  .public-card{
    min-height:82px!important;
    padding:11px!important;
    align-items:center!important;
  }
  .public-card b{font-size:11px!important}
  .public-card p{
    font-size:9px!important;
    line-height:1.4!important;
    margin-top:4px!important;
  }
  .service-icon{
    width:32px!important;height:32px!important;flex-basis:32px!important;border-radius:10px!important;
  }
  .public-card-action>a{
    font-size:9px!important;
    padding:6px 8px!important;
  }

  .public-footer{
    padding:14px 12px calc(86px + var(--safe-b))!important;
    font-size:8px!important;
  }

  /* Native public bottom navigation */
  .public-bottom-nav{
    position:fixed;
    left:8px;right:8px;
    bottom:calc(8px + var(--safe-b));
    z-index:70;
    height:62px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:4px;
    padding:6px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.10);
    background:rgba(6,24,34,.95);
    box-shadow:0 14px 38px rgba(0,0,0,.34);
    backdrop-filter:blur(24px) saturate(150%);
    -webkit-backdrop-filter:blur(24px) saturate(150%);
  }
  .public-bottom-nav a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-width:0;
    border-radius:13px;
    color:#76959e;
    text-decoration:none;
    font-size:8px;
    font-weight:800;
  }
  .public-bottom-nav a b{
    color:#4edccc;
    font-size:17px;
    line-height:1;
  }
  .public-bottom-nav a.primary{
    background:rgba(54,220,200,.08);
    color:#efffff;
  }
  .public-bottom-nav a.primary b{
    color:#79efdf;
  }

  /* Keep top header from competing with bottom nav */
  .public-actions .public-book{display:none!important}
}

@media(min-width:621px){
  .public-bottom-nav{display:none!important}
}


/* ==========================================================
   V22 — COMPACT MOBILE WORD SCOPE + FOOTER GAP FIX
   ========================================================== */
@media(max-width:620px){

  /* Reduce excessive vertical whitespace throughout public mobile home */
  .public-main{
    padding-top:16px!important;
    padding-bottom:calc(76px + var(--safe-b))!important;
  }

  .public-hero{
    margin:0!important;
    padding:0!important;
  }

  .public-copy{
    margin:0!important;
    padding:0!important;
  }

  .public-copy h1{
    max-width:260px!important;
    font-size:clamp(36px,11vw,46px)!important;
    line-height:.96!important;
    letter-spacing:-.055em!important;
    margin-bottom:10px!important;
  }

  .public-copy>p{
    max-width:290px!important;
    font-size:11px!important;
    line-height:1.42!important;
    letter-spacing:-.005em!important;
  }

  /* Tighter CTA section */
  .public-hero-actions{
    margin-top:14px!important;
    gap:7px!important;
  }

  .public-hero-actions .btn{
    min-height:42px!important;
    font-size:11px!important;
    padding:8px 12px!important;
  }

  .hero-text-link{
    font-size:9px!important;
    line-height:1.25!important;
    padding-top:2px!important;
  }

  .public-trust{
    margin-top:9px!important;
    gap:5px!important;
  }

  .public-trust span{
    padding:4px 6px!important;
    font-size:7.5px!important;
    line-height:1!important;
  }

  /* Collapse journey card word scope */
  .public-care-card{
    margin-top:14px!important;
    padding:10px!important;
  }

  .care-head{
    gap:8px!important;
    padding-bottom:8px!important;
    margin-bottom:7px!important;
  }

  .care-head .care-icon{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
  }

  .care-head small{
    font-size:7px!important;
    line-height:1.1!important;
  }

  .care-head b{
    font-size:11px!important;
    line-height:1.2!important;
    margin-top:2px!important;
  }

  .care-grid{
    gap:6px!important;
    margin-top:7px!important;
  }

  .care-grid article{
    min-height:84px!important;
    padding:9px!important;
  }

  .care-grid article span{
    font-size:7px!important;
    margin-bottom:4px!important;
  }

  .care-grid article b{
    font-size:10px!important;
    line-height:1.15!important;
  }

  .care-grid article p{
    font-size:8px!important;
    line-height:1.32!important;
    margin-top:4px!important;
    max-width:100%!important;
  }

  /* Compact service cards */
  .public-services{
    margin-top:9px!important;
    gap:7px!important;
  }

  .public-card{
    min-height:72px!important;
    padding:9px!important;
    gap:9px!important;
  }

  .public-card b{
    font-size:10px!important;
    line-height:1.15!important;
  }

  .public-card p{
    font-size:8px!important;
    line-height:1.32!important;
    margin-top:3px!important;
    max-width:240px!important;
  }

  .service-icon{
    width:29px!important;
    height:29px!important;
    flex:0 0 29px!important;
  }

  .public-card-action>a{
    font-size:8px!important;
    padding:5px 7px!important;
  }

  /* Remove the large dead area before footer */
  .public-footer{
    margin-top:8px!important;
    padding:8px 12px calc(72px + var(--safe-b))!important;
    min-height:0!important;
    line-height:1.25!important;
  }

  .public-footer span{
    margin-top:2px!important;
    font-size:7px!important;
  }

  /* Bottom nav slightly more compact */
  .public-bottom-nav{
    height:58px!important;
    bottom:calc(7px + var(--safe-b))!important;
    padding:5px!important;
    border-radius:17px!important;
  }

  .public-bottom-nav a{
    gap:1px!important;
    font-size:7.5px!important;
  }

  .public-bottom-nav a b{
    font-size:16px!important;
  }

  /* General mobile word-scope tightening for cards */
  .public-card p,
  .care-grid article p,
  .panel p,
  .card p,
  .row-main small,
  .list-row small{
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }

  .public-card div,
  .care-grid article,
  .panel,
  .card{
    min-width:0!important;
  }

  /* Avoid unnecessary content expansion */
  .public-services,
  .public-care-card,
  .public-copy{
    max-width:100%!important;
  }
}


@media(max-width:620px){
.public-home,.public-main,.public-hero,.public-services{min-height:0!important;height:auto!important}
.public-main{display:block!important;margin:0!important;padding-top:16px!important;padding-bottom:calc(76px + var(--safe-b))!important}
.public-services{margin-bottom:0!important;padding-bottom:0!important}
.public-footer{margin-top:6px!important;padding-top:6px!important;padding-bottom:calc(72px + var(--safe-b))!important}
.public-main>*{min-width:0!important}
}
@media(max-width:850px){
.auth-body,.auth-register{width:100%!important;min-width:0!important;overflow-x:hidden!important}
.auth-shell,.auth-register .auth-shell{display:block!important;grid-template-columns:none!important;width:100%!important;max-width:none!important;min-width:0!important;height:auto!important;min-height:100dvh!important;margin:0!important}
.auth-visual,.auth-register .auth-visual{display:none!important}
.auth-side,.auth-register .auth-side{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;height:auto!important;min-height:100dvh!important;margin:0!important;padding:calc(14px + var(--safe-t)) 12px calc(20px + var(--safe-b))!important;border:0!important;overflow:visible!important}
.auth-card,.auth-register .auth-card{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;margin:0!important;padding:18px 16px!important;overflow:visible!important;border-radius:18px!important}
.auth-brand,.auth-register .auth-brand{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;min-width:0!important;margin-bottom:16px!important}
.auth-brand>div:last-child,.auth-register .auth-brand>div:last-child{min-width:0!important;flex:1!important}
.auth-brand b,.auth-register .auth-brand b{display:block!important;white-space:normal!important;word-break:normal!important;font-size:14px!important;line-height:1.25!important}
.auth-card h2,.auth-register .auth-card h2{width:100%!important;max-width:none!important;min-width:0!important;font-size:25px!important;line-height:1.1!important;margin:0 0 6px!important;white-space:normal!important;word-break:normal!important}
.auth-card>.auth-sub,.auth-register .auth-card>.auth-sub{width:100%!important;max-width:none!important;min-width:0!important;font-size:12px!important;line-height:1.5!important;margin:0 0 15px!important;white-space:normal!important;word-break:normal!important}
.auth-card form,.auth-register .auth-card form{width:100%!important;min-width:0!important;margin:0!important}
.registration-grid,.auth-register .registration-grid{display:grid!important;grid-template-columns:1fr!important;width:100%!important;min-width:0!important;gap:11px!important}
.registration-grid .field,.auth-register .registration-grid .field,.registration-grid .field.full,.auth-register .registration-grid .field.full{grid-column:auto!important;width:100%!important;min-width:0!important;margin:0!important}
.auth-card form p,.auth-register .auth-card form p{width:100%!important;min-width:0!important;padding:0!important;margin:0 0 11px!important;background:transparent!important;border:0!important}
.auth-card label,.auth-register label,.registration-grid label{display:block!important;width:100%!important;min-width:0!important;margin:0 0 5px!important;font-size:10px!important;line-height:1.3!important;white-space:normal!important;word-break:normal!important}
.auth-card input:not([type=checkbox]):not([type=radio]),.auth-card select,.auth-card textarea,.auth-register input:not([type=checkbox]):not([type=radio]),.auth-register select,.auth-register textarea,.registration-grid input:not([type=checkbox]):not([type=radio]),.registration-grid select,.registration-grid textarea{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:46px!important;box-sizing:border-box!important;font-size:16px!important;padding:11px 12px!important;border-radius:13px!important}
.auth-card textarea,.auth-register textarea,.registration-grid textarea{min-height:90px!important}
.auth-card .btn,.auth-register .btn{width:100%!important;min-height:46px!important;margin-top:4px!important}
.auth-trust,.auth-register .auth-trust{width:100%!important;display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin-top:11px!important}
.auth-footer,.auth-register .auth-footer{width:100%!important;margin-top:12px!important;text-align:center!important;font-size:10px!important;line-height:1.4!important}
.auth-card *,.auth-register .auth-card *{word-break:normal!important}
.helptext,.errorlist{overflow-wrap:anywhere!important;word-break:normal!important}
}


/* ==========================================================
   V24 — FULL MOBILE CARD ACTIONS + FOOTER GAP ELIMINATION
   ========================================================== */
@media(max-width:620px){

  /* Reserve fixed bottom-nav space ONCE: footer owns it, main does not. */
  .public-main{
    min-height:0!important;
    height:auto!important;
    padding-bottom:8px!important;
    margin-bottom:0!important;
  }
  .public-services{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }
  .public-footer{
    min-height:0!important;
    height:auto!important;
    margin:4px 0 0!important;
    padding:5px 12px calc(70px + var(--safe-b))!important;
  }
  .public-footer span{
    margin:1px 0!important;
    line-height:1.2!important;
  }

  /* Every public quick-care card gets a true bottom action area */
  .care-grid article{
    position:relative;
    padding-bottom:38px!important;
  }
  .care-grid article .care-action{
    position:absolute;
    left:8px;right:8px;bottom:8px;
    min-height:26px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:4px 7px;
    border-radius:9px;
    border:1px solid rgba(74,225,209,.13);
    background:rgba(54,220,200,.055);
    color:#67e3d5;
    text-decoration:none;
    font-size:7.5px;
    font-weight:900;
    line-height:1;
  }

  /* Service cards always end with a native action button */
  .public-card{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
  }
  .public-card>a,
  .public-card .card-bottom-action{
    grid-column:2;
    justify-self:start;
    margin-top:7px!important;
    min-height:27px;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    padding:5px 8px!important;
    border-radius:9px!important;
    border:1px solid rgba(74,225,209,.13)!important;
    background:rgba(54,220,200,.055)!important;
    color:#67e3d5!important;
    text-decoration:none!important;
    font-size:7.5px!important;
    font-weight:900!important;
    line-height:1!important;
  }

  /* Universal action-footers for logged-in mobile cards */
  .native-card-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    width:100%;
    margin-top:9px;
    padding-top:8px;
    border-top:1px solid rgba(255,255,255,.055);
  }
  .native-card-action{
    min-height:29px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:5px 9px!important;
    border-radius:9px!important;
    border:1px solid rgba(73,224,208,.13)!important;
    background:rgba(54,220,200,.055)!important;
    color:#6ee7d9!important;
    text-decoration:none!important;
    font-size:8px!important;
    font-weight:900!important;
    line-height:1!important;
    white-space:nowrap;
  }
  .native-card-action.primary{
    background:linear-gradient(135deg,rgba(69,224,207,.95),rgba(30,175,170,.95))!important;
    color:#04292c!important;
    border-color:rgba(111,240,224,.23)!important;
  }

  /* Existing row/card terminal links look like native buttons */
  .row>a:last-child,
  .list-row>a:last-child,
  .card>a:last-child,
  .panel>a:last-child,
  .assessment-card>a:last-child,
  .plan-card>a:last-child,
  .exercise-card>a:last-child,
  .timeline-card>a:last-child,
  .notification-row>a:last-child{
    min-height:28px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:5px 8px!important;
    border-radius:9px!important;
    border:1px solid rgba(73,224,208,.13)!important;
    background:rgba(54,220,200,.05)!important;
    color:#6ee7d9!important;
    text-decoration:none!important;
    font-size:8px!important;
    font-weight:900!important;
  }

  /* Panel-head actions remain compact, but clearly button-like */
  .panel-head>a{
    min-height:27px!important;
    display:inline-flex!important;
    align-items:center!important;
    padding:4px 8px!important;
    border-radius:9px!important;
    background:rgba(54,220,200,.05)!important;
    border:1px solid rgba(73,224,208,.11)!important;
    color:#6ee7d9!important;
    text-decoration:none!important;
    font-size:8px!important;
    font-weight:900!important;
    white-space:nowrap;
  }

  /* Keep compact bottom navigation clear of footer text */
  .public-bottom-nav{
    bottom:calc(7px + var(--safe-b))!important;
  }
}


/* ==========================================================
   V25 — COMPLETE MOBILE CARD ACTIONS + AUTH NAVIGATION
   ========================================================== */

@media(max-width:850px){

  /* Every fully-clickable card gets an explicit visible CTA footer. */
  a.row,
  a.quick,
  a.assessment-card,
  a.plan-card,
  a.exercise-card,
  a.slot-card,
  a.timeline-card,
  a.notification-row,
  a.card.mobile-click-card{
    position:relative!important;
    display:block!important;
    padding-bottom:42px!important;
    text-decoration:none!important;
  }

  a.row::after,
  a.quick::after,
  a.assessment-card::after,
  a.plan-card::after,
  a.exercise-card::after,
  a.slot-card::after,
  a.timeline-card::after,
  a.notification-row::after,
  a.card.mobile-click-card::after{
    content:"Open →";
    position:absolute;
    left:11px;
    right:11px;
    bottom:9px;
    min-height:27px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    border:1px solid rgba(73,224,208,.13);
    background:rgba(54,220,200,.055);
    color:#70e8da;
    font-size:8px;
    font-weight:900;
    line-height:1;
  }

  a.quick::after{content:"Continue →"}
  a.notification-row::after{content:"View update →"}

  /* Buttons and forms inside cards align as real card footers. */
  .card form:last-child,
  .panel form:last-child,
  .row form:last-child,
  .list-row form:last-child{
    margin-top:9px!important;
    padding-top:8px!important;
    border-top:1px solid rgba(255,255,255,.055)!important;
  }

  .card form:last-child button,
  .panel form:last-child button,
  .row form:last-child button,
  .list-row form:last-child button{
    min-height:30px!important;
    border-radius:9px!important;
    font-size:8px!important;
    padding:5px 9px!important;
  }

  /* Make inline action collections look intentional. */
  .actions a,
  .actions button,
  .form-actions a,
  .form-actions button{
    min-height:34px!important;
  }

  /* Auth pages also become part of the native PWA navigation system. */
  .auth-mobile-nav{
    position:fixed;
    left:8px;
    right:8px;
    bottom:calc(8px + var(--safe-b));
    z-index:80;
    height:60px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:4px;
    padding:6px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.10);
    background:rgba(6,24,34,.95);
    box-shadow:0 14px 38px rgba(0,0,0,.34);
    backdrop-filter:blur(24px) saturate(150%);
    -webkit-backdrop-filter:blur(24px) saturate(150%);
  }

  .auth-mobile-nav a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-width:0;
    border-radius:13px;
    color:#78979f;
    text-decoration:none;
    font-size:8px;
    font-weight:800;
  }

  .auth-mobile-nav a b{
    color:#4edccc;
    font-size:17px;
    line-height:1;
  }

  .auth-mobile-nav a.active{
    background:rgba(54,220,200,.08);
    color:#efffff;
  }

  .auth-mobile-nav a.active b{color:#79efdf}

  /* Auth content reserves nav clearance exactly once. */
  .auth-side,
  .auth-register .auth-side{
    padding-bottom:calc(78px + var(--safe-b))!important;
  }

  /* Compact registration card while keeping all fields reachable. */
  .auth-register .auth-card{
    padding-bottom:16px!important;
  }

  /* Avoid extra page-bottom gap in the public home */
  .public-main{
    padding-bottom:4px!important;
  }
  .public-footer{
    margin-top:2px!important;
    padding-top:4px!important;
    padding-bottom:calc(68px + var(--safe-b))!important;
  }

  /* Card action text never wraps into two lines. */
  .native-card-action,
  .care-action,
  .card-bottom-action,
  a.row::after,
  a.quick::after{
    white-space:nowrap!important;
  }
}

@media(min-width:851px){
  .auth-mobile-nav{display:none!important}
}

@media(max-width:850px){
  a.row[data-mobile-action]::after,
  a.quick[data-mobile-action]::after,
  a.card.mobile-click-card[data-mobile-action]::after{
    content:attr(data-mobile-action)!important;
  }
}


/* ==========================================================
   V26 — NATIVE PWA SPLASH
   ========================================================== */
.native-splash{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:
    calc(24px + env(safe-area-inset-top,0px))
    24px
    calc(24px + env(safe-area-inset-bottom,0px));
  background:
    radial-gradient(circle at 50% 38%,rgba(42,213,193,.12),transparent 28%),
    radial-gradient(circle at 20% 10%,rgba(44,126,183,.12),transparent 30%),
    linear-gradient(145deg,#061826,#04121b 58%,#08231f);
  opacity:1;
  visibility:visible;
  transition:opacity .28s ease,visibility .28s ease;
}
.native-splash.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.native-splash-card{
  width:min(86vw,330px);
  text-align:center;
}
.native-splash-logo{
  width:82px;
  height:82px;
  margin:0 auto 19px;
  display:grid;
  place-items:center;
  border-radius:25px;
  background:linear-gradient(145deg,#6af0de,#18aea8);
  color:#04292c;
  font-weight:950;
  font-size:26px;
  letter-spacing:-.04em;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:
    0 20px 54px rgba(20,177,166,.23),
    inset 0 1px 0 rgba(255,255,255,.45);
}
.native-splash-name{
  color:#f3ffff;
  font-size:21px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.025em;
}
.native-splash-tagline{
  margin-top:7px;
  color:#78a0a9;
  font-size:10px;
  line-height:1.45;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.native-splash-loader{
  width:70px;
  height:3px;
  margin:24px auto 0;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.07);
}
.native-splash-loader i{
  display:block;
  width:40%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#46ddcd,#6ef0df);
  animation:olebSplashLoad 1s ease-in-out infinite;
}
@keyframes olebSplashLoad{
  0%{transform:translateX(-120%)}
  55%{transform:translateX(90%)}
  100%{transform:translateX(250%)}
}
@media(prefers-reduced-motion:reduce){
  .native-splash{transition:none}
  .native-splash-loader i{animation:none;width:100%}
}


/* ==========================================================
   V27 — OLEB INSPIRED CORPORATE BRAND SYSTEM
   Visual branding only: application structure/layout preserved.
   Palette derived from supplied OLEB identity:
   deep navy + electric/royal blue + cyan highlights + premium gold.
   ========================================================== */
:root{
  --brand-navy-950:#020b20;
  --brand-navy-900:#041432;
  --brand-navy-850:#061b42;
  --brand-navy-800:#08275b;
  --brand-blue-700:#064db7;
  --brand-blue-600:#0876e8;
  --brand-blue-500:#079cf3;
  --brand-cyan:#27c8ff;
  --brand-gold:#f4b400;
  --brand-gold-light:#ffd34d;
  --brand-white:#f7fbff;
  --brand-muted:#9eb5d1;
  --brand-line:rgba(52,151,255,.22);
  --brand-card:linear-gradient(145deg,rgba(8,39,91,.82),rgba(3,20,50,.94));
  --brand-card-soft:linear-gradient(145deg,rgba(9,48,103,.72),rgba(4,24,55,.92));
  --brand-primary-gradient:linear-gradient(135deg,#079cf3 0%,#075cc9 48%,#04358e 100%);
  --brand-gold-gradient:linear-gradient(135deg,#ffd84f 0%,#f4b400 52%,#d98b00 100%);
}

/* Global app canvas */
html,body{
  background:
    radial-gradient(circle at 88% 5%,rgba(7,156,243,.12),transparent 30%),
    radial-gradient(circle at 8% 90%,rgba(244,180,0,.06),transparent 28%),
    var(--brand-navy-950) !important;
  color:var(--brand-white);
}
body::before{
  background:
    radial-gradient(circle at 18% 12%,rgba(7,156,243,.12),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 28%) !important;
}

/* Native cards */
:is(.card,.panel,.dashboard-card,.portal-card,.service-card,.public-service-card,
.action-card,.auth-shell,.auth-card,.native-card,.stat-card,.content-card){
  background:var(--brand-card) !important;
  border-color:var(--brand-line) !important;
  box-shadow:
    0 14px 34px rgba(0,7,28,.26),
    inset 0 1px 0 rgba(255,255,255,.045) !important;
}

/* Primary controls */
:is(button,.btn,.button,.primary-button,.action-button,.card-action,.native-card-button,
input[type="submit"],a.btn-primary){
  border-color:rgba(54,171,255,.34) !important;
}
:is(.btn-primary,.primary-button,.action-button,.card-action-primary,
input[type="submit"],button[type="submit"]){
  background:var(--brand-primary-gradient) !important;
  color:#fff !important;
  box-shadow:0 9px 22px rgba(6,86,203,.24),inset 0 1px 0 rgba(255,255,255,.22) !important;
}
:is(.btn-primary,.primary-button,.action-button,.card-action-primary,
input[type="submit"],button[type="submit"]):hover{
  filter:brightness(1.08);
}

/* Gold is the premium secondary accent, not the dominant background */
:is(.brand-accent-gold,.status-gold,.premium-badge,.highlight-badge){
  background:var(--brand-gold-gradient) !important;
  color:#10224b !important;
}
:is(a,.link,.text-link){
  color:#63c9ff;
}
:is(.eyebrow,.section-kicker,.brand-kicker,.meta-accent){
  color:var(--brand-gold-light) !important;
}

/* Form controls */
:is(input,select,textarea){
  background:rgba(7,31,65,.82) !important;
  border-color:rgba(66,146,221,.28) !important;
  color:var(--brand-white) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
:is(input,select,textarea):focus{
  border-color:#168ff0 !important;
  box-shadow:0 0 0 3px rgba(7,156,243,.13) !important;
  outline:none;
}

/* Navigation / headers */
:is(.public-topbar,.topbar,.app-header,.mobile-header,.public-bottom-nav,
.bottom-nav,.mobile-bottom-nav){
  background:linear-gradient(180deg,rgba(4,20,50,.97),rgba(2,12,31,.98)) !important;
  border-color:rgba(43,132,224,.22) !important;
}
:is(.public-bottom-nav,.bottom-nav,.mobile-bottom-nav) a.active,
:is(.public-bottom-nav,.bottom-nav,.mobile-bottom-nav) .active{
  color:#49c4ff !important;
  background:linear-gradient(180deg,rgba(8,88,173,.32),rgba(6,48,103,.25)) !important;
}

/* OP app mark: preserve clinic identity while adopting corporate color language */
:is(.brand-mark,.logo-mark,.auth-logo,.public-logo,.native-logo){
  background:var(--brand-primary-gradient) !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.16) !important;
  box-shadow:0 10px 26px rgba(4,91,196,.28) !important;
}

/* Small gold edge detail inspired by the corporate identity */
:is(.card,.panel,.dashboard-card,.portal-card,.service-card,.public-service-card,
.action-card,.auth-shell,.auth-card,.native-card,.stat-card,.content-card){
  position:relative;
}
:is(.card,.panel,.dashboard-card,.portal-card,.service-card,.public-service-card,
.action-card,.auth-card,.native-card,.stat-card,.content-card)::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:-1px;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(244,180,0,.34),transparent);
}

/* V27 splash */
.native-splash{
  background:
    radial-gradient(circle at 50% 35%,rgba(7,156,243,.20),transparent 29%),
    radial-gradient(circle at 50% 72%,rgba(244,180,0,.07),transparent 25%),
    linear-gradient(150deg,#020b20,#041432 55%,#061b42) !important;
}
.native-splash-logo{
  background:var(--brand-primary-gradient) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:
    0 20px 54px rgba(6,91,203,.32),
    0 0 0 1px rgba(244,180,0,.20),
    inset 0 1px 0 rgba(255,255,255,.32) !important;
}
.native-splash-name{color:#fff !important}
.native-splash-tagline{color:#9bb7d6 !important}
.native-splash-loader{background:rgba(255,255,255,.08) !important}
.native-splash-loader i{
  background:linear-gradient(90deg,#079cf3,#f4b400,#ffd34d) !important;
}

/* Keep typography/readability strong on compact mobile screens */
:is(.muted,.subtitle,.helper-text,.card-description,.public-service-card p){
  color:var(--brand-muted) !important;
}


/* ==========================================================
   V28 — OLEB SIGNATURE PRODUCTION PASS
   Eliminates legacy turquoise dominance and standardizes
   native card actions without changing Django/app structure.
   ========================================================== */

/* Strict signature interaction palette */
:root{
  --signature-action:#0876e8;
  --signature-action-bright:#079cf3;
  --signature-action-deep:#04358e;
  --signature-action-hover:#0b8cf0;
  --signature-gold:#f4b400;
}

/* Remove remaining turquoise/teal dominance from actionable UI */
:is(
  .public-topbar .btn,
  .public-topbar a[class*="button"],
  .public-hero .btn,
  .public-hero a[class*="button"],
  .public-service-card a,
  .service-card a,
  .auth-card button,
  .auth-shell button,
  .native-card button,
  .native-card a[class*="action"],
  .card a[class*="action"],
  .card button,
  button[type="submit"],
  input[type="submit"]
){
  --legacy-teal:var(--signature-action);
}

/* Primary CTA signature */
:is(
  .public-hero .btn-primary,
  .public-topbar .btn-primary,
  .btn-primary,
  .primary-button,
  .action-button,
  .card-action-primary,
  button[type="submit"],
  input[type="submit"]
){
  background:linear-gradient(135deg,
    var(--signature-action-bright) 0%,
    var(--signature-action) 48%,
    var(--signature-action-deep) 100%) !important;
  border:1px solid rgba(68,170,255,.42) !important;
  color:#fff !important;
  box-shadow:
    0 9px 22px rgba(4,77,183,.25),
    inset 0 1px 0 rgba(255,255,255,.22) !important;
}

/* Secondary native button */
:is(
  .btn-secondary,
  .secondary-button,
  .public-hero .btn-secondary,
  .card-action:not(.card-action-primary)
){
  background:linear-gradient(180deg,rgba(8,39,91,.78),rgba(4,20,50,.92)) !important;
  border:1px solid rgba(42,128,220,.42) !important;
  color:#f7fbff !important;
}

/* Public service cards: make their links feel like a shared native action footer */
:is(.public-service-card,.service-card) a{
  display:inline-flex !important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:38px;
  margin-top:10px;
  padding:8px 12px;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(7,118,232,.18),rgba(4,53,142,.22)) !important;
  border:1px solid rgba(43,144,238,.28);
  color:#62c9ff !important;
  font-weight:700;
  text-decoration:none;
}
:is(.public-service-card,.service-card) a::after{
  content:"→";
  color:var(--signature-gold);
  font-weight:900;
}

/* General card action zones */
:is(.card,.panel,.dashboard-card,.portal-card,.action-card,.native-card,.content-card)
:is(.card-actions,.actions,.action-row,.card-footer-actions){
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid rgba(48,131,218,.18);
}

/* Signature active/selected state */
:is(
  .public-bottom-nav a.active,
  .bottom-nav a.active,
  .mobile-bottom-nav a.active,
  .nav-item.active,
  [aria-current="page"]
){
  color:#69ccff !important;
  border-color:rgba(38,145,238,.28) !important;
  background:linear-gradient(180deg,rgba(8,83,171,.35),rgba(4,42,99,.26)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04) !important;
}

/* Keep gold as a small signature marker */
:is(.public-hero .eyebrow,.eyebrow,.section-kicker,.brand-kicker){
  color:#ffd34d !important;
  letter-spacing:.10em;
}

/* Blue/cyan product mark, no legacy teal */
:is(.brand-mark,.logo-mark,.auth-logo,.public-logo,.native-logo,
.public-service-card .icon,.service-card .icon){
  background:linear-gradient(145deg,#079cf3,#064db7 58%,#04358e) !important;
  border-color:rgba(68,171,255,.32) !important;
}

/* Explicit legacy color interception for common authored values */
[style*="#2dd4bf"],[style*="#14b8a6"],[style*="#20c9c3"],
[style*="#31d3c8"],[style*="#27c7bd"]{
  color:#079cf3 !important;
}

/* Compact mobile consistency */
@media (max-width:640px){
  :is(.public-service-card,.service-card) a{
    width:100%;
    min-height:36px;
    margin-top:8px;
    padding:7px 10px;
    border-radius:11px;
  }
  :is(.btn,.button,button,input[type="submit"]){
    min-height:44px;
  }
}


/* ==========================================================
   V29 — BUTTON LEGIBILITY / ACCESSIBILITY CORRECTION
   Explicitly overrides older teal button rules at every size.
   ========================================================== */

/* Main blue signature CTA: always white, high-contrast text */
:is(
  .btn,
  .public-cta,
  .public-book,
  .public-book-primary,
  .public-actions .public-cta,
  .public-actions .public-book,
  .public-hero-actions .public-book-primary,
  .auth-card .btn,
  .auth-register .btn,
  button[type="submit"],
  input[type="submit"]
){
  background:linear-gradient(135deg,#079cf3 0%,#0876e8 48%,#04358e 100%) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border:1px solid rgba(83,180,255,.48) !important;
  font-weight:850 !important;
  text-shadow:0 1px 1px rgba(0,16,48,.24);
}

/* Make nested labels/icons inherit the readable foreground */
:is(
  .btn,
  .public-cta,
  .public-book,
  .public-book-primary,
  button[type="submit"]
) :is(span,b,strong,small,i,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

/* Secondary / outline actions remain clearly readable */
:is(
  .btn.secondary,
  .btn-secondary,
  .secondary-button,
  .public-hero-actions .secondary,
  .public-hero-actions .btn.secondary
){
  background:linear-gradient(180deg,rgba(8,39,91,.88),rgba(4,20,50,.96)) !important;
  color:#f7fbff !important;
  -webkit-text-fill-color:#f7fbff !important;
  border-color:rgba(74,161,245,.50) !important;
}

/* Header CTA is intentionally compact but never faded */
.public-topbar :is(.public-cta,.public-book){
  opacity:1 !important;
  filter:none !important;
  color:#fff !important;
}

/* Hover/focus must not reduce contrast */
:is(.btn,.public-cta,.public-book,.public-book-primary,button[type="submit"]):hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  filter:brightness(1.09) !important;
}
:is(.btn,.public-cta,.public-book,.public-book-primary,button[type="submit"]):focus-visible{
  outline:3px solid rgba(255,211,77,.72) !important;
  outline-offset:2px;
}

/* Mobile-specific safeguard against earlier responsive overrides */
@media(max-width:760px){
  :is(
    .public-actions .public-cta,
    .public-actions .public-book,
    .public-hero-actions .btn,
    .public-hero-actions .public-book-primary,
    .auth-card .btn,
    .auth-register .btn
  ){
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    opacity:1 !important;
    font-weight:850 !important;
  }
}


/* ==========================================================
   V29.1 — VISIBLE PWA INSTALL + SPLASH CONTROLS
   ========================================================== */
.pwa-quick-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.pwa-control-btn{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:7px 11px;
  border-radius:11px;
  border:1px solid rgba(66,156,240,.26);
  background:linear-gradient(145deg,rgba(8,48,101,.78),rgba(4,25,59,.90));
  color:#dff4ff !important;
  -webkit-text-fill-color:#dff4ff !important;
  font:inherit;
  font-size:9px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.pwa-control-btn.primary{
  background:linear-gradient(135deg,#079cf3,#0876e8 52%,#04358e);
  border-color:rgba(94,188,255,.42);
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
.pwa-control-btn[hidden]{display:none!important}
.pwa-control-btn:focus-visible{outline:3px solid rgba(255,211,77,.60);outline-offset:2px}
.pwa-control-btn .pwa-icon{font-size:14px;line-height:1}

/* Compact authenticated topbar controls */
.pwa-top-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.pwa-top-actions .pwa-control-btn{width:36px;height:36px;min-height:36px;padding:0;border-radius:11px}
.pwa-top-actions .pwa-label{display:none}

/* PWA feedback toast */
.pwa-toast{
  position:fixed;
  left:50%;
  bottom:calc(86px + env(safe-area-inset-bottom,0px));
  z-index:10020;
  width:min(90vw,430px);
  transform:translate(-50%,18px);
  padding:11px 13px;
  border-radius:14px;
  border:1px solid rgba(83,176,255,.24);
  background:rgba(4,22,52,.97);
  color:#ddecf8;
  font-size:10px;
  line-height:1.45;
  box-shadow:0 18px 48px rgba(0,0,0,.34);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}
.pwa-toast.show{opacity:1;transform:translate(-50%,0)}

/* Splash preview must always sit above app chrome */
.native-splash.pwa-preview-splash{display:flex!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.native-splash.pwa-preview-splash.is-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

@media(max-width:620px){
  .pwa-quick-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px;margin-top:10px}
  .pwa-quick-actions .pwa-control-btn{width:100%;min-height:38px}
  .auth-card .pwa-quick-actions{margin-top:10px}
}


/* ==========================================================
   V29.3.2 — INSTALL MODAL + NOTIFICATION BELL
   ========================================================== */

/* Native install prompt modal */
.pwa-install-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.pwa-install-modal.show{display:flex}
.pwa-install-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,8,24,.68);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}
.pwa-install-dialog{
  position:relative;
  z-index:1;
  width:min(92vw,420px);
  padding:24px;
  border-radius:26px;
  background:linear-gradient(145deg,rgba(9,37,83,.98),rgba(3,18,43,.99));
  border:1px solid rgba(89,177,255,.26);
  box-shadow:0 28px 80px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06);
  color:#f7fbff;
}
.pwa-install-icon{
  width:64px;height:64px;
  display:grid;place-items:center;
  border-radius:20px;
  margin-bottom:17px;
  background:linear-gradient(145deg,#079cf3,#064db7 58%,#04358e);
  color:#fff;
  font-size:20px;
  font-weight:950;
  box-shadow:0 12px 30px rgba(5,91,199,.32);
}
.pwa-install-copy{display:grid;gap:7px}
.install-kicker{
  color:#62c9ff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.pwa-install-copy b{font-size:24px;line-height:1.15}
.pwa-install-copy>span:last-child{color:#9bb3cf;line-height:1.5}
.pwa-install-benefits{
  display:flex;flex-wrap:wrap;gap:7px;
  margin:17px 0;
}
.pwa-install-benefits span{
  padding:6px 9px;
  border-radius:999px;
  background:rgba(7,118,232,.10);
  border:1px solid rgba(79,169,255,.16);
  color:#bdd9f3;
  font-size:11px;
}
.pwa-install-actions{
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
}
.pwa-install-actions button{
  min-height:47px;
  border-radius:14px;
  font-weight:900;
  cursor:pointer;
}
.install-now{
  background:linear-gradient(135deg,#079cf3,#0876e8 48%,#04358e);
  border:1px solid rgba(94,187,255,.5);
  color:#fff;
}
.install-later{
  min-width:92px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(92,170,234,.25);
  color:#eaf6ff;
}

/* Notification bell */
.notification-bell-wrap{position:relative;flex:0 0 auto}
.notification-bell{
  position:relative;
  width:48px;height:48px;
  display:grid;place-items:center;
  border-radius:15px;
  border:1px solid rgba(75,164,242,.28);
  background:linear-gradient(180deg,rgba(8,39,91,.92),rgba(3,22,53,.96));
  color:#dff4ff;
  cursor:pointer;
}
.bell-glyph{
  font-size:22px;
  line-height:1;
  transform:rotate(45deg);
}
.bell-badge{
  position:absolute;
  top:-5px;right:-5px;
  min-width:20px;height:20px;
  padding:0 5px;
  display:flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:#f4b400;
  color:#071a3d;
  border:2px solid #061936;
  font-size:10px;
  font-weight:950;
}
.notification-popover{
  position:absolute;
  top:56px;
  right:0;
  width:min(360px,calc(100vw - 24px));
  max-height:460px;
  overflow:auto;
  z-index:1000;
  border-radius:20px;
  background:linear-gradient(145deg,#092553,#03152f);
  border:1px solid rgba(75,164,242,.24);
  box-shadow:0 24px 70px rgba(0,0,0,.45);
}
.notification-popover-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding:16px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.notification-popover-head>div{display:grid;gap:2px}
.notification-popover-head b{color:#fff}
.notification-popover-head small{color:#8faac5}
.notification-popover-head button{
  background:none;border:0;color:#68cfff;
  font-size:11px;font-weight:800;cursor:pointer;
}
.notification-popover-list{padding:6px}
.bell-item{
  display:grid;
  grid-template-columns:8px minmax(0,1fr);
  gap:9px;
  padding:11px 10px;
  border-radius:13px;
  color:#eaf6ff;
  text-decoration:none;
}
.bell-item:hover{background:rgba(7,118,232,.10)}
.bell-item>span:last-child{display:grid;gap:3px}
.bell-item b{font-size:12px}
.bell-item small{color:#9ab1ca;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bell-item time{color:#6889aa;font-size:9px}
.bell-dot{
  width:7px;height:7px;
  margin-top:5px;
  border-radius:50%;
  background:#35c8ff;
  box-shadow:0 0 0 4px rgba(53,200,255,.08);
}
.bell-empty{padding:25px 16px;text-align:center;color:#8ca7c2;font-size:12px}
.bell-view-all{
  display:block;
  padding:12px 16px;
  border-top:1px solid rgba(255,255,255,.06);
  text-align:center;
  color:#63c9ff;
  text-decoration:none;
  font-size:11px;
  font-weight:850;
}
.notification-row.unread,.list-row.unread{
  border-color:rgba(53,200,255,.30)!important;
  background:linear-gradient(145deg,rgba(8,58,118,.34),rgba(4,25,58,.92))!important;
}
.unread-pulse{
  position:absolute;
  width:7px;height:7px;
  border-radius:50%;
  background:#35c8ff;
  box-shadow:0 0 0 4px rgba(53,200,255,.10);
}

@media(max-width:760px){
  .pwa-install-dialog{padding:20px;border-radius:23px}
  .pwa-install-actions{grid-template-columns:1fr}
  .install-later{width:100%}
  .notification-bell{width:42px;height:42px;border-radius:13px}
  .notification-popover{
    position:fixed;
    top:70px;
    left:10px;
    right:10px;
    width:auto;
  }
}


/* Oleb Light Clinical Signature Theme — V29.5 */
:root{--ink:#111827!important;--brand:#0f887c!important;--brand2:#16a394!important;--brand3:#e6f5f2!important;--bg:#f3f8fa!important;--line:#dce7eb!important;--muted:#667784!important;--white:#fff!important;--shadow:0 12px 32px rgba(25,55,70,.07)!important;--app-bg:#f3f8fa!important;--app-bg-2:#edf5f7!important;--glass:#fff!important;--glass-strong:#fff!important;--stroke:#dce7eb!important;--stroke-hi:#b9ddd7!important;--text:#111827!important;--text-2:#536674!important;--text-3:#71828e!important;--aqua:#0f887c!important;--aqua-2:#28aa9b!important;--blue:#397fba!important;--card-shadow:0 12px 32px rgba(25,55,70,.07)!important}
html,body{background:#f3f8fa!important;color:#111827!important}body:before{display:none!important}.app-shell{background:#f3f8fa!important}.sidebar{background:linear-gradient(180deg,#ffffff 0%,#f6fbfb 100%)!important;color:#1f3842!important;border-right:1px solid #dce7eb!important;box-shadow:8px 0 28px rgba(25,55,70,.04)!important}.brand{border-bottom-color:#e4edef!important;color:#102f36!important}.brandmark{background:linear-gradient(145deg,#1aa696,#08796f)!important;color:#fff!important;box-shadow:0 8px 22px rgba(15,136,124,.18)!important}.brand small,.nav-label,.side-note span{color:#71858d!important}.sidebar nav a{color:#526a73!important}.sidebar nav a:hover,.sidebar nav a.active{color:#0a675f!important;background:#e9f6f4!important;border-color:#cde9e4!important;transform:none!important}.side-note{background:#f2f8f8!important;border-color:#dce9e9!important}.side-note b{color:#183840!important}.topbar{background:rgba(255,255,255,.94)!important;border-bottom:1px solid #dce7eb!important;box-shadow:0 5px 20px rgba(25,55,70,.035)!important}.top-title strong,.user-chip b{color:#17252c!important}.top-title small,.user-chip small{color:#72828c!important}.ghost,.icon-btn{background:#fff!important;color:#28424c!important;border-color:#d7e4e8!important}.user-chip>span{background:#e5f5f2!important;color:#0f887c!important;border-color:#c8e7e2!important}.content{background:transparent!important}.page-head h1,.panel-head h3,.stats strong,.row-main b,.quick b{color:#111827!important}.page-head p,.stats span,.stats small,.panel-head p,.row-main small,.muted,.quick span{color:#667784!important}.eyebrow{color:#0f887c!important}.panel,.card,.table-card,.receipt,.print-sheet,.report-card,.stats article,.quick,.assessment-card,.plan-card,.exercise-card,.slot-card,.timeline-card,.day-card{background:#fff!important;border:1px solid #dce7eb!important;box-shadow:0 12px 32px rgba(25,55,70,.065)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.stats article:after{background:#eaf7f4!important}.stat-icon,.avatar,.notification-icon{background:#e5f5f2!important;color:#0f887c!important;border-color:#cce9e4!important}.btn{background:#0f887c!important;border-color:#0f887c!important;color:#fff!important;box-shadow:0 7px 18px rgba(15,136,124,.14)!important}.btn:hover{background:#0c796f!important}.btn.secondary{background:#fff!important;color:#155d59!important;border-color:#cbdde1!important;box-shadow:none!important}.row,.progress-row,.form-actions,.mini-stats,th,td{border-color:#e8eef0!important}.badge{background:#edf3f4!important;color:#52656d!important;border-color:#e0eaec!important}.form-control,.searchbar input,.complete-form input,.inline-filter input,.inline-filter select,select,textarea,input{background:#fff!important;color:#17252c!important;border-color:#cfdde1!important}.form-control:focus,.searchbar input:focus,.complete-form input:focus,input:focus,select:focus,textarea:focus{border-color:#67b9af!important;box-shadow:0 0 0 3px rgba(15,136,124,.10)!important}select option{background:#fff!important;color:#17252c!important}.field label{color:#314952!important}th{background:#f7fafb!important;color:#687d86!important}td{color:#263b43!important}.profile-hero{background:linear-gradient(135deg,#ffffff,#eef8f7)!important}.timeline-card{background:#fbfdfd!important}.mobile-bottom{background:rgba(255,255,255,.96)!important;border-color:#dce7eb!important;box-shadow:0 -8px 25px rgba(25,55,70,.08)!important}.mobile-bottom a{color:#74858d!important}.mobile-bottom b,.mobile-bottom a.active b,.mobile-bottom a.active{color:#0f887c!important}.notification-popover{background:#fff!important;border-color:#dce7eb!important;box-shadow:0 20px 55px rgba(25,55,70,.16)!important}.notification-popover-head{border-color:#e7edef!important}.notification-popover-head b,.bell-item{color:#1b3038!important}.notification-popover-head small,.bell-item small,.bell-item time,.bell-empty{color:#73858d!important}.bell-item:hover{background:#edf8f6!important}.bell-view-all,.notification-popover-head button{color:#0f887c!important}.notification-row.unread,.list-row.unread{background:#eff9f7!important;border-color:#bfe4dd!important}.bell-dot,.unread-pulse{background:#0f887c!important}.pwa-install-dialog{background:#fff!important;color:#17252c!important;border-color:#d7e5e8!important;box-shadow:0 25px 70px rgba(25,55,70,.20)!important}
/* Public/auth surfaces: clean clinical light */
body.public-home,body.auth-body{background:linear-gradient(180deg,#f7fbfc 0%,#edf5f7 100%)!important;color:#111827!important}.public-topbar{background:rgba(255,255,255,.95)!important;border-bottom-color:#dce7eb!important}.public-topbar strong,.public-main h1,.public-main h2,.public-main h3{color:#111827!important}.public-main p{color:#5e707b!important}.public-card,.public-panel,.auth-card{background:#fff!important;border-color:#dce7eb!important;box-shadow:0 14px 38px rgba(25,55,70,.07)!important}.public-bottom-nav{background:rgba(255,255,255,.97)!important;border-color:#dce7eb!important}.public-bottom-nav a{color:#61757e!important}.public-bottom-nav a.active{color:#0f887c!important}
@media(max-width:850px){.sidebar{background:#fff!important;box-shadow:20px 0 45px rgba(25,55,70,.12)!important}.mobile-bottom{left:10px!important;right:10px!important;bottom:10px!important;border-radius:20px!important}}

/* V29.6 — Oleb Clinical Signature refinement */
:root{
  --brand:#118b80!important;--brand2:#21a99b!important;--brand3:#e9f7f4!important;
  --bg:#f4f9fa!important;--ink:#13202b!important;--muted:#657985!important;--line:#dce9eb!important;
}
body.public-home{background:linear-gradient(180deg,#fbfdfd 0%,#f2f8f9 55%,#edf6f7 100%)!important}
.public-topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid #dfeaec!important;box-shadow:0 5px 24px rgba(31,65,73,.035)!important}
.public-brand{color:#142932!important}.public-brand b{color:#159b8f!important}.public-brand small{color:#738790!important}
.public-logo{background:linear-gradient(145deg,#24b5a7,#0d7e74)!important;color:#fff!important;border:0!important;box-shadow:0 8px 20px rgba(17,139,128,.18)!important}
.public-link,.hero-text-link,.care-action,.card-bottom-action,.public-card-action>a{color:#118b80!important}
.public-book,.public-book-primary,.public-cta,.public-hero-actions .btn:not(.secondary){background:#118b80!important;border-color:#118b80!important;color:#fff!important;box-shadow:0 8px 20px rgba(17,139,128,.16)!important}
.public-book:hover,.public-book-primary:hover,.public-cta:hover,.public-hero-actions .btn:not(.secondary):hover{background:#0d786f!important;filter:none!important}
.public-hero-actions .btn.secondary{background:#fff!important;color:#193d43!important;border:1px solid #cfe0e3!important;box-shadow:none!important}
.public-copy .eyebrow{color:#a87413!important}.public-copy h1{color:#13202b!important}.public-copy>p{color:#5e747e!important}
.public-trust span{background:#fff!important;color:#607780!important;border:1px solid #dbe7e9!important}

/* Connected Care is intentionally light and high-contrast */
.public-care-card{background:linear-gradient(145deg,#ffffff 0%,#f3fbf9 100%)!important;border:1px solid #d4e7e4!important;box-shadow:0 22px 55px rgba(31,72,78,.10)!important;color:#152b31!important}
.care-head{border-bottom:1px solid #deebe9!important}.care-head small{color:#118b80!important}.care-head b{color:#172c32!important}.care-icon{background:linear-gradient(145deg,#42c7b9,#1aa596)!important;color:#083e3a!important;border:0!important;box-shadow:0 8px 18px rgba(17,139,128,.15)!important}
.care-grid article{background:#fff!important;border:1px solid #dce9e7!important;box-shadow:0 7px 18px rgba(31,72,78,.035)!important}
.care-grid article:hover{border-color:#b8ddd7!important;box-shadow:0 10px 24px rgba(31,72,78,.07)!important}
.care-grid article>span{color:#159b8f!important}.care-grid article>b{color:#183039!important}.care-grid article>p{color:#657b84!important;opacity:1!important}.care-action{font-weight:700!important}

.public-services{gap:16px!important}.public-card{background:#fff!important;border:1px solid #dce8ea!important;box-shadow:0 12px 30px rgba(31,65,73,.055)!important}.public-card b{color:#172b32!important}.public-card p{color:#667b84!important}.service-icon{background:#e9f7f4!important;color:#118b80!important;border-color:#d0ebe6!important}
.public-footer{color:#70848c!important;border-top-color:#dce8ea!important}.public-bottom-nav{background:rgba(255,255,255,.97)!important;border-color:#dce8ea!important}.public-bottom-nav a.primary,.public-bottom-nav a:hover{color:#118b80!important}

/* PWA control should visually belong to the product */
.pwa-quick-actions .pwa-control-btn{background:#fff!important;color:#49636c!important;border:1px solid #d7e5e7!important;box-shadow:none!important}.pwa-quick-actions .pwa-control-btn.primary{background:#e9f7f4!important;color:#0c776e!important;border-color:#cce9e4!important}

@media(max-width:850px){
  .public-care-card{box-shadow:0 14px 34px rgba(31,72,78,.08)!important}
  .care-grid article{background:#fff!important}
}


/* ==========================================================
   V29.6.2 — FINAL PUBLIC CTA CONTRAST + TEAL CONSISTENCY
   High-specificity overrides intentionally placed LAST.
   ========================================================== */
:root{
  --oleb-teal:#0f887c;
  --oleb-teal-dark:#0b6f66;
  --oleb-teal-soft:#eaf7f4;
  --oleb-ink:#14272f;
  --oleb-border:#bfd9d5;
}

/* TOP BAR — remove old royal/electric blue */
body.public-home .public-topbar a.public-book,
body.public-home .public-topbar a.public-cta,
body.public-home .public-topbar .public-book,
body.public-home .public-topbar .public-cta{
  background:linear-gradient(135deg,#15988c,#0f887c)!important;
  border:1px solid #0f887c!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:none!important;
  box-shadow:0 7px 18px rgba(15,136,124,.18)!important;
}
body.public-home .public-topbar a.public-book:hover,
body.public-home .public-topbar a.public-cta:hover{
  background:#0b6f66!important;
  border-color:#0b6f66!important;
  color:#fff!important;
}

/* Hero primary CTA */
body.public-home .public-hero-actions a.public-book-primary,
body.public-home .public-hero-actions .public-book-primary{
  background:linear-gradient(135deg,#15988c,#0f887c)!important;
  border:1px solid #0f887c!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:none!important;
  box-shadow:0 8px 20px rgba(15,136,124,.16)!important;
}

/* Hero secondary CTA — force readable dark-teal foreground, including nested text */
body.public-home .public-hero-actions a.btn.secondary,
body.public-home .public-hero-actions .btn.secondary{
  background:#fff!important;
  border:1.5px solid #9fcfc8!important;
  color:#155d59!important;
  -webkit-text-fill-color:#155d59!important;
  text-shadow:none!important;
  box-shadow:0 5px 14px rgba(31,72,78,.05)!important;
}
body.public-home .public-hero-actions a.btn.secondary *,
body.public-home .public-hero-actions .btn.secondary *{
  color:#155d59!important;
  -webkit-text-fill-color:#155d59!important;
  text-shadow:none!important;
}
body.public-home .public-hero-actions a.btn.secondary:hover{
  background:#eef8f6!important;
  border-color:#0f887c!important;
  color:#0b6f66!important;
}

/* Install App — visible but secondary to booking */
body.public-home button.pwa-control-btn.primary[data-pwa-install],
body.public-home .pwa-quick-actions button.pwa-control-btn.primary[data-pwa-install]{
  background:#fff!important;
  border:1.5px solid #0f887c!important;
  color:#0b6f66!important;
  -webkit-text-fill-color:#0b6f66!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:0 5px 14px rgba(15,136,124,.08)!important;
}
body.public-home button.pwa-control-btn.primary[data-pwa-install] *,
body.public-home .pwa-quick-actions button.pwa-control-btn.primary[data-pwa-install] *{
  color:#0b6f66!important;
  -webkit-text-fill-color:#0b6f66!important;
  opacity:1!important;
}
body.public-home button.pwa-control-btn.primary[data-pwa-install]:hover{
  background:#eaf7f4!important;
}

/* Product mark: make OP teal rather than legacy blue */
body.public-home :is(.public-logo,.brandmark,.native-logo,.logo-mark),
body.public-home .public-brand .brandmark,
body.public-home .public-care-card :is(.public-logo,.brandmark,.care-logo){
  background:linear-gradient(145deg,#31b9aa,#0f887c)!important;
  border-color:rgba(15,136,124,.25)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 20px rgba(15,136,124,.16)!important;
}

/* Force all public actionable link text to stay readable */
body.public-home :is(.public-book,.public-book-primary,.public-cta) *,
body.public-home :is(.public-book,.public-book-primary,.public-cta){
  text-shadow:none!important;
}

/* Disabled install state must remain legible rather than washed out */
body.public-home button.pwa-control-btn.primary[data-pwa-install]:disabled{
  background:#f3faf8!important;
  border-color:#9fcfc8!important;
  color:#52756f!important;
  -webkit-text-fill-color:#52756f!important;
  opacity:.78!important;
}
body.public-home button.pwa-control-btn.primary[data-pwa-install]:disabled *{
  color:#52756f!important;
  -webkit-text-fill-color:#52756f!important;
}

/* Mobile same visual hierarchy */
@media(max-width:760px){
  body.public-home .public-topbar a.public-cta,
  body.public-home .public-topbar a.public-book{
    background:linear-gradient(135deg,#15988c,#0f887c)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }
  body.public-home .public-hero-actions a.btn.secondary{
    background:#fff!important;
    color:#155d59!important;
    -webkit-text-fill-color:#155d59!important;
  }
}


/* ==========================================================
   V29.7 — OLEB CLINICAL SIGNATURE UI
   Permanent light clinical foundation
   ========================================================== */

:root{
  --oc-bg:#f4f8f8;
  --oc-surface:#ffffff;
  --oc-surface-soft:#eef7f5;
  --oc-teal:#0f887c;
  --oc-teal-2:#21a99b;
  --oc-teal-dark:#0a675f;
  --oc-ink:#16242c;
  --oc-slate:#657984;
  --oc-border:#d8e5e7;
  --oc-border-strong:#bfd8d5;
  --oc-gold:#b88927;
  --oc-danger:#b84646;
  --oc-warning:#a56f11;
  --oc-shadow:0 12px 32px rgba(24,56,68,.065);
}

/* Global shell */
html,body{background:var(--oc-bg)!important;color:var(--oc-ink)!important}
body:before{opacity:.16!important}
.app-shell,.main-shell,.content{background:var(--oc-bg)!important}
.content{color:var(--oc-ink)!important}

/* Sidebar — calm, clean, decisive selected state */
.sidebar{
  background:linear-gradient(180deg,#fff 0%,#f6fbfa 100%)!important;
  border-right:1px solid var(--oc-border)!important;
  box-shadow:8px 0 28px rgba(24,56,68,.035)!important;
}
.brand{color:var(--oc-ink)!important;border-bottom-color:#e7eef0!important}
.brandmark{
  background:linear-gradient(145deg,var(--oc-teal-2),var(--oc-teal))!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 8px 20px rgba(15,136,124,.18)!important;
}
.brand small,.nav-label,.side-note span{color:#71858d!important}
.sidebar nav a{
  color:#516973!important;
  border:1px solid transparent!important;
  border-radius:14px!important;
}
.sidebar nav a:hover{
  color:var(--oc-teal-dark)!important;
  background:#f0f8f6!important;
  border-color:#e0eeeb!important;
}
.sidebar nav a.active{
  color:var(--oc-teal-dark)!important;
  background:#e5f4f1!important;
  border-color:#bfded8!important;
  box-shadow:inset 3px 0 0 var(--oc-teal)!important;
  font-weight:850!important;
}
.side-note{
  background:#fff!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:none!important;
}

/* Topbar — one visual system only */
.topbar{
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid var(--oc-border)!important;
  box-shadow:0 5px 18px rgba(24,56,68,.035)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}
.top-title strong,.user-chip b{color:var(--oc-ink)!important}
.top-title small,.user-chip small{color:#74868f!important}
.nav-back,.nav-home,.ghost,.icon-btn{
  background:#fff!important;
  color:#45606b!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:none!important;
}
.nav-back:hover,.nav-home:hover,.ghost:hover,.icon-btn:hover{
  background:var(--oc-surface-soft)!important;
  color:var(--oc-teal-dark)!important;
  border-color:var(--oc-border-strong)!important;
}
.user-chip>span{
  background:#e7f5f2!important;
  color:var(--oc-teal)!important;
  border:1px solid #cde7e2!important;
}

/* Eliminate legacy electric-blue action styling */
.btn,
button.btn,
a.btn,
.pwa-control-btn.primary,
.install-now{
  background:linear-gradient(135deg,#16998d,var(--oc-teal))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid var(--oc-teal)!important;
  box-shadow:0 7px 18px rgba(15,136,124,.14)!important;
  text-shadow:none!important;
}
.btn:hover,button.btn:hover,a.btn:hover,.pwa-control-btn.primary:hover,.install-now:hover{
  background:var(--oc-teal-dark)!important;
  border-color:var(--oc-teal-dark)!important;
  color:#fff!important;
}
.btn.secondary,a.btn.secondary,button.btn.secondary,
.ghost,.install-later{
  background:#fff!important;
  color:#155d59!important;
  -webkit-text-fill-color:#155d59!important;
  border:1px solid var(--oc-border-strong)!important;
  box-shadow:none!important;
}
.btn.secondary:hover,a.btn.secondary:hover,button.btn.secondary:hover{
  background:#edf7f5!important;
  border-color:var(--oc-teal)!important;
  color:var(--oc-teal-dark)!important;
}
.actions .btn.secondary:first-child{font-weight:800!important}

/* Headings and restrained gold signature */
.page-head h1,.panel-head h3,.card h3,.stats strong,.quick b,.row-main b,
.public-main h1,.public-main h2,.public-main h3{color:#131f28!important}
.page-head p,.panel-head p,.stats span,.stats small,.quick span,.row-main small,.muted,
.public-main p{color:var(--oc-slate)!important}
.eyebrow{
  color:var(--oc-gold)!important;
  letter-spacing:.08em!important;
  font-weight:900!important;
}

/* Cards/panels — clinical white, not SaaS dark glass */
.panel,.card,.table-card,.receipt,.print-sheet,.report-card,.stats article,.quick,
.assessment-card,.plan-card,.exercise-card,.slot-card,.timeline-card,.day-card,
.list-row,.progress-row,.notification-row{
  background:#fff!important;
  color:var(--oc-ink)!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:var(--oc-shadow)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.stats article:after{background:#e9f6f3!important}
.stat-icon,.avatar,.notification-icon{
  background:#e6f5f2!important;
  color:var(--oc-teal)!important;
  border:1px solid #cce6e1!important;
}

/* Communication and notification pages: explicitly force light */
body .grid.grid-2>.panel,
body .panel .list-row,
body .panel .list-row p,
body .panel .list-row b,
body .panel .list-row small{
  color:var(--oc-ink)!important;
}
body .panel .list-row small,
body .panel .list-row p{color:var(--oc-slate)!important}
body .list-row.unread,
body .notification-row.unread{
  background:#edf8f6!important;
  border-color:#b9ddd7!important;
  box-shadow:inset 3px 0 0 var(--oc-teal),var(--oc-shadow)!important;
}
.flash.success,.alert-success{
  background:#eaf7f3!important;
  color:#0b6f66!important;
  border-color:#c5e8df!important;
}

/* Forms */
form p label,.field label{color:#30464f!important;font-weight:800!important}
input,select,textarea,.form-control,.searchbar input,.inline-filter select,.inline-filter input{
  background:#fff!important;
  color:var(--oc-ink)!important;
  border:1px solid #cbdcdf!important;
  box-shadow:none!important;
}
input:focus,select:focus,textarea:focus,.form-control:focus{
  border-color:#64b8ad!important;
  box-shadow:0 0 0 3px rgba(15,136,124,.10)!important;
  outline:none!important;
}
select option{background:#fff!important;color:var(--oc-ink)!important}

/* Tables and status */
table,thead,tbody,tr,th,td{background:#fff!important;color:var(--oc-ink)!important}
th{background:#f7faf9!important;color:#667b84!important}
th,td{border-color:#e5edef!important}
.badge{
  background:#eef5f4!important;
  color:#49636c!important;
  border:1px solid #dde9e8!important;
}
.status-paid,.status-completed,.status-active{color:#0b756b!important;background:#e5f6f2!important}
.status-pending,.status-part_paid{color:#8b6415!important;background:#fbf5e7!important}

/* Notification bell */
.notification-bell{
  background:#fff!important;
  color:var(--oc-teal)!important;
  border:1px solid var(--oc-border-strong)!important;
  box-shadow:none!important;
}
.notification-bell:hover{background:#edf7f5!important}
.bell-badge{
  background:#c69631!important;
  color:#fff!important;
  border-color:#fff!important;
}
.notification-popover{
  background:#fff!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:0 22px 58px rgba(24,56,68,.16)!important;
}
.notification-popover-head{border-color:#e8eff0!important}
.notification-popover-head b,.bell-item{color:var(--oc-ink)!important}
.notification-popover-head small,.bell-item small,.bell-item time,.bell-empty{color:#73858d!important}
.bell-item:hover{background:#edf8f6!important}
.bell-view-all,.notification-popover-head button{color:var(--oc-teal)!important}

/* Install button stays secondary, not dominant */
.pwa-control-btn.primary[data-pwa-install]{
  background:#fff!important;
  color:var(--oc-teal-dark)!important;
  -webkit-text-fill-color:var(--oc-teal-dark)!important;
  border:1px solid #9fcfc8!important;
  box-shadow:none!important;
}
.pwa-control-btn.primary[data-pwa-install] *{
  color:var(--oc-teal-dark)!important;
  -webkit-text-fill-color:var(--oc-teal-dark)!important;
}
.pwa-control-btn.primary[data-pwa-install]:hover{background:#edf8f6!important}

/* Modal/install system */
.pwa-install-dialog{
  background:#fff!important;
  color:var(--oc-ink)!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:0 28px 80px rgba(24,56,68,.22)!important;
}
.pwa-install-icon{
  background:linear-gradient(145deg,var(--oc-teal-2),var(--oc-teal))!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(15,136,124,.18)!important;
}
.install-kicker{color:var(--oc-teal)!important}
.pwa-install-copy>span:last-child{color:var(--oc-slate)!important}
.pwa-install-benefits span{
  background:#edf8f6!important;
  color:#55716f!important;
  border-color:#d6eae6!important;
}
.install-later{background:#fff!important;color:#155d59!important}

/* Progress bars */
.progress-bar{background:#e8f0f0!important}
.progress-bar i{background:linear-gradient(90deg,var(--oc-teal),var(--oc-teal-2))!important}

/* Public screen: same signature */
.public-topbar{
  background:rgba(255,255,255,.97)!important;
  border-bottom-color:var(--oc-border)!important;
}
.public-book,.public-book-primary,.public-cta,
.public-hero-actions .btn:not(.secondary){
  background:linear-gradient(135deg,#16998d,var(--oc-teal))!important;
  border-color:var(--oc-teal)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 7px 18px rgba(15,136,124,.14)!important;
}
.public-hero-actions .btn.secondary{
  background:#fff!important;
  color:#155d59!important;
  -webkit-text-fill-color:#155d59!important;
  border:1px solid var(--oc-border-strong)!important;
}
.public-copy .eyebrow{color:var(--oc-gold)!important}
.public-care-card,.care-grid article,.public-card{
  background:#fff!important;
  color:var(--oc-ink)!important;
  border-color:var(--oc-border)!important;
  box-shadow:var(--oc-shadow)!important;
}
.public-care-card p,.care-grid article p{color:var(--oc-slate)!important}
.public-care-card a,.care-grid article a{color:var(--oc-teal)!important}
.public-brand :is(.brandmark,.public-logo),
.public-care-card :is(.brandmark,.care-logo){
  background:linear-gradient(145deg,var(--oc-teal-2),var(--oc-teal))!important;
}

/* Auth pages — light clinical instead of isolated dark shell */
body.auth-body,body.auth-body.auth-register{
  background:linear-gradient(145deg,#f6faf9,#edf6f5)!important;
  color:var(--oc-ink)!important;
}
.auth-shell{background:transparent!important}
.auth-card{
  background:#fff!important;
  border:1px solid var(--oc-border)!important;
  color:var(--oc-ink)!important;
  box-shadow:0 18px 48px rgba(24,56,68,.10)!important;
}
.auth-card h1,.auth-card h2,.auth-card b,.auth-card label{color:var(--oc-ink)!important}
.auth-card p,.auth-card small{color:var(--oc-slate)!important}

/* Mobile navigation */
.mobile-bottom,.mobile-staff-bottom,.public-bottom-nav{
  background:rgba(255,255,255,.97)!important;
  border:1px solid var(--oc-border)!important;
  box-shadow:0 8px 26px rgba(24,56,68,.12)!important;
}
.mobile-bottom a,.mobile-staff-bottom a,.public-bottom-nav a{color:#71848c!important}
.mobile-bottom a.active,.mobile-staff-bottom a.active,.public-bottom-nav a.active,
.mobile-bottom a.active b,.mobile-staff-bottom a.active b{color:var(--oc-teal)!important}
.mobile-bottom a.active,.mobile-staff-bottom a.active{background:#eaf7f4!important;border-radius:14px!important}

/* Mobile card discipline */
@media(max-width:850px){
  .content{padding-bottom:92px!important}
  .panel,.card,.stats article,.quick,.list-row,.progress-row{border-radius:18px!important}
  .page-head{gap:14px!important}
  .page-head .actions{gap:8px!important}
  .sidebar{box-shadow:20px 0 45px rgba(24,56,68,.12)!important}
}


/* ==========================================================
   V29.7.1 — FINAL SPACING & SURFACE REFINEMENT
   No layout architecture or functionality changes
   ========================================================== */

/* Public hero: reduce empty vertical space and tighten rhythm */
body.public-home .public-main{
  padding-top:18px!important;
}
body.public-home .public-hero{
  min-height:auto!important;
  padding-top:56px!important;
  padding-bottom:34px!important;
  align-items:center!important;
}
body.public-home .public-copy{
  align-self:center!important;
}
body.public-home .public-copy h1{
  margin-bottom:18px!important;
  line-height:.98!important;
}
body.public-home .public-copy p{
  margin-top:0!important;
  margin-bottom:22px!important;
  max-width:760px!important;
}
body.public-home .public-hero-actions{
  gap:10px!important;
  margin-top:0!important;
}

/* Compact trust pills */
body.public-home .public-trust,
body.public-home .public-tags{
  gap:8px!important;
  margin-top:18px!important;
}
body.public-home .public-trust span,
body.public-home .public-tags span{
  min-height:30px!important;
  padding:6px 11px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1px solid #dbe7e8!important;
  color:#62777f!important;
  font-size:11px!important;
  line-height:1!important;
  box-shadow:0 3px 10px rgba(24,56,68,.035)!important;
}

/* Install App: polished compact secondary control */
body.public-home .pwa-quick-actions{
  margin-top:16px!important;
}
body.public-home .pwa-quick-actions .pwa-control-btn.primary[data-pwa-install]{
  min-height:42px!important;
  padding:0 15px!important;
  border-radius:13px!important;
  background:#f9fcfb!important;
  color:#0a675f!important;
  -webkit-text-fill-color:#0a675f!important;
  border:1px solid #90c9c0!important;
  box-shadow:0 5px 14px rgba(15,136,124,.055)!important;
  font-size:12px!important;
  font-weight:850!important;
}
body.public-home .pwa-quick-actions .pwa-control-btn.primary[data-pwa-install]:hover{
  background:#eaf7f4!important;
  border-color:#0f887c!important;
}
body.public-home .pwa-quick-actions .pwa-icon{
  font-size:14px!important;
}

/* Connected-care card: slightly tighter and better balanced */
body.public-home .public-care-card{
  padding:26px!important;
  border-radius:24px!important;
}
body.public-home .care-grid{
  gap:12px!important;
}
body.public-home .care-grid article{
  padding:19px!important;
  border-radius:17px!important;
  box-shadow:0 8px 20px rgba(24,56,68,.045)!important;
}
body.public-home .care-grid article p{
  margin-bottom:8px!important;
  line-height:1.45!important;
}

/* Lower service cards: tighter, more intentional, equal visual weight */
body.public-home .public-services{
  gap:18px!important;
  margin-top:22px!important;
  padding-top:0!important;
}
body.public-home .public-services .service-card,
body.public-home .public-services > article,
body.public-home .public-services > div{
  min-height:142px!important;
  padding:22px!important;
  border-radius:20px!important;
  background:#fff!important;
  border:1px solid #d8e5e7!important;
  box-shadow:0 10px 26px rgba(24,56,68,.05)!important;
}
body.public-home .public-services h3,
body.public-home .public-services b{
  color:#16242c!important;
}
body.public-home .public-services p{
  color:#657984!important;
  line-height:1.45!important;
}
body.public-home .public-services a{
  color:#0f887c!important;
  font-weight:800!important;
}

/* Footer: closer to content without looking cramped */
body.public-home .public-footer{
  margin-top:28px!important;
  padding-top:22px!important;
  padding-bottom:20px!important;
}

/* Desktop proportions */
@media(min-width:1100px){
  body.public-home .public-hero{
    grid-template-columns:minmax(0,1.15fr) minmax(480px,.85fr)!important;
    column-gap:58px!important;
  }
  body.public-home .public-copy h1{
    font-size:clamp(64px,6.2vw,104px)!important;
    max-width:760px!important;
  }
}

/* Tablet/mobile: keep cards compact and avoid oversized first screen */
@media(max-width:850px){
  body.public-home .public-main{padding-top:8px!important}
  body.public-home .public-hero{
    padding:26px 16px 18px!important;
    gap:18px!important;
  }
  body.public-home .public-copy h1{
    line-height:1.02!important;
    margin-bottom:14px!important;
  }
  body.public-home .public-copy p{
    margin-bottom:16px!important;
  }
  body.public-home .public-care-card{
    padding:17px!important;
    border-radius:20px!important;
  }
  body.public-home .care-grid article{
    padding:15px!important;
  }
  body.public-home .public-services{
    gap:12px!important;
    margin-top:14px!important;
  }
  body.public-home .public-services .service-card,
  body.public-home .public-services > article,
  body.public-home .public-services > div{
    min-height:auto!important;
    padding:17px!important;
    border-radius:17px!important;
  }
  body.public-home .public-footer{
    margin-top:18px!important;
    padding-bottom:88px!important;
  }
}

/* ==========================================================
   V29.7.2 — MOBILE NATIVE REFINEMENT
   Desktop >= 851px intentionally unchanged.
   ========================================================== */
@media(max-width:850px){
  body.public-home .public-topbar{min-height:72px!important;padding:10px 14px!important}
  body.public-home .public-brand small{display:none!important}
  body.public-home .public-actions .public-book,body.public-home .public-actions .public-link{display:none!important}
  body.public-home .public-main{padding:0 0 92px!important}
  body.public-home .public-hero{display:block!important;padding:28px 16px 12px!important}
  body.public-home .public-copy h1{font-size:clamp(43px,12vw,58px)!important;letter-spacing:-.045em!important;max-width:390px!important}
  body.public-home .public-copy>p{font-size:14px!important;line-height:1.55!important;max-width:390px!important}
  body.public-home .public-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  body.public-home .public-hero-actions .btn{width:100%!important;min-height:52px!important;justify-content:center!important}
  body.public-home .hero-text-link{text-align:center!important;padding:5px 0!important}
  body.public-home .public-trust{margin-top:13px!important}
  body.public-home .pwa-quick-actions{margin:13px 0 0!important}

  /* Keep Connected Care visible on phones, but compress it into a native summary. */
  body.public-home .public-care-card{display:block!important;margin:18px 0 0!important;padding:15px!important;border-radius:20px!important;box-shadow:0 8px 24px rgba(24,56,68,.055)!important}
  body.public-home .care-head{padding-bottom:12px!important;margin-bottom:10px!important}
  body.public-home .care-head .care-icon{width:40px!important;height:40px!important;border-radius:13px!important}
  body.public-home .care-head small{font-size:9px!important}
  body.public-home .care-head b{font-size:14px!important}
  body.public-home .care-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  body.public-home .care-grid article{min-height:0!important;padding:12px!important;border-radius:14px!important;box-shadow:none!important}
  body.public-home .care-grid article>span{font-size:9px!important}
  body.public-home .care-grid article>b{font-size:13px!important;margin:4px 0!important}
  body.public-home .care-grid article p{display:none!important}
  body.public-home .care-grid .care-action{font-size:11px!important;line-height:1.3!important}

  /* Service cards become compact touch targets rather than a second oversized hero. */
  body.public-home .public-services{padding:0 16px!important;margin-top:10px!important;display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  body.public-home .public-services>article{display:grid!important;grid-template-columns:42px 1fr auto!important;align-items:center!important;gap:10px!important;min-height:94px!important;padding:14px!important}
  body.public-home .public-services .service-icon{width:42px!important;height:42px!important;margin:0!important}
  body.public-home .public-services b{font-size:14px!important}
  body.public-home .public-services p{font-size:11px!important;margin:3px 0 0!important;line-height:1.4!important}
  body.public-home .public-services a{font-size:11px!important;white-space:nowrap!important}
  body.public-home .public-footer{display:none!important}

  body.public-home .public-bottom-nav{left:10px!important;right:10px!important;bottom:8px!important;width:auto!important;border-radius:20px!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important;overflow:visible!important}
  body.public-home .public-bottom-nav a{position:relative!important}
  .public-nav-badge{position:absolute!important;top:2px!important;right:calc(50% - 20px)!important;min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:999px!important;background:#c69631!important;color:#fff!important;font-size:9px!important;font-weight:900!important;display:grid!important;place-items:center!important;border:2px solid #fff!important}
}


/* V29.8 — OLEB CLINICAL BRAND SYSTEM
   OLEB-family visual language adapted for healthcare.
   Presentation-only overrides: no workflow, model, database or JS changes. */
:root{
 --ob-navy:#071b35;--ob-navy-2:#0b315c;--ob-blue:#1769e8;--ob-cyan:#16c5c2;
 --ob-teal:#079681;--ob-mint:#e9f8f5;--ob-gold:#c58b19;--ob-ink:#101c2a;
 --ob-bg:#f2f7fa;--ob-card:#fff;--ob-line:#d8e5eb;--ob-muted:#657b89;
 --ob-grad:linear-gradient(135deg,#1769e8 0%,#16c5c2 100%);
 --ob-navygrad:linear-gradient(135deg,#071b35 0%,#0b315c 70%,#086b70 100%);
 --ob-shadow:0 16px 38px rgba(7,27,53,.09);
}
html,body,.app-shell,.main-shell,.content{background:var(--ob-bg)!important;color:var(--ob-ink)!important}

/* Internal product shell */
.sidebar{background:var(--ob-navygrad)!important;border-right:0!important;box-shadow:8px 0 28px rgba(7,27,53,.12)!important}
.sidebar .brand,.sidebar .brand strong,.sidebar .side-note strong{color:#fff!important}
.sidebar .brand small,.sidebar .nav-label,.sidebar .side-note span{color:#9ec1ce!important}
.sidebar nav a{color:#c7dce5!important;border-color:transparent!important}
.sidebar nav a:hover{background:rgba(255,255,255,.08)!important;color:#fff!important;border-color:rgba(255,255,255,.08)!important}
.sidebar nav a.active{background:rgba(22,197,194,.14)!important;color:#fff!important;border-color:rgba(74,225,214,.25)!important;box-shadow:inset 3px 0 0 #25d6c8!important}
.sidebar .side-note{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.12)!important}
.brandmark,.user-chip>span{background:linear-gradient(145deg,#28c8ba,#079681)!important;color:#fff!important;border:0!important}
.topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--ob-line)!important;box-shadow:0 5px 20px rgba(7,27,53,.045)!important}

/* Signature actions */
.btn.primary,.button.primary,button.primary,a.primary,.public-book,.public-book-primary,.public-cta{background:var(--ob-grad)!important;border-color:transparent!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:0 9px 22px rgba(23,105,232,.17)!important}
.btn.primary:hover,.button.primary:hover,button.primary:hover,a.primary:hover{filter:brightness(.96)!important;transform:translateY(-1px)}
.btn.secondary,.button.secondary{background:#fff!important;border:1px solid #bdd8df!important;color:#075f62!important;-webkit-text-fill-color:#075f62!important}
.eyebrow,.section-kicker,.kicker{color:var(--ob-gold)!important}

/* Cards/data surfaces remain clinical and readable */
.card,.panel,.metric-card,.stat-card,.dashboard-card,.form-card,.table-card,.content-card{background:#fff!important;border:1px solid var(--ob-line)!important;box-shadow:var(--ob-shadow)!important}
.metric-card:before,.stat-card:before{background:linear-gradient(135deg,rgba(22,197,194,.12),rgba(23,105,232,.035))!important}
.badge.success,.status.success,.pill.success{background:var(--ob-mint)!important;color:#08766a!important}

/* PUBLIC HOME — brand-led hero with clinical restraint */
body.public-home{background:linear-gradient(180deg,#f7fbfd 0%,#eef6f8 100%)!important}
body.public-home .public-topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--ob-line)!important}
body.public-home .public-brand strong{color:#087f73!important}
body.public-home .public-hero{position:relative;isolation:isolate}
body.public-home .public-copy{background:var(--ob-navygrad)!important;border-radius:34px!important;padding:48px 46px!important;box-shadow:0 24px 58px rgba(7,27,53,.16)!important;overflow:hidden!important;position:relative!important}
body.public-home .public-copy:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-170px;bottom:-190px;background:rgba(22,197,194,.13);z-index:-1}
body.public-home .public-copy .eyebrow{color:#6ee8db!important}
body.public-home .public-copy h1{color:#fff!important;letter-spacing:-.045em!important}
body.public-home .public-copy>p{color:#bfd1dc!important}
body.public-home .public-trust span{background:rgba(255,255,255,.08)!important;color:#d8e7ed!important;border-color:rgba(255,255,255,.13)!important}
body.public-home .public-hero-actions .btn.secondary{background:#fff!important;color:#075f62!important;border-color:#fff!important}
body.public-home .public-hero-actions a:not(.btn){color:#67e4d7!important}
body.public-home button.pwa-control-btn.primary[data-pwa-install]{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.25)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important}
body.public-home button.pwa-control-btn.primary[data-pwa-install]:disabled{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.14)!important;color:#b8ccd5!important;-webkit-text-fill-color:#b8ccd5!important}

/* Connected Care: white product showcase */
body.public-home .public-care-card{background:#fff!important;border:1px solid var(--ob-line)!important;box-shadow:0 22px 55px rgba(7,27,53,.11)!important;border-radius:34px!important}
body.public-home .care-head small{color:#087f73!important}
body.public-home .care-grid article{background:linear-gradient(180deg,#fff,#f8fbfc)!important;border:1px solid var(--ob-line)!important;border-radius:22px!important}
body.public-home .care-grid article>span,.care-action{color:#078b7d!important}
body.public-home .public-services .public-card{background:#fff!important;border:1px solid var(--ob-line)!important;box-shadow:0 14px 32px rgba(7,27,53,.065)!important}
body.public-home .service-icon{background:linear-gradient(145deg,#e8faf7,#edf5ff)!important;color:#087f73!important;border-color:#d2ebe7!important}

/* Mobile keeps native density and navigation */
@media(max-width:850px){
 body.public-home .public-copy{border-radius:0!important;padding:34px 24px 30px!important;margin-left:-16px!important;margin-right:-16px!important;box-shadow:none!important}
 body.public-home .public-copy h1{font-size:clamp(2.6rem,12vw,4rem)!important;line-height:.98!important}
 body.public-home .public-copy>p{color:#c4d5dd!important}
 body.public-home .public-hero-actions{gap:10px!important}
 body.public-home .public-hero-actions .btn{min-height:52px!important}
 body.public-home .public-care-card{border-radius:24px!important;box-shadow:0 12px 28px rgba(7,27,53,.08)!important}
 body.public-home .public-bottom-nav{background:rgba(255,255,255,.98)!important;border:1px solid var(--ob-line)!important;box-shadow:0 10px 32px rgba(7,27,53,.13)!important}
 body.public-home .public-bottom-nav a.primary{color:#087f73!important}
 .sidebar{background:var(--ob-navygrad)!important}
}


/* ==========================================================
   OLEB V29.9 — ONE-TIME INTEGRATION HARDENING
   Single production theme / deterministic responsive behavior
   ========================================================== */
:root{
 --oleb-navy:#071b35;--oleb-navy2:#0b315c;--oleb-blue:#1769e8;
 --oleb-cyan:#16c5c2;--oleb-teal:#079681;--oleb-mint:#e9f8f5;
 --oleb-gold:#c58b19;--oleb-ink:#101c2a;--oleb-bg:#f2f7fa;
 --oleb-card:#fff;--oleb-line:#d8e5eb;--oleb-muted:#657b89;
 --oleb-action:linear-gradient(135deg,#1769e8 0%,#16c5c2 100%);
 --oleb-shell:linear-gradient(145deg,#071b35 0%,#0b315c 72%,#08706f 100%);
}

/* Global ownership and contrast guardrails */
html,body{background:var(--oleb-bg)!important;color:var(--oleb-ink)!important}
a{color:var(--oleb-teal)}
button,a,input,select,textarea{font:inherit}
button,.btn,a.btn{font-weight:800}
.btn:not(.secondary),button.btn:not(.secondary),a.btn:not(.secondary){
 background:var(--oleb-action)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
 border-color:transparent!important;text-shadow:none!important
}
.btn:not(.secondary) *,button.btn:not(.secondary) *,a.btn:not(.secondary) *{color:#fff!important;-webkit-text-fill-color:#fff!important}
.btn.secondary,a.btn.secondary,button.btn.secondary,.ghost,.nav-back,.nav-home{
 background:#fff!important;color:#0a665f!important;-webkit-text-fill-color:#0a665f!important;
 border:1px solid #b9d8d5!important
}

/* Internal Oleb shell */
.sidebar{background:var(--oleb-shell)!important}
.sidebar .brand,.sidebar .brand strong,.sidebar .side-note strong{color:#fff!important}
.sidebar .brand small,.sidebar .nav-label,.sidebar .side-note span{color:#a9c8d2!important}
.sidebar nav a{color:#d0e2e8!important}
.sidebar nav a.active{background:rgba(22,197,194,.15)!important;color:#fff!important;border-color:rgba(72,226,214,.28)!important;box-shadow:inset 3px 0 0 #2fe0d2!important}
.sidebar nav a:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--oleb-line)!important}
.content{background:var(--oleb-bg)!important}
.panel,.card,.table-card,.stats article,.quick,.list-row,.progress-row,.notification-row,.report-card,.receipt,.print-sheet{
 background:#fff!important;color:var(--oleb-ink)!important;border:1px solid var(--oleb-line)!important;
 box-shadow:0 12px 30px rgba(7,27,53,.065)!important
}

/* Forms — no inherited dark fields */
input,select,textarea,.form-control,.searchbar input,.inline-filter select,.inline-filter input{
 background:#fff!important;color:var(--oleb-ink)!important;border:1px solid #cbdce3!important
}
input:focus,select:focus,textarea:focus,.form-control:focus{
 border-color:#49b7ad!important;outline:0!important;box-shadow:0 0 0 3px rgba(7,150,129,.12)!important
}

/* Public brand family */
body.public-home{background:linear-gradient(180deg,#f8fbfc 0%,#eff7f8 100%)!important}
body.public-home .public-topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--oleb-line)!important}
body.public-home .public-copy .eyebrow{color:var(--oleb-gold)!important}
body.public-home .public-care-card{
 background:linear-gradient(145deg,#071b35 0%,#0b315c 70%,#08706f 100%)!important;
 border-color:rgba(255,255,255,.09)!important;box-shadow:0 20px 54px rgba(7,27,53,.17)!important
}
body.public-home .public-care-card .care-head b,body.public-home .public-care-card .care-grid b{color:#fff!important}
body.public-home .public-care-card .care-head small,body.public-home .public-care-card .care-grid>article>span{color:#59e4d6!important}
body.public-home .public-care-card .care-grid article{background:rgba(255,255,255,.075)!important;border-color:rgba(255,255,255,.11)!important;box-shadow:none!important}
body.public-home .public-care-card .care-grid p{color:#b7d0d8!important}
body.public-home .public-care-card .care-action{color:#60e6dc!important}
body.public-home .public-services>article{background:#fff!important;border-color:var(--oleb-line)!important}
body.public-home .public-services a{color:var(--oleb-teal)!important}

/* Communication / notification integration */
.notification-bell{background:#fff!important;color:var(--oleb-teal)!important;border:1px solid #bfd9d6!important}
.notification-popover{background:#fff!important;color:var(--oleb-ink)!important;border:1px solid var(--oleb-line)!important}
.bell-item{color:var(--oleb-ink)!important}.bell-item small,.bell-item time{color:var(--oleb-muted)!important}
.bell-badge,.public-nav-badge{background:var(--oleb-gold)!important;color:#fff!important}
.list-row.unread,.notification-row.unread{background:#eaf8f5!important;border-color:#b8ded8!important;box-shadow:inset 3px 0 0 var(--oleb-teal)!important}

/* PWA controls are secondary to clinical actions */
[data-pwa-install],.pwa-control-btn.primary[data-pwa-install]{
 background:#fff!important;color:#08685f!important;-webkit-text-fill-color:#08685f!important;
 border:1px solid #88c8c0!important;box-shadow:none!important
}
[data-pwa-install] *{color:#08685f!important;-webkit-text-fill-color:#08685f!important}
.pwa-install-banner,.pwa-install-dialog{background:#fff!important;color:var(--oleb-ink)!important;border:1px solid var(--oleb-line)!important}
.pwa-install-icon{background:var(--oleb-action)!important;color:#fff!important}

/* Auth screens belong to same product */
body.auth-body,body.auth-body.auth-register{background:linear-gradient(160deg,#edf7f8 0%,#f8fbfc 52%,#eaf6f4 100%)!important}
.auth-card{background:#fff!important;color:var(--oleb-ink)!important;border:1px solid var(--oleb-line)!important;box-shadow:0 22px 60px rgba(7,27,53,.12)!important}
.auth-card h1,.auth-card h2,.auth-card label,.auth-card b{color:var(--oleb-ink)!important}
.auth-card p,.auth-card small{color:var(--oleb-muted)!important}

/* Mobile native consistency */
@media(max-width:850px){
 .topbar{min-height:66px!important}
 .content{padding-bottom:92px!important}
 .panel,.card,.list-row,.progress-row,.stats article,.quick{border-radius:18px!important}
 .mobile-bottom,.mobile-staff-bottom,.public-bottom-nav{
   background:rgba(255,255,255,.98)!important;border:1px solid var(--oleb-line)!important;
   box-shadow:0 12px 34px rgba(7,27,53,.15)!important
 }
 .mobile-bottom a,.mobile-staff-bottom a,.public-bottom-nav a{color:#667d87!important}
 .mobile-bottom a.active,.mobile-staff-bottom a.active,.public-bottom-nav a.active{color:var(--oleb-teal)!important;background:#e9f8f5!important}
 body.public-home .public-care-card{display:block!important}
 body.public-home .public-care-card .care-grid article{background:rgba(255,255,255,.08)!important}
}


/* ==========================================================
   OLEB V29.10 — DEPLOYMENT READINESS POLISH
   Contrast, density, hero balance and non-blocking splash
   ========================================================== */

/* AUTH — restore a deliberate deep-brand visual panel */
@media(min-width:851px){
  body.auth-body .auth-shell,
  body.auth-body.auth-register .auth-shell{
    background:#eef3f5!important;
  }
  body.auth-body .auth-visual,
  body.auth-body.auth-register .auth-visual{
    display:flex!important;
    position:relative!important;
    background:
      radial-gradient(circle at 18% 82%,rgba(22,197,194,.13),transparent 33%),
      linear-gradient(145deg,#071b35 0%,#0b315c 70%,#08706f 135%)!important;
    color:#fff!important;
    border-right:1px solid rgba(7,27,53,.08)!important;
  }
  body.auth-body .auth-visual:before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(105deg,rgba(255,255,255,.018),transparent 48%);
  }
  body.auth-body .auth-visual .auth-mark{
    position:relative;z-index:1;
    background:linear-gradient(145deg,#36d7ca,#0aa895)!important;
    color:#062b31!important;
    box-shadow:0 18px 46px rgba(3,19,36,.28)!important;
  }
  body.auth-body .auth-visual .auth-kicker{
    position:relative;z-index:1;color:#60eadb!important;
    text-shadow:0 1px 0 rgba(0,0,0,.12)!important;
  }
  body.auth-body .auth-visual h1{
    position:relative;z-index:1;color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    text-shadow:0 8px 28px rgba(0,0,0,.18)!important;
    max-width:690px!important;
  }
  body.auth-body .auth-visual>p{
    position:relative;z-index:1;color:#c3d9e1!important;
    max-width:650px!important;line-height:1.65!important;
  }
  body.auth-body .auth-feature-grid{position:relative;z-index:1}
  body.auth-body .auth-feature{
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
  }
  body.auth-body .auth-feature b{
    color:#f7ffff!important;-webkit-text-fill-color:#f7ffff!important;
  }
  body.auth-body .auth-feature span{
    color:#b6ced7!important;-webkit-text-fill-color:#b6ced7!important;
  }

  body.auth-body .auth-side,
  body.auth-body.auth-register .auth-side{
    background:#edf2f4!important;
    border-left:0!important;
    padding:clamp(24px,3vw,42px)!important;
  }
  body.auth-body .auth-card,
  body.auth-body.auth-register .auth-card{
    background:#fff!important;
    color:var(--oleb-ink)!important;
    border:1px solid #d8e5eb!important;
    box-shadow:0 24px 68px rgba(7,27,53,.14)!important;
  }
}

/* Registration — fit the complete form comfortably on common laptop screens */
@media(min-width:851px){
  body.auth-register .auth-card{
    max-width:640px!important;
    padding:24px 28px 22px!important;
    border-radius:25px!important;
  }
  body.auth-register .auth-brand{margin-bottom:16px!important}
  body.auth-register .auth-card h2{font-size:28px!important;margin-bottom:3px!important}
  body.auth-register .auth-card>.auth-sub{margin:0 0 14px!important}
  body.auth-register form p{margin:0 0 9px!important}
  body.auth-register form label{
    margin-bottom:4px!important;font-size:11px!important;line-height:1.2!important;
  }
  body.auth-register form input,
  body.auth-register form select{
    min-height:44px!important;height:44px!important;padding:9px 12px!important;
    border-radius:12px!important;
  }
  body.auth-register form textarea{
    min-height:70px!important;height:70px!important;padding:10px 12px!important;
    border-radius:12px!important;
  }
  body.auth-register .auth-card .btn{
    min-height:48px!important;margin-top:2px!important;
  }
  body.auth-register .auth-trust{margin-top:11px!important}
  body.auth-register .auth-footer{margin-top:11px!important}
}

/* Login card — less empty space and stronger visual alignment */
@media(min-width:851px){
  body.auth-body:not(.auth-register) .auth-card{
    max-width:560px!important;padding:28px 30px!important;
  }
  body.auth-body:not(.auth-register) .auth-brand{margin-bottom:20px!important}
  body.auth-body:not(.auth-register) .auth-card>.auth-sub{margin-bottom:18px!important}
  body.auth-body:not(.auth-register) form p{margin-bottom:12px!important}
  body.auth-body:not(.auth-register) input{min-height:50px!important}
  body.auth-body:not(.auth-register) .auth-trust{margin-top:14px!important}
  body.auth-body:not(.auth-register) .auth-footer{margin-top:14px!important}
}

/* Remove the old manual splash-preview control entirely */
[data-pwa-preview-splash],
.preview-splash,
button[title*="Splash" i],
button[aria-label*="Splash" i]{
  display:none!important;
}

/* PUBLIC HOME — reduce the tall desktop first-screen footprint */
@media(min-width:851px){
  body.public-home .public-main{
    padding-top:34px!important;
    padding-bottom:36px!important;
  }
  body.public-home .public-hero{
    min-height:auto!important;
    align-items:center!important;
    gap:clamp(30px,4.2vw,68px)!important;
  }
  body.public-home .public-copy,
  body.public-home .public-care-card{
    align-self:center!important;
  }
  body.public-home .public-copy h1{
    font-size:clamp(58px,5.7vw,86px)!important;
    line-height:.96!important;
    margin:10px 0 17px!important;
    max-width:760px!important;
  }
  body.public-home .public-copy>p{
    margin:0!important;
    line-height:1.58!important;
  }
  body.public-home .public-hero-actions{margin-top:22px!important}
  body.public-home .public-care-card{padding:20px!important}
  body.public-home .care-grid article{min-height:142px!important}
  body.public-home .public-services{margin-top:28px!important}
}

/* Mobile auth remains a single native card with no side visual */
@media(max-width:850px){
  body.auth-body .auth-visual,
  body.auth-body.auth-register .auth-visual{display:none!important}
  body.auth-body .auth-side,
  body.auth-body.auth-register .auth-side{
    background:linear-gradient(180deg,#edf6f6,#f8fbfb)!important;
  }
  body.auth-body .auth-card,
  body.auth-body.auth-register .auth-card{
    background:#fff!important;
    border:1px solid #d8e5eb!important;
    box-shadow:0 14px 34px rgba(7,27,53,.10)!important;
  }
}

/* Accessibility: never allow pale text on pale auth/public surfaces */
body.auth-body .auth-card a{font-weight:800!important}
body.auth-body .auth-card input,
body.auth-body .auth-card select,
body.auth-body .auth-card textarea{
  color:#122333!important;-webkit-text-fill-color:#122333!important;
  background:#fff!important;
}


/* ==========================================================
   OLEB V29.11 — COMPACT NATIVE PRODUCT SHELL
   First-party Oleb interface / compact desktop / native mobile
   ========================================================== */
:root{
  --oleb-mobile-max:480px;
  --oleb-safe-top:env(safe-area-inset-top,0px);
  --oleb-safe-right:env(safe-area-inset-right,0px);
  --oleb-safe-bottom:env(safe-area-inset-bottom,0px);
  --oleb-safe-left:env(safe-area-inset-left,0px);
}

/* Desktop density: keep the signature hero but remove presentation-like scale. */
@media(min-width:851px){
  body.public-home .public-main{
    padding:24px clamp(34px,5vw,82px) 26px!important;
  }
  body.public-home .public-hero{
    grid-template-columns:minmax(0,1fr) minmax(430px,.78fr)!important;
    gap:clamp(24px,3.8vw,58px)!important;
  }
  body.public-home .public-copy{
    padding:28px 36px 30px!important;
    border-radius:34px!important;
  }
  body.public-home .public-copy h1{
    font-size:clamp(52px,5vw,76px)!important;
    line-height:.97!important;
    margin:9px 0 15px!important;
    max-width:700px!important;
  }
  body.public-home .public-copy>p{
    max-width:640px!important;
    font-size:15px!important;
    line-height:1.52!important;
  }
  body.public-home .public-hero-actions{margin-top:18px!important}
  body.public-home .public-hero-actions .btn{min-height:44px!important}
  body.public-home .public-trust{margin-top:14px!important}
  body.public-home .pwa-quick-actions{margin-top:13px!important}
  body.public-home .public-care-card{
    padding:18px!important;
    border-radius:30px!important;
  }
  body.public-home .care-head{padding-bottom:13px!important;margin-bottom:0!important}
  body.public-home .care-grid{gap:10px!important;margin-top:12px!important}
  body.public-home .care-grid article{
    min-height:126px!important;
    padding:14px!important;
    border-radius:20px!important;
  }
  body.public-home .care-grid article p{
    margin:7px 0 7px!important;
    line-height:1.38!important;
  }
  body.public-home .public-services{
    margin-top:22px!important;
    gap:14px!important;
  }
  body.public-home .public-card{
    min-height:136px!important;
    padding:18px 20px!important;
    border-radius:24px!important;
  }
  body.public-home .public-footer{
    margin-top:18px!important;
    padding-top:10px!important;
    padding-bottom:12px!important;
  }
}

/* Oleb native mobile wrapper: one contained app surface, no browser-like gaps. */
@media(max-width:850px){
  html{
    background:#dfe9ed!important;
    overscroll-behavior-y:none;
  }
  body.public-home,
  body.auth-body{
    min-height:100svh!important;
    background:#dfe9ed!important;
  }

  body.public-home .oleb-native-wrapper{
    width:min(100%,var(--oleb-mobile-max))!important;
    min-height:100svh!important;
    margin:0 auto!important;
    position:relative!important;
    overflow-x:hidden!important;
    background:linear-gradient(180deg,#f8fbfb 0%,#eff7f7 100%)!important;
    box-shadow:0 0 38px rgba(7,27,53,.12)!important;
    padding-bottom:calc(78px + var(--oleb-safe-bottom))!important;
  }

  body.public-home .public-topbar{
    position:sticky!important;
    top:0!important;
    z-index:50!important;
    width:100%!important;
    min-height:64px!important;
    padding:
      calc(8px + var(--oleb-safe-top))
      calc(12px + var(--oleb-safe-right))
      8px
      calc(12px + var(--oleb-safe-left))!important;
    background:rgba(255,255,255,.96)!important;
    border-bottom:1px solid #d9e7eb!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
  }
  body.public-home .public-brand{gap:10px!important;min-width:0!important}
  body.public-home .public-logo{
    width:43px!important;height:43px!important;border-radius:14px!important;font-size:15px!important;
  }
  body.public-home .public-brand b{
    font-size:13px!important;line-height:1.17!important;white-space:normal!important;
  }
  body.public-home .public-brand small{display:none!important}
  body.public-home .public-actions{gap:7px!important}
  body.public-home .public-actions .public-link,
  body.public-home .public-actions .public-book{display:none!important}
  body.public-home .public-actions .public-cta{
    min-height:42px!important;
    padding:0 13px!important;
    font-size:11px!important;
    border-radius:14px!important;
    white-space:nowrap!important;
  }

  body.public-home .public-main{
    width:100%!important;
    padding:15px 12px 8px!important;
  }
  body.public-home .public-hero{
    display:block!important;
    padding:0!important;
  }
  body.public-home .public-copy{
    padding:18px!important;
    border-radius:24px!important;
    background:linear-gradient(145deg,#071b35 0%,#0b315c 73%,#08706f 120%)!important;
    box-shadow:0 14px 34px rgba(7,27,53,.14)!important;
  }
  body.public-home .eyebrow{
    color:#f2b93f!important;
    font-size:8.5px!important;
    letter-spacing:.12em!important;
  }
  body.public-home .public-copy h1{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-size:clamp(38px,11.5vw,50px)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
    margin:9px 0 13px!important;
    max-width:340px!important;
  }
  body.public-home .public-copy>p{
    color:#c8dbe1!important;
    font-size:12.5px!important;
    line-height:1.48!important;
    max-width:350px!important;
  }
  body.public-home .public-hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:16px!important;
  }
  body.public-home .public-hero-actions .btn{
    width:100%!important;
    min-height:46px!important;
    border-radius:14px!important;
    justify-content:center!important;
    font-size:12px!important;
  }
  body.public-home .hero-text-link{
    color:#7eeadd!important;
    text-align:center!important;
    padding:3px 0!important;
    font-size:10px!important;
  }
  body.public-home .public-trust{
    margin-top:12px!important;
    gap:6px!important;
  }
  body.public-home .public-trust span{
    color:#c6dce1!important;
    background:rgba(255,255,255,.06)!important;
    border-color:rgba(255,255,255,.10)!important;
    padding:5px 7px!important;
    font-size:8px!important;
  }
  body.public-home .pwa-quick-actions{margin-top:10px!important}
  body.public-home .pwa-control-btn{
    min-height:38px!important;
    padding:0 11px!important;
    border-radius:12px!important;
    font-size:10px!important;
    background:#fff!important;
  }

  /* Connected Care becomes a compact native grid directly beneath hero. */
  body.public-home .public-care-card{
    display:block!important;
    margin-top:10px!important;
    padding:12px!important;
    border-radius:22px!important;
    background:#fff!important;
    border:1px solid #dbe8ec!important;
    box-shadow:0 8px 22px rgba(7,27,53,.065)!important;
  }
  body.public-home .care-head{
    padding-bottom:9px!important;
    gap:9px!important;
  }
  body.public-home .care-icon{
    width:36px!important;height:36px!important;border-radius:12px!important;font-size:12px!important;
  }
  body.public-home .care-head small{
    color:#078a7e!important;font-size:8px!important;
  }
  body.public-home .care-head b{
    color:#10202e!important;font-size:12px!important;
  }
  body.public-home .care-grid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    margin-top:8px!important;
  }
  body.public-home .care-grid article{
    min-height:105px!important;
    padding:10px!important;
    border-radius:15px!important;
    background:#f7fbfb!important;
    border:1px solid #dfeaed!important;
  }
  body.public-home .care-grid article>span{
    font-size:8px!important;color:#078f83!important;
  }
  body.public-home .care-grid article>b{
    color:#10202e!important;font-size:11px!important;margin-top:4px!important;
  }
  body.public-home .care-grid article p{
    color:#687f89!important;
    font-size:8.8px!important;
    line-height:1.35!important;
    margin:5px 0!important;
  }
  body.public-home .care-action{
    color:#078f83!important;
    font-size:9px!important;
    white-space:nowrap!important;
  }

  /* Service cards collapse into compact, touch-friendly native rows. */
  body.public-home .public-services{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:10px!important;
  }
  body.public-home .public-card{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:10px!important;
    min-height:0!important;
    padding:12px!important;
    border-radius:18px!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(7,27,53,.055)!important;
  }
  body.public-home .service-icon{
    width:38px!important;height:38px!important;border-radius:12px!important;
  }
  body.public-home .public-card b{font-size:11px!important}
  body.public-home .public-card p{
    font-size:8.8px!important;
    line-height:1.35!important;
    margin:3px 0 0!important;
  }
  body.public-home .public-card a{
    font-size:9px!important;
    white-space:nowrap!important;
  }

  body.public-home .public-footer{
    margin:10px 12px 0!important;
    padding:10px 1px 4px!important;
    font-size:8px!important;
    border-top:1px solid #dce8ec!important;
  }

  /* True native bottom bar: fixed, safe-area aware, contained to app width. */
  body.public-home .public-bottom-nav{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:calc(8px + var(--oleb-safe-bottom))!important;
    transform:translateX(-50%)!important;
    z-index:100!important;
    width:min(calc(100% - 16px),calc(var(--oleb-mobile-max) - 16px))!important;
    min-height:64px!important;
    padding:5px!important;
    border-radius:21px!important;
    background:rgba(255,255,255,.97)!important;
    border:1px solid #d9e7eb!important;
    box-shadow:0 16px 38px rgba(7,27,53,.18)!important;
    backdrop-filter:blur(20px) saturate(160%)!important;
    -webkit-backdrop-filter:blur(20px) saturate(160%)!important;
  }
  body.public-home .public-bottom-nav a{
    min-height:52px!important;
    border-radius:16px!important;
    font-size:8px!important;
  }
  body.public-home .public-bottom-nav a b{font-size:16px!important}
  body.public-home .public-bottom-nav a.primary{
    background:#e9f8f5!important;color:#087f73!important;
  }

  /* Auth pages use the same contained Oleb mobile shell. */
  body.auth-body .auth-shell{
    width:min(100%,var(--oleb-mobile-max))!important;
    min-height:100svh!important;
    margin:0 auto!important;
    background:linear-gradient(180deg,#f8fbfb,#eff7f7)!important;
    box-shadow:0 0 38px rgba(7,27,53,.12)!important;
  }
  body.auth-body .auth-side,
  body.auth-body.auth-register .auth-side{
    padding:
      calc(12px + var(--oleb-safe-top))
      calc(12px + var(--oleb-safe-right))
      calc(82px + var(--oleb-safe-bottom))
      calc(12px + var(--oleb-safe-left))!important;
  }
  body.auth-body .auth-card,
  body.auth-body.auth-register .auth-card{
    border-radius:22px!important;
    padding:16px!important;
  }

  /* Authenticated workspace wrapper: compact native application shell. */
  body:not(.public-home):not(.auth-body) .app-shell{
    min-height:100svh!important;
  }
  body:not(.public-home):not(.auth-body) .topbar{
    position:sticky!important;
    top:0!important;
    z-index:40!important;
    min-height:62px!important;
    padding-top:calc(7px + var(--oleb-safe-top))!important;
  }
  body:not(.public-home):not(.auth-body) .content{
    padding:12px 12px calc(86px + var(--oleb-safe-bottom))!important;
  }
  body:not(.public-home):not(.auth-body) .panel,
  body:not(.public-home):not(.auth-body) .card,
  body:not(.public-home):not(.auth-body) .quick,
  body:not(.public-home):not(.auth-body) .list-row{
    border-radius:18px!important;
  }
  body:not(.public-home):not(.auth-body) .mobile-bottom,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom{
    bottom:calc(8px + var(--oleb-safe-bottom))!important;
    left:8px!important;right:8px!important;
    min-height:64px!important;
    border-radius:21px!important;
    padding:5px!important;
  }
}

/* Small phones: preserve content, never force sideways scroll. */
@media(max-width:370px){
  body.public-home .public-main{padding-left:9px!important;padding-right:9px!important}
  body.public-home .public-copy{padding:15px!important}
  body.public-home .public-copy h1{font-size:36px!important}
  body.public-home .care-grid{grid-template-columns:1fr 1fr!important}
  body.public-home .public-card{grid-template-columns:34px minmax(0,1fr)!important}
  body.public-home .public-card>a{grid-column:2!important;justify-self:start!important}
}


/* ==========================================================
   OLEB V29.12 — MOBILE BALANCE & TAB BAR ALIGNMENT
   ========================================================== */

@media(max-width:850px){
  /* One balanced hero card: every control follows one width and rhythm. */
  body.public-home .public-copy{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    padding:16px!important;
  }
  body.public-home .public-hero-actions{
    width:100%!important;
    margin-top:15px!important;
    gap:7px!important;
  }
  body.public-home .public-hero-actions .btn,
  body.public-home .hero-install-action,
  body.public-home .hero-install-action .pwa-control-btn{
    width:100%!important;
    max-width:none!important;
  }
  body.public-home .hero-install-action{
    margin:9px 0 0!important;
    display:block!important;
  }
  body.public-home .hero-install-action .pwa-control-btn{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    min-height:44px!important;
    padding:0 14px!important;
    border-radius:14px!important;
    color:#dffcf7!important;
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(126,234,221,.42)!important;
    box-shadow:none!important;
    font-size:11px!important;
    font-weight:800!important;
  }
  body.public-home .hero-install-action .pwa-control-btn:hover,
  body.public-home .hero-install-action .pwa-control-btn:focus-visible{
    background:rgba(255,255,255,.11)!important;
    border-color:#79e8d9!important;
  }
  body.public-home .hero-install-action .pwa-icon{
    color:#7eeadd!important;
    font-size:14px!important;
  }

  /* Trust tags remain compact and centered instead of widening the card. */
  body.public-home .public-trust{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    gap:5px!important;
    margin-top:10px!important;
  }
  body.public-home .public-trust span{
    min-height:25px!important;
    display:inline-flex!important;
    align-items:center!important;
    padding:0 8px!important;
    border-radius:999px!important;
  }

  /* Connected-care card: restore content labels and keep equal cells. */
  body.public-home .care-grid article{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    min-height:112px!important;
  }
  body.public-home .care-grid article>b{
    display:block!important;
    margin-top:4px!important;
  }
  body.public-home .care-grid article p{
    display:block!important;
    flex:1 1 auto!important;
    overflow:visible!important;
    opacity:1!important;
  }
  body.public-home .care-grid article .care-action{
    margin-top:auto!important;
    align-self:flex-start!important;
  }

  /* Service cards: equal internal alignment, no detached action buttons. */
  body.public-home .public-card{
    grid-template-columns:42px minmax(0,1fr)!important;
    grid-template-areas:
      "icon copy"
      "icon action"!important;
    align-items:start!important;
    padding:13px!important;
  }
  body.public-home .public-card .service-icon{grid-area:icon!important}
  body.public-home .public-card>div{grid-area:copy!important;min-width:0!important}
  body.public-home .public-card>a{
    grid-area:action!important;
    justify-self:start!important;
    margin-top:6px!important;
    min-height:31px!important;
    display:inline-flex!important;
    align-items:center!important;
    padding:0 10px!important;
    border-radius:10px!important;
    background:#eef9f7!important;
    border:1px solid #d6eeea!important;
  }

  /* Reserve exact tab-bar space in the page flow. */
  body.public-home .oleb-native-wrapper{
    padding-bottom:calc(72px + var(--oleb-safe-bottom))!important;
  }
  body.public-home .public-main{
    padding-bottom:12px!important;
  }
  body.public-home .public-footer{
    margin:10px 12px 0!important;
    padding:10px 0 14px!important;
  }

  /* Native tab bar: flush to the Oleb app shell, not a floating capsule. */
  body.public-home .public-bottom-nav{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:0!important;
    transform:translateX(-50%)!important;
    width:min(100%,var(--oleb-mobile-max))!important;
    min-height:calc(64px + var(--oleb-safe-bottom))!important;
    padding:
      5px
      calc(7px + var(--oleb-safe-right))
      calc(5px + var(--oleb-safe-bottom))
      calc(7px + var(--oleb-safe-left))!important;
    border-radius:0!important;
    border:0!important;
    border-top:1px solid #d8e7eb!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 -10px 28px rgba(7,27,53,.08)!important;
  }
  body.public-home .public-bottom-nav a{
    min-height:52px!important;
    border-radius:13px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    padding:4px 2px!important;
  }
  body.public-home .public-bottom-nav a.primary{
    background:#e8f7f4!important;
    color:#087f73!important;
  }
  body.public-home .public-bottom-nav a b{
    line-height:1!important;
    font-size:16px!important;
  }
  body.public-home .public-bottom-nav a span{
    line-height:1.1!important;
    font-size:8px!important;
    font-weight:800!important;
  }
}

/* Very narrow phones: reduce hero title slightly, preserve balanced controls. */
@media(max-width:340px){
  body.public-home .public-copy{padding:14px!important}
  body.public-home .public-copy h1{font-size:34px!important}
  body.public-home .care-grid{gap:6px!important}
  body.public-home .care-grid article{padding:9px!important}
}


/* ==========================================================
   OLEB V29.13 — STRONG READABILITY + BALANCED MOBILE SYSTEM
   One brand palette, no faded interface copy.
   ========================================================== */
:root{
  --oleb-navy:#071f3f;
  --oleb-navy-2:#0b315c;
  --oleb-teal:#078f83;
  --oleb-teal-strong:#006f67;
  --oleb-gold:#b97800;
  --oleb-ink:#10202e;
  --oleb-copy:#334f5d;
  --oleb-copy-strong:#203b48;
  --oleb-line:#cddde3;
  --oleb-soft:#edf6f6;
  --oleb-white:#ffffff;
}

/* ---------- GLOBAL READABILITY ---------- */
body{
  color:var(--oleb-ink)!important;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
p, li, dd, td, th, label, small,
.muted, .small, .empty, .details, .row-main,
.panel p, .card p, .quick p, .list-row p,
.page-head p, .panel-head p{
  opacity:1!important;
}
.muted, .small, .empty,
.panel p, .card p, .quick p, .list-row p,
.page-head p, .panel-head p,
td, .details{
  color:var(--oleb-copy)!important;
  -webkit-text-fill-color:var(--oleb-copy)!important;
}
label, th, .row-main, .panel-head b, .card b,
.page-head h1, .page-head h2, .page-head h3{
  color:var(--oleb-ink)!important;
  -webkit-text-fill-color:var(--oleb-ink)!important;
}
a:not(.btn){
  color:var(--oleb-teal-strong)!important;
  -webkit-text-fill-color:var(--oleb-teal-strong)!important;
  font-weight:750!important;
}
.eyebrow{
  color:var(--oleb-gold)!important;
  -webkit-text-fill-color:var(--oleb-gold)!important;
  font-weight:900!important;
}
.badge, .mini{
  opacity:1!important;
}

/* White/light cards: all secondary copy remains strongly readable. */
.panel, .card, .quick, .list-row, .metric,
.table-wrap, .table-card, .form-card,
body.public-home .public-card,
body.public-home .public-care-card{
  --local-copy:var(--oleb-copy);
}
.panel p, .card p, .quick p, .list-row p, .metric p,
.table-card p, .form-card p,
body.public-home .public-card p,
body.public-home .public-care-card p{
  color:var(--local-copy)!important;
  -webkit-text-fill-color:var(--local-copy)!important;
  opacity:1!important;
}

/* Dark Oleb surfaces: use deliberate bright text, never inherited faded copy. */
body.public-home .public-copy,
body.public-home .public-copy *,
.native-splash,
.native-splash *{
  --local-copy:#d9e8ed;
}
body.public-home .public-copy h1,
body.public-home .public-copy h2,
body.public-home .public-copy h3,
body.public-home .public-copy b,
body.public-home .public-copy strong{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body.public-home .public-copy>p{
  color:#d9e8ed!important;
  -webkit-text-fill-color:#d9e8ed!important;
  opacity:1!important;
}
body.public-home .public-copy .hero-text-link{
  color:#7cf0df!important;
  -webkit-text-fill-color:#7cf0df!important;
}
body.public-home .public-copy .public-trust span{
  color:#e8f5f6!important;
  -webkit-text-fill-color:#e8f5f6!important;
  opacity:1!important;
}

/* Connected-care dark desktop panel */
@media(min-width:851px){
  body.public-home .public-care-card{
    color:#fff!important;
  }
  body.public-home .public-care-card .care-head small,
  body.public-home .public-care-card .care-grid article>span{
    color:#61eadc!important;
    -webkit-text-fill-color:#61eadc!important;
  }
  body.public-home .public-care-card .care-head b,
  body.public-home .public-care-card .care-grid article>b{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }
  body.public-home .public-care-card .care-grid article p{
    color:#d1e3e9!important;
    -webkit-text-fill-color:#d1e3e9!important;
    opacity:1!important;
  }
  body.public-home .public-care-card .care-action{
    color:#67f0df!important;
    -webkit-text-fill-color:#67f0df!important;
  }
}

/* Inputs never use pale placeholder-like entered text. */
input, select, textarea{
  color:var(--oleb-ink)!important;
  -webkit-text-fill-color:var(--oleb-ink)!important;
  opacity:1!important;
}
input::placeholder, textarea::placeholder{
  color:#607b87!important;
  opacity:1!important;
}

/* ---------- PUBLIC DESKTOP BALANCE ---------- */
@media(min-width:851px){
  body.public-home .public-main{
    max-width:1600px!important;
    margin:0 auto!important;
    padding:20px clamp(28px,5vw,78px) 24px!important;
  }
  body.public-home .public-hero{
    grid-template-columns:minmax(0,1.08fr) minmax(420px,.82fr)!important;
    gap:clamp(22px,3.2vw,48px)!important;
    align-items:stretch!important;
  }
  body.public-home .public-copy,
  body.public-home .public-care-card{
    min-height:0!important;
    height:auto!important;
  }
  body.public-home .public-copy{
    padding:28px 34px!important;
  }
  body.public-home .public-copy h1{
    font-size:clamp(48px,4.7vw,72px)!important;
    line-height:.98!important;
    margin:8px 0 14px!important;
  }
  body.public-home .public-copy>p{
    font-size:14.5px!important;
    line-height:1.52!important;
  }
  body.public-home .public-hero-actions{
    margin-top:17px!important;
    gap:10px!important;
    align-items:center!important;
  }
  body.public-home .public-trust{
    margin-top:13px!important;
  }
  body.public-home .hero-install-action{
    margin-top:12px!important;
  }
  body.public-home .hero-install-action .pwa-control-btn{
    min-height:40px!important;
    padding:0 14px!important;
  }
  body.public-home .public-care-card{
    padding:18px!important;
  }
  body.public-home .care-grid article{
    min-height:124px!important;
  }
  body.public-home .public-services{
    margin-top:18px!important;
  }
}

/* ---------- MOBILE: TRUE SINGLE-COLUMN NATIVE RHYTHM ---------- */
@media(max-width:850px){
  html, body{
    overflow-x:hidden!important;
  }
  body.public-home .oleb-native-wrapper{
    width:min(100%,480px)!important;
    margin:0 auto!important;
    background:#f4f9f9!important;
  }
  body.public-home .public-main{
    padding:10px 10px 12px!important;
  }

  /* Top app bar: compact and balanced even at 318px. */
  body.public-home .public-topbar{
    min-height:58px!important;
    padding:
      calc(7px + var(--oleb-safe-top))
      calc(9px + var(--oleb-safe-right))
      7px
      calc(9px + var(--oleb-safe-left))!important;
  }
  body.public-home .public-brand{
    max-width:calc(100% - 118px)!important;
  }
  body.public-home .public-logo{
    flex:0 0 40px!important;
    width:40px!important;height:40px!important;
    border-radius:13px!important;
  }
  body.public-home .public-brand b{
    color:var(--oleb-teal)!important;
    -webkit-text-fill-color:var(--oleb-teal)!important;
    font-size:12px!important;
    line-height:1.08!important;
  }
  body.public-home .public-actions .public-cta{
    min-height:40px!important;
    max-width:112px!important;
    padding:0 10px!important;
    font-size:10px!important;
  }

  /* Hero card: same outer width as every card beneath it. */
  body.public-home .public-hero{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  body.public-home .public-copy,
  body.public-home .public-care-card,
  body.public-home .public-card{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  body.public-home .public-copy{
    padding:15px!important;
    border-radius:21px!important;
  }
  body.public-home .public-copy h1{
    font-size:clamp(34px,10.7vw,44px)!important;
    line-height:.98!important;
    margin:7px 0 11px!important;
    letter-spacing:-.042em!important;
  }
  body.public-home .public-copy>p{
    color:#dcebef!important;
    -webkit-text-fill-color:#dcebef!important;
    font-size:11.5px!important;
    line-height:1.44!important;
  }

  /* Main actions: equal full-width native controls. */
  body.public-home .public-hero-actions{
    margin-top:13px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  body.public-home .public-hero-actions .btn{
    min-height:43px!important;
    border-radius:13px!important;
    font-size:11px!important;
    padding:0 12px!important;
  }
  body.public-home .hero-text-link{
    min-height:28px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:9.5px!important;
  }
  body.public-home .public-trust{
    margin-top:8px!important;
    gap:4px!important;
  }
  body.public-home .public-trust span{
    min-height:23px!important;
    padding:0 7px!important;
    font-size:7.8px!important;
  }
  body.public-home .hero-install-action{
    margin-top:7px!important;
  }
  body.public-home .hero-install-action .pwa-control-btn{
    min-height:42px!important;
    border-radius:13px!important;
    font-size:10px!important;
  }

  /* Connected Care: clean white card with strong dark labels/copy. */
  body.public-home .public-care-card{
    margin-top:0!important;
    padding:12px!important;
    border-radius:20px!important;
    background:#fff!important;
  }
  body.public-home .care-head{
    padding-bottom:9px!important;
    margin-bottom:0!important;
  }
  body.public-home .care-head small{
    color:var(--oleb-teal-strong)!important;
    -webkit-text-fill-color:var(--oleb-teal-strong)!important;
    font-weight:900!important;
  }
  body.public-home .care-head b{
    color:var(--oleb-ink)!important;
    -webkit-text-fill-color:var(--oleb-ink)!important;
  }
  body.public-home .care-grid{
    grid-template-columns:1fr!important;
    gap:6px!important;
    margin-top:8px!important;
  }
  body.public-home .care-grid article{
    min-height:0!important;
    padding:11px 12px!important;
    border-radius:14px!important;
    display:grid!important;
    grid-template-columns:28px minmax(0,1fr) auto!important;
    grid-template-areas:
      "num title action"
      "num copy action"!important;
    column-gap:8px!important;
    row-gap:2px!important;
    align-items:center!important;
    background:#f4f9f9!important;
  }
  body.public-home .care-grid article>span{
    grid-area:num!important;
    align-self:start!important;
    color:var(--oleb-teal-strong)!important;
    -webkit-text-fill-color:var(--oleb-teal-strong)!important;
    font-size:8px!important;
    font-weight:900!important;
    padding-top:2px!important;
  }
  body.public-home .care-grid article>b{
    grid-area:title!important;
    color:var(--oleb-ink)!important;
    -webkit-text-fill-color:var(--oleb-ink)!important;
    font-size:10.5px!important;
    margin:0!important;
  }
  body.public-home .care-grid article p{
    grid-area:copy!important;
    color:var(--oleb-copy)!important;
    -webkit-text-fill-color:var(--oleb-copy)!important;
    font-size:8.7px!important;
    line-height:1.3!important;
    margin:1px 0 0!important;
  }
  body.public-home .care-grid article .care-action{
    grid-area:action!important;
    align-self:center!important;
    justify-self:end!important;
    margin:0!important;
    padding:0!important;
    font-size:8.7px!important;
    color:var(--oleb-teal-strong)!important;
    -webkit-text-fill-color:var(--oleb-teal-strong)!important;
    white-space:nowrap!important;
  }

  /* Service cards use the exact same full width and compact row geometry. */
  body.public-home .public-services{
    margin-top:9px!important;
    gap:7px!important;
  }
  body.public-home .public-card{
    min-height:0!important;
    padding:11px 12px!important;
    border-radius:18px!important;
    grid-template-columns:38px minmax(0,1fr) auto!important;
    grid-template-areas:"icon copy action"!important;
    gap:9px!important;
    align-items:center!important;
  }
  body.public-home .public-card .service-icon{
    width:38px!important;height:38px!important;
  }
  body.public-home .public-card>div{
    min-width:0!important;
  }
  body.public-home .public-card b{
    color:var(--oleb-ink)!important;
    -webkit-text-fill-color:var(--oleb-ink)!important;
    font-size:10.5px!important;
  }
  body.public-home .public-card p{
    color:var(--oleb-copy)!important;
    -webkit-text-fill-color:var(--oleb-copy)!important;
    font-size:8.5px!important;
    line-height:1.3!important;
    margin:2px 0 0!important;
  }
  body.public-home .public-card>a{
    margin:0!important;
    min-height:30px!important;
    padding:0 8px!important;
    font-size:8.2px!important;
    white-space:nowrap!important;
    justify-self:end!important;
  }

  /* Footer remains legible and cannot collide with tab bar. */
  body.public-home .public-footer{
    color:var(--oleb-copy-strong)!important;
    -webkit-text-fill-color:var(--oleb-copy-strong)!important;
    padding:9px 1px 12px!important;
    font-size:7.8px!important;
  }
  body.public-home .oleb-native-wrapper{
    padding-bottom:calc(68px + var(--oleb-safe-bottom))!important;
  }

  /* Native tab bar: exact 4-column balance, no overfloat. */
  body.public-home .public-bottom-nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    min-height:calc(60px + var(--oleb-safe-bottom))!important;
    padding:
      4px
      calc(5px + var(--oleb-safe-right))
      calc(4px + var(--oleb-safe-bottom))
      calc(5px + var(--oleb-safe-left))!important;
  }
  body.public-home .public-bottom-nav a{
    min-width:0!important;
    min-height:50px!important;
    border-radius:12px!important;
  }
  body.public-home .public-bottom-nav a b{
    color:var(--oleb-teal)!important;
    -webkit-text-fill-color:var(--oleb-teal)!important;
  }
  body.public-home .public-bottom-nav a span{
    color:#244955!important;
    -webkit-text-fill-color:#244955!important;
    font-size:7.7px!important;
  }
  body.public-home .public-bottom-nav a.primary span{
    color:var(--oleb-teal-strong)!important;
    -webkit-text-fill-color:var(--oleb-teal-strong)!important;
  }

  /* Auth + authenticated mobile pages inherit the same readability standard. */
  body.auth-body .auth-card,
  body:not(.public-home):not(.auth-body) .panel,
  body:not(.public-home):not(.auth-body) .card{
    color:var(--oleb-ink)!important;
  }
  body.auth-body .auth-sub,
  body.auth-body .auth-footer,
  body:not(.public-home):not(.auth-body) .muted,
  body:not(.public-home):not(.auth-body) .empty{
    color:var(--oleb-copy)!important;
    -webkit-text-fill-color:var(--oleb-copy)!important;
    opacity:1!important;
  }
}

/* 318–340px: prevent action text squeezing and keep one-column care rows. */
@media(max-width:340px){
  body.public-home .public-main{padding-left:8px!important;padding-right:8px!important}
  body.public-home .public-copy{padding:13px!important}
  body.public-home .public-copy h1{font-size:32px!important}
  body.public-home .public-brand{max-width:calc(100% - 108px)!important}
  body.public-home .public-actions .public-cta{
    max-width:102px!important;
    font-size:9px!important;
    padding:0 8px!important;
  }
  body.public-home .care-grid article{
    grid-template-columns:24px minmax(0,1fr)!important;
    grid-template-areas:
      "num title"
      "num copy"
      "num action"!important;
  }
  body.public-home .care-grid article .care-action{
    justify-self:start!important;
    margin-top:4px!important;
  }
  body.public-home .public-card{
    grid-template-columns:36px minmax(0,1fr)!important;
    grid-template-areas:
      "icon copy"
      "icon action"!important;
  }
  body.public-home .public-card>a{
    justify-self:start!important;
    margin-top:4px!important;
  }
}


/* ==========================================================
   OLEB V29.14 — SCROLL RECOVERY + SHARP SIDEBAR
   Fix stiff pages, sharpen internal shell, compact install prompt.
   ========================================================== */

/* ---------- SCROLLING / PAGE FLOW RECOVERY ---------- */
html{
  height:auto!important;
  min-height:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:auto!important;
}
body{
  min-height:100vh!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  position:relative!important;
}
body:not(.public-home):not(.auth-body){
  overflow-y:auto!important;
}
body:not(.public-home):not(.auth-body) .app-shell{
  min-height:100vh!important;
  height:auto!important;
  align-items:start!important;
  overflow:visible!important;
}
body:not(.public-home):not(.auth-body) .app-shell>main{
  min-width:0!important;
  min-height:100vh!important;
  height:auto!important;
  overflow:visible!important;
}
body:not(.public-home):not(.auth-body) .content{
  min-height:calc(100vh - 72px)!important;
  height:auto!important;
  overflow:visible!important;
}

/* Sidebar owns only its own scroll; it must never lock the document. */
body:not(.public-home):not(.auth-body) .sidebar{
  height:100vh!important;
  max-height:100vh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin!important;
  scrollbar-color:#20c8ba rgba(255,255,255,.08)!important;
}
body:not(.public-home):not(.auth-body) .sidebar::-webkit-scrollbar{width:6px!important}
body:not(.public-home):not(.auth-body) .sidebar::-webkit-scrollbar-track{
  background:rgba(255,255,255,.055)!important;
}
body:not(.public-home):not(.auth-body) .sidebar::-webkit-scrollbar-thumb{
  background:#21c4b7!important;
  border-radius:999px!important;
}

/* ---------- SHARP OLEB SIDEBAR ---------- */
body:not(.public-home):not(.auth-body) .sidebar{
  background:
    radial-gradient(circle at 10% 0%,rgba(35,224,207,.14),transparent 25%),
    linear-gradient(180deg,#061a36 0%,#082a50 48%,#075b61 100%)!important;
  color:#fff!important;
  border-right:1px solid rgba(66,229,215,.16)!important;
  box-shadow:12px 0 34px rgba(5,22,45,.18)!important;
  padding:20px 14px 24px!important;
}
body:not(.public-home):not(.auth-body) .sidebar .brand{
  margin:2px 7px 22px!important;
  color:#fff!important;
  font-size:20px!important;
  line-height:1.16!important;
}
body:not(.public-home):not(.auth-body) .sidebar .brandmark{
  background:linear-gradient(145deg,#25d5c5,#0a9c91)!important;
  color:#062c30!important;
  box-shadow:0 8px 20px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.3)!important;
}
body:not(.public-home):not(.auth-body) .sidebar .brand small{
  color:#93ebe0!important;
  -webkit-text-fill-color:#93ebe0!important;
  font-weight:800!important;
  opacity:1!important;
}
body:not(.public-home):not(.auth-body) .sidebar .nav-label{
  color:#89d8d2!important;
  -webkit-text-fill-color:#89d8d2!important;
  font-size:9px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  margin:17px 12px 7px!important;
  opacity:1!important;
}
body:not(.public-home):not(.auth-body) .sidebar nav{
  gap:3px!important;
  padding-bottom:110px!important;
}
body:not(.public-home):not(.auth-body) .sidebar nav a{
  color:#d9eef2!important;
  -webkit-text-fill-color:#d9eef2!important;
  min-height:40px!important;
  padding:9px 11px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  font-weight:720!important;
  opacity:1!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease!important;
}
body:not(.public-home):not(.auth-body) .sidebar nav a span{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
body:not(.public-home):not(.auth-body) .sidebar nav a:hover{
  background:rgba(255,255,255,.095)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(116,235,224,.16)!important;
  transform:translateX(2px)!important;
}
body:not(.public-home):not(.auth-body) .sidebar nav a.active{
  background:linear-gradient(90deg,rgba(27,214,197,.25),rgba(27,214,197,.10))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(79,234,221,.32)!important;
  box-shadow:inset 3px 0 0 #39e4d4,0 8px 18px rgba(0,0,0,.08)!important;
}
body:not(.public-home):not(.auth-body) .side-note{
  position:sticky!important;
  bottom:10px!important;
  left:auto!important;
  right:auto!important;
  margin:12px 7px 0!important;
  padding:13px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.055))!important;
  border:1px solid rgba(120,235,225,.18)!important;
  box-shadow:0 12px 26px rgba(0,0,0,.11)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
}
body:not(.public-home):not(.auth-body) .side-note b{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body:not(.public-home):not(.auth-body) .side-note span{
  color:#bce4e7!important;
  -webkit-text-fill-color:#bce4e7!important;
  opacity:1!important;
}

/* ---------- COMPACT FIRST-PARTY INSTALL PROMPT ---------- */
.pwa-install-banner{
  position:fixed!important;
  z-index:120!important;
  display:none!important;
  grid-template-columns:44px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:11px!important;
  width:min(520px,calc(100vw - 32px))!important;
  left:auto!important;
  right:16px!important;
  bottom:16px!important;
  padding:12px!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,#071f3f,#0b315c 72%,#08706f)!important;
  border:1px solid rgba(91,231,219,.24)!important;
  box-shadow:0 20px 54px rgba(7,27,53,.28)!important;
  color:#fff!important;
  box-sizing:border-box!important;
}
.pwa-install-banner.show{display:grid!important}
.pwa-install-icon{
  width:44px!important;height:44px!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,#2dd9c9,#0da99b)!important;
  color:#062c30!important;
  font-size:14px!important;
  font-weight:950!important;
}
.pwa-install-copy{
  min-width:0!important;
}
.pwa-install-copy b{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.pwa-install-copy span{
  color:#cce2e7!important;
  -webkit-text-fill-color:#cce2e7!important;
  font-size:9.5px!important;
  line-height:1.3!important;
  margin-top:2px!important;
  opacity:1!important;
}
.pwa-install-actions{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
.pwa-install-actions button{
  width:auto!important;
  min-width:58px!important;
  min-height:36px!important;
  padding:0 10px!important;
  border-radius:10px!important;
  border:1px solid transparent!important;
  font-size:9.5px!important;
  font-weight:900!important;
}
#pwaInstallBtn{
  background:#24cdbd!important;
  color:#062c30!important;
  -webkit-text-fill-color:#062c30!important;
}
#pwaInstallDismiss{
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.14)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* ---------- MOBILE INTERNAL SHELL ---------- */
@media(max-width:850px){
  html,body{
    height:auto!important;
    min-height:100%!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y!important;
  }
  body:not(.public-home):not(.auth-body) .app-shell{
    display:block!important;
    min-height:100svh!important;
  }
  body:not(.public-home):not(.auth-body) .sidebar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    width:min(86vw,310px)!important;
    height:100svh!important;
    max-height:100svh!important;
    transform:translateX(-104%)!important;
    transition:transform .22s ease!important;
    z-index:90!important;
  }
  body:not(.public-home):not(.auth-body) .sidebar.open,
  body:not(.public-home):not(.auth-body) .sidebar.is-open{
    transform:translateX(0)!important;
  }
  body:not(.public-home):not(.auth-body) .app-shell>main{
    width:100%!important;
    min-width:0!important;
    min-height:100svh!important;
  }
  body:not(.public-home):not(.auth-body) .topbar{
    position:sticky!important;
    top:0!important;
    z-index:50!important;
  }
  body:not(.public-home):not(.auth-body) .content{
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
  }

  .pwa-install-banner{
    left:10px!important;
    right:10px!important;
    bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;
    width:auto!important;
    grid-template-columns:40px minmax(0,1fr)!important;
    gap:9px!important;
    padding:10px!important;
    border-radius:16px!important;
  }
  .pwa-install-icon{
    width:40px!important;height:40px!important;border-radius:12px!important;
  }
  .pwa-install-copy b{font-size:11px!important}
  .pwa-install-copy span{font-size:8.7px!important}
  .pwa-install-actions{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:1fr 72px!important;
    gap:7px!important;
  }
  .pwa-install-actions button{
    min-height:38px!important;
    width:100%!important;
  }
}

/* Desktop sidebar stays sharp while normal page itself scrolls. */
@media(min-width:851px){
  body:not(.public-home):not(.auth-body) .sidebar{
    position:sticky!important;
    top:0!important;
  }
}



/* ==========================================================
   OLEB V29.15 — SIGNATURE NATIVE BOTTOM DOCK
   PaySlashes-family dock language adapted to Oleb clinical UI.
   ========================================================== */
@media(max-width:850px){
  /* Shared Oleb native dock shell */
  body.public-home .public-bottom-nav,
  body:not(.public-home):not(.auth-body) .mobile-bottom,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;
    width:auto!important;
    min-height:66px!important;
    padding:6px!important;
    gap:3px!important;
    border-radius:22px!important;
    background:linear-gradient(145deg,rgba(4,18,38,.985),rgba(5,31,57,.985))!important;
    border:1px solid rgba(80,218,207,.16)!important;
    box-shadow:0 16px 36px rgba(3,18,37,.28),inset 0 1px 0 rgba(255,255,255,.045)!important;
    backdrop-filter:blur(18px) saturate(130%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(130%)!important;
    z-index:88!important;
    overflow:visible!important;
  }

  body.public-home .public-bottom-nav a,
  body:not(.public-home):not(.auth-body) .mobile-bottom a,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a{
    min-width:0!important;
    min-height:54px!important;
    padding:4px 2px!important;
    border:0!important;
    border-radius:16px!important;
    background:transparent!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    color:#b9d1d8!important;
    -webkit-text-fill-color:#b9d1d8!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  body.public-home .public-bottom-nav a b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a b{
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
    border-radius:9px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1!important;
    color:#f5ffff!important;
    -webkit-text-fill-color:#f5ffff!important;
    background:linear-gradient(145deg,#128f86,#0a766f)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 6px 14px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.14)!important;
  }

  /* Four compact signature accents, matching the product-family dock idea. */
  body.public-home .public-bottom-nav a:nth-child(1) b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a:nth-child(1) b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a:nth-child(1) b{
    background:linear-gradient(145deg,#19b7a8,#087c73)!important;
  }
  body.public-home .public-bottom-nav a:nth-child(2) b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a:nth-child(2) b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a:nth-child(2) b{
    background:linear-gradient(145deg,#19a9cf,#0a6795)!important;
  }
  body.public-home .public-bottom-nav a:nth-child(3) b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a:nth-child(3) b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a:nth-child(3) b{
    background:linear-gradient(145deg,#d3a02a,#a87208)!important;
    color:#071b35!important;
    -webkit-text-fill-color:#071b35!important;
  }
  body.public-home .public-bottom-nav a:nth-child(4) b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a:nth-child(4) b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a:nth-child(4) b{
    background:linear-gradient(145deg,#1769e8,#0a4aa8)!important;
  }

  body.public-home .public-bottom-nav a span,
  body:not(.public-home):not(.auth-body) .mobile-bottom a span,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a span{
    color:#c5d9df!important;
    -webkit-text-fill-color:#c5d9df!important;
    font-size:7.7px!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    max-width:100%!important;
    line-height:1.05!important;
  }

  body.public-home .public-bottom-nav a.primary,
  body.public-home .public-bottom-nav a.active,
  body:not(.public-home):not(.auth-body) .mobile-bottom a.active,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a.active{
    background:rgba(22,197,194,.09)!important;
    box-shadow:inset 0 0 0 1px rgba(68,226,213,.10)!important;
  }
  body.public-home .public-bottom-nav a.primary span,
  body.public-home .public-bottom-nav a.active span,
  body:not(.public-home):not(.auth-body) .mobile-bottom a.active span,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a.active span{
    color:#f5ffff!important;
    -webkit-text-fill-color:#f5ffff!important;
  }
  body.public-home .public-bottom-nav a.primary b,
  body.public-home .public-bottom-nav a.active b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a.active b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a.active b{
    box-shadow:0 0 0 2px rgba(90,236,222,.18),0 7px 16px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.18)!important;
  }

  /* Notification count stays attached to its action tile. */
  body.public-home .public-nav-badge{
    top:0!important;
    right:calc(50% - 23px)!important;
    min-width:15px!important;
    height:15px!important;
    padding:0 3px!important;
    font-size:8px!important;
    background:#e2ad2f!important;
    color:#071b35!important;
    border:2px solid #071b35!important;
  }

  /* Reserve exact space for the dock, so cards never disappear under it. */
  body.public-home .oleb-native-wrapper{
    padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
  }
  body:not(.public-home):not(.auth-body) .content{
    padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))!important;
  }
}

@media(max-width:370px){
  body.public-home .public-bottom-nav,
  body:not(.public-home):not(.auth-body) .mobile-bottom,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom{
    left:7px!important;
    right:7px!important;
    min-height:62px!important;
    padding:5px 4px!important;
    border-radius:19px!important;
  }
  body.public-home .public-bottom-nav a,
  body:not(.public-home):not(.auth-body) .mobile-bottom a,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a{
    min-height:51px!important;
  }
  body.public-home .public-bottom-nav a b,
  body:not(.public-home):not(.auth-body) .mobile-bottom a b,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a b{
    width:25px!important;height:25px!important;min-width:25px!important;
    border-radius:8px!important;font-size:12px!important;
  }
  body.public-home .public-bottom-nav a span,
  body:not(.public-home):not(.auth-body) .mobile-bottom a span,
  body:not(.public-home):not(.auth-body) .mobile-staff-bottom a span{
    font-size:7.2px!important;
  }
}


/* ==========================================================
   OLEB V29.16 — DOCK WIDTH + MOBILE COLLISION FIX
   ========================================================== */

@media(max-width:850px){

  /* Public dock must remain completely inside the phone viewport. */
  body.public-home .public-bottom-nav{
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    width:calc(100% - 16px)!important;
    max-width:calc(var(--oleb-mobile-max) - 16px)!important;
    min-width:0!important;
    box-sizing:border-box!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    column-gap:4px!important;
    padding:
      6px
      calc(6px + var(--oleb-safe-right))
      calc(6px + var(--oleb-safe-bottom))
      calc(6px + var(--oleb-safe-left))!important;
    border-radius:18px 18px 0 0!important;
    overflow:hidden!important;
  }

  body.public-home .public-bottom-nav a{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    padding:3px 1px!important;
    overflow:hidden!important;
  }

  body.public-home .public-bottom-nav a b{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    margin:0 auto 2px!important;
    border-radius:9px!important;
    line-height:1!important;
    font-size:13px!important;
  }

  body.public-home .public-bottom-nav a span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    text-align:center!important;
    font-size:7.2px!important;
    line-height:1.05!important;
  }

  /* Ensure the page content never sits under the dock. */
  body.public-home .oleb-native-wrapper{
    padding-bottom:calc(78px + var(--oleb-safe-bottom))!important;
  }

  /* Connected Care rows: remove the title/action collision completely. */
  body.public-home .care-grid article{
    display:grid!important;
    grid-template-columns:25px minmax(0,1fr)!important;
    grid-template-areas:
      "num title"
      "num copy"
      "num action"!important;
    align-items:start!important;
    column-gap:8px!important;
    row-gap:3px!important;
    min-height:0!important;
    padding:11px 12px!important;
  }

  body.public-home .care-grid article>span{
    grid-area:num!important;
  }

  body.public-home .care-grid article>b{
    grid-area:title!important;
    min-width:0!important;
    margin:0!important;
    line-height:1.18!important;
  }

  body.public-home .care-grid article p{
    grid-area:copy!important;
    min-width:0!important;
    margin:0!important;
    line-height:1.32!important;
  }

  body.public-home .care-grid article .care-action{
    grid-area:action!important;
    justify-self:start!important;
    align-self:start!important;
    margin-top:3px!important;
    padding:4px 8px!important;
    border-radius:9px!important;
    background:#edf9f7!important;
    border:1px solid #d5efea!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }

  /* Service cards use the same safe stacking pattern at narrow widths. */
  body.public-home .public-card{
    grid-template-columns:38px minmax(0,1fr)!important;
    grid-template-areas:
      "icon copy"
      "icon action"!important;
    align-items:start!important;
  }

  body.public-home .public-card>a{
    justify-self:start!important;
    margin-top:4px!important;
  }
}

/* Extra guard for the 318px viewport used in testing. */
@media(max-width:340px){
  body.public-home .public-bottom-nav{
    width:calc(100% - 10px)!important;
    max-width:calc(100% - 10px)!important;
    column-gap:2px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }

  body.public-home .public-bottom-nav a b{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    font-size:12px!important;
  }

  body.public-home .public-bottom-nav a span{
    font-size:6.8px!important;
  }

  body.public-home .care-grid article{
    grid-template-columns:22px minmax(0,1fr)!important;
    column-gap:7px!important;
    padding:10px!important;
  }

  body.public-home .care-grid article .care-action{
    max-width:100%!important;
    white-space:normal!important;
  }
}

/* ==========================================================
   OLEB V29.17 — MOBILE CONTENT PRIORITY
   Hide redundant Connected Care summary card on mobile only.
   ========================================================== */
@media (max-width:850px){
  body.public-home .public-care-card{
    display:none!important;
  }
  body.public-home .public-hero{
    gap:0!important;
  }
  body.public-home .public-services{
    margin-top:9px!important;
  }
}


/* ==========================================================
   OLEB V29.18 — MOBILE ESSENTIAL HOME
   Hide secondary public service cards on mobile only.
   Desktop remains unchanged.
   ========================================================== */
@media (max-width:850px){
  body.public-home .public-services{
    display:none!important;
  }

  /* With the secondary cards removed, keep only enough clearance
     for the fixed native bottom dock. */
  body.public-home .public-main{
    padding-bottom:calc(78px + var(--oleb-safe-bottom))!important;
  }
}


/* ==========================================================
   OLEB V29.19 — MOBILE FOOTER GAP FIX
   Collapse the unused page area after hidden service cards.
   ========================================================== */
@media (max-width:850px){
  body.public-home,
  body.public-home .oleb-native-wrapper{
    min-height:0!important;
  }

  body.public-home .public-main{
    min-height:0!important;
    height:auto!important;
    padding-bottom:calc(88px + var(--oleb-safe-bottom))!important;
  }

  body.public-home .public-hero{
    margin-bottom:0!important;
  }

  body.public-home .public-services,
  body.public-home .public-footer{
    display:none!important;
  }

  /* Keep the native dock close to content while remaining fixed
     and leave only normal mobile-safe breathing room. */
  body.public-home .oleb-native-wrapper{
    padding-bottom:0!important;
  }
}
