:root{--blue:#1455c0;--blue-dark:#0b2d63;--blue-light:#eaf2ff;--blue-soft:#f5f9ff;--bg:#f5f8fc;--white:#fff;--muted:#64748b;--line:#dbe5f0;--danger:#dc2626;--orange:#ea580c;--success:#15803d}*{box-sizing:border-box}body{margin:0;font-family:"Century Gothic","CenturyGothic",Arial,sans-serif;background:var(--bg);color:#172033}a{text-decoration:none;color:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--blue-dark);color:#d9e5ef;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-size:19px;font-weight:700;margin:0 10px 28px}.brand span,.logo-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2b72d6,#1455c0);color:#fff;font-weight:800}.brand b{color:#b8d3ff}nav{display:grid;gap:5px}nav a{padding:11px 12px;border-radius:10px;color:#d6e5ff;font-size:14px}nav a:hover,nav a.active{background:#174a96;color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #244057;padding:16px 10px;display:grid;gap:9px;font-size:13px}.side-bottom span{color:#9fc4ff}.main{margin-left:250px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 30px}.user-chip{background:var(--blue-light);padding:8px 12px;border-radius:999px;font-size:13px}.content{padding:30px;max-width:1500px;margin:auto}.hero,.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.hero{background:linear-gradient(135deg,#0b2d63,#1455c0);color:#fff;border-radius:18px;padding:28px}.hero p,.page-head p{color:#6b7a8c;margin:6px 0 0}.hero p{color:#c9e6e2}.hero h1,.page-head h1{font-size:30px;margin:4px 0}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--blue)}.hero .eyebrow{color:#b8d3ff}.hero-badge{background:rgba(255,255,255,.1);padding:10px 14px;border-radius:12px;font-size:13px}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(4,1fr);margin-bottom:22px}.cards.mini{grid-template-columns:repeat(2,220px)}.card{background:#fff;border:1px solid var(--line);border-radius:15px}.stat{padding:20px;display:grid;gap:8px}.stat span{font-size:13px;color:var(--muted)}.stat strong{font-size:28px;color:var(--navy)}.stat small{color:var(--blue);font-weight:700}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}h2{font-size:17px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#718096;background:#f8fafc}small{color:var(--muted)}.pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;text-transform:capitalize;background:#e2e8f0;color:#475569}.pill.booked{background:#dbeafe;color:#1d4ed8}.pill.arrived,.pill.waiting{background:#fef3c7;color:#a16207}.pill.with_vet{background:#ccfbf1;color:#0f766e}.pill.completed,.pill.paid{background:#dcfce7;color:#15803d}.pill.cancelled,.pill.no_show{background:#fee2e2;color:#b91c1c}.pill.partial{background:#ffedd5;color:#c2410c}.pill.awaiting_payment{background:#fef3c7;color:#a16207}.btn{border:1px solid #cbd5e1;background:#fff;color:#26364a;border-radius:9px;padding:9px 13px;font-weight:700;font-size:13px;cursor:pointer}.btn:hover{background:#f8fafc}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.full{width:100%;margin-top:10px}.search,.datebar{display:flex;gap:8px;margin-bottom:18px}.search input{max-width:500px}.datebar input{width:180px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:10px 11px;font:inherit;background:#fff}textarea{min-height:85px;resize:vertical}label{font-size:12px;font-weight:700;color:#475569;display:grid;gap:6px}.alert{padding:12px 15px;border-radius:10px;margin-bottom:16px;font-size:13px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.timeline{padding:20px}.appt{display:grid;grid-template-columns:80px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.time{font-size:18px;font-weight:800;color:var(--navy)}.appt-body{display:grid;gap:5px}.empty{text-align:center;padding:50px;color:var(--muted)}dialog{border:0;border-radius:16px;padding:0;width:min(680px,calc(100% - 30px));box-shadow:0 20px 70px rgba(15,23,42,.25)}dialog::backdrop{background:rgba(15,23,42,.5)}.modal-form{padding:24px}.modal-form h2{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span2{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#071b2d,#0f766e)}.login-card{background:#fff;width:min(420px,calc(100% - 30px));border-radius:20px;padding:35px;box-shadow:0 20px 70px rgba(0,0,0,.25)}.login-card h1{font-size:30px;margin:7px 0}.login-card p{color:var(--muted);margin-top:0;margin-bottom:25px}.login-card form{display:grid;gap:15px}.mobile-brand{font-weight:800}@media(max-width:900px){.sidebar{width:210px}.main{margin-left:210px}.cards{grid-template-columns:1fr 1fr}}@media(max-width:680px){.sidebar{position:static;width:100%;height:auto}.sidebar nav{display:none}.main{margin-left:0}.content{padding:18px}.topbar{padding:0 18px}.hero,.page-head{align-items:flex-start;flex-direction:column}.cards,.cards.mini{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}}
.muted{color:#64748b;font-weight:500}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.snapshot{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.snapshot div{background:#f8fafc;padding:14px;border-radius:12px}.snapshot b,.snapshot span{display:block}.snapshot span{margin-top:5px;color:#334155}.flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.flow span{padding:9px 12px;border-radius:999px;background:var(--blue-light);font-size:13px}.flow .active{background:#ccfbf1;color:#115e59;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#334155}.form-grid input,.form-grid select,.form-grid textarea,.inline-form input{border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.form-grid textarea{min-height:100px;resize:vertical}.span2{grid-column:span 2}.alert{padding:13px 16px;border-radius:10px;margin:0 0 16px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.alert.warning{background:#fef3c7;color:#92400e}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.product-choice{display:grid;grid-template-columns:auto 1fr 70px;gap:10px;align-items:center;border:1px solid #e2e8f0;padding:12px;border-radius:12px}.product-choice span{display:flex;flex-direction:column}.product-choice small{color:#64748b;margin-top:3px}.qty{width:70px;border:1px solid #cbd5e1;border-radius:8px;padding:7px}.invoice-card{max-width:720px}.invoice-brand{font-size:25px;font-weight:800}.invoice-meta{display:flex;justify-content:space-between;color:#64748b;margin-top:10px}.invoice-line,.invoice-total,.list-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0}.invoice-total{border-bottom:0}.invoice-total.grand{font-size:20px;border-top:2px solid #0f172a;margin-top:8px;padding-top:14px}.list-row small{display:block;color:#64748b;margin-top:3px}.inline-form{display:flex;gap:8px;align-items:center}.datebar{display:flex;gap:8px;align-items:center}.datebar input{padding:9px;border:1px solid #cbd5e1;border-radius:9px}@media(max-width:850px){.grid.two,.product-grid,.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.sidebar{display:none}.main{margin-left:0}.inline-form{flex-wrap:wrap}}
@media print{.sidebar,.topbar,.page-head .btn,.form-grid,.alert{display:none!important}.main{margin:0}.content{padding:0}.panel{box-shadow:none;border:0}}

/* VET Serve Pro brand overrides */
.btn.primary{background:var(--blue);border-color:var(--blue)}
.eyebrow{color:var(--blue)}
.hero .eyebrow{color:#cfe0ff}
.pill.with_vet{background:#e7f0ff;color:#1455c0}
.pill.completed,.pill.paid{background:#e8f7ed;color:#15803d}
@media print{.sidebar,.topbar,.page-head .btn,.form-grid,.alert{display:none!important}.main{margin:0}.content{padding:0}.panel{box-shadow:none;border:0}}


/* VET Serve Pro logo integration */
.sidebar{background:#fff;color:#1e3a5f;border-right:1px solid var(--line);box-shadow:4px 0 18px rgba(11,45,99,.05)}
.brand{margin:0 8px 28px;gap:12px;align-items:center;color:var(--blue-dark)}
.brand img{width:166px;height:58px;object-fit:contain;object-position:left center;display:block}
.brand div{display:none}
nav a{color:#35506f}
nav a:hover,nav a.active{background:var(--blue-light);color:var(--blue-dark)}
.side-bottom{border-top:1px solid var(--line);color:#35506f}
.side-bottom span{color:var(--blue)}
.topbar-brand{display:flex;align-items:center;gap:12px}
.topbar-brand img{height:42px;width:150px;object-fit:contain;object-position:left center}
.login{background:linear-gradient(135deg,#f7fbff 0%,#eaf2ff 55%,#dceaff 100%);position:relative;overflow:hidden}
.login:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:rgba(20,85,192,.07);top:-250px;right:-170px}
.login:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(11,45,99,.05);bottom:-240px;left:-160px}
.login-shell{width:min(460px,calc(100% - 30px));position:relative;z-index:1}
.login-card{width:100%;padding:34px 38px 26px;border:1px solid rgba(20,85,192,.12);box-shadow:0 25px 80px rgba(11,45,99,.14);border-radius:22px}
.login-logo{display:block;width:100%;height:125px;object-fit:contain;object-position:center;margin:0 auto 10px}
.login-divider{height:3px;width:72px;background:var(--blue);border-radius:99px;margin:0 auto 18px}
.login-card .eyebrow{text-align:center;font-size:9px;letter-spacing:.14em}
.login-card h1{text-align:center;margin-top:10px;color:var(--blue-dark)}
.login-card p{text-align:center}
.login-footer{text-align:center;color:#7a8aa0;font-size:10px;margin-top:22px}
@media(max-width:680px){.topbar-brand img{width:125px;height:38px}.brand img{width:150px}.login-card{padding:28px 24px 22px}}


/* Practice logo / Super User branding */
.topbar-right{display:flex;align-items:center;gap:16px;margin-left:auto;min-width:0}.practice-logo-wrap{height:44px;max-width:180px;padding:4px 10px;border-left:1px solid var(--line);display:flex;align-items:center}.practice-logo{display:block;max-height:36px;max-width:160px;width:auto;height:auto;object-fit:contain}.practice-brand-panel{margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.section-head h2{margin-bottom:5px}.practice-brand-grid{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:24px;align-items:center}.practice-logo-preview{min-height:130px;border:1px dashed #b8c9df;border-radius:14px;background:#f8fbff;display:flex;align-items:center;justify-content:center;padding:18px}.practice-logo-preview img{max-width:240px;max-height:100px;object-fit:contain}.practice-logo-empty{font-size:13px;color:#64748b;text-align:center}@media(max-width:680px){.topbar-right{gap:8px}.practice-logo-wrap{max-width:110px;padding:4px 7px}.practice-logo{max-width:95px;max-height:32px}.practice-brand-grid{grid-template-columns:1fr}.section-head{flex-direction:column}}

/* =========================================================
   VET Serve Pro - Logo/Layout Stabilisation
   Prevents oversized logo assets from affecting page layout.
   ========================================================= */
img { max-width: 100%; }
.sidebar .brand {
  width: 100%;
  min-width: 0;
  height: 64px;
  overflow: hidden;
  margin: 0 0 24px 0;
  padding: 0 8px;
  display: flex;
  align-items: center;
}
.sidebar .brand img {
  display: block !important;
  width: 190px !important;
  height: 62px !important;
  max-width: 190px !important;
  max-height: 62px !important;
  min-width: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
  flex: 0 0 190px;
}
.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
}
.topbar-brand {
  width: 190px;
  height: 48px;
  overflow: hidden;
  flex: 0 0 190px;
}
.topbar-brand img {
  display: block !important;
  width: 190px !important;
  height: 48px !important;
  max-width: 190px !important;
  max-height: 48px !important;
  min-width: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
}
.topbar-right { min-width: 0; }
.topbar-logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #cbd9eb;
  background: #fff;
  color: var(--blue-dark);
  border-radius: 9px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
.topbar-logout:hover { background: var(--blue-light); color: var(--blue); }
.login {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: auto;
  padding: 24px;
}
.login-shell {
  width: min(460px, 100%);
  max-width: 460px;
  margin: auto;
}
.login-card {
  width: 100% !important;
  max-width: 460px !important;
  overflow: hidden;
}
.login-logo {
  display: block !important;
  width: min(360px, 100%) !important;
  height: 150px !important;
  max-width: 360px !important;
  max-height: 150px !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 auto 8px !important;
}
@media (max-width: 900px) {
  .sidebar .brand img { width: 170px !important; max-width: 170px !important; }
  .topbar-brand { width: 165px; flex-basis: 165px; }
  .topbar-brand img { width: 165px !important; max-width: 165px !important; }
}
@media (max-width: 680px) {
  .topbar { padding: 0 14px; }
  .topbar-brand { width: 145px; flex-basis: 145px; }
  .topbar-brand img { width: 145px !important; max-width: 145px !important; height: 42px !important; max-height: 42px !important; }
  .topbar-logout { padding: 7px 9px; font-size: 12px; }
  .user-chip { display: none; }
  .login { padding: 15px; }
  .login-card { padding: 24px 20px 20px; }
  .login-logo { width: min(300px, 100%) !important; height: 125px !important; max-width: 300px !important; max-height: 125px !important; }
}

/* Action controls and administration */
.actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn.danger{border-color:#fecaca;color:#b91c1c;background:#fff}.btn.danger:hover{background:#fef2f2}.btn.emergency{background:#fff7ed;border-color:#fb923c;color:#c2410c;font-weight:800}.btn.emergency:hover{background:#ffedd5}.btn.emergency-fill{background:#c2410c;border-color:#c2410c;color:#fff}.action-group{display:flex;gap:8px;flex-wrap:wrap}.practice-name-top{font-size:12px;font-weight:700;color:var(--blue-dark);max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel h3{font-size:14px;color:var(--blue-dark);margin:20px 0 10px;border-bottom:1px solid var(--line);padding-bottom:7px}@media(max-width:900px){.practice-name-top{display:none}}
.treatment-allocation{margin-top:22px;border-top:1px solid var(--line);background:var(--blue-soft);border-radius:14px;padding:0 18px 18px}.treatment-allocation .panel-head.inner{margin:0 -18px 10px;background:#fff;border-radius:14px 14px 0 0}.allocation-section h3{margin:16px 0 10px}.medication-choice{border-color:#b9d0f3;background:#fff}.product-choice input[type="checkbox"]{width:18px;height:18px;accent-color:var(--blue)}

/* Searchable medication allocation */
.med-search-wrap{position:relative;max-width:720px;margin-bottom:14px}.med-search-wrap input[type=search]{width:100%;padding:12px 14px;border:1px solid #cbd5e1;border-radius:10px}.search-results{position:absolute;z-index:20;left:0;right:0;top:100%;background:#fff;border:1px solid #cbd5e1;border-radius:0 0 10px 10px;box-shadow:0 10px 25px rgba(15,45,99,.14);max-height:320px;overflow:auto}.search-result{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;padding:11px 14px;border:0;border-bottom:1px solid #e5e7eb;background:#fff;cursor:pointer}.search-result:hover{background:#eaf2ff}.search-result small,.medication-table small{display:block;color:#64748b}.medication-table{width:100%;border-collapse:collapse}.medication-table th,.medication-table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.medication-table input[type=text],.medication-table input[type=number]{width:100%;min-width:110px}.btn.small{padding:6px 9px;font-size:.85rem}.actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}


/* =========================================================
   VET Serve Pro - Consistent spacing, consultation locks and invoices
   ========================================================= */
.content > .panel,
.content > .grid,
.content > form.datebar,
.content > .alert { margin-bottom:20px; }
.content > .grid:last-child,
.content > .panel:last-child { margin-bottom:0; }
.panel > .form-grid { padding:20px; }
.panel > .treatment-allocation { margin:22px 20px 20px; }
.consultation-form > .modal-actions { padding:0 20px 20px; }
.consultation-form.locked { border-color:#bbf7d0; }
.consultation-form.locked textarea,
.consultation-form.locked input,
.consultation-form.locked select { background:#f8fafc; }
.alert.compact { margin:0; padding:9px 12px; }
.completed-appointments { margin-top:20px; }
.invoice-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(320px,1fr); gap:20px; align-items:start; }
.invoice-card { max-width:none; padding:28px; position:relative; }
.print-invoice-header { display:flex; justify-content:flex-start; gap:28px; align-items:center; padding-bottom:20px; border-bottom:2px solid var(--blue-dark); }
.invoice-practice-logo { flex:0 0 190px; display:flex; align-items:center; justify-content:flex-start; }
.invoice-practice-logo img { width:180px; max-width:180px; max-height:135px; object-fit:contain; object-position:left center; display:block; }
.invoice-fallback-logo { font-size:25px; font-weight:800; color:var(--blue-dark); }
.invoice-practice-details { text-align:left; font-size:12px; color:#475569; line-height:1.55; }
.invoice-practice-details h2 { color:var(--blue-dark); margin:0 0 5px; font-size:20px; }
.invoice-document-title { display:flex; justify-content:space-between; gap:20px; padding:18px 0; font-size:13px; }
.invoice-client { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:14px 0; margin-bottom:8px; background:#f8fbff; border:1px solid var(--line); border-radius:10px; padding:14px; }
.invoice-paid-stamp { margin-top:18px; display:inline-block; border:3px solid #15803d; color:#15803d; padding:6px 14px; font-weight:900; letter-spacing:.15em; transform:rotate(-3deg); }
.invoice-print-footer { margin-top:34px; padding-top:10px; border-top:1px solid var(--line); text-align:center; font-size:9px; color:#94a3b8; letter-spacing:.08em; }
@media(max-width:900px){.invoice-layout{grid-template-columns:1fr}.invoice-practice-details{text-align:left}.print-invoice-header{flex-direction:row}.invoice-card{padding:20px}}
@media print{
 body{background:#fff!important;font-size:11pt}.no-print{display:none!important}.main{margin:0!important}.content{padding:0!important;max-width:none!important}.invoice-layout{display:block!important}.print-invoice{display:block!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important;max-width:none!important}.print-invoice-header{padding-bottom:14px}.invoice-practice-logo{flex-basis:170px}.invoice-practice-logo img{width:165px;max-width:165px;max-height:120px}.invoice-line,.invoice-total{padding:7px 0}.invoice-print-footer{position:fixed;bottom:0;left:0;right:0}.invoice-paid-stamp{display:inline-block}
}
fieldset.consultation-fields{border:0;padding:0;margin:0;min-width:0}fieldset.consultation-fields:disabled{opacity:.92}.consultation-form .modal-actions{gap:12px}.completed-row{background:#fbfffc;border-radius:10px;padding-left:10px;padding-right:10px}

/* Client statements / account allocations */
.statement-header{display:flex;justify-content:space-between;gap:30px;padding-bottom:18px;border-bottom:2px solid var(--blue-dark);margin-bottom:16px}.statement-header h2{margin:0 0 5px;color:var(--blue-dark)}.statement-client{background:var(--blue-soft);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:16px}.print-statement{padding:28px}.statement-footer{margin-top:28px;padding-top:12px;border-top:1px solid var(--line);text-align:center;color:#64748b;font-size:11px}.allocation-table input{width:130px}.datebar label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--blue-dark)}
@media(max-width:700px){.statement-header{flex-direction:column}.print-statement{padding:18px}}
@media print{.print-statement{border:0!important;box-shadow:none!important;padding:0!important}.statement-header{padding-bottom:12px}.statement-footer{position:fixed;bottom:0;left:0;right:0}.print-statement table{font-size:9pt}}

/* VSP 2026 UI refinement: sidebar branding, spacing, footer and responsive layout */
:root{--content-gap:24px;--panel-gap:20px}
body{overflow-x:hidden}
.sidebar{width:280px;padding:24px 18px;z-index:20}
.main{margin-left:280px;min-width:0}
.sidebar .brand{margin:0 8px 30px;display:block;text-align:center}
.sidebar .brand img{width:235px;height:118px;max-width:100%;object-fit:contain;object-position:center;margin:0 auto}
.sidebar .brand div{display:none}
.sidebar nav{gap:7px}
.sidebar nav a{padding:12px 14px;font-size:14px}
.topbar{height:70px;padding:0 28px}
.topbar-brand{min-width:1px}
.topbar-brand .mobile-brand{display:none}
.content{padding:28px;max-width:1540px}
.content>*{margin-bottom:var(--content-gap)}
.content>*:last-child{margin-bottom:0}
.page-head{margin-bottom:var(--content-gap)}
.grid{gap:var(--panel-gap)}
.panel{margin:0}
.panel-head{min-height:64px;padding:16px 20px}
.form-grid{gap:18px;padding:20px}
.form-grid label{gap:7px}
.table-wrap{max-width:100%;overflow-x:auto}
.actions{gap:8px}
.completed-appointments{margin-top:var(--content-gap)}
.app-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 4px 4px;margin-top:var(--content-gap);border-top:1px solid var(--line);color:#7b8798;font-size:11px;letter-spacing:.02em}
.app-footer strong{color:var(--blue-dark)}
.practice-name-top{display:none!important}
.topbar-brand img{display:none!important}
@media(max-width:1100px){.sidebar{width:245px}.main{margin-left:245px}.sidebar .brand img{width:205px;height:105px}.content{padding:22px}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.sidebar{position:static;width:100%;height:auto;padding:14px}.sidebar .brand img{width:180px;height:90px}.sidebar nav{display:none}.main{margin-left:0}.topbar{height:58px;padding:0 16px}.content{padding:16px}.content>*{margin-bottom:16px}.app-footer{flex-direction:column;align-items:flex-start}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}}
@media print{.app-footer{display:none!important}}
.nav-section{margin-top:12px;padding-top:10px;border-top:1px solid rgba(11,45,99,.08)}
.nav-section-title{padding:5px 12px 7px;font-size:10px;font-weight:800;letter-spacing:.16em;color:#7a8aa0}
.nav-section a{margin-bottom:3px}

/* =========================================================
   VSP GLOBAL LAYOUT 2026-09-25
   Header navigation, consistent spacing, fixed footer and
   application-wide logo treatment.
   ========================================================= */
:root{
  --page-pad:28px;
  --block-gap:22px;
  --footer-height:48px;
  --nav-blue:#0b2d63;
}
html,body{min-height:100%;}
body{
  min-height:100vh;
  overflow-x:hidden;
  background:var(--bg);
}
.main{
  margin-left:0!important;
  min-height:100vh;
  width:100%;
  padding-bottom:var(--footer-height);
}

/* Main application header */
.topbar{
  position:sticky;
  top:0;
  z-index:100;
  min-height:86px;
  height:auto;
  padding:10px var(--page-pad);
  gap:20px;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(11,45,99,.05);
}
.topbar-brand{
  flex:0 0 220px;
  width:220px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
}
.topbar-brand img{
  display:block!important;
  width:215px;
  height:62px;
  object-fit:contain;
  object-position:left center;
}

/* Horizontal main tags + dropdown submenus */
.main-nav{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}
.nav-main-tag,
.main-nav summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:7px;
  min-height:40px;
  padding:9px 13px;
  border-radius:9px;
  color:#35506f;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  border:1px solid transparent;
}
.main-nav summary::-webkit-details-marker{display:none}
.main-nav summary:after{content:'⌄';font-size:12px;line-height:1;color:#7b8da4}
.nav-main-tag:hover,
.main-nav summary:hover,
.nav-main-tag.active,
.main-nav summary.active,
.nav-dropdown[open]>summary{
  background:var(--blue-light);
  color:var(--blue-dark);
  border-color:#d6e5fa;
}
.nav-dropdown{position:relative}
.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 7px);
  left:0;
  min-width:190px;
  padding:7px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 15px 35px rgba(15,23,42,.14);
  display:grid;
  gap:2px;
  z-index:200;
}
.nav-dropdown-menu a{
  display:block;
  padding:10px 11px;
  border-radius:8px;
  font-size:12px;
  color:#3a4e67;
  white-space:nowrap;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a.active{background:var(--blue-light);color:var(--blue-dark)}

.topbar-right{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  min-width:0;
}
.practice-name-top{display:none!important}
.practice-logo-wrap{
  width:72px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-left:1px solid var(--line);
  padding-left:9px;
}
.practice-logo{max-width:62px;max-height:45px;width:auto;height:auto;object-fit:contain}
.user-chip{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-logout{padding:8px 10px;border:1px solid #d4dfec;border-radius:8px;color:var(--blue-dark);font-size:12px;font-weight:700;background:#fff}
.topbar-logout:hover{background:var(--blue-light)}

/* Consistent page/block spacing */
.content{
  width:100%;
  max-width:1540px;
  margin:0 auto;
  padding:var(--page-pad);
  display:block;
}
.content>*{margin-top:0!important;margin-left:0;margin-right:0;margin-bottom:var(--block-gap)!important}
.content>*:last-child{margin-bottom:0!important}
.hero,.page-head{width:100%;}
.hero{padding:28px 30px;margin-bottom:var(--block-gap)!important}
.page-head{padding:0 2px}
.grid{width:100%;gap:var(--block-gap)}
.cards{margin-bottom:var(--block-gap)!important}
.card,.panel{width:100%;max-width:100%;margin:0!important}
.panel{overflow:hidden}
.panel-head{padding:16px 20px;min-height:58px}
.panel>h2{padding:18px 20px;margin:0;border-bottom:1px solid var(--line)}
.panel>form.form-grid{margin:0;padding:20px}
.search,.datebar{margin:0 0 var(--block-gap)!important;align-items:center;flex-wrap:wrap}
.table-wrap{width:100%;max-width:100%;overflow-x:auto}
.form-grid{width:100%;gap:18px}
textarea,input,select{max-width:100%}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Fixed light-blue footer */
.app-footer{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:120;
  height:var(--footer-height);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  padding:0 24px;
  margin:0!important;
  background:#dfeeff;
  border-top:1px solid #c5dcf5;
  color:#526b87;
  font-size:11px;
  letter-spacing:.02em;
  box-shadow:0 -2px 10px rgba(11,45,99,.04);
}
.app-footer strong{color:var(--blue-dark)}

/* Remove old sidebar if any cached markup survives */
.sidebar{display:none!important}

@media(max-width:1200px){
  :root{--page-pad:22px}
  .topbar{gap:12px}
  .topbar-brand{flex-basis:190px;width:190px}
  .topbar-brand img{width:190px}
  .main-nav{gap:2px}
  .nav-main-tag,.main-nav summary{padding:8px 10px}
  .topbar-right .user-chip{max-width:125px}
}
@media(max-width:900px){
  .topbar{align-items:flex-start;flex-wrap:wrap;padding:10px 16px}
  .topbar-brand{flex-basis:180px;width:180px}
  .topbar-brand img{width:180px;height:58px}
  .main-nav{order:3;flex-basis:100%;width:100%;overflow:visible}
  .nav-dropdown-menu{position:fixed;left:12px;right:12px;top:86px;min-width:0}
  .topbar-right{margin-left:auto}
  .content{padding:18px}
}
@media(max-width:600px){
  :root{--footer-height:62px}
  .topbar{min-height:78px}
  .topbar-brand{flex-basis:165px;width:165px;height:52px}
  .topbar-brand img{width:165px;height:52px}
  .topbar-right{gap:5px}
  .topbar-right .user-chip{display:none}
  .main-nav{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .nav-main-tag,.main-nav summary{font-size:12px;min-height:36px;padding:8px 10px}
  .nav-dropdown-menu{top:120px}
  .content{padding:14px}
  .hero{padding:22px}
  .app-footer{height:var(--footer-height);padding:6px 12px;flex-direction:column;gap:2px;text-align:center}
}
@media print{
  .topbar,.main-nav,.topbar-right,.app-footer{display:none!important}
  .main{padding-bottom:0!important}
  .content{max-width:none!important;padding:0!important}
  .content>*{margin-bottom:14px!important}
}

/* =========================================================
   VSP DASHBOARD QUICK ACTIONS + HOVER NAV REFINEMENT
   ========================================================= */
.topbar-brand{
  flex-basis:250px!important;
  width:250px!important;
  height:72px!important;
}
.topbar-brand img{
  width:245px!important;
  max-width:245px!important;
  height:70px!important;
  max-height:70px!important;
  object-fit:contain!important;
  object-position:left center!important;
}

/* Dropdowns open on hover/focus, not click. */
.nav-dropdown{position:relative;}
.nav-trigger{
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  background:transparent;
  border:1px solid transparent;
}
.nav-trigger:focus{outline:2px solid #b8d3ff;outline-offset:2px;}
.nav-caret{font-size:12px;line-height:1;transition:transform .15s ease;}
.nav-dropdown-menu{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-5px);
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease;
}
.nav-dropdown:hover>.nav-dropdown-menu,
.nav-dropdown:focus-within>.nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.nav-dropdown:hover>.nav-trigger .nav-caret,
.nav-dropdown:focus-within>.nav-trigger .nav-caret{transform:rotate(180deg);}
.nav-dropdown.has-active>.nav-trigger{background:var(--blue-light);color:var(--blue-dark);border-color:#d6e5fa;}

/* Dashboard quick actions */
.quick-actions{margin-bottom:var(--block-gap)!important;}
.quick-actions-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  padding:18px 20px 20px;
}
.quick-action{
  min-height:76px;
  display:grid;
  grid-template-columns:42px 1fr auto;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:var(--blue-soft);
  border:1px solid #d7e5f6;
  border-radius:12px;
  color:var(--blue-dark);
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.quick-action:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(11,45,99,.08);border-color:#b8d3f2;}
.quick-action-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#d9e9ff;color:var(--blue);font-size:20px;font-weight:800;}
.quick-action strong{display:block;font-size:14px;line-height:1.2;}
.quick-action small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.25;}
.quick-action>b{font-size:18px;color:var(--blue);}
.quick-action-vet{background:#eef9f7;border-color:#cce9e4;}
.quick-action-vet .quick-action-icon{background:#d5f0eb;color:#0f766e;}

@media(max-width:1100px){
  .topbar-brand{flex-basis:220px!important;width:220px!important;}
  .topbar-brand img{width:215px!important;height:64px!important;}
  .quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .topbar-brand{flex-basis:190px!important;width:190px!important;height:60px!important;}
  .topbar-brand img{width:188px!important;height:58px!important;}
  .quick-actions-grid{grid-template-columns:1fr;}
}

/* VSP 2026-09-25: reliable hover dropdown bridge + bulk upload UI */
.nav-dropdown-menu{top:calc(100% + 2px)!important;}
.nav-dropdown-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:10px;background:transparent;pointer-events:auto;}
.nav-dropdown:hover>.nav-dropdown-menu,.nav-dropdown:focus-within>.nav-dropdown-menu{pointer-events:auto!important;}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.bulk-upload-box{display:grid;gap:14px;padding:18px;background:var(--blue-soft);border:1px dashed #b9d0f3;border-radius:12px;margin-top:10px;}
.bulk-upload-box label{display:grid;gap:7px;}
.bulk-upload-box small{line-height:1.5;}

/* VSP consultation history, follow-up controls and centered modals */
.history-summary{display:grid;gap:7px;margin-bottom:8px;padding:10px 12px;background:#f1f5f9;border:1px solid #d7e0ea;border-radius:10px;color:#64748b;max-height:210px;overflow:auto;font-size:12px;font-weight:400}
.history-entry{display:grid;grid-template-columns:88px 1fr;gap:8px;padding-bottom:7px;border-bottom:1px solid #e2e8f0}
.history-entry:last-child{border-bottom:0;padding-bottom:0}
.history-entry strong{color:#7a8797}
.history-entry span{color:#667085;line-height:1.45}
.history-readonly{background:#f1f5f9!important;color:#7b8798!important;border-color:#d7e0ea!important;cursor:not-allowed}
.followup-control{display:grid;gap:10px}
.checkline{display:flex!important;align-items:center;gap:8px;font-weight:700!important}
.checkline input{width:18px!important;height:18px}
.followup-fields{display:grid;grid-template-columns:180px 180px 1fr;gap:12px;padding:12px;background:var(--blue-soft);border:1px solid #d7e5f6;border-radius:10px}
.followup-fields[hidden]{display:none}
.consultation-actions{display:flex;justify-content:center;align-items:center;gap:16px;padding:22px 20px 24px;flex-wrap:wrap;border-top:1px solid var(--line);background:#fbfdff}
.consultation-actions .btn{min-width:150px}
.consultation-actions .btn.primary{min-width:300px}
dialog{position:fixed!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important;max-height:90vh;overflow:auto}
dialog[open]{display:block}
@media(max-width:700px){.followup-fields{grid-template-columns:1fr}.consultation-actions .btn.primary{min-width:0;width:100%}.consultation-actions .btn{min-width:0}.history-entry{grid-template-columns:1fr}}

/* Printable clinical documents */
.prescription-card,.followup-card{max-width:1000px;margin:0 auto;padding:30px}
.prescription-title,.followup-title{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}
.prescription-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:18px 0;background:#f8fbff;border:1px solid var(--line);border-radius:10px;margin:18px 0}
.prescription-meta>div{padding:0 16px}
.prescription-table{width:100%;border-collapse:collapse;margin:18px 0}
.prescription-table th,.prescription-table td{border:1px solid var(--line);padding:10px;vertical-align:top;white-space:normal}
.prescription-table th{background:#f8fafc}
.prescription-compliance{margin-top:22px;line-height:1.55}
.signature-box{margin-top:28px;border:1px dashed #9aaabd;border-radius:10px;padding:18px;min-height:75px}

/* Prescription physical signature and practice stamp */
.prescription-signature-area{margin-top:30px;padding-top:8px;display:grid;grid-template-columns:minmax(280px,1fr) minmax(180px,260px);gap:22px;align-items:end;}
.prescription-signature-line{grid-column:1;display:flex;align-items:end;gap:12px;min-height:46px;}
.prescription-signature-line .line{display:block;border-bottom:1px solid #0f172a;flex:1;min-width:180px;height:28px;}
.prescription-signature-line span:first-child{font-size:11px;color:#475569;white-space:nowrap;}
.prescription-prescriber{grid-column:1;line-height:1.55;padding-top:4px;}
.prescription-prescriber b{font-size:14px;color:var(--blue-dark);}
.practice-stamp-box{grid-column:2;grid-row:1 / span 2;border:1.5px dashed #94a3b8;border-radius:10px;min-height:110px;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.08em;}
.invoice-followup-box{margin-top:24px;border:2px solid #dc2626;border-radius:10px;padding:12px 14px;color:#dc2626;background:#fff7f7;font-weight:700;}
.invoice-followup-box strong{display:block;font-size:14px;margin-bottom:5px;letter-spacing:.04em;}
.invoice-followup-box div{margin-top:3px;}
@media(max-width:700px){.prescription-signature-area{grid-template-columns:1fr}.practice-stamp-box{grid-column:1;grid-row:auto;min-height:90px}}
@media print{.prescription-signature-area{break-inside:avoid}.invoice-followup-box{break-inside:avoid;background:#fff!important;color:#dc2626!important;border:2px solid #dc2626!important}}
.prescription-warning{max-width:1000px;margin:18px auto!important;padding:18px}
.followup-title{justify-content:center;font-size:20px;font-weight:800;letter-spacing:.08em;color:var(--blue-dark)}
.followup-date{font-size:28px;font-weight:800;text-align:center;color:var(--blue);padding:24px 0}
.followup-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.followup-grid>div{padding:18px;background:#f8fbff;border:1px solid var(--line);border-radius:10px;min-height:90px}
.followup-footer-note{text-align:center;margin-top:24px;color:#64748b}
@media(max-width:700px){.prescription-card,.followup-card{padding:18px}.prescription-meta,.followup-grid{grid-template-columns:1fr}.prescription-table{font-size:11px}}
@media print{
 .prescription-card,.followup-card{border:0!important;box-shadow:none!important;padding:0!important;max-width:none!important}
 .prescription-warning{display:none!important}
 .prescription-table{font-size:9pt}
 .prescription-table th,.prescription-table td{padding:6px}
 .followup-date{font-size:22pt}
}

/* VSP client documents, banking, dashboard and consultation refinements */
.quick-actions-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.quick-action.emergency-dashboard{border:1px solid #fb923c;background:#fff7ed;color:#9a3412;cursor:pointer;font:inherit;text-align:left;}
.quick-action.emergency-dashboard:hover{background:#ffedd5;}
.modal-form{min-width:min(620px,86vw);padding:26px;}
.bulk-upload-box{display:grid;gap:12px;padding:16px;background:var(--blue-soft);border:1px solid var(--line);border-radius:12px;}
.statement-title{min-width:260px;text-align:right;}
.statement-datebar{justify-content:flex-end;margin-top:10px!important;margin-bottom:0!important;}
.statement-datebar input{width:145px;}
.statement-bank,.invoice-bank{margin-top:22px;padding:12px 14px;background:var(--blue-soft);border:1px solid var(--line);border-radius:10px;font-size:11px;line-height:1.6;}
.consultation-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start;margin-bottom:var(--block-gap);}
.consultation-status-inline{min-width:0;max-width:100%;}
.consultation-status-inline .panel{overflow:visible;}
.flow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 20px;}
.flow span{display:inline-block;border-radius:999px;padding:8px 12px;background:#e8f0fb;color:#173b72;font-size:12px;white-space:nowrap;}
.flow span.active{background:#ccfbf1;color:#0f766e;font-weight:700;}
.visit-status-mini{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.visit-status-mini .pill{font-size:9px;padding:4px 7px;}
@media(max-width:1100px){.quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.consultation-topbar{grid-template-columns:1fr;}.statement-title{text-align:left;}.statement-datebar{justify-content:flex-start;}}
@media(max-width:650px){.quick-actions-grid{grid-template-columns:1fr;}.modal-form{min-width:0;width:100%;}.statement-datebar{flex-direction:column;align-items:stretch;}.statement-datebar input{width:100%;}.visit-status-mini{max-width:260px;}}
@media print{.statement-bank,.invoice-bank{background:#fff;border:1px solid #ddd;} .statement-datebar{display:none!important;}}

/* VSP 2026-09-25 client ID, compact statement filter, dashboard emergency and consultation status */
.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.emergency-dashboard-btn{background:#fff7ed;border-color:#fb923c;color:#9a3412}
.emergency-dashboard-btn:hover{background:#ffedd5}
.statement-filter{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.statement-filter>div{display:grid;gap:3px}
.statement-filter strong{color:var(--blue-dark);font-size:14px}
.statement-filter span{font-size:11px;color:var(--muted)}
.statement-filter form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.statement-filter label{display:flex;align-items:center;gap:6px;font-size:11px}
.statement-filter input{width:145px}
.client-id-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:var(--blue-soft);border:1px solid var(--line);border-radius:10px}
.client-id-card .id-status{font-size:12px;color:var(--muted);margin-right:auto}
.consultation-page-head{align-items:center}
.consultation-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.visit-status-inline{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fff;border:1px solid var(--line);border-radius:12px}
.visit-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted);white-space:nowrap}
.visit-status-inline .flow{padding:0;gap:6px}
.visit-status-inline .flow span{padding:6px 9px;font-size:10px}
.visit-status-inline .flow b{font-size:10px;color:#64748b}
@media(max-width:1100px){.statement-filter{align-items:flex-start;flex-direction:column}.statement-filter form{width:100%}.consultation-head-actions{width:100%;justify-content:flex-start}}
@media(max-width:650px){.hero-actions{justify-content:flex-start}.statement-filter form{display:grid;grid-template-columns:1fr}.statement-filter input{width:100%}.visit-status-inline{align-items:flex-start;flex-direction:column;width:100%}.visit-status-inline .flow{width:100%;overflow:auto;flex-wrap:nowrap}.consultation-head-actions{align-items:stretch;flex-direction:column}}
@media print{.statement-filter{display:none!important}.client-id-card{display:none!important}}

/* VSP dashboard / statement / client modal refinement 2026-09-25 */
.latest-appointments{width:100%;margin:0 0 var(--block-gap)!important;padding:20px;background:#fff;border:1px solid var(--line);border-radius:15px;}
.latest-appointments .section-head{margin:0 0 16px;}
.latest-appointments-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.latest-appointment-card{min-width:0;background:var(--blue-soft);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:7px;}
.latest-time{font-size:24px;font-weight:800;color:var(--blue-dark);line-height:1;}
.latest-date{font-size:11px;color:var(--muted);}
.latest-patient{font-size:16px;font-weight:800;color:var(--blue-dark);margin-top:4px;}
.latest-owner{font-size:12px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.latest-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#526b87;}
.latest-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px;}
.latest-actions .btn{font-size:11px;padding:7px 9px;}
.latest-empty{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;}
.completed-appointments{margin-top:0!important;}
.content>.latest-appointments{margin-bottom:var(--block-gap)!important;}

/* Statements should fit the page without a horizontal scrollbar. */
.statement-table-wrap{overflow-x:hidden!important;overflow-y:visible!important;width:100%;}
.statement-table{width:100%;table-layout:fixed;font-size:11px;}
.statement-table th,.statement-table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;padding:10px 9px;vertical-align:top;}
.statement-table th:nth-child(1),.statement-table td:nth-child(1){width:14%;}
.statement-table th:nth-child(2),.statement-table td:nth-child(2){width:10%;}
.statement-table th:nth-child(3),.statement-table td:nth-child(3){width:15%;}
.statement-table th:nth-child(4),.statement-table td:nth-child(4){width:27%;}
.statement-table th:nth-child(5),.statement-table td:nth-child(5),.statement-table th:nth-child(6),.statement-table td:nth-child(6),.statement-table th:nth-child(7),.statement-table td:nth-child(7){width:11.33%;text-align:right;}
.print-statement{overflow:visible!important;}

/* Unified Client modal */
#clientEditor{width:min(760px,calc(100% - 30px));max-height:90vh;}
#clientEditor .modal-form{max-height:90vh;overflow:auto;}
#clientEditor .modal-actions{position:sticky;bottom:0;background:#fff;padding-top:14px;}

@media(max-width:1100px){.latest-appointments-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.latest-appointments-grid{grid-template-columns:1fr;}.latest-appointments{padding:16px;}.statement-table{font-size:10px;}.statement-table th,.statement-table td{padding:7px 5px;}}
@media print{.statement-table-wrap{overflow:visible!important;}.statement-table{font-size:9pt;}.statement-table th,.statement-table td{padding:6px;}.latest-appointments{display:none!important;}}


/* Header dropdown hover behavior: menus stay open while pointer moves into submenu. */
.nav-dropdown-menu{display:none;}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:grid;}
.nav-dropdown::after{content:"";position:absolute;left:0;right:0;top:100%;height:9px;}
@media(max-width:900px){.nav-dropdown-menu{display:none;position:absolute;left:0;right:auto;top:100%;}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:grid;position:absolute;left:0;right:auto;top:100%;}}


/* VSP final layout/time/document refinements */
:root{--block-gap:24px;--footer-height:54px;}
.client-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 var(--block-gap)!important;width:100%;}
.client-summary-grid .card{min-width:0;}
.bank-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px;margin-top:8px;}
.bank-detail-grid div{overflow-wrap:anywhere;}
.statement-bank,.invoice-bank{min-height:64px;}
.statement-table-wrap,.statement-table-wrap.table-wrap{overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;}
.print-statement,.print-statement.panel{overflow:visible!important;max-width:100%;width:100%;}
.latest-appointments{margin-bottom:var(--block-gap)!important;}
.content > .panel + .panel.completed-appointments{margin-top:var(--block-gap)!important;}
.content > .latest-appointments + .panel{margin-bottom:var(--block-gap)!important;}
.completed-appointments{margin-top:var(--block-gap)!important;}
body,html{overflow-x:hidden;}
.app-footer{position:fixed;left:0;right:0;bottom:0;height:var(--footer-height);z-index:50;background:#eaf4ff;margin:0!important;padding:10px 30px!important;}
.main{padding-bottom:var(--footer-height);min-height:100vh;}
@media(max-width:900px){.client-summary-grid{grid-template-columns:1fr 1fr;}.bank-detail-grid{grid-template-columns:1fr;}}
@media(max-width:650px){.client-summary-grid{grid-template-columns:1fr;}.app-footer{height:auto;min-height:var(--footer-height);padding:8px 16px!important;}}
@media print{html,body{overflow:visible!important;} .statement-table-wrap,.statement-table-wrap.table-wrap,.print-statement{overflow:visible!important;} .app-footer{position:static;height:auto;background:#fff;padding:8px 0!important;}}

/* VSP consultation workspace refinement: full-width clinical sections */
.consultation-workspace{display:grid;grid-template-columns:1fr;gap:var(--block-gap);width:100%;max-width:100%;}
.patient-snapshot-full,.consultation-workspace>.consultation-form{width:100%;max-width:100%;min-width:0;}
.patient-snapshot-full .snapshot{grid-template-columns:repeat(4,minmax(0,1fr));}
.consultation-form .treatment-allocation{width:100%;}
.medication-table{width:100%;table-layout:fixed;}
.medication-table th,.medication-table td{vertical-align:middle;}
.medication-table input{width:100%;min-width:0;box-sizing:border-box;}
.medication-table th:nth-child(1){width:18%;}
.medication-table th:nth-child(2){width:13%;}
.medication-table th:nth-child(3){width:13%;}
.medication-table th:nth-child(4){width:10%;}
.medication-table th:nth-child(5){width:27%;}
.medication-table th:nth-child(6){width:8%;}
.medication-table th:nth-child(7){width:8%;}
.medication-table th:nth-child(8){width:90px;}
.visit-status-inline .flow span.active{box-shadow:inset 0 0 0 1px rgba(15,118,110,.15);}
@media(max-width:900px){.patient-snapshot-full .snapshot{grid-template-columns:repeat(2,minmax(0,1fr));}.medication-table{min-width:980px;}.medication-allocation .table-wrap{overflow-x:auto;}}
@media(max-width:600px){.patient-snapshot-full .snapshot{grid-template-columns:1fr;}}
.visit-status-mini .pill.active{background:#ccfbf1;color:#0f766e;font-weight:700;}

/* Out-of-stock medication allocation: quantity remains editable for external prescription. */
.stock-status{font-size:12px;color:#475569;white-space:nowrap}.stock-status.stock-out{font-weight:800;color:#b91c1c}

/* VSP follow-up scheduling refinement */
.followup-fields label{min-width:0}.followup-fields .span2{grid-column:1 / -1}.followup-time{font-size:.75em;color:#475569;font-weight:600}.followup-scheduled-note{margin-top:8px;padding-top:8px;border-top:1px solid #fecaca;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.completed-appointments{margin-top:24px!important}.latest-appointments + .panel{margin-top:24px!important}
@media(max-width:800px){.followup-fields{grid-template-columns:1fr 1fr}.followup-fields .span2{grid-column:1 / -1}}
@media(max-width:520px){.followup-fields{grid-template-columns:1fr}.followup-fields .span2{grid-column:auto}}


/* Generated consultation documentation */
.generated-documentation{margin-top:var(--block-gap)!important;}
.documentation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.documentation-card{display:flex;flex-direction:column;gap:7px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.documentation-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.07);border-color:#b9c9df;}
.documentation-card strong{font-size:18px;color:var(--ink);}
.documentation-card span{font-size:14px;color:var(--ink);}
.documentation-card small{color:var(--muted);font-size:12px;}
.routine-check{width:18px!important;height:18px!important;margin-right:8px;vertical-align:middle;}
.medication-table tr.selected{background:#f0fdfa;}
@media(max-width:900px){.documentation-grid{grid-template-columns:1fr;}}

.patient-details-fields{border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:16px}.patient-details-fields legend{padding:0 8px;font-weight:800;color:#334155}.tick-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff}.tick-group>span{font-weight:700;color:#334155;margin-right:4px}.tick-option{display:flex!important;flex-direction:row!important;align-items:center;gap:5px!important;font-weight:600!important;cursor:pointer}.tick-option input{width:auto!important;margin:0}.patient-details-fields [hidden]{display:none!important}

/* VSP final consultation UI refinement: patient snapshot + generated documentation cards */
.patient-snapshot-full{overflow:hidden;}
.patient-snapshot-head{align-items:center;gap:20px;}
.patient-snapshot-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;padding:0!important;background:transparent!important;}
.patient-snapshot-grid .snapshot-item{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;min-height:72px!important;padding:15px 16px!important;background:#f8fafc!important;border:1px solid #e2e8f0!important;border-radius:12px!important;box-sizing:border-box!important;}
.patient-snapshot-grid .snapshot-item b{font-size:13px!important;color:#334155!important;letter-spacing:.02em!important;}
.patient-snapshot-grid .snapshot-item span{margin-top:6px!important;color:#0f172a!important;font-size:16px!important;line-height:1.3!important;overflow-wrap:anywhere!important;}
.patient-snapshot-grid .snapshot-item small{display:block!important;margin-top:5px!important;color:#64748b!important;font-size:12px!important;overflow-wrap:anywhere!important;}
.patient-snapshot-grid .snapshot-wide{grid-column:span 2!important;}
.patient-alert{margin:14px 0 0!important;}
.generated-documentation{width:100%!important;box-sizing:border-box!important;overflow:hidden!important;margin-top:var(--block-gap)!important;}
.documentation-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;}
.documentation-count{flex:0 0 auto;padding:6px 11px;border-radius:999px;background:#eef4ff;color:#315d9b;font-size:12px;font-weight:800;white-space:nowrap;}
.documentation-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;width:100%!important;align-items:stretch!important;}
a.documentation-card{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;min-width:0!important;min-height:156px!important;box-sizing:border-box!important;padding:18px!important;border:1px solid #d9e2ef!important;border-radius:14px!important;background:#fff!important;text-decoration:none!important;color:inherit!important;overflow:hidden!important;}
a.documentation-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.08);border-color:#b8c9df!important;}
.documentation-card-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:16px!important;}
.documentation-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:42px!important;height:32px!important;border-radius:8px!important;background:#eef4ff!important;color:#1d4ed8!important;font-size:12px!important;font-weight:900!important;letter-spacing:.04em!important;}
.documentation-open{color:#1d4ed8!important;font-size:12px!important;font-weight:800!important;white-space:nowrap!important;}
a.documentation-card strong{display:block!important;font-size:17px!important;line-height:1.3!important;color:#0f172a!important;margin:0 0 7px!important;overflow-wrap:anywhere!important;}
.documentation-reference{display:block!important;color:#475569!important;font-size:14px!important;line-height:1.35!important;overflow-wrap:anywhere!important;}
.documentation-meta{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-top:auto!important;padding-top:14px!important;color:#64748b!important;font-size:12px!important;min-width:0!important;}
.documentation-meta>span:first-child{overflow-wrap:anywhere!important;min-width:0!important;}
.doc-status{display:inline-flex!important;align-items:center!important;padding:5px 8px!important;border-radius:999px!important;background:#f1f5f9!important;color:#475569!important;font-weight:800!important;white-space:nowrap!important;}
.doc-status.paid,.doc-status.issued,.doc-status.scheduled{background:#dcfce7!important;color:#166534!important;}
.documentation-empty{grid-column:1/-1!important;margin:0!important;}
@media(max-width:1050px){.patient-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.documentation-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:700px){.patient-snapshot-grid,.documentation-grid{grid-template-columns:1fr!important;}.patient-snapshot-grid .snapshot-wide{grid-column:auto!important;}.documentation-head{align-items:flex-start!important;flex-direction:column!important;gap:8px!important;}a.documentation-card{min-height:145px!important;}}

/* Hospital Admissions */
.hospital-search{padding:18px 20px;margin:0;display:flex;gap:10px}.hospital-search input{max-width:none;flex:1}.hospital-patient-results{padding:0 20px 20px;display:grid;gap:8px}.hospital-patient-result{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:#fff}.hospital-patient-result:hover{background:var(--blue-soft);border-color:#b9d0f3}.hospital-patient-result div{display:grid;gap:3px}.hospital-patient-result span,.hospital-patient-result small{color:var(--muted);font-size:12px}.hospital-form{padding:20px}.hospital-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px}.hospital-summary>div{background:#f8fafc;border-radius:12px;padding:13px}.hospital-summary b{display:block;color:var(--blue-dark);font-size:12px}.hospital-summary span{display:block;margin-top:5px}.hospital-sections{padding:0 20px 20px;display:grid;gap:20px}.inner-panel{border-radius:14px;overflow:hidden}.inner-panel .panel-head{padding:14px 16px}.hospital-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.hospital-detail-grid>div{background:#f8fafc;border-radius:10px;padding:13px}.hospital-detail-grid b{font-size:12px;color:var(--blue-dark)}.hospital-detail-grid p{margin:6px 0 0;color:#475569;line-height:1.5}.hospital-discharge{margin:0 20px 20px;padding:18px;border:1px solid #fecaca;border-radius:14px;background:#fff8f8}.hospital-discharge h3{margin-top:0;color:#991b1b}.hospitalization-request{margin-top:18px;padding:0 18px 18px;background:var(--blue-soft)}.hospitalization-request .panel-head.inner{margin:0 -18px 14px}.checkline{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-weight:700!important}.checkline input{width:18px!important;height:18px!important}.followup-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}.followup-fields .span2{grid-column:1/-1}@media(max-width:900px){.hospital-summary{grid-template-columns:1fr 1fr}}@media(max-width:650px){.hospital-summary,.hospital-detail-grid,.followup-fields{grid-template-columns:1fr}.hospital-patient-result{align-items:flex-start;flex-direction:column}.hospital-search{flex-direction:column}.hospital-search .btn{width:100%}}

/* VSP 2026-09-26: expanded dashboard Quick Actions ribbon */
.quick-actions-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.quick-action-icon{
  font-size:14px;
  letter-spacing:-.03em;
}
.quick-action.emergency-dashboard{
  border-color:#fb923c;
  background:#fff7ed;
  color:#9a3412;
}
.quick-action.emergency-dashboard .quick-action-icon{
  background:#ffedd5;
  color:#c2410c;
}
.quick-action-vet{background:#eef9f7;border-color:#cce9e4;}
.quick-action-vet .quick-action-icon{background:#d5f0eb;color:#0f766e;}
@media(max-width:1200px){
  .quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .quick-actions-grid{grid-template-columns:1fr;}
}

/* VSP: Routine Procedure Admission / Hospital invoicing */
.mode-switch{display:flex;gap:8px;margin:0 0 16px;padding:4px;background:#f1f5f9;border-radius:12px}.mode-btn{flex:1;border:0;background:transparent;padding:11px 14px;border-radius:9px;font-weight:700;color:#475569;cursor:pointer}.mode-btn.active{background:#fff;color:var(--blue-dark);box-shadow:0 1px 4px rgba(15,23,42,.10)}
.routine-procedure-modal{min-width:min(980px,92vw);max-width:980px}.routine-procedure-modal section{margin:0 0 18px}.routine-procedure-modal h3{margin:18px 0 10px}.selected-patient{margin-top:10px;padding:12px 14px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;color:#1e3a8a}.search-results{display:grid;gap:6px;margin-top:8px;max-height:240px;overflow:auto}.search-result{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 13px;cursor:pointer;display:grid;gap:3px}.search-result:hover{background:var(--blue-soft);border-color:#9bbbe8}.search-result span{font-size:12px;color:var(--muted)}

/* VSP 2026-09-26 — Routine Procedure Admission modal refinement */
.page-head .actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.page-head .actions .btn{
  min-height:42px;
  padding:10px 16px;
  border-radius:10px;
  line-height:1.2;
}
.page-head .actions .btn.primary{
  background:var(--blue);
  border:1px solid var(--blue);
  color:#fff;
  box-shadow:0 2px 5px rgba(20,85,192,.12);
}
.page-head .actions .btn.primary:hover{
  background:#1049a5;
  border-color:#1049a5;
}

#routineProcedure{
  width:min(980px,calc(100vw - 32px));
  max-width:980px;
  max-height:calc(100vh - 32px);
  margin:auto;
  padding:0;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
#routineProcedure::backdrop{background:rgba(11,45,99,.42)}
#routineProcedure .routine-procedure-modal{
  padding:28px;
  margin:0;
  width:100%;
  max-width:none;
  max-height:calc(100vh - 32px);
  overflow-y:auto;
  overflow-x:hidden;
}
#routineProcedure .routine-procedure-modal > h2{
  color:var(--blue-dark);
  font-size:22px;
  line-height:1.25;
  margin:0 0 7px;
}
#routineProcedure .routine-procedure-modal > p.muted{
  margin:0 0 20px;
  line-height:1.5;
}
#routineProcedure .mode-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin:0 0 20px;
  padding:4px;
  border:1px solid var(--line);
  background:#f5f8fc;
  border-radius:12px;
}
#routineProcedure .mode-btn{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-height:42px;
  padding:10px 14px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#475569;
  font:700 13px/1.2 "Century Gothic","CenturyGothic",Arial,sans-serif;
  cursor:pointer;
  transition:.15s ease;
}
#routineProcedure .mode-btn:hover{background:#eaf2ff;color:var(--blue-dark)}
#routineProcedure .mode-btn.active{
  background:#fff;
  color:var(--blue-dark);
  border-color:#cbdcf4;
  box-shadow:0 2px 6px rgba(15,23,42,.08);
}
#routineProcedure .routine-procedure-modal section{
  margin:0 0 22px;
}
#routineProcedure .routine-procedure-modal h3{
  margin:20px 0 12px;
  color:var(--blue-dark);
  font-size:16px;
}
#routineProcedure .routine-procedure-modal label{
  font-size:12px;
  font-weight:700;
  color:#334155;
  gap:7px;
}
#routineProcedure .routine-procedure-modal input,
#routineProcedure .routine-procedure-modal select,
#routineProcedure .routine-procedure-modal textarea{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:10px;
  padding:11px 12px;
  background:#fff;
  color:#172033;
  font:inherit;
  outline:none;
  box-shadow:none;
}
#routineProcedure .routine-procedure-modal input:focus,
#routineProcedure .routine-procedure-modal select:focus,
#routineProcedure .routine-procedure-modal textarea:focus{
  border-color:#8fb3e6;
  box-shadow:0 0 0 3px rgba(20,85,192,.10);
}
#routineProcedure .routine-procedure-modal textarea{min-height:92px;resize:vertical}
#routineProcedure .search-results{
  position:relative;
  display:grid;
  gap:7px;
  margin-top:8px;
  max-height:240px;
  overflow:auto;
}
#routineProcedure .search-result{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:#172033;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
#routineProcedure .search-result:hover{background:var(--blue-soft);border-color:#9bbbe8}
#routineProcedure .selected-patient{
  margin-top:10px;
  padding:12px 14px;
  border:1px solid #b9d0f3;
  border-radius:10px;
  background:var(--blue-soft);
  color:var(--blue-dark);
}
#routineProcedure .modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
#routineProcedure .modal-actions .btn{
  min-height:42px;
  padding:10px 16px;
  border-radius:10px;
}
#routineProcedure .modal-actions .btn.primary{box-shadow:0 2px 5px rgba(20,85,192,.12)}
@media(max-width:680px){
  .page-head .actions{width:100%;justify-content:flex-start}
  .page-head .actions .btn{flex:1;min-width:0;text-align:center}
  #routineProcedure{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
  #routineProcedure .routine-procedure-modal{padding:20px}
  #routineProcedure .mode-switch{grid-template-columns:1fr}
  #routineProcedure .form-grid{grid-template-columns:1fr}
  #routineProcedure .span2{grid-column:auto}
  #routineProcedure .modal-actions{flex-direction:column-reverse;align-items:stretch}
  #routineProcedure .modal-actions .btn{width:100%}
}

/* VSP Routine Procedure Catalogue + Hospital Invoice Builder */
.procedure-editor{min-width:min(920px,92vw);max-width:920px;max-height:90vh;overflow:auto}.procedure-linked{margin-top:22px;border:1px solid var(--line);border-radius:14px;overflow:visible;background:#fbfdff}.procedure-linked .panel-head{padding:16px 18px}.procedure-med-search{position:relative;padding:16px 18px 8px}.procedure-med-search input{width:100%}.procedure-med-search .search-results{position:relative;z-index:30}.linked-med-row,.invoice-build-row{display:grid;grid-template-columns:minmax(0,1fr) 105px 100px auto;gap:12px;align-items:center;padding:12px 18px;border-top:1px solid var(--line);background:#fff}.linked-med-row small,.invoice-build-row small{display:block;color:var(--muted);margin-top:3px}.zero-price{font-weight:800;color:#64748b;text-align:right}.hospital-invoice-modal{min-width:min(1000px,94vw);max-width:1000px;max-height:92vh;overflow:auto}.invoice-build-section{border:1px solid var(--line);border-radius:13px;margin:14px 0;background:#fff;overflow:visible}.invoice-build-section .section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:15px 18px;background:#f7faff;border-bottom:1px solid var(--line)}.invoice-build-section h3{margin:0;font-size:15px;color:var(--blue-dark)}.invoice-build-section .section-title span{font-size:12px;color:var(--muted)}.invoice-build-list:empty{display:none}.invoice-search{position:relative;padding:14px 18px}.invoice-search .search-results{position:absolute;left:18px;right:18px;top:calc(100% - 7px);z-index:40;background:#fff}.invoice-base-line{display:flex;justify-content:space-between;gap:18px;padding:17px 18px;font-size:15px}.invoice-base-line small{display:block;color:var(--muted);font-weight:500;margin-top:4px}.invoice-build-row strong{text-align:right}.invoice-build-row .build-qty{width:100%;min-width:0}.invoice-build-totals{border:1px solid var(--line);border-radius:13px;padding:14px 18px;margin-top:16px;background:#f8fafc}.invoice-build-totals>div{display:flex;justify-content:space-between;padding:6px 0}.invoice-build-totals .grand{border-top:2px solid var(--navy);margin-top:6px;padding-top:12px;font-size:17px;font-weight:800}.procedure-editor .modal-actions,.hospital-invoice-modal .modal-actions{position:sticky;bottom:-1px;background:#fff}.procedure-editor .search-results{position:relative}
@media(max-width:720px){.linked-med-row,.invoice-build-row{grid-template-columns:1fr 90px 80px}.linked-med-row .btn,.invoice-build-row .btn{grid-column:1/-1;width:100%}.hospital-invoice-modal,.procedure-editor{min-width:0;width:min(96vw,100%)}.invoice-build-section .section-title{flex-direction:column}.invoice-build-row strong{font-size:13px}}

/* VSP: Hospital / Theatre Invoice + Procedure Catalogue modal sizing refinement */
#hospitalInvoice{
  width:min(1180px,calc(100vw - 32px));
  max-width:1180px;
  max-height:calc(100vh - 32px);
  overflow:hidden;
}
#hospitalInvoice .hospital-invoice-modal{
  width:100%;
  max-width:none;
  max-height:calc(100vh - 32px);
  padding:26px 28px 24px;
  overflow-y:auto;
  overflow-x:hidden;
}
#hospitalInvoice .invoice-build-section,
#hospitalInvoice .invoice-build-row,
#hospitalInvoice .invoice-base-line,
#hospitalInvoice .invoice-build-totals{min-width:0;max-width:100%;}
#hospitalInvoice .invoice-build-row{
  grid-template-columns:minmax(260px,1fr) 92px 145px 125px 135px;
  gap:14px;
}
#hospitalInvoice .included-med-name,
#hospitalInvoice .included-med-qty,
#hospitalInvoice .additional-qty-field,
#hospitalInvoice .included-med-price,
#hospitalInvoice .included-med-cost{min-width:0;}
#hospitalInvoice .included-med-qty,
#hospitalInvoice .included-med-price,
#hospitalInvoice .included-med-cost,
#hospitalInvoice .additional-qty-field{display:grid;gap:4px;align-content:center;}
#hospitalInvoice .included-med-qty span,
#hospitalInvoice .included-med-price span,
#hospitalInvoice .included-med-cost span,
#hospitalInvoice .additional-qty-field span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;}
#hospitalInvoice .included-med-qty b{font-size:13px;color:var(--blue-dark);}
#hospitalInvoice .additional-qty-field input{width:100%;min-width:0;}
#hospitalInvoice .included-med-price b{font-size:13px;color:#475569;white-space:nowrap;}
#hospitalInvoice .included-med-cost b{font-size:13px;color:var(--blue-dark);white-space:nowrap;}
#hospitalInvoice .invoice-build-section:first-of-type + .invoice-build-section .section-title{align-items:center;}
#hospitalInvoice .modal-actions{position:sticky;bottom:0;z-index:5;padding:16px 0 0;background:#fff;}

#procedureEditor{
  width:min(1120px,calc(100vw - 32px));
  max-width:1120px;
  max-height:calc(100vh - 32px);
  overflow:hidden;
}
#procedureEditor .procedure-editor{
  width:100%;
  max-width:none;
  max-height:calc(100vh - 32px);
  padding:28px;
  overflow-y:auto;
  overflow-x:hidden;
}
#procedureEditor .procedure-linked{max-width:100%;}
#procedureEditor .linked-med-row{
  grid-template-columns:minmax(0,1fr) 115px 95px 105px;
}
#procedureEditor .linked-med-row input{min-width:0;}
@media(max-width:1050px){
  #hospitalInvoice .invoice-build-row{grid-template-columns:minmax(220px,1fr) 80px 130px 110px 120px;gap:10px;}
  #procedureEditor .linked-med-row{grid-template-columns:minmax(0,1fr) 105px 85px 95px;gap:10px;}
}
@media(max-width:760px){
  #hospitalInvoice,#procedureEditor{width:calc(100vw - 20px);max-height:calc(100vh - 20px);}
  #hospitalInvoice .hospital-invoice-modal,#procedureEditor .procedure-editor{padding:20px;max-height:calc(100vh - 20px);}
  #hospitalInvoice .invoice-build-row{grid-template-columns:1fr 1fr;gap:10px;}
  #hospitalInvoice .included-med-name{grid-column:1/-1;}
  #hospitalInvoice .included-med-qty,#hospitalInvoice .additional-qty-field,#hospitalInvoice .included-med-price,#hospitalInvoice .included-med-cost{grid-column:span 1;}
  #procedureEditor .linked-med-row{grid-template-columns:1fr 100px;}
  #procedureEditor .linked-med-row .zero-price{display:none;}
  #procedureEditor .linked-med-row .btn{grid-column:1/-1;width:100%;}
}

/* Clinical Reports */
.clinical-reports-head{margin-bottom:18px}.clinical-report-filters{padding:18px 20px;margin-bottom:18px}.clinical-report-filter-form{display:grid;grid-template-columns:160px 160px minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end}.clinical-report-filter-actions{display:flex;gap:8px;align-items:center}.clinical-report-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.clinical-report-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:18px;text-align:left;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;cursor:pointer;color:#172033;min-height:94px}.clinical-report-card:hover{border-color:#b7c9e4;box-shadow:0 8px 24px rgba(15,45,99,.08);transform:translateY(-1px)}.clinical-report-icon{width:42px;height:42px;border-radius:12px;background:var(--blue-light);color:var(--blue-dark);display:grid;place-items:center;font-weight:800}.clinical-report-card span:nth-child(2){display:grid;gap:5px}.clinical-report-card strong{font-size:14px}.clinical-report-card small{font-size:11px}.clinical-report-card>b{color:var(--blue);font-size:12px}.clinical-report-dialog{width:min(1180px,calc(100vw - 36px));max-width:1180px}.clinical-report-modal{padding:0;background:#fff}.clinical-report-modal-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.clinical-report-modal-head h2{font-size:22px;margin:4px 0}.clinical-report-modal-head p{margin:0;color:var(--muted);font-size:13px}.clinical-report-modal-actions{display:flex;gap:8px;flex-shrink:0}.clinical-report-print-area{padding:20px}.print-report-header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--blue-dark);padding:0 0 12px;margin-bottom:14px;font-size:13px}.clinical-report-print-area .table-wrap{max-height:58vh;overflow:auto}.clinical-report-print-area table{min-width:0}.clinical-report-print-area th,.clinical-report-print-area td{white-space:normal}
@media(max-width:1000px){.clinical-report-filter-form{grid-template-columns:1fr 1fr}.clinical-report-filter-actions{grid-column:1/-1}.clinical-report-buttons{grid-template-columns:1fr}.clinical-report-dialog{width:min(96vw,1180px)}}
@media print{.clinical-report-modal-head,.clinical-report-filters,.clinical-report-buttons{display:none!important}.clinical-report-print-area{padding:0}.clinical-report-print-area .table-wrap{max-height:none;overflow:visible}.clinical-report-dialog{position:static!important;width:auto!important;max-width:none!important;box-shadow:none!important}.clinical-report-dialog::backdrop{display:none}}

/* Dashboard procedure parallel workflow */
.dashboard-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--block-gap,24px);align-items:start;margin-bottom:var(--block-gap,24px)}
.dashboard-split>.dashboard-card{min-width:0}
.dashboard-card.latest-appointments{margin:0!important;width:100%}
.dashboard-card .latest-appointments-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.procedure-dashboard-card{background:#fff}
@media(max-width:1100px){.dashboard-split{grid-template-columns:1fr}.dashboard-card .latest-appointments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.dashboard-card .latest-appointments-grid{grid-template-columns:1fr}}
/* Procedure editor must sit above sticky header and fixed footer */
dialog#procedureEditor{position:fixed!important;z-index:1000!important;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);}
dialog#procedureEditor::backdrop{z-index:999;background:rgba(15,23,42,.58)}


/* VET Serve Pro - Global description typography and spacing refinement */
.description,.description-text,.help-text,.form-help,.field-help,.field-description,.small-description,.sub-description,.panel-head p,.page-head p{font-size:8pt!important;line-height:1.35!important;}
.hero p{font-size:8pt!important;line-height:1.4!important;}
.content{padding:30px 32px 34px!important;}
.content>*{margin-left:0;margin-right:0;}
.grid{gap:20px!important;}
.cards{gap:20px!important;margin-bottom:24px!important;}
.panel,.card{margin:0!important;}
.panel+.panel,.card+.panel,.panel+.card{margin-top:20px!important;}
.panel-head{padding:18px 22px!important;}
.panel-body{padding:22px!important;}
.hero,.page-head{margin-bottom:24px!important;}
.form-grid{gap:18px!important;}
.search,.datebar{margin-bottom:20px!important;}
.table-wrap{margin:0!important;}
.section-head{margin-bottom:20px!important;}
dialog{z-index:10000!important;max-width:calc(100vw - 40px)!important;}
dialog::backdrop{z-index:9999!important;}
.modal-form{padding:26px!important;}
.modal-form>.form-grid,.modal-form>.grid{margin-top:4px;}
.modal-actions{padding-top:4px;}
@media(max-width:900px){.content{padding:24px 24px 30px!important;}.cards{gap:16px!important;}}
@media(max-width:680px){.content{padding:18px 16px 26px!important;}.grid,.cards{gap:14px!important;}.panel-head,.panel-body{padding:16px!important;}.modal-form{padding:20px!important;}dialog{max-width:calc(100vw - 24px)!important;}}
@media print{.content{padding:0!important;}.panel,.card{margin:0!important;}}

/* =========================================================
   VSP GLOBAL UI FINISHING PASS - 2026-09-27
   Compact description typography + consistent block spacing.
   Keep this block last so it overrides legacy page-specific rules.
   ========================================================= */
:root{
  --page-pad-final:24px;
  --section-gap-final:20px;
  --panel-pad-x-final:20px;
  --panel-pad-y-final:18px;
  --description-size-final:8pt;
}

/* All descriptive/helper copy uses the same compact size as Quick Actions. */
.description,
.description-text,
.help-text,
.form-help,
.field-help,
.field-description,
.small-description,
.sub-description,
.muted,
.panel-head p,
.panel-head .muted,
.panel-head > div > span.muted,
.page-head p,
.hero p,
.section-description,
.card-description,
.panel-description,
.dashboard-card .description,
.dashboard-card .muted,
.dashboard-card p.muted,
.quick-action small,
.quick-action .muted,
.search-helper,
.form-description,
.modal-form > p.muted,
.routine-procedure-modal > p.muted,
.hospital-search-description,
.hospital-patient-description{
  font-size:var(--description-size-final)!important;
  line-height:1.35!important;
  font-weight:400!important;
}

/* Keep headings and their descriptions visually grouped. */
.panel-head > div,
.page-head > div,
.dashboard-card .panel-head > div,
.dashboard-card .card-head > div{
  min-width:0;
}
.panel-head > div > .muted,
.panel-head > div > p,
.page-head > div > p,
.dashboard-card .panel-head > div > .muted,
.dashboard-card .panel-head > div > p{
  display:block;
  margin:3px 0 0!important;
}

/* One predictable rhythm for top-level page blocks. */
.content{
  padding:24px!important;
}
.content > *{
  margin-top:0!important;
  margin-bottom:var(--section-gap-final)!important;
}
.content > *:last-child{margin-bottom:0!important;}

/* Consistent panel/card spacing. */
.panel,
.card,
.dashboard-card{
  margin:0!important;
  border-radius:15px;
}
.panel + .panel,
.card + .panel,
.panel + .card,
.dashboard-card + .dashboard-card{
  margin-top:var(--section-gap-final)!important;
}

.panel-head{
  padding:16px var(--panel-pad-x-final)!important;
  min-height:0!important;
}

.panel-body{
  padding:20px!important;
}

/* Avoid accidental double padding in common filter/form sections. */
.clinical-report-filters{
  padding:16px 20px!important;
  margin-bottom:var(--section-gap-final)!important;
}
.clinical-report-filter-form{
  gap:12px!important;
}
.clinical-report-buttons{
  gap:16px!important;
  margin-bottom:var(--section-gap-final)!important;
}

/* Dashboard blocks use the same vertical rhythm as all other panels. */
.dashboard-split{
  gap:var(--section-gap-final)!important;
  margin-bottom:var(--section-gap-final)!important;
}
.dashboard-card .panel-head{
  padding:16px 20px!important;
}

/* Forms/search areas: consistent side spacing without touching full-width controls. */
.form-grid{
  gap:16px!important;
}
.search,
.datebar{
  gap:8px!important;
  margin-bottom:var(--section-gap-final)!important;
}

/* Standard modal content spacing. */
.modal-form{
  padding:22px!important;
}
.modal-form > h2{margin-bottom:4px!important;}
.modal-form > p.muted{margin:0 0 16px!important;}

@media(max-width:900px){
  .content{padding:20px!important;}
}
@media(max-width:680px){
  .content{padding:16px!important;}
  .panel-head{padding:14px 16px!important;}
  .panel-body{padding:16px!important;}
  .modal-form{padding:18px!important;}
}

@media print{
  .content{padding:0!important;}
}


/* =========================================================
   VSP FINAL UI NORMALISATION - DASHBOARD + BLOCKS + PRINT
   2026-09-27
   ========================================================= */
:root{
  --ui-page-pad:24px;
  --ui-block-gap:20px;
  --ui-block-pad-x:20px;
  --ui-block-pad-y:18px;
  --ui-radius:15px;
  --ui-description:8pt;
}

/* One consistent outer rhythm for every page block. */
.content{
  padding:var(--ui-page-pad)!important;
}
.content > *{
  margin-top:0!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-bottom:var(--ui-block-gap)!important;
}
.content > *:last-child{margin-bottom:0!important;}

/* Standardise block shapes without changing form controls. */
.panel,
.card,
.dashboard-card,
.latest-appointments,
.clinical-report-card,
.documentation-card,
.inner-panel,
.patient-profile-section,
.statement-filter,
.client-id-card,
.quick-action{
  border-radius:var(--ui-radius)!important;
  box-sizing:border-box!important;
}

.panel,
.card{
  box-sizing:border-box!important;
}

.panel-head{
  padding:var(--ui-block-pad-y) var(--ui-block-pad-x)!important;
  min-height:58px!important;
  box-sizing:border-box!important;
}

.section-head{
  margin:0 0 16px!important;
  padding:0!important;
  box-sizing:border-box!important;
}

/* Descriptions are deliberately compact everywhere. */
.muted,
.description,
.description-text,
.help-text,
.form-help,
.field-help,
.field-description,
.small-description,
.sub-description,
.section-description,
.card-description,
.panel-description,
.page-head p,
.panel-head p,
.panel-head .muted,
.hero p,
.dashboard-card p,
.dashboard-card .muted,
.quick-action small,
.clinical-report-card small,
.documentation-card small{
  font-size:var(--ui-description)!important;
  line-height:1.35!important;
  font-weight:400!important;
}

/* Keep descriptions visually attached to headings. */
.panel-head > div > .muted,
.panel-head > div > p,
.section-head > div > .muted,
.section-head > div > p,
.page-head > div > p{
  display:block!important;
  margin:3px 0 0!important;
}

/* Dashboard: paired blocks always stretch to exactly the same height. */
.dashboard-split{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:var(--ui-block-gap)!important;
  align-items:stretch!important;
  margin-bottom:var(--ui-block-gap)!important;
}
.dashboard-split > .dashboard-card{
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.dashboard-split > .dashboard-card > .panel-head,
.dashboard-split > .dashboard-card > .section-head{
  flex:0 0 auto!important;
}
.dashboard-split > .dashboard-card > .table-wrap,
.dashboard-split > .dashboard-card > .latest-appointments-grid{
  flex:1 1 auto!important;
}

/* Next-4 appointment/procedure cards have matching heights within their block. */
.dashboard-next-row .latest-appointments-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-rows:1fr!important;
  align-items:stretch!important;
  gap:14px!important;
}
.dashboard-next-row .latest-appointment-card{
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  padding:16px!important;
}
.dashboard-next-row .latest-actions{margin-top:auto!important;}

/* Empty states fill the available card area consistently. */
.dashboard-next-row .latest-empty{
  min-height:150px!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
}

/* Quick Action shapes all use the same box model/height. */
.quick-actions-grid{
  align-items:stretch!important;
  gap:14px!important;
}
.quick-action{
  min-height:78px!important;
  height:100%!important;
  padding:14px 16px!important;
  box-sizing:border-box!important;
}

/* Forms and search/filter blocks use one predictable internal rhythm. */
.form-grid{gap:16px!important;}
.search,.datebar{gap:8px!important;}
.clinical-report-filters{padding:16px 20px!important;}
.clinical-report-buttons{gap:16px!important;}

/* Modals: consistent outer shape and internal padding. */
dialog{
  border-radius:16px!important;
  box-sizing:border-box!important;
}
.modal-form{padding:22px!important;box-sizing:border-box!important;}

/* ---------------------------------------------------------
   STANDARD PRINT HEADER - used by invoices, statements,
   prescriptions, follow-up cards, patient profiles and reports.
   --------------------------------------------------------- */
.print-invoice-header,
.print-profile-header,
.print-standard-header{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:24px!important;
  width:100%!important;
  min-height:112px!important;
  padding:0 0 16px!important;
  margin:0 0 16px!important;
  border-bottom:2px solid var(--blue-dark)!important;
  box-sizing:border-box!important;
}
.print-invoice-header .invoice-practice-logo,
.print-profile-header .print-practice-logo,
.print-standard-header .print-practice-logo{
  flex:0 0 165px!important;
  width:165px!important;
  min-width:165px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
.print-invoice-header .invoice-practice-logo img,
.print-profile-header .print-practice-logo img,
.print-standard-header .print-practice-logo img,
.print-profile-header > img{
  display:block!important;
  width:155px!important;
  max-width:155px!important;
  height:100px!important;
  max-height:100px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.print-invoice-header .invoice-practice-details,
.print-profile-header .print-practice-details,
.print-standard-header .print-practice-details,
.print-profile-header > div{
  min-width:0!important;
  text-align:left!important;
  color:#475569!important;
  font-size:10pt!important;
  line-height:1.45!important;
}
.print-invoice-header .invoice-practice-details h2,
.print-profile-header .print-practice-details h2,
.print-standard-header .print-practice-details h2,
.print-profile-header h2{
  margin:0 0 5px!important;
  color:var(--blue-dark)!important;
  font-size:19pt!important;
  line-height:1.15!important;
}

/* Report print header uses the same geometry. */
.print-report-header{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:24px!important;
  min-height:112px!important;
  padding:0 0 16px!important;
  margin:0 0 16px!important;
  border-bottom:2px solid var(--blue-dark)!important;
  box-sizing:border-box!important;
}
.print-report-header .print-practice-logo{
  flex:0 0 165px!important;
  width:165px!important;
  display:flex!important;
  align-items:center!important;
}
.print-report-header .print-practice-logo img{
  width:155px!important;
  height:100px!important;
  max-width:155px!important;
  max-height:100px!important;
  object-fit:contain!important;
}
.print-report-header .print-practice-details{
  display:block!important;
  font-size:10pt!important;
  line-height:1.45!important;
  color:#475569!important;
}
.print-report-header .print-practice-details strong{
  display:block!important;
  color:var(--blue-dark)!important;
  font-size:19pt!important;
  line-height:1.15!important;
  margin-bottom:5px!important;
}
.print-report-header .print-report-title{
  margin-left:auto!important;
  text-align:right!important;
  color:var(--blue-dark)!important;
  font-size:11pt!important;
  font-weight:700!important;
}

@media(max-width:1100px){
  .dashboard-next-row .latest-appointments-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:680px){
  .content{padding:16px!important;}
  .dashboard-split{grid-template-columns:1fr!important;}
  .dashboard-next-row .latest-appointments-grid{grid-template-columns:1fr!important;grid-auto-rows:auto!important;}
  .print-invoice-header,
  .print-profile-header,
  .print-standard-header,
  .print-report-header{gap:14px!important;}
  .print-invoice-header .invoice-practice-logo,
  .print-profile-header .print-practice-logo,
  .print-standard-header .print-practice-logo,
  .print-report-header .print-practice-logo{flex-basis:115px!important;width:115px!important;min-width:115px!important;}
  .print-invoice-header .invoice-practice-logo img,
  .print-profile-header .print-practice-logo img,
  .print-standard-header .print-practice-logo img,
  .print-report-header .print-practice-logo img,
  .print-profile-header > img{width:110px!important;height:78px!important;max-width:110px!important;max-height:78px!important;}
}

@media print{
  html,body{overflow:visible!important;background:#fff!important;}
  .content{padding:0!important;max-width:none!important;}
  .content>*{margin-bottom:12px!important;}
  .print-invoice-header,
  .print-profile-header,
  .print-standard-header,
  .print-report-header{
    min-height:112px!important;
    padding-bottom:14px!important;
    margin-bottom:14px!important;
    break-inside:avoid!important;
  }
  .print-invoice-header .invoice-practice-logo,
  .print-profile-header .print-practice-logo,
  .print-standard-header .print-practice-logo,
  .print-report-header .print-practice-logo{flex-basis:165px!important;width:165px!important;min-width:165px!important;}
  .print-invoice-header .invoice-practice-logo img,
  .print-profile-header .print-practice-logo img,
  .print-standard-header .print-practice-logo img,
  .print-report-header .print-practice-logo img,
  .print-profile-header > img{width:155px!important;height:100px!important;max-width:155px!important;max-height:100px!important;}
  .print-invoice-header .invoice-practice-details,
  .print-profile-header .print-practice-details,
  .print-standard-header .print-practice-details,
  .print-report-header .print-practice-details{font-size:9pt!important;}
  .print-invoice-header .invoice-practice-details h2,
  .print-profile-header .print-practice-details h2,
  .print-standard-header .print-practice-details h2,
  .print-report-header .print-practice-details strong,
  .print-profile-header h2{font-size:18pt!important;}
}

/* Standard print header: patient profile direct-logo variant */
.print-profile-header > img{flex:0 0 155px!important;}
/* VSP Inventory Management workflow */
.inventory-line{display:grid;grid-template-columns:minmax(240px,1.6fr) minmax(100px,.55fr) minmax(110px,.65fr) auto;gap:10px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);background:#fff}.inventory-line input,.inventory-line select{min-width:0}.inventory-line:has(input[name="reason[]"]){grid-template-columns:minmax(220px,1.4fr) 100px 110px minmax(160px,1fr) auto}.bulk-upload-box{display:grid;gap:12px;padding:16px;border:1px dashed #b9d0f3;border-radius:12px;background:var(--blue-soft)}.bulk-upload-box small{font-size:8pt;line-height:1.35}.action-group{display:flex;gap:8px;flex-wrap:wrap}.pill.draft{background:#e2e8f0;color:#475569}.pill.ordered{background:#dbeafe;color:#1d4ed8}.pill.part_received{background:#fef3c7;color:#a16207}.pill.received,.pill.posted{background:#dcfce7;color:#15803d}.pill.cancelled{background:#fee2e2;color:#b91c1c}.pill.return{background:#ffedd5;color:#c2410c}@media(max-width:800px){.inventory-line,.inventory-line:has(input[name="reason[]"]){grid-template-columns:1fr 1fr}.inventory-line button{grid-column:1/-1}.action-group{width:100%}.action-group .btn{flex:1}}

/* Cash-Up denomination counter - dedicated high-clarity layout */
.cash-count-panel{overflow:visible!important;margin-top:18px!important}
.cash-count-panel .panel-head{align-items:center;gap:20px;background:linear-gradient(180deg,#f8fbff,#fff)}
.cash-count-badge{min-width:150px;padding:10px 14px;border-radius:12px;background:var(--blue-light);border:1px solid #cfe0fb;text-align:right}
.cash-count-badge span{display:block;font-size:8pt;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.cash-count-badge strong{display:block;color:var(--blue-dark);font-size:18px;margin-top:2px}
.cashup-form{padding:20px!important;display:grid;gap:18px}
.cashup-summary{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:12px;align-items:stretch}
.cashup-summary>label,.cashup-summary-box{min-height:84px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;justify-content:center}
.cashup-summary-box span{font-size:8pt;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.cashup-summary-box strong{font-size:19px;color:var(--blue-dark);margin-top:5px}
.cashup-summary-box.expected{background:var(--blue-soft);border-color:#cfe0fb}.cashup-summary-box.variance{background:#f8fafc}
.cash-denomination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cash-denom-card{background:#fff;border:1px solid #d7e3f0;border-radius:14px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;box-shadow:0 2px 7px rgba(15,45,99,.05)}
.cash-denom-card.coins{background:#f8fbff;border-color:#cfe0fb}
.cash-denom-value{font-size:18px;font-weight:800;color:var(--blue-dark)}.cash-denom-label{font-size:8pt;color:var(--muted);align-self:end}
.cash-denom-card label{grid-column:1/-1;margin-top:8px;display:grid;grid-template-columns:1fr 110px;align-items:center;gap:10px;font-size:9pt}
.cash-denom-card input{height:40px;text-align:center;font-weight:800;font-size:15px}
.cash-denom-total{grid-column:1/-1;margin-top:3px;padding-top:9px;border-top:1px solid #e7eef6;display:flex;justify-content:space-between;font-size:8pt;color:var(--muted)}
.cash-denom-total strong{font-size:13px;color:#172033}
.cashup-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border-radius:14px;background:var(--blue-dark);color:#fff}
.cashup-result div{display:flex;justify-content:space-between;align-items:center;gap:12px}.cashup-result span{font-size:9pt;color:#d9e5ef}.cashup-result strong{font-size:20px}.cashup-result strong.positive{color:#86efac}.cashup-result strong.negative{color:#fecaca}
#cashVariance.positive,#cashVarianceLarge.positive{color:#15803d}#cashVariance.negative,#cashVarianceLarge.negative{color:#dc2626}
@media(max-width:1000px){.cashup-summary{grid-template-columns:1fr 1fr}.cash-denomination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.cash-count-panel .panel-head{align-items:flex-start;flex-direction:column}.cash-count-badge{width:100%;text-align:left}.cashup-summary,.cash-denomination-grid,.cashup-result{grid-template-columns:1fr}.cash-denom-card label{grid-template-columns:1fr 100px}}
/* Permissions Manager - aligned permission controls */
.permissions-grid{display:grid!important;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px 18px!important;padding:20px!important}
.permissions-grid label{display:flex!important;align-items:center!important;gap:9px!important;min-height:38px!important;padding:8px 10px!important;border:1px solid #dbe7f2!important;border-radius:8px!important;background:#fff!important;box-sizing:border-box!important}
.permissions-grid input[type=checkbox]{width:16px!important;height:16px!important;margin:0!important;flex:0 0 16px!important;accent-color:#1976d2}
@media(max-width:900px){.permissions-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}}
@media(max-width:600px){.permissions-grid{grid-template-columns:1fr!important}}

.permissions-grid{display:grid!important;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px 18px!important;padding:20px!important}.permissions-grid label{display:flex!important;align-items:center!important;gap:9px!important;min-height:38px!important;padding:8px 10px!important;border:1px solid #dbe7f2!important;border-radius:8px!important;background:#fff!important;box-sizing:border-box!important}.permissions-grid input[type=checkbox]{width:16px!important;height:16px!important;margin:0!important;flex:0 0 16px!important;accent-color:#1976d2}@media(max-width:900px){.permissions-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}}@media(max-width:600px){.permissions-grid{grid-template-columns:1fr!important}}

/* Unified standard print header for all accounting/management reports */
.report-standard-print-header{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:24px!important;width:100%!important;min-height:112px!important;padding:0 0 14px!important;margin:0 0 16px!important;border-bottom:2px solid var(--blue-dark)!important;box-sizing:border-box!important;background:#fff!important}
.report-standard-print-header .print-practice-logo{flex:0 0 165px!important;width:165px!important;display:flex!important;align-items:center!important}
.report-standard-print-header .print-practice-logo img{display:block!important;width:155px!important;height:100px!important;max-width:155px!important;max-height:100px!important;object-fit:contain!important;object-position:left center!important}
.report-standard-print-header .print-practice-details{font-size:10pt!important;line-height:1.45!important;color:#475569!important}
.report-standard-print-header .print-practice-details strong{display:block!important;color:var(--blue-dark)!important;font-size:19pt!important;line-height:1.15!important;margin-bottom:5px!important}
.report-standard-print-header .print-report-title{margin-left:auto!important;text-align:right!important;color:var(--blue-dark)!important;font-size:11pt!important;font-weight:700!important}
@media print{.report-standard-print-header{min-height:112px!important;margin-bottom:14px!important;break-inside:avoid!important}.report-standard-print-header .print-practice-logo{flex-basis:165px!important;width:165px!important}.report-standard-print-header .print-practice-logo img{width:155px!important;height:100px!important}.report-standard-print-header .print-practice-details{font-size:9pt!important}.report-standard-print-header .print-practice-details strong{font-size:18pt!important}}

/* Print headers are document-only: hidden on normal pages and revealed only for printing. */
.print-invoice-header,.print-profile-header,.print-standard-header,.print-report-header{display:none!important;}
@media print{
  .print-invoice-header,.print-profile-header,.print-standard-header,.print-report-header{display:flex!important;}
}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:14px 0;}
@media(max-width:900px){.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.permission-grid{grid-template-columns:1fr;}}

/* Hide unified report header on screen; show only in print. */
.report-standard-print-header{display:none!important;}
@media print{.report-standard-print-header{display:flex!important;}}

/* Category Manager: keep name/description and permission cells visually separated. */
.category-manager-table table{table-layout:auto;}
.category-manager-table .category-name-cell{min-width:230px;padding:18px 20px!important;vertical-align:middle;}
.category-manager-table .category-name-cell strong{display:block;line-height:1.25;font-size:14px;}
.category-manager-table .category-name-cell small{display:block;margin-top:6px;color:var(--muted);font-size:8pt;line-height:1.35;white-space:normal;}
.category-manager-table .category-flag-cell{text-align:center;vertical-align:middle;padding:18px 12px!important;min-width:92px;}
.category-check{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eaf6ef;color:#16834b;font-weight:800;}
.category-dash{color:#94a3b8;}
.category-manager-table .table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.category-manager-table .status-pill{white-space:nowrap;}
.category-dialog{width:min(820px,94vw);max-width:820px;}
.category-permission-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;padding:8px 0 2px;}
.category-permission-grid .checkbox-label{display:flex!important;align-items:center!important;gap:10px!important;min-height:42px!important;padding:10px 12px!important;border:1px solid var(--line);border-radius:10px;background:#f8fafc;box-sizing:border-box;}
.category-permission-grid .checkbox-label input{margin:0!important;flex:0 0 auto;}
.category-permission-grid .checkbox-label span{line-height:1.2;}
.month-end-result td,.month-end-result th{font-weight:800;background:#f8fafc;}
@media(max-width:900px){.category-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.category-permission-grid{grid-template-columns:1fr;}.category-manager-table .table-actions{flex-direction:column;align-items:stretch;}}

/* Cash-up denomination refinement */
.cash-section-title{font-size:11pt;font-weight:800;color:var(--blue-dark);margin:20px 0 10px;padding:0 2px}.coins-title{margin-top:26px}.cash-notes-grid,.cash-coins-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cash-denom-card{min-height:145px;padding:16px}.coin-card{min-height:135px}.cash-denom-value{font-size:18px;font-weight:800}.cash-denom-label{font-size:8pt;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cash-denom-card label{font-size:8pt}.cash-denom-total{font-size:8pt;color:var(--muted)}.cash-denom-total strong{font-size:12pt;color:var(--blue-dark)}.month-end-pl-stat{border:2px solid var(--blue);background:var(--blue-soft)}.month-end-invoices{margin-top:18px}@media(max-width:1000px){.cash-notes-grid,.cash-coins-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.cash-notes-grid,.cash-coins-grid{grid-template-columns:1fr}}

/* Client finance documents + manual stock controls */
.check-panel{border:1px solid #d7e1ee;border-radius:14px;padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px 24px;min-width:0}
.check-panel legend{padding:0 6px;font-weight:700;color:#12325f}
.check-option{display:inline-flex!important;align-items:center;gap:8px;white-space:nowrap}
.check-option input{width:18px!important;height:18px!important;margin:0!important;accent-color:#1559c7}
.account-note-reason{margin-top:28px;padding:20px;border:1px solid #d7e1ee;border-radius:12px;background:#f8fafc}
.account-note-reason p{margin:7px 0 16px}
.account-note-footer{margin-top:40px;padding-top:18px;border-top:2px solid #163e78;font-size:9pt;color:#5d708d}
.print-document{max-width:980px;margin:0 auto}
@media print{.print-document{box-shadow:none!important;border:0!important;margin:0!important}.no-print{display:none!important}}
/* Category Manager permission boxes: fixed alignment */
.category-dialog .category-permission-grid{display:grid!important;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px!important;margin:18px 0!important;align-items:stretch!important}
.category-dialog .category-permission-grid .checkbox-label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;min-height:46px!important;width:100%!important;margin:0!important;padding:10px 14px!important;box-sizing:border-box!important}
.category-dialog .category-permission-grid .checkbox-label input[type=checkbox]{appearance:auto!important;width:18px!important;height:18px!important;min-width:18px!important;margin:0!important;flex:0 0 18px!important}
.category-dialog .category-permission-grid .checkbox-label span{display:block!important;margin:0!important;line-height:1.25!important;text-align:left!important}
@media(max-width:900px){.category-dialog .category-permission-grid{grid-template-columns:repeat(2,minmax(160px,1fr));}}
@media(max-width:600px){.category-dialog .category-permission-grid{grid-template-columns:1fr;}}
/* Searchable stock pickers */
.product-search-input{min-width:240px;background:#fff}
.inventory-line{display:grid;grid-template-columns:minmax(260px,2fr) 110px 140px auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.inventory-line:last-child{border-bottom:0}
.permission-section-title{padding:20px 20px 8px;margin:0;color:var(--blue-dark);font-size:14px}
.menu-permissions-grid{border-top:1px solid var(--line)}
.email-pdf-dialog{width:min(620px,calc(100vw - 24px))}
@media(max-width:800px){.inventory-line{grid-template-columns:1fr 1fr}.inventory-line .product-search-input{grid-column:1/-1}}

/* Client profile compact controls */
.client-profile-head{align-items:flex-start}.client-profile-head>div:first-child{min-width:0}.patient-number-hero{display:inline-flex;align-items:baseline;gap:10px;margin-top:10px;padding:8px 14px;border-radius:10px;background:#eaf2ff;border:1px solid #bfd3f4;color:#0b2d63}.patient-number-hero span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#60799a}.patient-number-hero strong{font-size:22px;font-weight:900;letter-spacing:.08em}.client-profile-actions{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:12px;margin:0 0 18px}.client-profile-action{appearance:none;border:1px solid #d6e2f0;background:#fff;border-radius:11px;padding:12px 14px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;color:#12325f;box-shadow:0 2px 8px rgba(15,43,78,.05);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.client-profile-action:hover{transform:translateY(-1px);border-color:#a8c5ec;box-shadow:0 5px 14px rgba(15,43,78,.09)}.client-profile-action>span{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#eef5ff;color:#245b9d;font-weight:800;font-size:15px}.client-profile-action strong{font-size:13px}.client-profile-action em{margin-left:auto;font-style:normal;font-size:10px;font-weight:800;padding:3px 7px;border-radius:999px;background:#e8f1ff;color:#245b9d}.client-profile-dialog{width:min(720px,calc(100vw - 28px));max-width:720px;border:0;border-radius:14px;padding:0;box-shadow:0 20px 60px rgba(15,43,78,.22)}.client-profile-dialog::backdrop{background:rgba(15,32,55,.45)}.client-profile-dialog .modal-form{padding:22px}.client-profile-dialog h2{margin:0 0 6px;color:#12325f}.arrangement-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 16px}.arrangement-summary span{padding:9px 10px;border:1px solid #dbe5f0;border-radius:8px;background:#f7faff;font-size:12px}.arrangement-summary b{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#64748b;margin-bottom:3px}@media(max-width:850px){.client-profile-head{display:flex;flex-direction:column}.client-profile-head .actions{width:100%;justify-content:flex-start}.client-profile-actions{grid-template-columns:1fr}.arrangement-summary{grid-template-columns:1fr 1fr}}@media(max-width:600px){.client-number-badge strong{font-size:20px}.client-profile-head .actions .btn{flex:1;min-width:0}.arrangement-summary{grid-template-columns:1fr}}

/* Client risk / account controls */
.bad-debt-banner{margin:10px 18px 0;padding:12px 16px;background:#dc2626;color:#fff;border:2px solid #991b1b;border-radius:8px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 12px rgba(127,29,29,.18);font-size:13px}.bad-debt-banner strong{font-size:14px;white-space:nowrap}.bad-debt-banner span{flex:1}.bad-debt-banner small{font-size:11px;background:rgba(255,255,255,.14);padding:5px 8px;border-radius:5px}.bad-debt-panel{border:2px solid #dc2626;background:#fff7f7}.arrangement-status{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#e0f2fe;color:#075985}.comment-list{display:grid;gap:8px}.comment-item{padding:10px 12px;border:1px solid #dbe4ef;border-radius:7px;background:#f8fafc}.comment-item small{display:block;color:#64748b;margin-top:4px}.risk-checkbox{display:flex!important;align-items:center;gap:9px;padding:10px 12px;border:1px solid #fecaca;border-radius:7px;background:#fff5f5}.risk-checkbox input{width:18px!important;height:18px!important;margin:0}.arrangement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.arrangement-grid .span2{grid-column:span 2}@media(max-width:900px){.arrangement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.arrangement-grid{grid-template-columns:1fr}.arrangement-grid .span2{grid-column:auto}.bad-debt-banner{margin:8px 10px;flex-wrap:wrap}}
/* Search result dropdowns: selected result closes immediately and never traps the form. */
.med-search-wrap{position:relative}.search-results{z-index:1200}.search-results[hidden]{display:none!important}.search-result{cursor:pointer}.search-result:focus{outline:2px solid #2563eb;outline-offset:-2px}


/* Patient clinical documents + deceased status */
.patient-shared-documents{margin:0 0 var(--block-gap,16px);overflow:hidden}.shared-doc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.shared-doc-item{display:flex;flex-direction:column;gap:7px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f8fbff;color:inherit;text-decoration:none}.shared-doc-item:hover{border-color:#b8c9df;background:#f4f8ff}.shared-doc-item strong{display:block;color:var(--blue-dark)}.shared-doc-item span{display:block;color:#334155;font-size:13px;overflow-wrap:anywhere}.shared-doc-item small{color:var(--muted)}
.client-finance-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}.client-finance-controls>.panel{height:100%;display:flex;flex-direction:column}.client-finance-controls>.panel>.form-grid{flex:1;align-content:start}.client-finance-controls .modal-actions{margin-top:auto;padding-top:4px}.client-finance-controls .panel-head{min-height:88px;align-items:flex-start}.client-finance-controls .panel-head>div{min-width:0}.client-finance-controls .panel-head h2{line-height:1.25}.client-finance-controls .panel-head .muted{display:block;margin-top:5px;line-height:1.4}@media(max-width:900px){.shared-doc-list,.client-finance-controls{grid-template-columns:1fr!important}}

/* Final alignment and migration-template refinements */
.grid.import-export-grid>.panel{margin-top:0!important;height:100%;display:flex;flex-direction:column}.grid.import-export-grid>.panel>.panel-head{flex:0 0 auto}.grid.import-export-grid>.panel>div:not(.panel-head){flex:1}.client-finance-controls>.panel+.panel{margin-top:0!important}.client-finance-controls{align-items:stretch!important}.client-finance-controls>.panel{margin-top:0!important;min-height:100%}.template-dataset-link{display:inline-flex;flex-direction:column;gap:3px;color:var(--blue-dark);padding:6px 8px;margin:-6px -8px;border-radius:8px}.template-dataset-link:hover{background:var(--blue-light);color:var(--blue)}.template-dataset-link span{font-size:10px;font-weight:600;color:var(--blue);text-decoration:underline}.template-download-hint{font-size:11px;color:var(--muted);font-weight:600}@media(max-width:850px){.grid.import-export-grid>.panel{height:auto}.client-finance-controls>.panel+.panel{margin-top:0!important}}

/* Client register: action controls lead each row and Client Number mirrors Patient Number styling. */
.client-row-actions{white-space:nowrap;min-width:230px;vertical-align:middle!important;}
.client-row-actions .inline-form{display:inline-block;margin:0;}
.client-number-link{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:130px;padding:8px 12px;border-radius:10px;background:#eaf2ff;border:1px solid #bfd3f4;color:#0b2d63;text-decoration:none;line-height:1.15;}
.client-number-link span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#60799a;}
.client-number-link strong{font-size:22px;font-weight:900;letter-spacing:.05em;}
@media(max-width:900px){.client-row-actions{min-width:200px}.client-number-link strong{font-size:20px;}}
@media print{.bad-debt-banner,.bad-debt-panel,.client-finance-controls{display:none!important;}}

/* Diagnosis Manager */
.diagnosis-group{margin-top:18px}.diagnosis-group table td:first-child{min-width:260px}.diagnosis-group table td:first-child small{display:block;color:var(--muted,#6b7280);margin-top:3px}.diagnosis-group .table-actions{display:flex;gap:8px;align-items:center}.diagnosis-group .inline-form{display:inline-flex}

/* Central clinical diagnosis picker */
.diagnosis-clinical-field{min-width:0}.diagnosis-picker{position:relative;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.diagnosis-selected{display:flex;flex-wrap:wrap;gap:8px;min-height:10px;margin-bottom:10px}.diagnosis-chip{display:inline-flex;align-items:center;gap:9px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:999px;padding:7px 9px 7px 12px;color:#173b72}.diagnosis-chip>span{display:grid;gap:1px}.diagnosis-chip small{font-size:11px;color:#64748b}.diagnosis-chip button{border:0;background:transparent;color:#475569;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.diagnosis-search-wrap{position:relative}.diagnosis-search-wrap input[type=search]{width:100%;padding:11px 13px;border:1px solid #cbd5e1;border-radius:9px}.diagnosis-search-wrap .search-results{top:calc(100% + 4px);left:0;right:0}.diagnosis-manual-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,1fr) auto auto;gap:8px;align-items:center;margin-top:10px}.diagnosis-manual-row input[type=text]{min-width:0}.diagnosis-manual-row .checkline{white-space:nowrap;margin:0}.hospital-diagnosis-editor{margin-top:16px}.hospital-diagnosis-editor form{padding:0 18px 18px}.hospital-diagnosis-editor .diagnosis-picker{margin-top:4px}@media(max-width:900px){.diagnosis-manual-row{grid-template-columns:1fr 1fr}.diagnosis-manual-row .btn{width:100%}}@media(max-width:620px){.diagnosis-manual-row{grid-template-columns:1fr}.diagnosis-manual-row .checkline{justify-self:start}}

.realtime-search-panel{margin:12px 0}.realtime-search-panel label{display:block}.realtime-search-panel input[type=search],.realtime-search-label input[type=search]{width:100%;box-sizing:border-box}.realtime-search-label{display:block;padding:12px 0;font-weight:600}.realtime-search-label input{margin-top:6px}

/* =========================================================
   VET SERVE PRO - DIARY DASHBOARD + WALK-IN QUEUES
   ========================================================= */
.dashboard-hero{margin-bottom:20px!important}
.walkin-dashboard{border-color:#f59e0b!important}
.diary-panel{overflow:hidden;margin-bottom:20px!important}
.diary-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}
.diary-nav,.diary-controls,.view-switch{display:flex;align-items:center;gap:6px}
.diary-title{text-align:center;font-size:20px;font-weight:800;color:var(--navy)}
.diary-vet-select{display:flex;align-items:center;gap:7px;white-space:nowrap}.diary-vet-select select{width:180px;padding:8px 10px}
.view-switch{border:1px solid var(--line);border-radius:9px;padding:2px;background:#f8fafc}.view-switch button{border:0;background:transparent;padding:8px 11px;border-radius:7px;font-weight:700;color:#64748b;cursor:pointer}.view-switch button.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(15,23,42,.12)}
.diary-legend{display:flex;flex-wrap:wrap;gap:16px;padding:10px 18px;border-bottom:1px solid var(--line);font-size:12px;color:#475569}.diary-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.upcoming{background:#dc2626}.legend-dot.completed-open{background:#f97316}.legend-dot.finalised{background:#16a34a}.legend-dot.procedure{background:#7c3aed}
.diary-canvas{background:#fff;overflow:auto;min-height:640px}
.day-grid{display:grid;grid-template-columns:64px repeat(auto-fit,minmax(180px,1fr));grid-template-rows:52px var(--diary-height,960px);min-width:760px;position:relative}.day-time-head,.day-col-head{height:52px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc;box-sizing:border-box}.day-col-head{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#334155}.day-times{grid-column:1;grid-row:2;position:relative;background:#f8fafc}.day-times>div{height:60px;box-sizing:border-box;border-bottom:1px dotted #d9e0e8;padding:4px 7px;color:#64748b;font-size:11px}.day-column{grid-row:2;position:relative;height:var(--diary-height,960px);border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,#fff 0,#fff 29px,#e8edf3 30px,#fff 31px,#fff 59px,#e8edf3 60px)}.day-column>i{display:none}.day-event-wrap{position:absolute;left:4px;right:4px;z-index:2}.diary-event{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:#fff;border-radius:7px;padding:7px 8px;min-height:42px;box-sizing:border-box;box-shadow:0 2px 5px rgba(15,23,42,.14);font-size:11px;line-height:1.2}.diary-event b{font-size:11px}.diary-event span{opacity:.95}.diary-event em{font-style:normal;font-size:9px;text-transform:uppercase;font-weight:800;opacity:.9}.diary-event.upcoming{background:#dc2626}.diary-event.completed-open{background:#f97316}.diary-event.finalised{background:#16a34a}.diary-event.procedure{background:#7c3aed} .diary-event:hover{filter:brightness(.96);transform:translateY(-1px)}
.diary-event-card{position:relative;min-width:0}
.diary-event-card>.diary-event{width:100%;min-height:60px;padding:7px 8px 25px;overflow:hidden}
.diary-cancel-form{position:absolute;right:5px;bottom:4px;z-index:4;margin:0}
.diary-cancel-btn{border:1px solid rgba(255,255,255,.7);background:rgba(15,23,42,.18);color:#fff;border-radius:4px;padding:2px 6px;font-size:9px;line-height:1.4;font-weight:700;cursor:pointer}
.diary-cancel-btn:hover{background:rgba(15,23,42,.38)}
.month-day .diary-event-card>.diary-event{min-height:0;padding:5px 6px;font-size:10px}
.month-day .diary-cancel-form{bottom:3px;right:3px}
.month-day .diary-cancel-btn{font-size:8px;padding:1px 4px}
.diary-list-row .diary-event-card{width:100%;max-width:700px}
.diary-list-row .diary-event-card>.diary-event{min-height:0;padding:7px 8px 24px}

.week-grid{display:grid;grid-template-columns:64px repeat(7,minmax(150px,1fr));min-width:1120px;grid-template-rows:52px var(--diary-height,960px)}.week-head{height:52px;text-align:center;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc;font-size:11px;color:#64748b}.week-head b{font-size:14px;color:#1e293b}.week-times>div{height:60px;box-sizing:border-box;border-bottom:1px dotted #d9e0e8;padding:4px 7px;color:#64748b;font-size:11px}.week-day{position:relative;height:var(--diary-height,960px);border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,#fff 0,#fff 29px,#e8edf3 30px,#fff 31px,#fff 59px,#e8edf3 60px)}.week-event-wrap{position:absolute;left:3px;right:3px;z-index:2}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:950px}.month-day{min-height:145px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;background:#fff;display:flex;flex-direction:column;gap:4px}.month-day.other{background:#f8fafc}.month-date{font-weight:800;color:#475569;font-size:12px;margin-bottom:3px}.month-day .diary-event{min-height:auto;padding:5px 6px;font-size:10px}.month-day .diary-event span{display:none}.month-day>small{color:#64748b;font-size:10px}
.diary-list{display:flex;flex-direction:column}.diary-list-row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);align-items:center}.diary-list-row>div{display:flex;gap:10px;align-items:center}.diary-list-row strong{font-size:16px;color:var(--navy)}.diary-list-row .diary-event{max-width:700px}
.dashboard-queues{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}.queue-card{min-width:0}.queue-walkin{grid-column:auto}.queue-unpaid{grid-column:auto}.queue-list{padding:4px 0}.queue-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.queue-row:last-child{border-bottom:0}.queue-row>div:first-child{display:grid;gap:3px;min-width:0}.queue-row small{white-space:normal}.queue-row .actions{display:flex;gap:6px;flex-shrink:0}
@media(max-width:1050px){.diary-toolbar{grid-template-columns:1fr}.diary-title{text-align:left}.diary-controls{justify-content:space-between}.dashboard-queues{grid-template-columns:1fr}.queue-walkin{grid-column:auto}}
@media(max-width:680px){.diary-controls{align-items:stretch;flex-direction:column}.diary-vet-select select{width:100%}.view-switch{justify-content:space-between}.view-switch button{flex:1}.diary-list-row{grid-template-columns:1fr}.queue-row{align-items:flex-start;flex-direction:column}.queue-row .actions{width:100%}.queue-row .btn{flex:1}}
.pill.invoice{background:#dbeafe;color:#1d4ed8}.pill.warning{background:#fee2e2;color:#b91c1c}.alert.warning{background:#fef3c7;color:#92400e}

.diary-timezone{font-size:11px;font-weight:800;color:#64748b;white-space:nowrap;padding:0 6px}.diary-controls{justify-content:flex-end}
@media(max-width:1050px){.diary-timezone{display:none}}

/* VSP Dashboard refinement: compact Quick Actions */
.quick-actions-grid{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px 12px 12px!important;
}
.quick-action{
  min-height:54px!important;
  height:54px!important;
  grid-template-columns:30px minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:7px 9px!important;
  border-radius:9px!important;
}
.quick-action-icon{
  width:30px!important;
  height:30px!important;
  border-radius:8px!important;
  font-size:13px!important;
}
.quick-action strong{font-size:12px!important;line-height:1.15!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quick-action small{font-size:9px!important;line-height:1.1!important;margin-top:2px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quick-action>b{font-size:14px!important;}
@media(max-width:1250px){.quick-actions-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}}
@media(max-width:1000px){.quick-actions-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media(max-width:760px){.quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}.quick-action{height:52px!important;min-height:52px!important;padding:6px 8px!important;}}
@media(max-width:500px){.quick-actions-grid{grid-template-columns:1fr!important;}.quick-action strong{font-size:12px!important;}}


/* Dashboard queue spacing and direct diary booking controls */
.diary-title-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0}
.diary-booking-actions{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.diary-booking-actions .btn{white-space:nowrap;padding:6px 10px;font-size:11px;line-height:1.2}
.diary-booking-emergency{border-color:#fecaca!important;color:#b91c1c!important;background:#fff7f7!important}
.dashboard-queues{align-items:start;gap:16px;margin-top:0}
.dashboard-queues>.queue-card{align-self:start;height:auto;min-height:0;display:flex;flex-direction:column}
.dashboard-queues .panel-head{padding:14px 18px;min-height:0}
.dashboard-queues .queue-list{padding:0;min-height:0}
.dashboard-queues .empty{padding:24px 14px;text-align:center;min-height:0;height:auto;display:block}
.dashboard-queues .queue-row{padding:10px 14px}
@media(max-width:1050px){.diary-title-wrap{align-items:flex-start}.diary-booking-actions{justify-content:flex-start}}
