@font-face{font-family:Vazirmatn;src:url('./fonts/Vazirmatn.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{
  --ink:#153b3b;--ink-2:#2b5352;--muted:#708786;--line:#dfeae8;--surface:#fff;--canvas:#f4f8f7;
  --primary:#087d79;--primary-2:#0ba39c;--primary-soft:#e3f5f2;--navy:#153d43;--mint:#d8f1ec;
  --coral:#ef7f69;--amber:#e2aa47;--blue:#5d8fd7;--purple:#8d79cb;--danger:#c95757;
  --shadow:0 22px 60px rgba(19,62,61,.09);--shadow-sm:0 10px 30px rgba(19,62,61,.07);
  --radius-xl:30px;--radius-lg:24px;--radius-md:18px;--radius-sm:13px;--max:1380px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Vazirmatn,Tahoma,sans-serif;color:var(--ink);background:var(--canvas);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img,svg{display:block;max-width:100%}
.portal-icon{width:22px;height:22px;flex:0 0 auto}
::selection{background:#bceae3;color:#103b39}

/* Patient application shell — intentionally different from the CRM/admin layout */
.patient-app{min-height:100vh;display:flex;flex-direction:column;background:
  radial-gradient(circle at 7% 2%,rgba(72,188,176,.13),transparent 25rem),
  radial-gradient(circle at 96% 25%,rgba(231,170,101,.09),transparent 28rem),var(--canvas)}
.patient-header{position:sticky;top:0;z-index:80;padding:16px 22px 0;background:linear-gradient(180deg,rgba(244,248,247,.97),rgba(244,248,247,.82),transparent);backdrop-filter:blur(14px)}
.patient-header-inner{max-width:var(--max);height:82px;margin:auto;padding:10px 12px 10px 18px;border:1px solid rgba(217,232,229,.9);border-radius:25px;background:rgba(255,255,255,.92);box-shadow:0 13px 42px rgba(21,59,59,.07);display:flex;align-items:center;gap:20px}
.patient-brand{display:flex;align-items:center;gap:11px;min-width:max-content}
.patient-brand-mark{width:58px;height:58px;border-radius:19px;background:linear-gradient(145deg,#fff,#edf8f6);border:1px solid #dcebe8;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 4px rgba(255,255,255,.7)}
.patient-brand-mark img{width:48px;height:48px;object-fit:contain}
.patient-brand>span:last-child{display:grid;line-height:1.35}
.patient-brand strong{font-size:.96rem;font-weight:850}
.patient-brand small{font-size:.7rem;color:var(--muted);margin-top:4px}
.patient-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:4px}
.patient-nav a{height:46px;padding:0 13px;border-radius:15px;display:flex;align-items:center;gap:7px;color:#4d6968;font-weight:700;white-space:nowrap;transition:.22s ease}
.patient-nav a .portal-icon{width:19px;height:19px}
.patient-nav a:hover{background:#f0f7f5;color:var(--primary)}
.patient-nav a.active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px #cdebe6}
.patient-nav a.locked{opacity:.58}
.patient-actions{display:flex;align-items:center;gap:9px;margin-right:auto}
.patient-booking-action{height:48px;padding:0 17px;border-radius:15px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;display:flex;align-items:center;gap:8px;font-weight:850;box-shadow:0 12px 25px rgba(8,125,121,.2);white-space:nowrap;transition:.2s ease}
.patient-booking-action:hover{transform:translateY(-2px);box-shadow:0 15px 30px rgba(8,125,121,.25)}
.patient-booking-action .portal-icon{width:19px}
.patient-account{display:flex;align-items:center;gap:9px;padding:5px 7px 5px 6px;border:1px solid var(--line);border-radius:17px;background:#fbfdfd}
.profile-avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#d8f2ed,#f3fbfa);display:grid;place-items:center;color:var(--primary);font-weight:900;border:1px solid #cde8e4;flex:0 0 auto}
.patient-account>span{display:grid;line-height:1.3;min-width:86px}
.patient-account strong{font-size:.78rem;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.patient-account small{font-size:.65rem;color:var(--muted);margin-top:4px}
.patient-account form{margin:0}
.patient-account button{width:36px;height:36px;border:0;border-radius:12px;background:#fff;color:#8ba09f;display:grid;place-items:center;transition:.2s}
.patient-account button:hover{background:#fff0ee;color:var(--danger)}
.patient-account button .portal-icon{width:18px}
.portal-menu-button{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);place-items:center}

/* Mobile drawer */
.patient-drawer{position:fixed;z-index:110;top:0;right:0;width:min(88vw,370px);height:100dvh;padding:18px;background:#fff;transform:translateX(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);box-shadow:-22px 0 70px rgba(17,50,50,.18);display:flex;flex-direction:column}
.patient-drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px;border-bottom:1px solid var(--line)}
.drawer-close{width:42px;height:42px;border:0;border-radius:14px;background:#f0f6f5;font-size:1.6rem;color:var(--ink)}
.drawer-nav{display:grid;gap:7px;padding:18px 0;overflow:auto}
.drawer-nav a{display:grid;grid-template-columns:46px minmax(0,1fr) 20px;align-items:center;gap:11px;padding:10px 12px;border-radius:17px;color:#456361}
.drawer-nav a>i{width:46px;height:46px;border-radius:15px;background:#f1f7f6;display:grid;place-items:center;color:var(--primary)}
.drawer-nav a>span{display:grid;line-height:1.35}
.drawer-nav a strong{font-size:.92rem}
.drawer-nav a small{font-size:.7rem;color:var(--muted);margin-top:4px}
.drawer-nav a>.portal-icon{width:17px}
.drawer-nav a.active{background:var(--primary-soft);color:var(--primary)}
.drawer-nav a.active>i{background:#fff}
.drawer-nav a.locked{opacity:.62}
.drawer-account{margin-top:auto;padding:14px;border-radius:20px;background:linear-gradient(145deg,#113f42,#0a716f);color:#fff;display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:center}
.drawer-account .profile-avatar{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:#fff}
.drawer-account>div:nth-child(2){display:grid;line-height:1.4}
.drawer-account small{opacity:.72}
.drawer-account form{grid-column:1/-1}
.drawer-account button{width:100%;height:42px;border:0;border-radius:13px;background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px}
.portal-overlay{position:fixed;inset:0;z-index:100;background:rgba(10,37,37,.42);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.25s}
.portal-overlay.open{opacity:1;visibility:visible}
.mobile-magic-nav{display:none}

/* Page head and container */
.portal-content{flex:1;display:flex;flex-direction:column;min-width:0}
.portal-main{width:min(calc(100% - 44px),var(--max));margin:0 auto;padding:34px 0 54px;flex:1}
.portal-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 4px 26px}
.page-title-block{max-width:760px}
.page-meta-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.eyebrow,.panel-kicker,.auth-kicker{display:inline-flex;align-items:center;width:max-content;padding:6px 11px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;font-weight:850;letter-spacing:-.01em}
.page-meta-row time{font-size:.76rem;color:var(--muted)}
.portal-page-head h1{font-size:clamp(1.65rem,3vw,2.6rem);line-height:1.25;margin:0;font-weight:900;letter-spacing:-.045em}
.portal-page-head p{margin:9px 0 0;color:var(--muted);max-width:680px}
.page-security-chip{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:17px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);min-width:max-content}
.page-security-chip>.portal-icon{color:var(--primary)}
.page-security-chip span{display:grid;line-height:1.3}
.page-security-chip strong{font-size:.78rem}
.page-security-chip small{font-size:.67rem;color:var(--muted);margin-top:3px}
.profile-progress{width:260px;padding:13px 15px;border-radius:19px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:1fr 20px;gap:9px 10px;align-items:center}
.profile-progress span{display:flex;align-items:center;justify-content:space-between}
.profile-progress small{font-size:.75rem;color:var(--muted)}
.profile-progress strong{color:var(--primary)}
.profile-progress>i{height:6px;border-radius:99px;background:#e8f1ef;overflow:hidden;grid-column:1}
.profile-progress>i b{height:100%;display:block;background:linear-gradient(90deg,var(--primary),#4ec7bb);border-radius:inherit}
.profile-progress>.portal-icon{grid-column:2;grid-row:1/3;width:18px;color:var(--primary)}

/* Shared UI */
.portal-panel{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 14px 42px rgba(21,59,59,.045);overflow:hidden}
.panel-head{min-height:86px;padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}
.panel-head>div{min-width:0}
.panel-head h2{font-size:1.15rem;line-height:1.35;margin:7px 0 0;font-weight:900}
.panel-head p{margin:5px 0 0;color:var(--muted);font-size:.82rem}
.panel-link{display:flex;align-items:center;gap:6px;color:var(--primary);font-size:.78rem;font-weight:850;white-space:nowrap}
.panel-link .portal-icon{width:17px}
.portal-primary{min-height:50px;padding:0 19px;border:0;border-radius:15px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;box-shadow:0 12px 26px rgba(8,125,121,.18);transition:.2s ease}
.portal-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(8,125,121,.24)}
.portal-primary:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}
.portal-primary.compact{min-height:44px;padding:0 15px}
.portal-alert{margin-bottom:18px;padding:14px 17px;border-radius:17px;display:flex;align-items:flex-start;gap:10px;border:1px solid}
.portal-alert.success{background:#edf9f4;border-color:#cbeadc;color:#276c55}
.portal-alert.danger{background:#fff1f0;border-color:#f2d2cf;color:#974946}
.portal-alert.warning{background:#fff8e8;border-color:#f1dfb4;color:#8b6724}
.portal-alert .portal-icon{width:20px;margin-top:2px}
.status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:3px 10px;border-radius:99px;font-size:.7rem;font-weight:850;white-space:nowrap}
.status.success{background:#e6f6ed;color:#287352}.status.danger{background:#ffeded;color:#a94747}.status.info{background:#e8f2fc;color:#3e70a7}.status.warning{background:#fff4d9;color:#946b24}
.empty-state{padding:48px 22px;text-align:center;color:var(--muted)}
.empty-state>.portal-icon{width:42px;height:42px;margin:0 auto 12px;color:#a4c5c0}
.empty-state h3{color:var(--ink);margin:0 0 5px;font-size:1rem}
.empty-state p{margin:0;font-size:.82rem}
.empty-state.full{grid-column:1/-1}

/* Forms */
label{display:grid;gap:8px;font-weight:750;color:var(--ink-2)}
label>span{font-size:.78rem}
input,select,textarea{width:100%;border:1px solid #d9e7e4;border-radius:14px;background:#fbfdfd;outline:0;transition:.2s;padding:0 14px}
input,select{height:50px}
textarea{padding-top:12px;resize:vertical;min-height:100px}
input:focus,select:focus,textarea:focus{background:#fff;border-color:#67bdb5;box-shadow:0 0 0 4px rgba(31,154,145,.1)}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#6e8a88 50%),linear-gradient(135deg,#6e8a88 50%,transparent 50%);background-position:15px 21px,10px 21px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-left:32px}

/* Dashboard */
.onboarding-card{margin-bottom:18px;padding:22px 24px;border-radius:var(--radius-lg);background:linear-gradient(120deg,#fff7e9,#fff);border:1px solid #f1dfbd;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:17px;box-shadow:var(--shadow-sm)}
.onboarding-icon{width:58px;height:58px;border-radius:19px;background:#fff0cf;color:#b98124;display:grid;place-items:center}
.onboarding-card span{font-size:.74rem;color:#a47626;font-weight:850}.onboarding-card h2{font-size:1.15rem;margin:2px 0}.onboarding-card p{margin:0;color:#7e745f;font-size:.8rem}
.welcome-card{position:relative;overflow:hidden;min-height:225px;margin-bottom:18px;padding:34px 38px;border-radius:var(--radius-xl);background:
  radial-gradient(circle at 9% 120%,rgba(108,222,207,.35),transparent 28%),
  linear-gradient(125deg,#123f43 0%,#087b77 58%,#1aa39a 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:0 24px 52px rgba(12,96,93,.18)}
.welcome-card:after{content:"";position:absolute;inset:auto -90px -160px auto;width:390px;height:390px;border-radius:50%;border:1px solid rgba(255,255,255,.13)}
.welcome-card>div{position:relative;z-index:1}
.welcome-label{display:inline-flex;padding:6px 11px;border-radius:99px;background:rgba(255,255,255,.13);font-size:.73rem;font-weight:800}
.welcome-card h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:12px 0 6px;letter-spacing:-.04em}.welcome-card p{margin:0;opacity:.8}
.welcome-action{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:11px 15px;border-radius:14px;background:#fff;color:#086e6b;font-weight:850;font-size:.82rem}
.welcome-action .portal-icon{width:18px}
.next-appointment{min-width:300px;padding:22px 24px;border-radius:23px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);display:grid;gap:3px}
.next-appointment>span{display:flex;align-items:center;gap:7px;font-size:.75rem;opacity:.82}.next-appointment>span .portal-icon{width:18px}.next-appointment strong{font-size:1.45rem;margin-top:8px}.next-appointment b{font-size:.92rem}.next-appointment small{opacity:.72;margin-top:5px}
.welcome-illustration{width:190px;height:155px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;position:relative}.welcome-illustration>.portal-icon{width:82px;height:82px}.welcome-illustration i{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;opacity:.65}.welcome-illustration i:nth-child(2){top:20px;right:30px}.welcome-illustration i:nth-child(3){bottom:32px;left:28px}.welcome-illustration i:nth-child(4){top:62px;left:12px;width:6px;height:6px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.metric-card{min-height:124px;padding:19px;border-radius:22px;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:1fr auto;gap:10px 13px;align-items:center;box-shadow:0 12px 35px rgba(21,59,59,.04);transition:.2s}
.metric-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.metric-icon{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;grid-row:1/3}.metric-icon.calendar{background:#e3f5f2;color:#078279}.metric-icon.record{background:#edf1fb;color:#6686c6}.metric-icon.tooth{background:#fff0e9;color:#db795f}.metric-icon.file{background:#f3edfb;color:#896bc2}
.metric-card>div{display:grid;line-height:1.25}.metric-card span{font-size:.73rem;color:var(--muted)}.metric-card strong{font-size:1.5rem;margin-top:5px}.metric-card>a{grid-column:2;color:var(--primary);font-size:.7rem;font-weight:850}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:18px;margin-bottom:18px}.span-2{min-width:0}
.appointment-list{padding:6px 20px 13px}.appointment-list article{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px dashed #e1ebe9}.appointment-list article:last-child{border-bottom:0}
.appointment-date{width:58px;height:58px;border-radius:17px;background:#edf8f6;display:grid;place-content:center;text-align:center;line-height:1.15;color:var(--primary)}.appointment-date strong{font-size:1.05rem}.appointment-date span{font-size:.62rem;margin-top:4px}
.appointment-info h3{font-size:.9rem;margin:0}.appointment-info p{font-size:.75rem;color:var(--muted);margin:4px 0 0}
.quick-links{padding:11px 15px 16px;display:grid;gap:6px}.quick-links>a{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:9px;border-radius:15px;transition:.2s}.quick-links>a:hover{background:#f1f7f6}.quick-links i{width:44px;height:44px;border-radius:14px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.quick-links span{display:grid;line-height:1.35}.quick-links strong{font-size:.82rem}.quick-links small{font-size:.67rem;color:var(--muted);margin-top:3px}.quick-links>a>.portal-icon{width:17px;color:#93aaa8}
.recent-treatment{margin-top:18px}.recent-treatment-body{padding:22px 24px;display:flex;align-items:center;gap:14px}.recent-treatment-body>i{width:54px;height:54px;border-radius:18px;background:#fff0e9;color:var(--coral);display:grid;place-items:center}.recent-treatment-body strong{font-size:.95rem}.recent-treatment-body p{margin:4px 0 0;color:var(--muted);font-size:.78rem}

/* Booking */
.booking-shell{overflow:hidden;border-radius:var(--radius-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.booking-intro{padding:27px 30px;background:linear-gradient(115deg,#123f43,#087d79);color:#fff}.booking-intro .panel-kicker{background:rgba(255,255,255,.13);color:#fff}.booking-intro h2{font-size:1.45rem;margin:10px 0 4px}.booking-intro p{margin:0;opacity:.76;font-size:.84rem}
.booking-form{padding:25px 28px 29px}.booking-filters{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.week-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:5px 0 13px;padding:10px;border-radius:17px;background:#f1f7f6}.week-toolbar>div{text-align:center;display:grid;line-height:1.35}.week-toolbar span{font-size:.65rem;color:var(--muted)}.week-toolbar strong{font-size:.86rem;margin-top:3px}.week-nav{min-height:42px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800}.week-nav .portal-icon{width:17px}.week-nav.next .portal-icon{transform:rotate(180deg)}.week-nav:disabled{opacity:.38;cursor:not-allowed}
.weekly-calendar{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:9px;min-height:240px;overflow-x:auto;padding-bottom:7px;scrollbar-color:#bcd8d3 transparent;scrollbar-width:thin}
.day-column{min-width:130px;border:1px solid var(--line);border-radius:18px;background:#fbfdfd;overflow:hidden}.day-column.today{border-color:#79c8bf;box-shadow:inset 0 0 0 1px #9edbd4}.day-column.friday{background:#fff9f7}.day-column.outside{opacity:.55}
.day-head{padding:11px;text-align:center;border-bottom:1px solid var(--line);display:grid;gap:2px}.day-head span{font-size:.69rem;color:var(--muted)}.day-head strong{font-size:.83rem}.day-head small{min-height:16px;color:var(--primary);font-size:.62rem;font-weight:850}
.day-slots{padding:9px;display:grid;gap:7px;max-height:325px;overflow:auto}.slot-button{min-height:38px;border:1px solid #d5e7e4;border-radius:11px;background:#fff;color:#315b59;font-size:.73rem;font-weight:800;transition:.18s}.slot-button:hover{border-color:#69beb5;color:var(--primary);background:#f0faf8}.slot-button.selected{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 8px 16px rgba(8,125,121,.18)}.no-slots{padding:18px 5px;text-align:center;font-size:.66rem;color:#9aabaa;line-height:1.65}
.calendar-placeholder{grid-column:1/-1;min-height:240px;border:1px dashed #cbdedb;border-radius:19px;display:grid;place-content:center;text-align:center;color:var(--muted);padding:20px}.calendar-placeholder>.portal-icon{width:40px;height:40px;margin:0 auto 9px;color:#86b9b2}.calendar-placeholder h3{margin:0;color:var(--ink);font-size:.95rem}.calendar-placeholder p{margin:4px 0 0;font-size:.76rem}.calendar-placeholder.loading>.portal-icon{animation:softPulse 1.2s infinite}
@keyframes softPulse{50%{opacity:.35;transform:scale(.92)}}
.booking-bottom{display:grid;grid-template-columns:minmax(250px,1fr) minmax(260px,1fr) auto;gap:12px;align-items:end;margin-top:17px}.booking-note small{font-weight:400;color:var(--muted)}
.selected-slot{min-height:50px;padding:7px 12px;border-radius:14px;background:#f1f7f6;display:flex;align-items:center;gap:9px}.selected-slot>i{width:36px;height:36px;border-radius:11px;background:#fff;color:var(--primary);display:grid;place-items:center}.selected-slot span{display:grid;line-height:1.3}.selected-slot small{font-size:.62rem;color:var(--muted)}.selected-slot strong{font-size:.75rem;margin-top:3px}.booking-submit{min-width:160px}
.appointment-history{margin-top:18px}.responsive-table{width:100%;overflow:auto}.responsive-table table{width:100%;border-collapse:collapse;min-width:850px}.responsive-table th,.responsive-table td{text-align:right;padding:15px 20px;border-bottom:1px solid var(--line);font-size:.78rem}.responsive-table th{font-size:.69rem;color:var(--muted);background:#fbfdfd}.responsive-table td strong{display:block}.responsive-table td small{display:block;color:var(--muted);font-size:.64rem;margin-top:3px}.responsive-table tbody tr:hover{background:#fbfefd}

/* Records */
.record-timeline{padding:20px 24px}.timeline-item{position:relative;display:grid;grid-template-columns:78px 52px minmax(0,1fr);gap:13px;padding:13px 0}.timeline-item:not(:last-child):after{content:"";position:absolute;right:103px;top:65px;bottom:-9px;width:1px;background:#dce8e6}.timeline-date{display:grid;text-align:center;align-content:start;line-height:1.4}.timeline-date strong{font-size:.75rem}.timeline-date span{font-size:.64rem;color:var(--muted)}.timeline-item>i{width:48px;height:48px;border-radius:16px;background:#edf8f6;color:var(--primary);display:grid;place-items:center;z-index:1}.timeline-content{padding:2px 0 15px}.timeline-content>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-content h3{font-size:.95rem;margin:0}.timeline-content p{margin:5px 0;color:var(--muted);font-size:.75rem}.timeline-content blockquote{margin:9px 0 0;padding:11px 13px;border-radius:13px;background:#f5f9f8;border-right:3px solid #9bcfc9;font-size:.76rem;color:#526d6b}
.treatment-plans{margin-top:18px}.plan-grid{padding:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.plan-grid article{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fbfdfd}.plan-grid article>div{display:flex;align-items:center;justify-content:space-between}.plan-grid article i{width:42px;height:42px;border-radius:13px;background:#eaf4fc;color:#5686b7;display:grid;place-items:center}.plan-grid h3{font-size:.9rem;margin:13px 0 4px}.plan-grid p,.plan-grid small{font-size:.7rem;color:var(--muted);margin:0}

/* Dental chart */
.dental-body{padding:22px}.chart-legend{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.chart-legend span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:99px;background:#f5f9f8;font-size:.67rem;color:#526d6b}.chart-legend i{width:11px;height:11px;border-radius:50%;border:1px solid #cbd8d6}
.jaw-label{text-align:center;font-size:.76rem;font-weight:850;color:var(--muted);margin:8px 0 10px}.jaw-divider{height:1px;background:linear-gradient(90deg,transparent,#d9e7e4,transparent);margin:22px 0}
.dental-chart{display:grid;grid-template-columns:repeat(16,minmax(54px,1fr));gap:7px;overflow-x:auto;padding:7px 3px 12px}.tooth-card{min-width:54px;padding:10px 5px 8px;border:1px solid var(--line);border-radius:15px;background:#fff;text-align:center;display:grid;justify-items:center;gap:3px}.tooth-card svg{width:31px;height:46px;fill:var(--tooth-color);stroke:#597472;stroke-width:1.2}.tooth-card b{font-size:.7rem}.tooth-card small{font-size:.55rem;color:var(--muted);white-space:nowrap}
.chart-notes{margin-top:18px}.note-grid{padding:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.note-grid article{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fbfdfd}.note-grid article>div{display:flex;align-items:center;justify-content:space-between}.note-grid p{font-size:.7rem;color:var(--muted)}.note-grid blockquote{margin:9px 0 0;padding:11px;border-radius:12px;background:#fff;border-right:3px solid #9bcfc9;font-size:.75rem}

/* Documents */
.document-grid{padding:19px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.document-card{position:relative;padding:18px;border:1px solid var(--line);border-radius:19px;background:#fbfdfd;min-height:205px;display:flex;flex-direction:column;align-items:flex-start}.document-icon{width:48px;height:48px;border-radius:15px;background:#e8f2fb;color:#5683ad;display:grid;place-items:center;margin-bottom:15px}.document-card>.status{position:absolute;top:18px;left:18px}.document-card h3{font-size:.9rem;margin:0}.document-card p{font-size:.69rem;color:var(--muted);margin:6px 0}.document-card a{margin-top:auto;display:flex;align-items:center;gap:6px;color:var(--primary);font-size:.75rem;font-weight:850}.document-card a .portal-icon{width:17px}

/* Profile */
.profile-onboarding{margin-bottom:18px;padding:20px 22px;border-radius:22px;background:linear-gradient(120deg,#fff8e9,#fff);border:1px solid #f0ddb6;display:grid;grid-template-columns:56px minmax(0,1fr);gap:15px;align-items:center}.profile-onboarding>i{width:56px;height:56px;border-radius:18px;background:#fff0cc;color:#af7a23;display:grid;place-items:center}.profile-onboarding span{font-size:.7rem;color:#a17425;font-weight:850}.profile-onboarding h2{font-size:1.05rem;margin:2px 0}.profile-onboarding p{font-size:.78rem;color:#7d735f;margin:0}
.profile-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;align-items:start}.profile-card{position:sticky;top:118px;padding:25px;border-radius:var(--radius-lg);background:linear-gradient(155deg,#123f43,#087b77);color:#fff;display:grid;justify-items:center;text-align:center;box-shadow:0 20px 45px rgba(12,96,93,.18)}.profile-avatar.large{width:78px;height:78px;border-radius:25px;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.2);color:#fff;font-size:1.25rem}.profile-card h2{font-size:1.05rem;margin:12px 0 7px}.profile-card>.status{background:rgba(255,255,255,.14);color:#fff}.profile-facts{width:100%;margin-top:19px;display:grid;gap:1px;background:rgba(255,255,255,.12);border-radius:17px;overflow:hidden}.profile-facts div{padding:11px 13px;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:right}.profile-facts span{font-size:.67rem;opacity:.7}.profile-facts strong{font-size:.72rem}.profile-security{margin-top:15px;padding:12px;border-radius:15px;background:rgba(255,255,255,.09);display:flex;align-items:flex-start;gap:8px;text-align:right}.profile-security .portal-icon{width:18px;opacity:.8}.profile-security p{font-size:.67rem;margin:0;opacity:.75}
.profile-form{padding:23px}.form-section+ .form-section{margin-top:24px;padding-top:23px;border-top:1px solid var(--line)}.form-section h3{font-size:.92rem;margin:0 0 15px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-section>label+label{margin-top:14px}.form-section label small{font-size:.67rem;color:var(--muted);font-weight:400}.form-actions{display:flex;justify-content:flex-end;margin-top:22px}
.jalali-field{position:relative}.jalali-input-row{display:block}.jalali-display-wrap{position:relative}.jalali-manual-input{padding-left:52px;text-align:right}.jalali-open-button{position:absolute;left:6px;top:6px;width:38px;height:38px;border:0;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.jalali-open-button .portal-icon{width:18px}.jalali-help{font-size:.62rem;color:var(--muted);font-weight:400}.jalali-error{font-size:.65rem;color:var(--danger);min-height:14px}.jalali-popover{display:none;position:absolute;z-index:60;top:calc(100% + 8px);right:0;width:330px;padding:13px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 22px 55px rgba(17,50,50,.18)}.jalali-field.open .jalali-popover{display:block}.jalali-head{display:grid;grid-template-columns:38px 1fr 38px;gap:7px;align-items:center;margin-bottom:9px}.jalali-head>button{height:38px;border:0;border-radius:11px;background:#f0f6f5}.jalali-title{display:grid;grid-template-columns:1fr 74px;gap:6px}.jalali-title select,.jalali-title input{height:38px;border-radius:11px;padding:0 8px}.jalali-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.jalali-days button,.jalali-days span{height:36px;border:0;border-radius:10px;background:transparent;display:grid;place-items:center;font-size:.7rem}.jalali-days button:hover{background:var(--primary-soft);color:var(--primary)}.jalali-days button.selected{background:var(--primary);color:#fff}.jalali-days button.today{box-shadow:inset 0 0 0 1px var(--primary)}.jalali-actions{display:flex;justify-content:space-between;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.jalali-actions button{border:0;background:transparent;color:var(--primary);font-size:.7rem;font-weight:800}

/* Footer */
.portal-footer{width:min(calc(100% - 44px),var(--max));margin:0 auto 22px;border-radius:24px;background:linear-gradient(120deg,#143e42,#0a6766);color:#fff;overflow:hidden}
.portal-footer-inner{min-height:98px;padding:17px 22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.footer-clinic{display:flex;align-items:center;gap:10px}.footer-clinic img{width:50px;height:50px;object-fit:contain;border-radius:15px;background:#fff;padding:4px}.footer-clinic div{display:grid;line-height:1.4}.footer-clinic strong{font-size:.82rem}.footer-clinic span{font-size:.66rem;opacity:.65}
.footer-security{display:flex;align-items:center;gap:8px;font-size:.72rem;opacity:.72}.footer-security .portal-icon{width:18px}
.footer-designer{justify-self:end;display:flex;align-items:center;gap:9px;opacity:.92;transition:.2s}.footer-designer:hover{opacity:1;transform:translateY(-1px)}.footer-designer span{font-size:.62rem;color:rgba(255,255,255,.68);white-space:nowrap}.footer-designer img{width:104px;height:auto;object-fit:contain;filter:brightness(1.08)}

/* Authentication — a centered, editorial patient experience rather than an admin split-screen */
.portal-auth{min-height:100dvh;background:
  radial-gradient(circle at 12% 20%,rgba(20,164,153,.17),transparent 29rem),
  radial-gradient(circle at 88% 78%,rgba(238,160,107,.12),transparent 26rem),
  #eff7f5;color:var(--ink)}
.auth-page{min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow:hidden}
.auth-page:before,.auth-page:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.auth-page:before{width:440px;height:440px;left:-220px;top:24%;border:1px solid rgba(8,125,121,.1)}.auth-page:after{width:780px;height:520px;right:-210px;top:-190px;background:radial-gradient(ellipse at center,rgba(135,197,236,.34) 0%,rgba(173,218,239,.18) 43%,rgba(239,247,246,0) 72%);filter:blur(9px);transform:rotate(-8deg)}
.auth-topbar{position:relative;z-index:2;width:min(calc(100% - 42px),1180px);margin:20px auto 0;display:flex;align-items:center;justify-content:space-between}
.auth-brand{display:flex;align-items:center;gap:10px}.auth-brand img{width:56px;height:56px;object-fit:contain;border-radius:18px;background:#fff;padding:4px;border:1px solid #dceae7;box-shadow:var(--shadow-sm)}.auth-brand span{display:grid;line-height:1.35}.auth-brand strong{font-size:.9rem}.auth-brand small{font-size:.68rem;color:var(--muted)}
.auth-home-link{display:flex;align-items:center;gap:7px;padding:10px 13px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid rgba(213,231,227,.9);font-size:.74rem;font-weight:800;color:#4e6e6b}.auth-home-link .portal-icon{width:17px;transform:rotate(180deg)}
.auth-stage{position:relative;z-index:1;width:min(calc(100% - 42px),1180px);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(410px,.7fr);gap:58px;align-items:center;padding:44px 0 36px}.auth-stage:before{content:"";position:absolute;z-index:-1;width:520px;height:300px;right:-120px;top:8%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(111,190,226,.17),rgba(111,190,226,0) 70%);filter:blur(7px);pointer-events:none}
.auth-welcome{padding:8px 0}.auth-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:99px;background:#dff3ef;color:var(--primary);font-size:.72rem;font-weight:850}.auth-badge .portal-icon{width:17px}.auth-welcome h1{font-size:clamp(2.35rem,4.25vw,4rem);line-height:1.24;letter-spacing:-.065em;margin:22px 0 15px;font-weight:950}.auth-welcome h1 em{font-style:normal;color:var(--primary);position:relative}.auth-welcome h1 em:after{content:"";position:absolute;right:0;left:0;bottom:-4px;height:7px;border-radius:99px;background:#f1b184;opacity:.75}.auth-welcome>p{font-size:1rem;max-width:610px;color:#617c79;line-height:2;margin:0}
.auth-feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.auth-feature-row article{min-height:108px;padding:15px;border-radius:19px;background:rgba(255,255,255,.72);border:1px solid rgba(215,232,229,.92);backdrop-filter:blur(10px);display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center}.auth-feature-row article>.portal-icon{width:38px;height:38px;padding:8px;border-radius:12px;background:var(--primary-soft);color:var(--primary)}.auth-feature-row span{display:grid;line-height:1.4}.auth-feature-row strong{font-size:.78rem}.auth-feature-row small{font-size:.63rem;color:var(--muted);margin-top:4px}
.auth-card{position:relative;padding:32px 32px 23px;border-radius:34px;background:rgba(255,255,255,.92);border:1px solid rgba(215,232,229,.95);box-shadow:0 34px 90px rgba(20,70,67,.14);backdrop-filter:blur(18px);overflow:hidden}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#0aa29b,#74d2c7,#f0b077)}.auth-card-accent{width:66px;height:66px;border-radius:21px;background:linear-gradient(145deg,#e2f6f2,#fff);border:1px solid #cdeae5;color:var(--primary);display:grid;place-items:center;margin-bottom:20px}.auth-card-accent .portal-icon{width:34px;height:34px}.auth-card-inner h2{font-size:1.62rem;line-height:1.35;margin:9px 0 7px;font-weight:900;letter-spacing:-.035em}.auth-card-inner>p{color:var(--muted);font-size:.82rem;margin:0 0 22px;line-height:1.9}.auth-card-inner>.auth-kicker{margin-bottom:2px}.auth-form{display:grid;gap:12px}.auth-input-wrap{height:54px;border:1px solid #d7e6e3;border-radius:15px;background:#fbfdfd;position:relative;overflow:hidden;transition:.2s}.auth-input-wrap:focus-within{border-color:#67bdb5;box-shadow:0 0 0 4px rgba(31,154,145,.1);background:#fff}.auth-input-wrap input{height:100%;border:0;border-radius:0;background:transparent;text-align:left;font-size:1rem;box-shadow:none;padding:0 50px 0 16px;direction:ltr}.auth-input-wrap .mobile-state{position:absolute;right:15px;top:50%;width:24px;height:24px;transform:translateY(-50%);display:grid;place-items:center;color:#78928f;transition:.2s}.auth-input-wrap .mobile-state .portal-icon{width:19px;height:19px}.auth-input-wrap.is-invalid{border-color:#de8e88;background:#fff8f7;box-shadow:0 0 0 4px rgba(190,75,67,.08)}.auth-input-wrap.is-invalid .mobile-state{color:#b9534d}.auth-input-wrap.is-valid{border-color:#70bf9e;background:#f7fdfa}.auth-input-wrap.is-valid .mobile-state{color:#2d8a67}.mobile-help{display:block;margin-top:-5px;color:#78908e;font-size:.65rem;line-height:1.7;text-align:right}.field-error{margin-top:-5px;padding:8px 10px;border-radius:10px;background:#fff0ef;color:#a24e49;border:1px solid #f2d0cd;font-size:.68rem;line-height:1.7}.field-error[hidden]{display:none!important}.auth-form>button:not(.auth-secondary){position:relative;min-height:54px;border:0;border-radius:15px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 13px 26px rgba(8,125,121,.2);transition:.2s}.auth-form>button:not(.auth-secondary):hover{transform:translateY(-1px);box-shadow:0 16px 30px rgba(8,125,121,.24)}.auth-form>button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.auth-form>button.is-loading:before{content:"";width:18px;height:18px;border:2px solid rgba(255,255,255,.38);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}.auth-form>button.is-loading .portal-icon{display:none}.auth-secondary{min-height:46px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#4f6d6a;font-size:.76rem;font-weight:800}.privacy-note{display:flex;align-items:center;justify-content:center;gap:7px;color:#78908e;font-size:.67rem;text-align:center}.privacy-note .portal-icon{width:16px}.auth-notice{padding:12px 13px;border-radius:14px;margin-bottom:15px;font-size:.75rem;line-height:1.8}.auth-notice[hidden]{display:none!important}.auth-notice.danger{background:#fff0ef;color:#a24e49;border:1px solid #f2d0cd}.auth-notice.success{background:#eaf8f2;color:#2d7157;border:1px solid #cbe9dc}.otp-field-wrap{position:relative}.otp-input{width:100%;height:62px;text-align:center;direction:ltr;letter-spacing:12px;font-size:1.5rem;font-weight:900;padding:0 54px 0 28px;border:1px solid #d7e6e3;border-radius:16px;background:#fbfdfd;transition:.2s}.otp-input:focus{border-color:#67bdb5;box-shadow:0 0 0 4px rgba(31,154,145,.1);background:#fff}.otp-input[aria-invalid="true"]{border-color:#e1a19d;box-shadow:0 0 0 4px rgba(190,75,67,.08)}.otp-state-icon{position:absolute;right:16px;top:50%;width:24px;height:24px;transform:translateY(-50%);display:grid;place-items:center;color:#7e9996}.otp-state-icon .portal-icon{width:21px;height:21px}.otp-state-icon.checking .portal-icon{animation:auth-spin .75s linear infinite;color:var(--primary)}.otp-state-icon.success{color:#2f8b68}.otp-state-icon.error{color:#b85e57}.otp-help{display:block;margin-top:-5px;color:#78908e;font-size:.65rem;line-height:1.8;text-align:center}.auth-form.has-error .otp-field-wrap{animation:auth-shake .34s ease}.auth-form.is-success .otp-input{border-color:#7bc8aa;background:#f0fbf6}.auth-back{display:none}.auth-card-trust{display:flex;align-items:center;gap:7px;margin-top:20px;padding-top:17px;border-top:1px solid var(--line);color:#829795;font-size:.66rem}.auth-card-trust .portal-icon{width:17px;color:var(--primary)}
.auth-footer{position:relative;z-index:2;width:min(calc(100% - 42px),1180px);margin:0 auto 18px;min-height:58px;padding:10px 18px;border-radius:18px;background:#113f42;color:#fff;display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px}.auth-copyright{display:grid;gap:2px;justify-self:start}.auth-copyright strong{font-size:.69rem;font-weight:800}.auth-copyright span{font-size:.6rem;opacity:.55}.auth-designer{display:flex;align-items:center;gap:9px;justify-self:end;opacity:.9;transition:.2s}.auth-designer:hover{opacity:1;transform:translateY(-1px)}.auth-designer span{font-size:.62rem;color:rgba(255,255,255,.68);white-space:nowrap}.auth-designer img{width:96px;height:auto;display:block}
@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes auth-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(5px)}75%{transform:translateX(-5px)}}

/* Responsive */
@media(max-width:1240px){
  .patient-nav a{padding:0 9px}.patient-nav a .portal-icon{display:none}.patient-account>span{display:none}.patient-account{padding:5px}.metric-grid{grid-template-columns:repeat(2,1fr)}
  .weekly-calendar{grid-template-columns:repeat(7,140px)}.auth-stage{gap:42px}.auth-feature-row{grid-template-columns:1fr}.auth-feature-row article{min-height:76px}
}
@media(max-width:1020px){
  .patient-nav{display:none}.patient-account{display:none}.portal-menu-button{display:grid}.patient-header-inner{height:76px}.patient-actions{margin-right:auto}
  .dashboard-grid{grid-template-columns:1fr}.quick-links{grid-template-columns:repeat(2,1fr)}.plan-grid,.document-grid{grid-template-columns:repeat(2,1fr)}
  .profile-layout{grid-template-columns:1fr}.profile-card{position:static;grid-template-columns:78px minmax(0,1fr) auto;justify-items:start;text-align:right;align-items:center}.profile-card h2{margin:0}.profile-card>.status{justify-self:end}.profile-facts{grid-column:1/-1}.profile-security{grid-column:1/-1}
  .auth-stage{grid-template-columns:1fr;max-width:720px;gap:26px;padding:32px 0}.auth-welcome{text-align:center}.auth-welcome .auth-badge{margin:auto}.auth-welcome>p{margin:auto}.auth-feature-row{grid-template-columns:repeat(3,1fr)}.auth-welcome h1{font-size:3rem}.auth-card{max-width:520px;width:100%;margin:auto}
}
@media(max-width:760px){
  body{font-size:14px}.patient-header{padding:10px 12px 0}.patient-header-inner{height:68px;border-radius:21px;padding:7px 9px 7px 13px}.patient-brand-mark{width:50px;height:50px;border-radius:16px}.patient-brand-mark img{width:43px;height:43px}.patient-brand strong{font-size:.8rem}.patient-brand small{font-size:.62rem}.patient-booking-action{width:44px;height:44px;padding:0;justify-content:center;border-radius:14px}.patient-booking-action span{display:none}.portal-menu-button{width:44px;height:44px}
  .portal-main{width:min(calc(100% - 24px),var(--max));padding:24px 0 118px}.portal-page-head{align-items:stretch;flex-direction:column;gap:14px;margin-bottom:20px}.portal-page-head h1{font-size:1.7rem}.page-security-chip,.profile-progress{width:100%}.page-security-chip{justify-content:center}.page-meta-row{justify-content:space-between}
  .panel-head{padding:17px 18px;min-height:76px}.panel-head h2{font-size:1rem}.panel-head p{font-size:.75rem}
  .onboarding-card{grid-template-columns:50px minmax(0,1fr);padding:17px}.onboarding-icon{width:50px;height:50px}.onboarding-card .portal-primary{grid-column:1/-1;width:100%}
  .welcome-card{min-height:auto;padding:25px 22px;flex-direction:column;align-items:stretch}.next-appointment{min-width:0}.welcome-illustration{display:none}
  .metric-grid{gap:10px}.metric-card{min-height:108px;padding:14px;grid-template-columns:44px minmax(0,1fr)}.metric-icon{width:44px;height:44px}.metric-card strong{font-size:1.2rem}
  .quick-links{grid-template-columns:1fr}.appointment-list{padding:4px 13px 12px}.appointment-list article{grid-template-columns:54px minmax(0,1fr)}.appointment-date{width:52px;height:52px}.appointment-list .status{grid-column:2;justify-self:start}
  .booking-intro{padding:23px 20px}.booking-form{padding:18px 14px 22px}.booking-filters{grid-template-columns:1fr}.week-toolbar{grid-template-columns:42px minmax(0,1fr) 42px}.week-nav{font-size:0;padding:0;justify-content:center}.week-nav .portal-icon{width:18px}.booking-bottom{grid-template-columns:1fr}.booking-submit{width:100%}
  .timeline-item{grid-template-columns:52px minmax(0,1fr);gap:10px}.timeline-date{grid-column:2;grid-row:1;text-align:right}.timeline-item>i{grid-column:1;grid-row:1/3}.timeline-content{grid-column:2}.timeline-item:not(:last-child):after{right:24px;top:63px}.record-timeline{padding:15px}.plan-grid,.document-grid,.note-grid{grid-template-columns:1fr;padding:14px}
  .dental-body{padding:15px}.dental-chart{grid-template-columns:repeat(16,54px)}
  .profile-onboarding{grid-template-columns:48px minmax(0,1fr);padding:16px}.profile-onboarding>i{width:48px;height:48px}.profile-card{grid-template-columns:64px minmax(0,1fr)}.profile-avatar.large{width:64px;height:64px;border-radius:20px}.profile-card>.status{grid-column:2;justify-self:start}.profile-form{padding:16px}.form-grid{grid-template-columns:1fr}.jalali-popover{right:auto;left:0;width:min(330px,calc(100vw - 52px))}
  .portal-footer{width:calc(100% - 24px);margin-bottom:104px}.portal-footer-inner{grid-template-columns:1fr;justify-items:center;text-align:center;padding:20px}.footer-clinic{display:none}.footer-security{order:2}.footer-designer{justify-self:center}
  .mobile-magic-nav{--magic-nav-bg:rgba(255,255,255,.96);position:fixed;z-index:90;right:10px;left:10px;bottom:max(10px,env(safe-area-inset-bottom));height:72px;padding:0 8px;border:1px solid rgba(205,226,222,.95);border-radius:23px;background:var(--magic-nav-bg);box-shadow:0 20px 52px rgba(14,54,55,.22);backdrop-filter:blur(18px);display:block;isolation:isolate}.mobile-magic-nav ul{height:100%;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--magic-items),minmax(0,1fr));direction:rtl;list-style:none;position:relative}.magic-nav-item{position:relative;z-index:2;min-width:0;height:72px}.magic-nav-item a{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#6f8986;-webkit-tap-highlight-color:transparent}.magic-nav-icon{position:relative;z-index:2;width:42px;height:42px;display:grid;place-items:center;transition:transform .48s cubic-bezier(.2,.85,.25,1),color .3s ease}.magic-nav-icon .portal-icon{width:21px;height:21px;transition:width .3s ease,height .3s ease}.magic-nav-text{position:absolute;bottom:7px;max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.59rem;font-weight:850;line-height:1.2;color:var(--ink);opacity:0;transform:translateY(12px);transition:opacity .28s ease,transform .45s cubic-bezier(.2,.85,.25,1)}.magic-nav-item.active .magic-nav-icon{color:#fff;transform:translateY(-31px)}.magic-nav-item.active .magic-nav-icon .portal-icon{width:23px;height:23px}.magic-nav-item.active .magic-nav-text{opacity:1;transform:translateY(0)}.magic-nav-indicator{position:absolute;z-index:1;top:var(--magic-indicator-top);left:var(--magic-active-position);width:var(--magic-indicator-size);height:var(--magic-indicator-size);border-radius:50%;background:linear-gradient(145deg,var(--primary-2),var(--primary));border:6px solid var(--canvas);box-shadow:0 10px 24px rgba(8,125,121,.28),inset 0 0 0 1px rgba(255,255,255,.18);transform:translateX(-50%);transition:left .5s cubic-bezier(.2,.85,.25,1),width .3s ease,height .3s ease}.magic-nav-indicator:before,.magic-nav-indicator:after{content:"";position:absolute;top:50%;width:19px;height:19px;background:transparent}.magic-nav-indicator:before{left:-22px;border-top-right-radius:18px;box-shadow:7px -8px 0 0 var(--canvas)}.magic-nav-indicator:after{right:-22px;border-top-left-radius:18px;box-shadow:-7px -8px 0 0 var(--canvas)}.magic-nav-indicator span{position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(255,255,255,.18)}
  .auth-topbar{width:calc(100% - 24px);margin-top:12px}.auth-brand img{width:50px;height:50px}.auth-home-link{font-size:0;width:44px;height:44px;padding:0;justify-content:center}.auth-home-link .portal-icon{width:18px}.auth-stage{width:calc(100% - 24px);padding:30px 0 22px}.auth-welcome h1{font-size:2.25rem}.auth-welcome>p{font-size:.85rem}.auth-feature-row{grid-template-columns:1fr}.auth-feature-row article{min-height:72px}.auth-card{padding:27px 20px 20px;border-radius:27px}.auth-card-accent{width:58px;height:58px;border-radius:18px}.auth-card-inner h2{font-size:1.4rem}.auth-footer{width:calc(100% - 24px);margin-bottom:12px;padding:10px 14px;min-height:56px}.auth-copyright strong{font-size:.64rem}.auth-copyright span{display:none}.auth-designer img{width:88px}
}
@media(max-width:460px){
  .patient-brand>span:last-child{display:none}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.metric-card>a{display:none}.metric-card>div{width:100%;display:flex;align-items:center;justify-content:space-between}.metric-card strong{margin:0}.page-meta-row time{font-size:.68rem}.panel-link{font-size:0}.panel-link .portal-icon{width:20px}
  .auth-welcome h1{font-size:1.95rem}.auth-welcome>p{font-size:.78rem}.auth-feature-row{margin-top:23px}.auth-card{padding-left:17px;padding-right:17px}.otp-input{letter-spacing:8px;padding-right:48px}.auth-footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:7px}.auth-copyright,.auth-designer{justify-self:center}.auth-designer img{width:84px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Medical form onboarding */
.medical-progress strong{font-size:.7rem}.medical-onboarding-card .onboarding-icon{background:#e9f4ff;color:#4c7ca7}
.medical-onboarding{display:grid;grid-template-columns:58px auto minmax(260px,1fr);gap:16px;align-items:center;margin-bottom:18px;padding:18px 20px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(120deg,#eff9f7,#fff)}
.medical-onboarding>div{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#fff;color:var(--primary);box-shadow:0 8px 24px rgba(14,99,96,.08)}.medical-onboarding>span{display:grid;gap:6px}.medical-onboarding>span small{color:var(--muted);font-size:.66rem}.medical-onboarding p{margin:0;color:var(--muted);font-size:.77rem;line-height:1.9}
.medical-form-grid{padding:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.medical-question-card{margin:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fbfdfd;min-width:0}.medical-question-card.wide{grid-column:1/-1}.medical-question-card legend{padding:0 5px;font-size:.8rem;font-weight:850;color:var(--text)}.medical-question-card>small{display:block;margin:-2px 0 10px;color:var(--muted);font-size:.65rem;line-height:1.8}.medical-question-card input[type=text],.medical-question-card input[type=number],.medical-question-card input[type=date],.medical-question-card select,.medical-question-card textarea{width:100%;border:1px solid #d5e2e0;border-radius:13px;background:#fff;padding:11px 12px;font:inherit;font-size:.76rem;outline:0}.medical-question-card textarea{resize:vertical;line-height:1.9}.medical-question-card input:focus,.medical-question-card select:focus,.medical-question-card textarea:focus{border-color:#72b9b2;box-shadow:0 0 0 3px rgba(25,128,121,.08)}.medical-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.medical-options label{position:relative;display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.72rem;cursor:pointer}.medical-options input{accent-color:var(--primary)}.medical-form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:8px}.medical-form-actions p{margin:0 auto 0 0;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.67rem}.medical-form-actions p .portal-icon{width:18px}.portal-secondary{min-height:45px;padding:0 16px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);font:inherit;font-size:.72rem;font-weight:800}
@media(max-width:800px){.medical-onboarding{grid-template-columns:50px 1fr}.medical-onboarding>div{width:50px;height:50px}.medical-onboarding p{grid-column:1/-1}.medical-form-grid{grid-template-columns:1fr;padding:15px}.medical-question-card.wide{grid-column:auto}.medical-form-actions{flex-direction:column;align-items:stretch}.medical-form-actions p{margin:0 0 4px}.medical-form-actions button{width:100%}.medical-options{grid-template-columns:1fr}}

/* Patient intake and admission form */
.intake-onboarding{grid-template-columns:58px auto minmax(280px,1fr)}
.intake-onboarding .status{width:max-content}
.intake-document-form{display:block;margin:0}
.intake-document{position:relative;max-width:1120px;margin:0 auto;padding:38px 42px 32px;border:4px double #315b5d;border-radius:4px;background:#fff;box-shadow:0 22px 65px rgba(21,59,59,.1)}
.intake-document:before{content:"";position:absolute;inset:9px;border:1px solid rgba(49,91,93,.32);pointer-events:none}
.intake-document-header{position:relative;z-index:1;display:grid;grid-template-columns:minmax(150px,1fr) minmax(260px,1.55fr) minmax(150px,1fr);align-items:start;gap:22px;padding:0 5px 23px;border-bottom:2px solid #dce7e5}
.intake-file-meta{display:grid;gap:5px;padding-top:17px}
.intake-file-meta:last-child{text-align:left}
.intake-file-meta span{font-size:.72rem;color:var(--muted)}
.intake-file-meta strong{font-size:.87rem;border-bottom:1px dotted #819795;padding-bottom:6px;min-height:32px}
.intake-clinic-heading{display:grid;place-items:center;text-align:center;line-height:1.5}
.intake-clinic-heading img{object-fit:contain;margin-bottom:5px}
.intake-clinic-heading strong{font-size:1.05rem;font-weight:900}
.intake-clinic-heading small{font-size:.73rem;color:var(--muted)}
.intake-paper-section{position:relative;z-index:1;padding:24px 5px 20px;border-bottom:1px solid #dce7e5}
.intake-paper-section:last-of-type{border-bottom:0}
.intake-paper-section>h3{display:flex;align-items:center;gap:9px;margin:0 0 17px;color:#8c3e32;font-size:.93rem;font-weight:900}
.intake-paper-section>h3:before{content:"";width:24px;height:3px;border-radius:99px;background:#c16d5e}
.intake-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 18px}
.intake-field-grid label,.intake-other-field{display:grid;gap:7px;min-width:0}
.intake-field-grid label>span,.intake-other-field>span{font-size:.72rem;font-weight:800;color:#335654}
.intake-field-grid input,.intake-field-grid textarea,.intake-other-field textarea,.intake-detail-input{width:100%;border:0;border-bottom:1px dotted #778d8b;border-radius:0;background:transparent;padding:8px 3px 7px;outline:0;transition:.18s;resize:vertical}
.intake-field-grid input:focus,.intake-field-grid textarea:focus,.intake-other-field textarea:focus,.intake-detail-input:focus{border-bottom-style:solid;border-color:var(--primary);background:#f6fbfa;box-shadow:0 3px 0 rgba(8,125,121,.08)}
.intake-field-grid input[readonly],.intake-field-grid textarea[readonly]{color:#627b79;background:linear-gradient(180deg,transparent,#f7faf9);cursor:not-allowed}
.intake-field-grid label>small{font-size:.58rem;color:var(--muted)}
.intake-field-grid .wide{grid-column:1/-1}
.intake-field-grid .chief-complaint textarea{color:#7f3a31;font-weight:750}
.intake-disease-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 15px;margin-bottom:18px}
.intake-disease-grid label{position:relative;display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 9px;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:.18s}
.intake-disease-grid label:hover{background:#f3f9f8;border-color:#d8e9e6}
.intake-disease-grid input{width:19px;height:19px;margin:0;accent-color:var(--primary);flex:0 0 auto}
.intake-disease-grid span{font-size:.74rem;font-weight:700}
.intake-question-list{display:grid;gap:0}
.intake-question-row{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(360px,1fr);gap:24px;align-items:center;padding:16px 3px;border-bottom:1px dashed #d8e2e0}
.intake-question-row:last-child{border-bottom:0}
.intake-question-copy{display:grid;gap:4px}
.intake-question-copy strong{font-size:.79rem;line-height:1.9}
.intake-question-copy strong em{font-style:normal;color:#a34135}
.intake-question-copy small{font-size:.62rem;color:var(--muted)}
.intake-answer-controls{display:grid;grid-template-columns:auto minmax(170px,1fr);gap:12px;align-items:center}
.intake-choice-pills{display:flex;align-items:center;gap:7px}
.intake-choice-pills label{position:relative;cursor:pointer}
.intake-choice-pills input{position:absolute;opacity:0;pointer-events:none}
.intake-choice-pills span{min-width:58px;height:38px;padding:0 13px;border:1px solid #cfdddb;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:.7rem;font-weight:800;transition:.18s}
.intake-choice-pills.three span{min-width:82px}
.intake-choice-pills input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px rgba(8,125,121,.12)}
.intake-choice-pills input:focus-visible+span{outline:3px solid rgba(8,125,121,.15)}
.intake-detail-input{min-height:40px;font-size:.7rem}
.intake-detail-input.is-disabled{opacity:.46;background:#f4f7f6;cursor:not-allowed}
.intake-paper-consent{position:relative;z-index:1;margin-top:20px;padding:17px 20px;border:1px dashed #a9bfbc;border-radius:14px;background:#f8fbfa}
.intake-paper-consent p{margin:0 0 12px;font-size:.72rem;line-height:2.15;color:#4d6765;text-align:justify}
.intake-paper-consent>div{display:flex;align-items:center;gap:9px;color:var(--primary);font-size:.69rem;font-weight:800}
.intake-paper-consent .portal-icon{width:19px;height:19px}
.intake-submit-bar{max-width:1120px;margin:17px auto 0;padding:17px 19px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:space-between;gap:22px}
.intake-submit-bar>div{min-width:0}
.intake-submit-bar strong{font-size:.84rem}
.intake-submit-bar p{margin:3px 0 0;color:var(--muted);font-size:.68rem}
.intake-submit-bar .portal-primary{border:0;white-space:nowrap}
.intake-submit-bar .portal-primary.is-loading{opacity:.72;pointer-events:none}

.intake-confirm-panel{max-width:820px;margin:0 auto;padding:28px}
.intake-confirm-head{display:flex;gap:17px;align-items:flex-start;padding-bottom:21px;border-bottom:1px solid var(--line)}
.intake-confirm-head>i{width:58px;height:58px;border-radius:18px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}
.intake-confirm-head>i .portal-icon{width:27px;height:27px}
.intake-confirm-head span{font-size:.67rem;color:var(--primary);font-weight:850}
.intake-confirm-head h2{font-size:1.25rem;margin:3px 0 5px}
.intake-confirm-head p{font-size:.76rem;color:var(--muted);margin:0}
.intake-confirm-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.intake-confirm-summary>div{padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#f8fbfa;display:grid;gap:4px;min-width:0}
.intake-confirm-summary span{font-size:.6rem;color:var(--muted)}
.intake-confirm-summary strong{font-size:.73rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.intake-confirm-form{max-width:560px;margin:0 auto;padding-top:5px}
.intake-consent-check{display:flex!important;align-items:flex-start!important;gap:11px!important;margin-bottom:19px;padding:14px;border:1px solid #badbd6;border-radius:14px;background:#eff9f7;cursor:pointer}
.intake-consent-check input{width:21px!important;height:21px!important;margin:2px 0 0!important;accent-color:var(--primary);flex:0 0 auto}
.intake-consent-check span{font-size:.73rem;line-height:2;color:#254f4d;font-weight:750}
.intake-confirm-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}
.intake-confirm-secondary>a{font-size:.68rem;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.intake-confirm-secondary .auth-secondary{width:auto;margin:0;padding:8px 12px}

.intake-locked-panel{padding:25px}
.intake-lock-banner{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:20px;padding:18px;border:1px solid #bde0d1;border-radius:18px;background:linear-gradient(135deg,#eefaf4,#fff)}
.intake-lock-banner>i{width:62px;height:62px;border-radius:18px;background:#dff5e9;color:#277454;display:grid;place-items:center}
.intake-lock-banner>i .portal-icon{width:28px;height:28px}
.intake-lock-banner span{font-size:.66rem;color:#277454;font-weight:850}
.intake-lock-banner h2{font-size:1.08rem;margin:2px 0 3px}
.intake-lock-banner p{margin:0;color:var(--muted);font-size:.71rem}
.intake-lock-meta{display:grid;gap:3px;text-align:left;padding-right:20px;border-right:1px solid #cfe6dd}
.intake-lock-meta small{font-size:.59rem;color:var(--muted)}
.intake-lock-meta strong{font-size:.72rem}
.intake-lock-meta span{font-size:.6rem;color:var(--primary)}
.intake-readonly-document{max-width:1050px;margin:auto;padding:32px 36px;border:4px double #315b5d;background:#fff}
.intake-read-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 18px}
.intake-read-grid>div{display:grid;gap:4px;padding:9px 0;border-bottom:1px dotted #a2b3b1}
.intake-read-grid .wide{grid-column:1/-1}
.intake-read-grid .emphasis strong{color:#87443a}
.intake-read-grid span,.intake-other-read span{font-size:.61rem;color:var(--muted)}
.intake-read-grid strong,.intake-other-read strong{font-size:.73rem;font-weight:800}
.intake-condition-summary{display:flex;flex-wrap:wrap;gap:8px}
.intake-condition-summary>span{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:10px;background:#edf8f5;color:#2e6862;font-size:.68rem;font-weight:750}
.intake-condition-summary .portal-icon{width:15px;height:15px}
.intake-condition-summary .none{background:#f4f6f6;color:var(--muted)}
.intake-other-read{display:grid;gap:5px;margin-top:13px;padding-top:12px;border-top:1px dashed var(--line)}
.intake-read-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 17px}
.intake-read-questions>div{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.2fr);gap:8px;padding:10px;border:1px solid #e1eae8;border-radius:11px;background:#fafcfc}
.intake-read-questions span{font-size:.62rem;color:var(--muted)}
.intake-read-questions strong{font-size:.69rem}
.intake-consent-record{display:flex;gap:13px;align-items:flex-start;margin-top:20px;padding:16px 18px;border:1px solid #b6dcd4;border-radius:14px;background:#eef9f6;color:#285b57}
.intake-consent-record>.portal-icon{width:25px;height:25px;flex:0 0 auto;margin-top:3px}
.intake-consent-record>div{display:grid;gap:4px}
.intake-consent-record span{font-size:.61rem;color:var(--primary);font-weight:850}
.intake-consent-record strong{font-size:.72rem;line-height:2}
.intake-consent-record small{font-size:.61rem;color:var(--muted)}

.profile-readonly-panel{padding:0}
.profile-readonly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;padding:21px 23px}
.profile-readonly-grid>div{display:grid;gap:4px;padding:13px 3px;border-bottom:1px solid var(--line)}
.profile-readonly-grid .wide{grid-column:1/-1}
.profile-readonly-grid span,.profile-readonly-medical span{font-size:.62rem;color:var(--muted)}
.profile-readonly-grid strong{font-size:.76rem}
.profile-readonly-medical{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:0 23px 21px}
.profile-readonly-medical>div{padding:15px;border:1px solid var(--line);border-radius:14px;background:#f9fbfb}
.profile-readonly-medical p{margin:5px 0 0;font-size:.72rem;line-height:2}
.profile-admin-only-notice{display:flex;align-items:flex-start;gap:12px;margin:0 23px 23px;padding:14px 15px;border-radius:14px;background:#fff7e7;border:1px solid #eed8a9;color:#785a1f}
.profile-admin-only-notice>.portal-icon{width:23px;height:23px;flex:0 0 auto}
.profile-admin-only-notice strong{font-size:.74rem}
.profile-admin-only-notice p{margin:2px 0 0;font-size:.66rem;line-height:1.85;color:#8b764c}

@media(max-width:960px){
  .intake-document{padding:30px 27px 26px}.intake-document-header{grid-template-columns:1fr 1.4fr 1fr}.intake-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-disease-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intake-question-row{grid-template-columns:1fr;gap:10px}.intake-answer-controls{grid-template-columns:auto minmax(180px,1fr)}.intake-read-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-lock-banner{grid-template-columns:56px minmax(0,1fr)}.intake-lock-meta{grid-column:2;text-align:right;padding:9px 0 0;border-right:0;border-top:1px solid #d5e9e1}.profile-readonly-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .intake-onboarding{grid-template-columns:50px minmax(0,1fr)}.intake-onboarding>div{width:50px;height:50px}.intake-onboarding p{grid-column:1/-1}.intake-document{padding:22px 17px 20px;border-width:3px}.intake-document:before{inset:6px}.intake-document-header{grid-template-columns:1fr 1fr;gap:11px}.intake-clinic-heading{grid-column:1/-1;grid-row:1}.intake-file-meta{grid-row:2;padding-top:4px}.intake-file-meta:last-child{text-align:left}.intake-paper-section{padding:20px 1px 16px}.intake-field-grid{grid-template-columns:1fr;gap:13px}.intake-field-grid .wide{grid-column:auto}.intake-disease-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.intake-question-row{padding:14px 0}.intake-answer-controls{grid-template-columns:1fr}.intake-choice-pills{width:100%}.intake-choice-pills label{flex:1}.intake-choice-pills span,.intake-choice-pills.three span{min-width:0;width:100%;padding:0 7px;font-size:.63rem}.intake-submit-bar{align-items:stretch;flex-direction:column;padding:15px}.intake-submit-bar .portal-primary{width:100%;justify-content:center}.intake-confirm-panel,.intake-locked-panel{padding:17px}.intake-confirm-head{align-items:flex-start}.intake-confirm-head>i{width:49px;height:49px}.intake-confirm-summary{grid-template-columns:1fr}.intake-confirm-secondary{align-items:stretch;flex-direction:column}.intake-confirm-secondary .auth-secondary{width:100%}.intake-lock-banner{grid-template-columns:1fr;text-align:center}.intake-lock-banner>i{margin:auto}.intake-lock-meta{grid-column:auto;text-align:center}.intake-readonly-document{padding:23px 16px;border-width:3px}.intake-read-grid,.intake-read-questions,.profile-readonly-grid,.profile-readonly-medical{grid-template-columns:1fr}.intake-read-grid .wide,.profile-readonly-grid .wide{grid-column:auto}.intake-read-questions>div{grid-template-columns:1fr}.profile-readonly-grid{padding:16px}.profile-readonly-medical{padding:0 16px 16px}.profile-admin-only-notice{margin:0 16px 16px}
}
.intake-clinic-heading b{margin-top:4px;font-size:.7rem;color:#8c3e32;font-weight:900}
.intake-clinic-heading small+small{margin-top:1px}


@media(max-width:380px){
  .mobile-magic-nav{right:7px;left:7px;padding-inline:5px}
  .magic-nav-text{font-size:.54rem}
  .magic-nav-icon .portal-icon{width:19px;height:19px}
  .magic-nav-item.active .magic-nav-icon .portal-icon{width:21px;height:21px}
}
@media(prefers-reduced-motion:reduce){
  .magic-nav-icon,.magic-nav-text,.magic-nav-indicator{transition:none!important}
}

/* Four-digit login OTP — visual slots, WebOTP-ready input and verified merge animation */
.auth-step>p{color:var(--muted);font-size:.82rem;margin:0 0 22px;line-height:1.9}.auth-step>.auth-kicker{margin-bottom:2px}.auth-step[hidden]{display:none!important}.auth-mobile-step,.auth-otp-step{transform-origin:center top}.auth-mobile-step.is-leaving{opacity:0;transform:translateY(-10px) scale(.985);transition:opacity .18s ease,transform .18s ease}.auth-otp-step.is-entering{opacity:0;transform:translateY(14px) scale(.985)}.auth-otp-step.is-entering.is-visible{opacity:1;transform:translateY(0) scale(1);transition:opacity .42s ease,transform .52s cubic-bezier(.2,.85,.25,1)}
.auth-otp-form{gap:13px}.otp-code-stage{--otp-progress-scale:0;position:relative;width:min(100%,284px);height:72px;margin:2px auto 0;direction:ltr;cursor:text;isolation:isolate}.otp-code-stage:after{content:"";position:absolute;z-index:0;right:8px;left:8px;bottom:-2px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--primary),#73cdbf);transform:scaleX(var(--otp-progress-scale));transform-origin:left;opacity:.55;transition:transform .25s ease,opacity .25s ease}.otp-master-input{position:absolute!important;z-index:5!important;inset:0!important;width:100%!important;height:100%!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:transparent!important;caret-color:transparent!important;letter-spacing:0!important;font-size:16px!important;opacity:.015!important;cursor:text}.otp-master-input:focus{border:0!important;box-shadow:none!important;background:transparent!important;outline:0}.otp-boxes{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;direction:ltr;pointer-events:none}.otp-digit{position:relative;width:58px;height:58px;flex:0 0 58px;border:1.5px solid #d4e4e1;border-radius:17px;background:linear-gradient(145deg,#fff,#f7fbfa);box-shadow:0 8px 20px rgba(20,70,67,.06),inset 0 1px 0 rgba(255,255,255,.9);display:grid;place-items:center;color:#173f42;font-size:1.55rem;font-weight:950;line-height:1;font-variant-numeric:tabular-nums;transition:transform .52s cubic-bezier(.2,.85,.25,1),opacity .34s ease,border-color .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease}.otp-digit:after{content:"";position:absolute;bottom:9px;width:5px;height:5px;border-radius:50%;background:#aac1be;opacity:.42;transition:.2s}.otp-digit.is-filled:after{opacity:0;transform:scale(0)}.otp-code-stage.is-focused .otp-digit.is-current,.otp-digit.is-current{border-color:#60bbb1;background:#fff;box-shadow:0 0 0 4px rgba(31,154,145,.1),0 12px 25px rgba(20,70,67,.08);transform:translateY(-2px)}.otp-digit.is-filled{border-color:#9acfc8;background:#fbfefd}.otp-code-stage.is-checking:after{opacity:1;animation:otp-progress-glow .85s ease-in-out infinite alternate}.otp-code-stage.is-checking .otp-digit{border-color:#73bdb4;background:linear-gradient(145deg,#f5fcfa,#fff);box-shadow:0 0 0 3px rgba(31,154,145,.07),0 10px 22px rgba(20,70,67,.08);animation:otp-check-pulse .85s ease-in-out infinite alternate}.otp-code-stage.is-checking .otp-digit:nth-child(2){animation-delay:.08s}.otp-code-stage.is-checking .otp-digit:nth-child(3){animation-delay:.16s}.otp-code-stage.is-checking .otp-digit:nth-child(4){animation-delay:.24s}.otp-code-stage.is-verified:after{background:#3aa877;opacity:1;transform:scaleX(1)}.otp-code-stage.is-verified .otp-digit{border-color:#43ad7b;background:linear-gradient(145deg,#eefaf4,#dff5e9);color:#207350;box-shadow:0 0 0 4px rgba(58,168,119,.09),0 13px 28px rgba(37,125,87,.13)}.otp-code-stage.is-verified .otp-digit:after{opacity:0}.otp-code-stage.is-merging .otp-digit{color:transparent;border-radius:19px;box-shadow:0 14px 32px rgba(37,125,87,.16)}.otp-code-stage.is-merging .otp-digit:nth-child(1){transform:translateX(105px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(2){transform:translateX(35px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(3){transform:translateX(-35px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(4){transform:translateX(-105px) scale(.82)}.otp-code-stage.is-merged .otp-boxes{opacity:0;transition:opacity .18s ease}.otp-success-square{position:absolute;z-index:3;top:50%;left:50%;width:62px;height:62px;border-radius:19px;background:linear-gradient(145deg,#42b47e,#258e61);color:#fff;display:grid;place-items:center;opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(-8deg);box-shadow:0 15px 32px rgba(36,139,95,.28),inset 0 0 0 1px rgba(255,255,255,.24);transition:opacity .24s ease,transform .48s cubic-bezier(.18,1.35,.32,1);pointer-events:none}.otp-success-square .portal-icon{width:31px;height:31px;stroke-width:2.4}.otp-success-square:before{content:"";position:absolute;inset:-7px;border:2px solid rgba(66,180,126,.25);border-radius:24px;opacity:0}.otp-code-stage.is-merged .otp-success-square{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}.otp-code-stage.is-merged .otp-success-square:before{animation:otp-success-ring .8s ease-out}.otp-code-stage.is-error .otp-digit{border-color:#dd8f89;background:#fff4f3;color:#a94f49;box-shadow:0 0 0 4px rgba(190,75,67,.07)}.auth-form.has-error .otp-code-stage{animation:auth-shake .34s ease}.otp-live-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes otp-check-pulse{from{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes otp-progress-glow{from{filter:saturate(.9);box-shadow:0 0 0 rgba(31,154,145,0)}to{filter:saturate(1.25);box-shadow:0 0 12px rgba(31,154,145,.3)}}@keyframes otp-success-ring{0%{opacity:.85;transform:scale(.72)}100%{opacity:0;transform:scale(1.35)}}
@media(max-width:460px){.auth-step>p{font-size:.77rem}.otp-code-stage{width:min(100%,250px);height:68px}.otp-boxes{gap:9px}.otp-digit{width:54px;height:54px;flex-basis:54px;border-radius:16px;font-size:1.42rem}.otp-code-stage.is-merging .otp-digit:nth-child(1){transform:translateX(94.5px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(2){transform:translateX(31.5px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(3){transform:translateX(-31.5px) scale(.82)}.otp-code-stage.is-merging .otp-digit:nth-child(4){transform:translateX(-94.5px) scale(.82)}.otp-success-square{width:58px;height:58px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){.auth-mobile-step.is-leaving,.auth-otp-step.is-entering,.auth-otp-step.is-entering.is-visible{transform:none}.otp-code-stage.is-merging .otp-digit{transform:none!important;opacity:0}.otp-code-stage.is-merged .otp-success-square{transform:translate(-50%,-50%) scale(1)}}

/* 1.5.5 — Mobile-first patient portal refinements */
@media(max-width:760px){
  html{scroll-padding-bottom:150px}
  body.portal-app,body.portal-auth{overflow-x:hidden}
  .portal-app input,.portal-app select,.portal-app textarea,.portal-auth input{font-size:16px}

  /* Compact application shell and preserve usable viewport space. */
  .patient-header{padding:8px 10px 0}
  .patient-header-inner{height:62px;padding:6px 7px 6px 10px;border-radius:19px;gap:9px}
  .patient-brand-mark{width:46px;height:46px;border-radius:15px}
  .patient-brand-mark img{width:40px;height:40px}
  .patient-actions{gap:7px}
  .patient-booking-action,.portal-menu-button{width:42px;height:42px;border-radius:13px}
  .patient-booking-action .portal-icon,.portal-menu-button .portal-icon{width:20px;height:20px}
  .portal-main{width:calc(100% - 20px);padding:20px 0 calc(148px + env(safe-area-inset-bottom))}
  .portal-page-head{gap:11px;margin:0 2px 16px}
  .page-meta-row{margin-bottom:5px}
  .portal-page-head h1{font-size:clamp(1.5rem,7vw,1.78rem);line-height:1.32}
  .portal-page-head p{margin-top:6px;font-size:.77rem;line-height:1.9}
  .eyebrow{padding:5px 10px;font-size:.68rem}
  .profile-progress,.page-security-chip{padding:11px 13px;border-radius:17px;box-shadow:0 8px 24px rgba(21,59,59,.055)}
  .profile-progress>i{height:5px}
  .panel-head{min-height:70px;padding:15px 16px}
  .panel-head h2{font-size:.96rem;margin-top:5px}
  .panel-head p{font-size:.7rem}
  .portal-panel{border-radius:21px}
  .onboarding-card{padding:18px;border-radius:22px;gap:13px}
  .onboarding-card h2{font-size:1.02rem;line-height:1.6}
  .onboarding-card p{font-size:.73rem;line-height:1.95}
  .portal-primary{min-height:49px;border-radius:14px}
  .metric-grid{gap:9px;margin-bottom:14px}
  .dashboard-grid{gap:14px;margin-bottom:14px}
  .empty-state{padding:35px 18px}

  /* Clean floating dock: no scalloped cut-outs, smaller indicator and larger touch targets. */
  .mobile-magic-nav{
    --magic-nav-bg:rgba(255,255,255,.965);
    right:12px;left:12px;bottom:max(10px,env(safe-area-inset-bottom));height:66px;padding:0 6px;
    border:1px solid rgba(202,224,220,.96);border-radius:22px;background:var(--magic-nav-bg);
    box-shadow:0 14px 38px rgba(14,54,55,.19),0 2px 8px rgba(14,54,55,.06);
    backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);
    overflow:visible
  }
  .mobile-magic-nav ul,.magic-nav-item{height:66px}
  .magic-nav-item a{min-width:44px;min-height:44px;border-radius:16px}
  .magic-nav-icon{width:38px;height:38px;border-radius:13px}
  .magic-nav-icon .portal-icon{width:20px;height:20px;stroke-width:1.9}
  .magic-nav-item:not(.active) a:active .magic-nav-icon{background:#edf7f5;color:var(--primary);transform:scale(.94)}
  .magic-nav-item.active .magic-nav-icon{transform:translateY(-29px);color:#fff}
  .magic-nav-item.active .magic-nav-icon .portal-icon{width:22px;height:22px}
  .magic-nav-text{bottom:5px;font-size:.61rem;font-weight:900;letter-spacing:-.02em}
  .magic-nav-indicator{
    border:5px solid rgba(255,255,255,.98);
    box-shadow:0 9px 22px rgba(8,125,121,.3),0 0 0 1px rgba(186,219,214,.72),inset 0 0 0 1px rgba(255,255,255,.22);
    pointer-events:none
  }
  .magic-nav-indicator:before,.magic-nav-indicator:after{display:none}
  .magic-nav-indicator span{inset:4px;border-color:rgba(255,255,255,.22)}

  /* Put login controls in the first viewport; supporting content follows the form. */
  .portal-auth{background:radial-gradient(circle at 50% 0,rgba(111,190,226,.22),transparent 22rem),radial-gradient(circle at 5% 48%,rgba(20,164,153,.13),transparent 22rem),#eff7f5}
  .auth-page{overflow:visible}
  .auth-page:before{width:300px;height:300px;left:-190px;top:31%}
  .auth-page:after{width:430px;height:300px;right:-190px;top:-105px}
  .auth-topbar{width:calc(100% - 20px);height:60px;margin-top:8px}
  .auth-brand{gap:8px}
  .auth-brand img{width:46px;height:46px;border-radius:15px}
  .auth-brand strong{font-size:.78rem;line-height:1.45}
  .auth-brand small{font-size:.58rem;margin-top:1px}
  .auth-home-link{width:42px;height:42px;border-radius:13px}
  .auth-stage{width:calc(100% - 20px);max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:17px;padding:12px 0 24px;align-items:stretch}
  .auth-card{order:1;max-width:none;width:100%;margin:0;padding:23px 18px 17px;border-radius:25px;box-shadow:0 20px 55px rgba(20,70,67,.13)}
  .auth-card:before{height:5px}
  .auth-card-accent{width:50px;height:50px;margin-bottom:12px;border-radius:16px}
  .auth-card-accent .portal-icon{width:27px;height:27px}
  .auth-card-inner h2{font-size:1.3rem;margin:7px 0 5px}
  .auth-card-inner>p,.auth-step>p{font-size:.75rem;line-height:1.85;margin-bottom:17px}
  .auth-kicker{font-size:.67rem;padding:5px 9px}
  .auth-input-wrap{height:56px;border-radius:15px}
  .auth-form>button:not(.auth-secondary){min-height:54px}
  .auth-card-trust{margin-top:16px;padding-top:14px;font-size:.62rem}
  .auth-welcome{order:2;padding:8px 4px 0;text-align:right}
  .auth-welcome .auth-badge{display:none}
  .auth-welcome h1{font-size:1.72rem;line-height:1.48;letter-spacing:-.05em;margin:0 0 8px}
  .auth-welcome h1 br{display:none}
  .auth-welcome h1 em:after{height:5px;bottom:-2px}
  .auth-welcome>p{font-size:.75rem;line-height:1.95;text-align:right}
  .auth-feature-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:15px}
  .auth-feature-row article{min-height:82px;padding:9px 6px;border-radius:16px;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:6px}
  .auth-feature-row article>.portal-icon{width:35px;height:35px;padding:8px;margin:auto}
  .auth-feature-row strong{font-size:.66rem}
  .auth-feature-row small{display:none}
  .auth-footer{width:calc(100% - 20px);margin-bottom:10px;border-radius:16px}
}

@media(max-width:460px){
  .patient-brand>span:last-child{display:none}
  .portal-main{width:calc(100% - 18px);padding-top:17px}
  .portal-page-head h1{font-size:1.55rem}
  .portal-page-head p{font-size:.73rem}
  .onboarding-card{grid-template-columns:46px minmax(0,1fr);padding:16px 15px}
  .onboarding-icon{width:46px;height:46px;border-radius:15px}
  .onboarding-card .portal-primary{grid-column:1/-1;width:100%;margin-top:2px}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .metric-card{min-height:108px;padding:13px!important;border-radius:19px;display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;grid-template-rows:1fr!important;align-items:center!important;gap:10px!important}
  .metric-icon{width:42px;height:42px;border-radius:14px;grid-row:auto}
  .metric-card>div{display:grid!important;align-content:center;justify-content:stretch!important;min-width:0}
  .metric-card span{font-size:.66rem;line-height:1.55;white-space:normal}
  .metric-card strong{font-size:1.35rem;line-height:1.1;margin:6px 0 0;padding-bottom:2px}
  .metric-card>a{display:none}
  .mobile-magic-nav{right:9px;left:9px;height:64px;padding-inline:4px;border-radius:21px}
  .mobile-magic-nav ul,.magic-nav-item{height:64px}
  .magic-nav-text{font-size:.57rem;bottom:5px}
  .magic-nav-icon .portal-icon{width:19px;height:19px}
  .magic-nav-item.active .magic-nav-icon{transform:translateY(-28px)}
  .magic-nav-item.active .magic-nav-icon .portal-icon{width:21px;height:21px}
  .auth-topbar{height:56px}
  .auth-brand img{width:43px;height:43px}
  .auth-brand strong{max-width:225px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .auth-stage{padding-top:9px}
  .auth-card{padding:21px 16px 16px;border-radius:23px}
  .auth-card-accent{width:46px;height:46px}
  .auth-card-inner h2{font-size:1.22rem}
  .auth-welcome h1{font-size:1.48rem}
  .auth-feature-row article{min-height:76px}
}

/* 1.5.5.1 — Mobile horizontal overflow containment */
html{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
body.portal-app,body.portal-auth{width:100%;max-width:100%;min-width:0;overflow-x:hidden;overscroll-behavior-x:none}
.patient-app{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
.auth-page{width:100%;max-width:100%;min-width:0;overflow:hidden}
@supports (overflow:clip){html,body.portal-app,body.portal-auth,.patient-app{overflow-x:clip}}

@media(max-width:760px){
  .patient-header,.patient-header-inner,.portal-content,.portal-main,.portal-page-head,.page-title-block,.portal-panel,
  .auth-topbar,.auth-stage,.auth-welcome,.auth-card,.auth-card-inner,.auth-footer{min-width:0;max-width:100%}

  .patient-header-inner{width:100%}
  .patient-brand{min-width:0;max-width:100%;flex:1 1 auto;overflow:hidden}
  .patient-brand>span:last-child{min-width:0;overflow:hidden}
  .patient-brand strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .patient-actions{flex:0 0 auto;min-width:max-content}

  .auth-topbar,.auth-stage,.auth-footer{max-width:calc(100% - 20px)}
  .auth-topbar{gap:10px}
  .auth-brand{min-width:0;max-width:100%;flex:1 1 auto;overflow:hidden}
  .auth-brand>span{min-width:0;overflow:hidden}
  .auth-brand strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .auth-home-link{flex:0 0 auto}
  .auth-card,.auth-card-inner,.auth-welcome,.auth-feature-row,.auth-feature-row article{min-width:0}
  .auth-card input,.auth-card button,.auth-card select,.auth-card textarea{min-width:0;max-width:100%}

  .portal-page-head>*{min-width:0;max-width:100%}
  .portal-panel,.onboarding-card,.welcome-card,.metric-grid,.dashboard-grid,.profile-layout,.profile-form,
  .booking-form,.booking-intro,.document-grid,.plan-grid,.note-grid,.medical-form-grid,.intake-document,
  .intake-readonly-document{min-width:0;max-width:100%}
  .responsive-table,.weekly-calendar,.dental-chart{max-width:100%;overscroll-behavior-inline:contain}
  .portal-page-head p,.panel-head p,.onboarding-card p,.auth-card p,.auth-welcome p,
  .profile-card p,.intake-document p,.intake-readonly-document p{overflow-wrap:anywhere}
}


/* 1.5.5.2 — Patient login OTP resend countdown */
.otp-resend-countdown{--otp-timer-accent:#12958b;display:flex;align-items:center;gap:13px;width:100%;min-width:0;padding:11px 13px;margin:2px 0 3px;border:1px solid rgba(17,134,126,.16);border-radius:20px;background:linear-gradient(135deg,rgba(236,250,248,.96),rgba(247,252,251,.94));box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 24px rgba(18,96,91,.06);transition:border-color .3s ease,background .3s ease,box-shadow .3s ease,transform .3s ease}
.otp-countdown-ring{position:relative;display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:50%;background:rgba(255,255,255,.82);box-shadow:0 8px 20px rgba(17,117,110,.1)}
.otp-countdown-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.otp-countdown-track,.otp-countdown-progress{fill:none;stroke-width:4}
.otp-countdown-track{stroke:#dceceb}
.otp-countdown-progress{stroke:var(--otp-timer-accent);stroke-linecap:round;transition:stroke-dashoffset .28s linear,stroke .3s ease;filter:drop-shadow(0 2px 3px rgba(18,149,139,.2))}
.otp-countdown-ring b{position:relative;z-index:1;color:#126b66;font-size:.82rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.otp-countdown-copy{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:right}
.otp-countdown-copy strong{color:#164f4c;font-size:.82rem;font-weight:800;line-height:1.65}
.otp-countdown-copy small{color:#6a8583;font-size:.69rem;line-height:1.75}
.otp-resend-countdown.is-counting .otp-countdown-ring{animation:otp-timer-breathe 2.2s ease-in-out infinite}
.otp-resend-countdown.is-ready{--otp-timer-accent:#2fa873;border-color:rgba(47,168,115,.28);background:linear-gradient(135deg,#edf9f3,#f8fcfa);box-shadow:0 11px 25px rgba(45,145,99,.09)}
.otp-resend-countdown.is-ready .otp-countdown-ring{background:#fff;box-shadow:0 8px 22px rgba(47,168,115,.14)}
.otp-resend-countdown.is-ready .otp-countdown-ring b{color:#277d59}
.otp-resend-countdown.is-ready .otp-countdown-copy strong{color:#247451}
.auth-otp-form .auth-secondary:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.45);box-shadow:none;transform:none!important}
.auth-otp-form .auth-secondary:not(:disabled){animation:otp-resend-ready .55s cubic-bezier(.2,.8,.2,1)}
@keyframes otp-timer-breathe{0%,100%{transform:scale(1);box-shadow:0 8px 20px rgba(17,117,110,.1)}50%{transform:scale(1.035);box-shadow:0 10px 25px rgba(17,117,110,.16)}}
@keyframes otp-resend-ready{0%{transform:translateY(2px);opacity:.55}100%{transform:translateY(0);opacity:1}}
@media(max-width:460px){.otp-resend-countdown{gap:10px;padding:10px 11px;border-radius:18px}.otp-countdown-ring{width:52px;height:52px;flex-basis:52px}.otp-countdown-ring b{font-size:.76rem}.otp-countdown-copy strong{font-size:.76rem}.otp-countdown-copy small{font-size:.64rem}}
@media(prefers-reduced-motion:reduce){.otp-resend-countdown,.otp-countdown-progress,.otp-resend-countdown.is-counting .otp-countdown-ring,.auth-otp-form .auth-secondary:not(:disabled){animation:none!important;transition:none!important}}


.booking-confirm-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:22px;direction:rtl}
.booking-confirm-modal[hidden]{display:none!important}
.booking-confirm-backdrop{position:absolute;inset:0;background:rgba(7,24,31,.55);backdrop-filter:blur(10px)}
.booking-confirm-card{position:relative;width:min(530px,100%);border-radius:28px;background:linear-gradient(180deg,#fff,#f8fbfa);box-shadow:0 28px 80px rgba(20,58,67,.28);border:1px solid rgba(255,255,255,.78);padding:28px;overflow:hidden;outline:none;animation:bookingConfirmIn .22s ease-out both}
.booking-confirm-card:before{content:"";position:absolute;inset:-90px auto auto -70px;width:180px;height:180px;border-radius:50%;background:rgba(58,160,145,.14)}
.booking-confirm-x{position:absolute;top:15px;left:15px;width:38px;height:38px;border:0;border-radius:13px;background:#eef6f4;color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer}
.booking-confirm-icon{width:62px;height:62px;border-radius:22px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;margin-bottom:12px;box-shadow:inset 0 0 0 1px rgba(58,160,145,.14)}
.booking-confirm-icon .portal-icon{width:30px;height:30px}
.booking-confirm-card h3{font-size:1.22rem;margin:6px 0 14px;line-height:1.7;letter-spacing:-.02em}
.booking-confirm-selected{display:grid;gap:4px;padding:12px 14px;border-radius:17px;background:#eef7f5;border:1px solid rgba(58,160,145,.16);margin-bottom:14px}
.booking-confirm-selected small{font-size:.63rem;color:var(--muted);font-weight:800}
.booking-confirm-selected strong{font-size:.86rem;color:var(--primary-strong)}
.booking-confirm-points{display:grid;gap:10px;margin:0 0 18px}
.booking-confirm-points p{margin:0;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:17px;background:#fff;color:var(--text);font-size:.78rem;line-height:1.9}
.booking-confirm-points b{width:30px;height:30px;border-radius:11px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.78rem}
.booking-confirm-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center}
.booking-confirm-actions .auth-secondary{width:auto;margin:0;padding:11px 18px;border-radius:14px}.booking-confirm-actions .portal-primary{min-height:46px}
body.booking-confirm-open{overflow:hidden}
@keyframes bookingConfirmIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
