
:root{
  --primary:#a91535;--primary-dark:#7b0f27;--primary-soft:#fbf0f3;
  --accent:#c99657;--bg:#f7f7f8;--surface:#ffffff;--surface-2:#fbfbfc;
  --text:#24262b;--muted:#737984;--border:#e7e7eb;
  --success:#23845d;--success-soft:#eaf7f1;--warning:#b67816;--warning-soft:#fff7e6;
  --danger:#c43b4d;--danger-soft:#fff0f2;--info:#3f6fa8;--info-soft:#eef5fc;
  --shadow:0 8px 28px rgba(32,22,25,.06);--radius:16px;--sidebar:252px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
body.dark{--bg:#151619;--surface:#1d1f23;--surface-2:#22252a;--text:#f4f4f5;--muted:#a4a7ae;--border:#30333a;--shadow:0 8px 28px rgba(0,0,0,.25)}
.hidden{display:none!important}
button,input,select,textarea{font:inherit}
button{cursor:pointer;border:0}
a{color:inherit}
.brandMark{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(169,21,53,.25);border-radius:13px;color:var(--primary);font-size:25px;background:#fff}
.brandMark.large{width:66px;height:66px;font-size:38px}
.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:700;padding:11px 18px;border-radius:11px;box-shadow:0 5px 14px rgba(169,21,53,.2);transition:.2s}
.primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(169,21,53,.26)}
.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:10px 16px;border-radius:10px}

/* Login */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(420px,.9fr);background:var(--surface)}
.loginVisual{background:
 linear-gradient(135deg,rgba(112,10,34,.92),rgba(169,21,53,.76)),
 radial-gradient(circle at 25% 20%,#d5a9b5,transparent 38%),
 linear-gradient(145deg,#8c1831,#b34359);position:relative;overflow:hidden}
.loginVisual:before,.loginVisual:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.loginVisual:before{width:560px;height:560px;right:-170px;top:-160px}
.loginVisual:after{width:380px;height:380px;left:-120px;bottom:-120px}
.visualOverlay{position:absolute;inset:0;padding:clamp(45px,8vw,105px);display:flex;flex-direction:column;justify-content:center;color:#fff;z-index:2}
.visualOverlay .brandMark{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.35)}
.visualOverlay h2{font-size:clamp(38px,5vw,68px);line-height:1.04;margin:28px 0 14px;letter-spacing:-2px}
.visualOverlay>p{font-size:16px;letter-spacing:2px;opacity:.9}
.visualStats{display:grid;gap:11px;margin-top:45px}
.visualStats span:before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;margin-right:10px;background:rgba(255,255,255,.16);border-radius:50%}
.loginCard{width:min(470px,88%);align-self:center;justify-self:center;padding:42px}
.loginBrand{display:flex;align-items:center;gap:12px;margin-bottom:50px}
.loginBrand h1{font-size:20px;color:var(--primary);margin:0;letter-spacing:.3px}
.loginBrand p{margin:3px 0 0;font-size:11px;letter-spacing:1.5px;color:var(--muted)}
.loginIntro h2{font-size:30px;margin:0 0 8px}.loginIntro p{color:var(--muted);margin:0 0 28px}
.loginCard>label,.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:15px 0 7px;letter-spacing:.15px}
.inputWrap{position:relative}.inputWrap>span{position:absolute;left:13px;top:12px;color:var(--muted)}
.inputWrap input{padding-left:38px}.inputWrap .passwordToggle{position:absolute;right:7px;top:7px;background:transparent;color:var(--primary);font-size:12px;padding:6px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:rgba(169,21,53,.55);box-shadow:0 0 0 3px rgba(169,21,53,.08)}
textarea{min-height:100px;resize:vertical}.loginOptions{display:flex;justify-content:space-between;align-items:center;margin:14px 0;color:var(--muted);font-size:12px}
.checkLabel{display:flex!important;align-items:center;gap:7px;margin:0!important}.checkLabel input{width:auto}
.loginButton{width:100%;margin-top:8px;padding:13px}.loginFooter{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:35px;padding-top:20px;border-top:1px solid var(--border)}
.error,.errorBox{color:var(--danger)}.error{min-height:20px;margin-top:8px}

/* Shell */
.appShell{min-height:100vh}
aside{width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;z-index:50;display:flex;flex-direction:column;transition:.25s}
.sidebarBrand{display:flex;align-items:center;gap:10px;padding:22px 16px 10px;position:relative}
.sidebarBrand strong{font-size:15px;color:var(--primary);display:block}.sidebarBrand small{font-size:7px;color:var(--muted);letter-spacing:.55px}
.sidebarCollapse{position:absolute;right:-13px;top:28px;width:27px;height:27px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--primary);font-size:19px;box-shadow:var(--shadow)}
.arabicBrand{text-align:center;color:var(--primary);font-weight:700;font-size:15px;padding:4px 15px 17px;border-bottom:1px solid var(--border)}
.arabicBrand small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}
aside nav{flex:1;overflow-y:auto;padding:14px 10px 110px}
.navGroup{margin:9px 0 18px}.navGroupTitle{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#a0a4ac;padding:5px 12px 7px;font-weight:800}
aside nav button{display:flex;align-items:center;width:100%;gap:11px;text-align:left;background:transparent;color:#565b65;padding:10px 12px;border-radius:10px;margin:2px 0;transition:.16s}
aside nav button .navIcon{width:21px;text-align:center;font-size:17px}
aside nav button:hover{background:var(--primary-soft);color:var(--primary)}
aside nav button.active{background:linear-gradient(135deg,var(--primary),#b62b48);color:#fff;box-shadow:0 6px 16px rgba(169,21,53,.2)}
.sidebarFooter{position:absolute;left:0;right:0;bottom:0;background:var(--surface);padding:12px;border-top:1px solid var(--border)}
.userMini{font-size:12px;padding:8px 9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logout{width:100%;display:flex;gap:10px;align-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 12px}
.contentShell{margin-left:var(--sidebar);min-height:100vh;transition:.25s}
.topbar{height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:30}
body.dark .topbar{background:rgba(29,31,35,.92)}
.globalSearch{position:relative;width:min(440px,42vw)}.globalSearch>span{position:absolute;left:14px;top:10px;font-size:21px;color:var(--muted)}
.globalSearch input{padding-left:43px;padding-right:65px;background:var(--surface-2);height:42px}
.globalSearch kbd{position:absolute;right:10px;top:10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px 7px;color:var(--muted);font-size:10px}
.topbarActions{display:flex;align-items:center;gap:10px}.iconButton{width:39px;height:39px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);position:relative}.iconButton i{position:absolute;width:6px;height:6px;background:var(--primary);border-radius:50%;right:7px;top:6px}
.profileChip{display:flex;align-items:center;gap:9px;padding-left:7px}.profileChip strong,.profileChip small{display:block}.profileChip strong{font-size:12px}.profileChip small{font-size:10px;color:var(--muted)}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary-soft),#ead1d8);color:var(--primary);font-weight:800}
.mobileMenu{display:none;background:transparent;font-size:21px}
main{padding:26px 28px 18px;max-width:1800px;margin:auto}
.pageHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px}
.pageHeader h1{font-size:28px;letter-spacing:-.6px;margin:5px 0 4px}.pageHeader p{color:var(--muted);margin:0}
.breadcrumb{font-size:11px;color:var(--muted);display:flex;gap:7px}.breadcrumb span:last-child{color:var(--primary)}
.headerActions{display:flex;align-items:center;gap:10px}.todayChip{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 13px;font-size:12px;color:var(--muted)}
.appFooter{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding:30px 2px 8px}

/* Content */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.card,.panel,.tableWrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card{padding:18px}.panel{padding:19px}.tableWrap{overflow:auto}
.metric{position:relative;overflow:hidden;min-height:126px}.metric:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:var(--primary-soft);right:-22px;top:-22px}
.metric span{font-size:12px;color:var(--muted);font-weight:600}.metric strong{display:block;font-size:28px;margin-top:14px;letter-spacing:-.8px}.metric small{color:var(--success);display:block;margin-top:8px;font-size:10px}
.dashboardHero{display:grid;grid-template-columns:1.6fr .8fr;gap:15px;margin-bottom:15px}
.welcomePanel{background:linear-gradient(135deg,#8f102c,#ba3550);color:#fff;border:0;padding:25px;position:relative;overflow:hidden}
.welcomePanel:after{content:"✿";position:absolute;font-size:155px;right:25px;top:-35px;opacity:.08}
.welcomePanel h2{margin:0 0 7px;font-size:25px}.welcomePanel p{margin:0;opacity:.8}.welcomePanel .quickRow{display:flex;gap:9px;margin-top:22px;flex-wrap:wrap}.welcomePanel button{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.2);padding:9px 12px;border-radius:9px}
.systemCard{display:flex;flex-direction:column;justify-content:center}.systemCard h3{margin:0 0 8px}.systemStatus{display:flex;align-items:center;gap:8px;color:var(--success);font-weight:700}.statusDot{width:8px;height:8px;background:var(--success);border-radius:50%;box-shadow:0 0 0 5px var(--success-soft)}
.dashboardGrid{display:grid;grid-template-columns:1.35fr .65fr;gap:15px;margin-top:15px}.quickActionsGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quickAction{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:left;color:var(--text)}.quickAction span{display:block;color:var(--primary);font-size:19px;margin-bottom:7px}.quickAction small{color:var(--muted)}
.panelTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panelTitle h3{margin:0;font-size:16px}.panelTitle small{color:var(--muted)}
table{width:100%;border-collapse:collapse;min-width:800px}th,td{padding:12px 13px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);position:sticky;top:0}tbody tr:hover{background:rgba(169,21,53,.025)}
.toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.actionBtn,.printBtn,.payBtn{padding:7px 10px;margin:2px 3px 2px 0;border-radius:8px;font-size:12px;font-weight:650}
.actionBtn{background:var(--info-soft);color:var(--info)}.printBtn{background:var(--success-soft);color:var(--success)}.payBtn{background:var(--warning-soft);color:var(--warning)}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:var(--surface-2);border:1px solid var(--border);font-size:11px}
.emptyState{text-align:center;padding:50px 20px;color:var(--muted)}.emptyState span{display:block;font-size:38px;color:var(--primary);margin-bottom:10px}

/* Modal & forms */
.modal{display:none;position:fixed;inset:0;background:rgba(25,15,18,.58);backdrop-filter:blur(5px);z-index:99999;align-items:center;justify-content:center;padding:20px}
.modal.show{display:flex}#form{background:var(--surface);width:min(940px,96vw);max-height:92vh;overflow:auto;border-radius:19px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.modalHead,.actions{display:flex;justify-content:space-between;align-items:center;padding:20px 23px;border-bottom:1px solid var(--border);position:sticky;background:var(--surface);z-index:4}
.modalHead{top:0}.modalHead h2{margin:2px 0 0;font-size:21px}.modalEyebrow{font-size:10px;letter-spacing:1.3px;color:var(--primary);font-weight:800;text-transform:uppercase}
.closeButton{width:34px;height:34px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:22px}
.actions{justify-content:flex-end;gap:10px;border-top:1px solid var(--border);border-bottom:0;bottom:0}
#fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:22px}.field.full{grid-column:1/-1}.field small{display:block;color:var(--muted);margin-top:5px;font-size:11px}.errorBox{padding:0 23px 12px}

/* Calendar and specialised elements */
.calendarWrap{overflow:auto}.calendar{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:1px;min-width:1015px;background:var(--border);border-radius:14px;overflow:hidden}.day,.weekday{background:var(--surface);padding:9px;min-height:130px}.weekday{background:var(--surface-2);min-height:auto;text-align:center;font-weight:800}.duty{border:0;width:100%;text-align:left;background:var(--success-soft);color:var(--success);border-radius:8px;margin:3px 0;padding:7px}.override{background:var(--info-soft);color:var(--info)}.off{background:var(--danger-soft);color:var(--danger)}
.invoicePreview{font-family:Arial;color:#000;background:#fff}.invoiceHeader{text-align:center;font-size:22px;font-weight:900}.invoiceTitle{text-align:center;border:1px solid #222;border-radius:7px;padding:4px;font-weight:800;margin:5px 0}.invoiceGrid{display:grid;grid-template-columns:1.4fr 1fr;gap:3px}.invoiceBox{border:1px solid #222;border-radius:7px;padding:6px}.invoiceTable{width:100%;border-collapse:collapse;min-width:0}.invoiceTable th,.invoiceTable td{border-bottom:1px solid #222;padding:6px}.invoiceTotal{display:flex;justify-content:space-between;border:1px solid #222;border-radius:7px;padding:6px;margin-top:5px;font-weight:800}
.appointmentDashboardPanel{overflow:hidden}.dashboardLegend{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.dashboardLegend span{display:flex;align-items:center;gap:5px;font-size:13px}.legendBox{width:13px;height:13px;border-radius:3px;display:inline-block}.legendBox.available{background:#dff6e9}.legendBox.busy{background:#fde2e2}.legendBox.break{background:#fff1c9}.legendBox.off{background:#eceff4}.scheduleGrid{display:grid;gap:10px;margin-top:14px}.scheduleRow{display:grid;grid-template-columns:190px 1fr;gap:12px;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface)}.providerCell{padding:7px;border-right:1px solid var(--border)}.providerCell b,.providerCell small{display:block}.providerCell small{margin-top:4px;color:var(--muted)}.slotArea{display:flex;gap:7px;flex-wrap:wrap;align-content:flex-start}.slot{min-width:92px;border-radius:9px;padding:7px;text-align:left;border:1px solid transparent}.slot b,.slot small{display:block}.slot small{margin-top:3px;font-size:11px}.availableSlot{background:#e6f7ed;color:#13764b;border-color:#c5ecd5}.busySlot{background:#fde8e8;color:#ad2c2c;border-color:#f6caca}.breakSlot{background:#fff3d4;color:#8a6500;border-color:#f4df9e}.offSlot,.unavailable{background:#eef1f5;color:#687284}

/* Collapsed/mobile */
body.sidebarCollapsed{--sidebar:78px}body.sidebarCollapsed .sidebarBrand>div:not(.brandMark),body.sidebarCollapsed .arabicBrand,body.sidebarCollapsed .navGroupTitle,body.sidebarCollapsed aside nav button span:not(.navIcon),body.sidebarCollapsed .userMini,body.sidebarCollapsed .logout span{display:none}body.sidebarCollapsed .sidebarBrand{justify-content:center;padding-inline:10px}body.sidebarCollapsed aside nav button{justify-content:center}body.sidebarCollapsed .logout{justify-content:center}
.toastContainer{position:fixed;right:20px;bottom:20px;z-index:100000;display:grid;gap:9px}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-left:4px solid var(--success);padding:13px 16px;border-radius:10px;min-width:270px;animation:toastIn .25s ease}@keyframes toastIn{from{transform:translateY(10px);opacity:0}}
@media(max-width:1050px){.dashboardGrid,.dashboardHero{grid-template-columns:1fr}.login{grid-template-columns:1fr}.loginVisual{display:none}.loginCard{padding:30px}.globalSearch{width:min(360px,45vw)}}
@media(max-width:850px){aside{transform:translateX(-105%);box-shadow:var(--shadow)}body.sidebarOpen aside{transform:translateX(0)}.contentShell{margin-left:0}.mobileMenu{display:block}.topbar{padding:0 15px}.globalSearch{width:auto;flex:1;margin:0 10px}.globalSearch kbd{display:none}.profileChip>div:not(.avatar){display:none}main{padding:20px 15px}.pageHeader{align-items:flex-start}.todayChip{display:none}.scheduleRow{grid-template-columns:1fr}.providerCell{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:650px){#fields{grid-template-columns:1fr}.field.full{grid-column:1}.invoiceGrid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.quickActionsGrid{grid-template-columns:1fr}.pageHeader{display:block}.headerActions{margin-top:12px}.topbarActions .iconButton:first-child{display:none}}
@media(max-width:430px){.cards{grid-template-columns:1fr}.loginCard{width:94%;padding:22px}.loginBrand{margin-bottom:30px}}

/* v8.1.1 searchable patient selector for invoices */
.patientPicker{display:grid;gap:8px}
.patientPicker .patientSearch{font-weight:600}
.patientPicker .patientSelect{min-height:150px;padding:6px}
.patientPicker .patientSelect option{padding:9px 10px;border-bottom:1px solid var(--border);border-radius:7px}
.patientPicker small{color:var(--muted)}

/* v8.1.7 invoice service-row alignment only */
.invoiceLine{align-items:start!important}
.invoiceLine>div>label{display:block;min-height:18px;margin:0 0 7px;font-size:12px;font-weight:700;color:var(--muted)}
.invoiceLine input,.invoiceLine select{height:48px;box-sizing:border-box}
.invoiceLine>.actionBtn{height:48px;margin:25px 0 0;align-self:start;white-space:nowrap}
.invoiceLine .servicePickerHint{display:block;margin-top:6px;min-height:14px}
@media(max-width:850px){
  .invoiceLine{grid-template-columns:1fr 1fr!important}
  .invoiceLine>.actionBtn{margin-top:0}
}
@media(max-width:650px){
  .invoiceLine{grid-template-columns:1fr!important}
  .invoiceLine>.actionBtn{width:100%;margin-top:0}
}


/* v8.2.0 CEO Executive Dashboard */
.ceoHeader{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 24px;margin-bottom:16px;background:linear-gradient(135deg,var(--surface),var(--surface-2))}
.ceoHeader h2{margin:4px 0 5px;font-size:26px}.ceoHeader p{margin:0;color:var(--muted)}.ceoEyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:11px;font-weight:900;color:var(--primary)}
.ceoFilters{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.ceoFilters label{font-size:11px;font-weight:800;color:var(--muted)}.ceoFilters input{display:block;margin-top:5px;min-width:145px}
.ceoKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.ceoMetric{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:17px 18px;box-shadow:var(--shadow-soft);border-top:3px solid var(--border)}
.ceoMetric.revenue,.ceoMetric.collection{border-top-color:var(--primary)}.ceoMetric.success{border-top-color:var(--success)}.ceoMetric.warning{border-top-color:var(--warning)}.ceoMetric.appointments{border-top-color:var(--info)}
.ceoMetric span,.ceoMetric small{display:block;color:var(--muted)}.ceoMetric span{font-size:12px;font-weight:800}.ceoMetric strong{display:block;font-size:23px;margin:8px 0 4px}.ceoMetric small{font-size:11px}
.ceoDashboardGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ceoSpan2{grid-column:span 2}.ceoPanel{padding:18px}.ceoPanel .panelTitle{margin-bottom:15px}.ceoPanel .panelTitle h3{margin:0 0 3px}.ceoPanel .panelTitle small{color:var(--muted)}
.ceoBars{display:grid;gap:12px}.ceoBar>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:5px}.ceoBar>div span{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ceoBar>div b{white-space:nowrap}.ceoBar i{height:8px;border-radius:99px;background:var(--surface-2);display:block;overflow:hidden}.ceoBar em{height:100%;display:block;border-radius:99px;background:var(--primary)}
.paymentMix,.summaryList{display:grid;gap:10px}.paymentMix>div,.summaryList>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.paymentMix>div:last-child,.summaryList>div:last-child{border-bottom:0}.paymentMix span,.summaryList span{color:var(--muted)}
.ceoAlerts{display:grid;gap:8px}.ceoAlerts button{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;text-align:left;background:var(--surface-2);border:1px solid var(--border);padding:11px 12px}.ceoAlerts button b{color:var(--primary)}.ceoAlerts button i{font-size:20px}.ceoAlerts button:disabled{opacity:.75;cursor:default}
.flowGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.flowGrid div{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:15px;text-align:center}.flowGrid strong,.flowGrid span{display:block}.flowGrid strong{font-size:24px}.flowGrid span{font-size:11px;color:var(--muted);margin-top:4px}
.ceoQuickActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ceoQuickActions button{min-height:50px;background:var(--surface-2);border:1px solid var(--border);font-weight:700}.ceoEmpty{padding:24px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:12px}
@media(max-width:1150px){.ceoKpis{grid-template-columns:repeat(2,1fr)}.ceoDashboardGrid{grid-template-columns:repeat(2,1fr)}.ceoSpan2{grid-column:span 2}}
@media(max-width:750px){.ceoHeader{display:block}.ceoFilters{margin-top:16px}.ceoDashboardGrid{grid-template-columns:1fr}.ceoSpan2{grid-column:span 1}}
@media(max-width:520px){.ceoKpis{grid-template-columns:1fr}.ceoFilters label,.ceoFilters input{width:100%}.ceoQuickActions{grid-template-columns:1fr}}

/* v8.4.1 — invoice filters and user-resizable screen fields */
.invoiceFilterPanel{margin-bottom:14px;padding:14px 16px}
.invoiceFilters{display:grid;grid-template-columns:minmax(280px,2.2fr) minmax(160px,.8fr) minmax(145px,.7fr) minmax(145px,.7fr) auto;gap:12px;align-items:end}
.filterField{display:flex;flex-direction:column;gap:6px;min-width:0}
.filterField label{font-size:12px;font-weight:700;color:var(--muted,#6b7280)}
.filterField input,.filterField select{width:100%;min-height:42px}
.filterActions{display:flex;align-items:end;padding-bottom:1px}
.filterCount{margin-top:10px;color:var(--muted,#6b7280);font-size:12px}
.resizableTable{table-layout:fixed;min-width:100%}
.resizableTable th{position:relative;overflow:visible}
.resizableTable td{overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere}
.columnResizeGrip{position:absolute;z-index:4;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;touch-action:none;user-select:none}
.columnResizeGrip::after{content:"";position:absolute;top:18%;bottom:18%;left:4px;width:1px;background:transparent}
.columnResizeGrip:hover::after,.columnResizeGrip:active::after{background:#a91535}
.userResizableField,textarea{resize:vertical;min-height:84px;max-height:520px}
@media(max-width:1050px){.invoiceFilters{grid-template-columns:1fr 1fr}.filterSearch{grid-column:1/-1}.filterActions{align-items:stretch}.filterActions button{width:100%}}
@media(max-width:640px){.invoiceFilters{grid-template-columns:1fr}.filterSearch{grid-column:auto}}

/* v8.4.2 — no page-bottom scrollbar, appointment orientation */
html,body,.appShell,.contentShell,main,#view{max-width:100%;overflow-x:hidden}
.tableWrap{overflow-x:hidden;overflow-y:visible}
table{min-width:0;table-layout:fixed}
th,td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.calendarWrap{overflow-x:hidden}
.appointmentHorizontal{width:100%;overflow-x:hidden;margin-top:14px}
.appointmentHorizontal table{width:100%;table-layout:fixed;min-width:0}
.appointmentHorizontal th,.appointmentHorizontal td{padding:8px;vertical-align:top}
.appointmentHorizontal .slot{width:100%;min-width:0;text-align:left}
.appointmentDashboardPanel .toolbar>div{min-width:150px}
@media(max-width:900px){.appointmentHorizontal{overflow-x:auto}.appointmentHorizontal table{min-width:760px}}

/* v8.4.3 */
.segmented{display:flex;gap:6px}.segmented button{padding:9px 14px;border:1px solid var(--border);background:var(--surface-2);border-radius:9px}.segmented button.active{background:var(--primary);color:white}.badge.pending{background:var(--warning-soft);color:var(--warning);font-size:9px;margin-left:4px}.slotAction{display:block;margin-top:5px;text-decoration:underline;font-size:10px}.resizableTable th[draggable=true]{cursor:grab}.resizableTable th[draggable=true]:active{cursor:grabbing}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:650px){.formGrid{grid-template-columns:1fr}}

/* v8.4.5 — appointment drag/drop and multiple ReTouch bookings */
.appointmentDropZone{min-width:0;border:1px dashed transparent;border-radius:10px;padding:2px;transition:background .15s,border-color .15s;display:flex;flex-direction:column;gap:5px}
.appointmentDropZone.dragOver{background:#eef8f2;border-color:#1f9d55}
.appointmentDropZone.occupied{background:rgba(169,21,53,.025)}
.appointmentDraggable[draggable=true]{cursor:grab}
.appointmentDraggable.dragging{opacity:.48;cursor:grabbing}
.appointmentHorizontal td.appointmentDropZone{display:table-cell}
.appointmentHorizontal td.appointmentDropZone .slot{display:block;margin-bottom:5px}
.appointmentHorizontal td.appointmentDropZone .slot:last-child{margin-bottom:0}

.completeRegistrationBtn{position:relative;z-index:20;pointer-events:auto;cursor:pointer;border:0;background:transparent;padding:3px 0;color:inherit;font:inherit;text-decoration:underline}.appointmentDraggable{position:relative}.appointmentDraggable .completeRegistrationBtn{user-select:none}

/* v8.4.5.3 Appointment patient-flow status */
.appointmentDraggable{border-width:1px!important;position:relative}.appointmentStatusBadge{display:inline-flex;align-items:center;width:max-content;margin-top:5px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;background:rgba(255,255,255,.72);color:inherit}.appointmentFlowActions{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.slotAction{font-size:10px;padding:5px 7px;border-radius:7px;font-weight:700}.statusConfirmed{background:#eaf2ff!important;color:#2d5f9f!important;border-color:#c7dcfb!important}.statusArrived{background:#fff0d9!important;color:#985c00!important;border-color:#f2cc91!important}.statusWithDoctor{background:#f8e6ec!important;color:#8e1633!important;border-color:#eab7c5!important}.statusCompleted{background:#e6f6ed!important;color:#187349!important;border-color:#bde4cf!important}.statusCancelled{background:#fde7e9!important;color:#ad2d3b!important;border-color:#f5bdc4!important}.statusNoShow{background:#eceff3!important;color:#626a75!important;border-color:#d6dbe2!important}.statusConfirmedLegend{background:#8eb5e8}.statusArrivedLegend{background:#e4a742}.statusDoctorLegend{background:#a91535}.statusCompletedLegend{background:#49a678}.checkInAction{background:#e6a63b;color:#fff}.doctorAction{background:#a91535;color:#fff}.completeAction{background:#23845d;color:#fff}

/* v8.4.5.5 — Appointment Dashboard inline status selection */
.appointmentStatusSelect{margin-top:5px;width:100%;max-width:190px;padding:4px 7px;border:1px solid rgba(0,0,0,.18);border-radius:6px;background:#fff;font-size:11px;font-weight:700;cursor:pointer;position:relative;z-index:6}
.busySlot .appointmentStatusSelect:focus{outline:2px solid rgba(128,0,32,.22);outline-offset:1px}

/* v8.4.5.8 — Appointment Dashboard compact cards (30% reduction) */
.appointmentDraggable.busySlot{padding:5px;min-width:64px;font-size:70%}
.appointmentDraggable.busySlot>b{font-size:11px;line-height:1.22}
.appointmentDraggable.busySlot>small{margin-top:2px;font-size:8px;line-height:1.2}
.appointmentDraggable .badge.pending{font-size:7px;padding:2px 5px;margin-left:3px}
.appointmentDraggable .appointmentStatusSelect{margin-top:2px;max-width:165px;padding:5px 8px;font-size:11px;line-height:1.2;min-height:31px;font-weight:800}
.appointmentDraggable .appointmentFlowActions{gap:3px;margin-top:4px}
.appointmentDraggable .slotAction{font-size:8px;padding:3px 5px;border-radius:5px;margin-top:3px}
.appointmentDropZone{gap:3px;padding:1px}
.appointmentHorizontal td.appointmentDropZone .appointmentDraggable{margin-bottom:3px}

/* v8.4.5.9 — compact name/status row and configurable 5-minute dashboard slots */
.appointmentCardTop{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.appointmentCardTop>b{font-size:11px;line-height:1.22;min-width:0;flex:1 1 115px}
.appointmentCardTop .appointmentStatusSelect{margin-top:0;width:auto;min-width:105px;max-width:165px;flex:0 1 145px}
.appointmentDraggable.busySlot>small{display:block}
@media(max-width:1100px){.appointmentCardTop .appointmentStatusSelect{flex-basis:100%;max-width:150px}}

/* v8.4.5.10 Appointment dashboard inline patient details */
.appointmentInlineInfo{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap;line-height:1.15}
.appointmentInlineInfo b,.appointmentMobile,.appointmentService{white-space:nowrap}
.appointmentInlineSep{opacity:.45}
.appointmentService{font-size:.92em}
.appointmentMobile{font-size:.92em;font-variant-numeric:tabular-nums}
.appointmentRegistrationLine{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:3px}
.appointmentRegistrationLine .completeRegistrationBtn{margin:0}


/* v8.4.6 Patient Timeline & Clinical Summary */
.patientTimelineHeader{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px;margin-bottom:14px}.patientTimelineHeader h2{margin:4px 0 3px;font-size:28px}.patientTimelineHeader p{margin:0;color:#667085}.patientTimelineEyebrow{margin-top:12px;font-weight:800;color:#a80f32;letter-spacing:.08em;font-size:12px}.patientTimelineActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.patientTimelineMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.patientTimelineMetric{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 16px;min-height:92px;box-shadow:0 7px 22px rgba(15,23,42,.04)}.patientTimelineMetric span{display:block;color:#667085;font-size:12px;font-weight:700;margin-bottom:8px}.patientTimelineMetric strong{display:block;font-size:18px;color:#101828;overflow-wrap:anywhere}.patientTimelineMetric small{display:block;margin-top:5px;color:#98a2b3}.patientTimelineGrid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:start}.patientSummaryPanel,.patientTimelinePanel{padding:16px}.patientSummaryList{display:grid;gap:0}.patientSummaryList>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef0f3}.patientSummaryList>div:last-child{border-bottom:0}.patientSummaryList span{color:#667085;font-size:12px}.patientSummaryList b{text-align:right;font-size:13px;overflow-wrap:anywhere}.patientTimelineList{position:relative;padding:2px 0 8px}.patientTimelineEvent{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;position:relative;padding:9px 0}.patientTimelineEvent:before{content:"";position:absolute;left:18px;top:45px;bottom:-9px;width:1px;background:#e4e7ec}.patientTimelineEvent:last-child:before{display:none}.patientTimelineDot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f2f4f7;color:#475467;border:1px solid #e4e7ec;font-weight:800;z-index:1}.patientTimelineEvent.appointment .patientTimelineDot{background:#eef4ff;color:#175cd3}.patientTimelineEvent.invoice .patientTimelineDot{background:#fff4ed;color:#b54708}.patientTimelineEvent.payment .patientTimelineDot{background:#ecfdf3;color:#027a48}.patientTimelineEvent.treatment-plan .patientTimelineDot{background:#fdf2fa;color:#c11574}.patientTimelineEvent.document .patientTimelineDot,.patientTimelineEvent.consent-form .patientTimelineDot{background:#f9f5ff;color:#6941c6}.patientTimelineEvent.photo .patientTimelineDot{background:#eff8ff;color:#026aa2}.patientTimelineEvent.package .patientTimelineDot{background:#fefbe8;color:#a15c07}.patientTimelineBody{border:1px solid #eaecf0;border-radius:12px;padding:11px 13px;background:#fff}.patientTimelineEventHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.patientTimelineEventHead b{font-size:13px}.patientTimelineEventHead div>span{display:block;color:#98a2b3;font-size:11px;margin-top:2px}.patientTimelineEventHead time{white-space:nowrap;color:#667085;font-size:11px}.patientTimelineEventMeta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:7px;color:#667085;font-size:12px}.patientTimelineEventMeta .badge{font-size:10px}.patientTimelinePanel .emptyState{box-shadow:none;border:0}@media(max-width:1100px){.patientTimelineMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.patientTimelineGrid{grid-template-columns:1fr}.patientTimelineHeader{align-items:flex-start;flex-direction:column}.patientTimelineActions{justify-content:flex-start}}@media(max-width:620px){.patientTimelineMetrics{grid-template-columns:1fr}.patientTimelineEventHead{flex-direction:column}.patientTimelineEventHead time{white-space:normal}}

/* v8.4.6.4 Daily Management Summary */
.mgmtTitle{text-align:center}.mgmtTitle h2{margin-bottom:4px}.mgmtKpis{margin-bottom:14px}.mgmtCompare{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.mgmtCompare>div{border:1px solid var(--border);border-radius:10px;padding:12px}.mgmtCompare span,.mgmtCompare small{display:block}.mgmtCompare strong{display:block;font-size:20px;margin:4px 0}.mgmtUp{color:#15803d;font-weight:700}.mgmtDown{color:#b42318;font-weight:700}.mgmtChartGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mgmtBars{padding:4px 0}.mgmtBarRow{display:grid;grid-template-columns:minmax(120px,180px) 1fr 100px;gap:8px;align-items:center;margin:7px 0}.mgmtBarLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mgmtBarTrack{height:10px;background:var(--soft);border-radius:999px;overflow:hidden}.mgmtBarFill{height:100%;background:var(--accent);border-radius:999px}.mgmtBarValue{text-align:right;font-weight:700}.num{text-align:right}@media(max-width:900px){.mgmtCompare,.mgmtChartGrid{grid-template-columns:1fr 1fr}.mgmtBarRow{grid-template-columns:120px 1fr 90px}}@media(max-width:620px){.mgmtCompare,.mgmtChartGrid{grid-template-columns:1fr}.mgmtBarRow{grid-template-columns:100px 1fr 84px}}

/* v8.4.7 Follow-Up & Recall */
.followUpMetrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin-bottom:14px}.followUpStatus.DueToday{background:#fff2cc;color:#805b00}.followUpStatus.Overdue{background:#fde8e8;color:#9b1c1c}.followUpStatus.AppointmentBooked{background:#e7f0ff;color:#174ea6}.followUpStatus.Completed{background:#e5f6ea;color:#176b35}@media(max-width:800px){.followUpMetrics{grid-template-columns:repeat(2,1fr)}}


/* v8.4.8.4 — Appointment patient history search */
.appointmentListSearch{min-width:420px;flex:1}.appointmentListSearch .inlineSearch{display:flex;gap:7px;align-items:center}.appointmentListSearch input[type="search"]{min-width:280px;flex:1}.appointmentListSearch small{display:block;margin-top:6px;color:var(--muted,#667085)}.patientServiceHistory{padding:16px;margin-bottom:14px}.patientHistoryIdentities{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}.patientHistoryIdentity{border:1px solid var(--border,#e4e7ec);border-radius:10px;padding:9px 12px;background:var(--surface,#fff);min-width:260px}.patientHistoryIdentity b,.patientHistoryIdentity span{display:block}.patientHistoryIdentity span{font-size:12px;color:var(--muted,#667085);margin-top:3px}@media(max-width:700px){.appointmentListSearch{min-width:100%}.appointmentListSearch .inlineSearch{align-items:stretch;flex-wrap:wrap}.appointmentListSearch input[type="search"]{min-width:100%}}

/* v8.4.8.5 — Appointment patient visit summary */
.patientHistorySummary{display:grid;gap:14px;margin-bottom:14px}.patientHistoryPatientCard{padding:16px 18px}.patientHistoryEyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--accent,#0b8f87);margin-bottom:5px}.patientHistoryPatientCard h3{font-size:20px;margin:0 0 8px}.patientHistoryMeta{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted,#667085);font-size:12px}.patientHistoryMeta b{color:var(--text,#101828)}.appointmentHistoryKpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px}.appointmentHistoryKpi{background:var(--surface,#fff);border:1px solid var(--border,#e4e7ec);border-radius:14px;padding:16px;box-shadow:0 6px 18px rgba(15,23,42,.04);min-height:104px}.appointmentHistoryKpi span{display:block;color:var(--muted,#667085);font-size:12px;font-weight:700}.appointmentHistoryKpi strong{display:block;font-size:24px;line-height:1.1;margin:9px 0 5px;color:var(--text,#101828)}.appointmentHistoryKpi small{display:block;color:var(--muted,#667085);font-size:11px}.patientServiceHistory .num{text-align:center;vertical-align:middle;font-variant-numeric:tabular-nums}.patientServiceHistory th:nth-child(3),.patientServiceHistory th:nth-child(4){text-align:center;vertical-align:middle}.patientServiceHistory td:nth-child(3),.patientServiceHistory td:nth-child(4){text-align:center;vertical-align:middle}@media(max-width:1000px){.appointmentHistoryKpis{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:620px){.appointmentHistoryKpis{grid-template-columns:1fr}.patientHistoryMeta{display:grid;gap:5px}}
/* v8.4.8.8 Patient History */
.patientHistorySearchPanel{padding:16px;margin-bottom:14px}.patientHistorySearchRow{display:flex;gap:8px;align-items:center}.patientHistorySearchRow input{flex:1;min-width:260px}.patientHistoryHint{display:block;margin-top:8px;color:var(--muted,#667085)}.patientHistoryNoMatch{margin-top:10px;color:var(--danger,#b42318)}.patientHistoryMatches{display:grid;gap:7px;margin-top:10px}.patientHistoryMatches button{text-align:left;padding:10px 12px;border:1px solid var(--border,#e4e7ec);border-radius:10px;background:var(--surface,#fff);color:var(--text,#101828);cursor:pointer}.patientHistoryMatches button b,.patientHistoryMatches button span{display:block}.patientHistoryMatches button span{font-size:12px;color:var(--muted,#667085);margin-top:3px}.patientHistorySummary .appointmentHistoryKpis{grid-template-columns:repeat(4,minmax(160px,1fr))}.patientHistorySummary .appointmentHistoryKpi{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.patientHistorySummary .appointmentHistoryKpi span,.patientHistorySummary .appointmentHistoryKpi strong,.patientHistorySummary .appointmentHistoryKpi small{text-align:center}.patientHistorySummary .patientServiceHistory{margin-bottom:14px}@media(max-width:800px){.patientHistorySearchRow{flex-wrap:wrap}.patientHistorySearchRow input{min-width:100%}.patientHistorySummary .appointmentHistoryKpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.patientHistorySummary .appointmentHistoryKpis{grid-template-columns:1fr}}

/* v8.4.8.10.3 appointment statuses */
.statusDraft{background:#f4f5f7!important;color:#6b7280!important;border-color:#d9dde3!important}.statusNoAnswer{background:#fff4dc!important;color:#8a5a00!important;border-color:#ead09a!important}.statusDraftLegend{background:#b9bec7}.statusNoAnswerLegend{background:#d8a43d}.statusCancelledLegend{background:#d32f3f}.statusCancelled .appointmentStatusSelect{background:#fde7e9!important;color:#ad2d3b!important;border-color:#e99aa4!important}

/* v8.4.8.10.6 status colour refinement - based on stable v8.4.8.10.5 dashboard layout */
.statusWithDoctor{background:#fff4bf!important;color:#795b00!important;border-color:#e8cc5b!important}
.statusWithDoctor .appointmentStatusSelect{background:#fff4bf!important;color:#795b00!important;border-color:#d9b93f!important}
.statusNoAnswer{background:#ffe4bd!important;color:#9a4b00!important;border-color:#f2ae54!important}
.statusNoAnswer .appointmentStatusSelect{background:#ffe4bd!important;color:#9a4b00!important;border-color:#e89a38!important}
.statusNoShow{background:#fde3ef!important;color:#9b285b!important;border-color:#eeaac8!important}
.statusNoShow .appointmentStatusSelect{background:#fde3ef!important;color:#9b285b!important;border-color:#df8db2!important}
.statusDeleted{background:#ffd9d9!important;color:#a40000!important;border-color:#e96b6b!important}
.statusDeleted .appointmentStatusSelect{background:#ffd9d9!important;color:#a40000!important;border-color:#db4c4c!important}
.statusDoctorLegend{background:#e5c23f!important}.statusNoAnswerLegend{background:#ed941e!important}.statusNoShowLegend{background:#e88ab4!important}.statusDeletedLegend{background:#d32f2f!important}

/* v8.4.8.10.25.3 — voucher actions must never be clipped */
.voucherTableWrap{overflow:visible!important}
.voucherTable{table-layout:fixed!important;width:100%!important}
.voucherTable td.voucherActions{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;word-break:normal!important;padding-right:6px}
.voucherActions button{border:0;border-radius:7px;padding:6px 8px;margin:1px 3px 1px 0;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}
.voucherPrintBtn{background:#eaf4ff;color:#165b9c}.voucherWaBtn{background:#128C7E;color:#fff}.voucherCancelBtn{background:#fff0f0;color:#b42318}
/* Voucher UI v8.4.8.10.25.4 */
.voucherWorkspace{display:grid;gap:14px}.voucherListPanel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.voucherToolbar{display:flex;justify-content:space-between;padding:12px 16px;background:#fff7f8;color:#a50739}.voucherTable{min-width:1450px}.voucherTableWrap{overflow-x:auto!important}.voucherTable td.voucherActions{min-width:285px!important;width:285px!important;overflow:visible!important;white-space:nowrap!important}.voucherActions button{display:inline-block!important;visibility:visible!important}.voucherEditBtn{background:#eef6ff!important;color:#1769aa!important}.voucherStatus{display:inline-block;padding:4px 9px;border-radius:6px;font-weight:700}.voucherStatus.active{background:#d9f7e5;color:#147a3c}.voucherStatus.used{background:#dbeeff;color:#1769aa}.voucherStatus.expired{background:#eceff1;color:#555}.voucherStatus.cancelled{background:#ffe1e1;color:#b42318}


/* v8.4.8.10.25.5 — responsive approved voucher workspace */
.voucherMainGrid{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(480px,1.25fr);gap:16px;margin-bottom:16px;align-items:stretch}.voucherDetailPanel,.voucherPreviewPanel,.voucherListPanel{background:#fff;border:1px solid var(--border,#e4e7ec);border-radius:12px;overflow:hidden;box-shadow:0 3px 12px rgba(15,23,42,.035)}.voucherSectionTitle,.voucherToolbar{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#fff7f8;color:#a50739;font-weight:800}.voucherSectionTitle small{font-weight:500;color:#667085}.voucherInlineForm{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px;padding:14px}.voucherInlineForm label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#344054}.voucherInlineForm input,.voucherInlineForm select,.voucherInlineForm textarea{width:100%;min-width:0;border:1px solid #d0d5dd;border-radius:7px;padding:9px 10px;background:#fff;color:#101828;font:inherit}.voucherInlineForm input[readonly],.voucherInlineForm select:disabled,.voucherInlineForm textarea[readonly]{background:#f5f6f8;color:#475467}.voucherInlineForm textarea{min-height:61px;resize:vertical}.voucherInlineActions{grid-column:1/-1;display:flex;gap:9px;flex-wrap:wrap;padding-top:2px}.voucherInlineActions button{border:0;border-radius:7px;padding:9px 14px;font-weight:800;cursor:pointer}.voucherCardPreview{position:relative;overflow:hidden;aspect-ratio:1.52/1;margin:10px;border:1px solid #d5b1bd;border-radius:10px;padding:3.2% 3.6% 12%;background:#fff;color:#20242a}.voucherPetal{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:min(17vw,170px);color:#b0093d;opacity:.035}.voucherBrandRow{display:flex;justify-content:space-between;position:relative}.voucherBrand{color:#ad073d}.voucherBrand b{display:block;font-size:clamp(13px,1.25vw,23px)}.voucherBrand small{display:block;color:#555;font-size:clamp(7px,.58vw,11px);margin-left:22px}.voucherBrand.ar{direction:rtl;text-align:right}.voucherBrand.ar small{margin-left:0;margin-right:22px}.voucherTitleRow{display:grid;grid-template-columns:1fr 1fr;gap:7%;text-align:center;margin:4% 4% 2.3%;position:relative;color:#a50739}.voucherTitleRow strong{display:block;font-family:Georgia,serif;font-size:clamp(15px,1.55vw,29px)}.voucherTitleRow small,.voucherValueRow small{display:block;color:#555;font-size:clamp(7px,.56vw,10px);letter-spacing:2px;margin-top:4px}.voucherTitleRow .ar,.voucherValueRow .ar,.voucherInfo.ar,.voucherTermsRow .ar{direction:rtl;text-align:right}.voucherTitleRow .ar small,.voucherValueRow .ar small{letter-spacing:0;text-align:center}.voucherValueRow{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin:0 1% 3%;position:relative}.voucherValueRow>div{background:#fbeff2;border-radius:12px;text-align:center;padding:4% 2%;color:#a50739}.voucherValueRow strong{font-family:Georgia,serif;font-size:clamp(22px,3vw,52px);white-space:nowrap}.voucherInfoRow{display:grid;grid-template-columns:1fr 20% 1fr;gap:3%;align-items:center;position:relative}.voucherInfo{font-size:clamp(8px,.73vw,13px);line-height:1.9}.voucherInfo b{color:#a50739}.voucherQrBox{text-align:center}.voucherQr{width:min(7vw,76px);height:min(7vw,76px);margin:auto;display:grid;grid-template:repeat(11,1fr)/repeat(11,1fr);gap:1px;padding:4px;border:3px solid #111;background:#fff}.voucherQr i{background:#111}.voucherQrBox small{font-size:9px}.voucherTermsRow{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin:2.5% 1% 0;position:relative}.voucherTermsRow>div{background:#fbeff2;border-radius:9px;padding:2.3% 3%;font-size:clamp(7px,.56vw,10px);line-height:1.35}.voucherWaveGold,.voucherWaveRed{position:absolute;left:-6%;width:112%;border-radius:50% 50% 0 0}.voucherWaveGold{height:16%;bottom:-7%;background:#e3c57e}.voucherWaveRed{height:17%;bottom:-10%;background:linear-gradient(90deg,#8f002f,#d00b4d,#8f002f)}.voucherFooter{position:absolute;left:5%;right:5%;bottom:2.1%;display:flex;justify-content:space-between;color:#fff;font-size:clamp(7px,.53vw,10px)}.voucherPreviewEmpty{padding:30px;text-align:center;color:#667085}.voucherTableWrap{width:100%!important;overflow-x:hidden!important}.voucherTable{width:100%!important;min-width:0!important;table-layout:fixed!important}.voucherTable th,.voucherTable td{min-width:0!important;max-width:none!important;padding:8px 7px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voucherTable th:nth-child(1){width:7%}.voucherTable th:nth-child(2){width:7%}.voucherTable th:nth-child(3){width:16%}.voucherTable th:nth-child(4){width:9%}.voucherTable th:nth-child(5){width:7%}.voucherTable th:nth-child(6),.voucherTable th:nth-child(7){width:8%}.voucherTable th:nth-child(8){width:7%}.voucherTable th:nth-child(9){width:7%}.voucherTable th:nth-child(10){width:24%}.voucherTable td.voucherActions{width:auto!important;min-width:0!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}.voucherActions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.voucherActions button{padding:5px 6px!important;margin:0!important;font-size:10px!important}.voucherTable tbody tr{cursor:pointer}.voucherTable tbody tr.selected{background:#fff7f8}.voucherStatusInput.active{color:#147a3c!important;font-weight:800}.voucherStatusInput.used{color:#1769aa!important;font-weight:800}.voucherStatusInput.cancelled,.voucherStatusInput.expired{color:#b42318!important;font-weight:800}@media(max-width:1100px){.voucherMainGrid{grid-template-columns:1fr}.voucherCardPreview{max-width:780px;margin:10px auto}.voucherTable th:nth-child(2),.voucherTable td:nth-child(2),.voucherTable th:nth-child(9),.voucherTable td:nth-child(9){display:none}.voucherTable th:nth-child(3){width:18%}.voucherTable th:nth-child(10){width:28%}}@media(max-width:760px){.voucherInlineForm{grid-template-columns:1fr}.voucherInlineActions{grid-column:1}.voucherTable th:nth-child(4),.voucherTable td:nth-child(4),.voucherTable th:nth-child(6),.voucherTable td:nth-child(6){display:none}.voucherTable th,.voucherTable td{font-size:10px;padding:7px 4px}.voucherActions button{font-size:9px!important;padding:4px!important}}

/* v8.4.8.10.25.9 - voucher barcode rendering */
.voucherQr.voucherBarcodeBox{display:block!important;width:min(10vw,118px)!important;height:auto!important;min-height:58px!important;padding:4px!important;border:2px solid #111!important;background:#fff!important;overflow:visible!important}
.voucherQr.voucherBarcodeBox svg{display:block!important;width:100%!important;height:58px!important;min-width:100%!important;max-width:none!important;background:#fff!important}
.voucherQrBox .voucherBarcodeBox + small{display:none!important}

/* v8.4.8.10.25.10 Purchase filters/export */
.purchaseFilters{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(140px,.7fr) minmax(140px,.7fr) minmax(220px,1.5fr) auto;gap:10px;align-items:end;padding:12px}.purchaseFilters .filterField{min-width:0}.purchaseFilters input,.purchaseFilters select{width:100%;box-sizing:border-box}.purchaseFilterActions{display:flex;gap:8px;align-items:end}.purchaseExport{position:relative}.purchaseExportMenu{position:absolute;right:0;top:calc(100% + 5px);z-index:30;background:#fff;border:1px solid #dce2ea;border-radius:8px;box-shadow:0 8px 24px #0002;min-width:150px;padding:5px}.purchaseExportMenu button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:9px;border-radius:6px}.purchaseExportMenu button:hover{background:#f8edf1}.purchaseResults .tableWrap{overflow-x:hidden}.purchaseResults table{width:100%;table-layout:fixed}.purchaseResults th,.purchaseResults td{white-space:normal;overflow-wrap:anywhere}.purchaseResults th:nth-child(1){width:7%}.purchaseResults th:nth-child(2){width:7%}.purchaseResults th:nth-child(3){width:12%}.purchaseResults th:nth-child(4){width:9%}.purchaseResults th:nth-child(5){width:25%}.purchaseResults th:nth-child(6){width:7%}.purchaseResults th:nth-child(7){width:7%}.purchaseResults th:nth-child(8){width:10%}.purchaseResults th:nth-child(9){width:16%}.purchaseActions{white-space:normal!important}.purchaseActions .actionBtn{margin:2px}@media(max-width:1100px){.purchaseFilters{grid-template-columns:repeat(2,minmax(0,1fr))}.purchaseTextFilter{grid-column:1/-1}.purchaseFilterActions{grid-column:1/-1;justify-content:flex-end}.purchaseResults table{font-size:11px}}@media(max-width:700px){.purchaseFilters{grid-template-columns:1fr}.purchaseTextFilter,.purchaseFilterActions{grid-column:auto}.purchaseFilterActions{justify-content:stretch}.purchaseFilterActions>*{flex:1}.purchaseFilterActions button{width:100%}}
