:root {
  /* Clinical teal — calm dental lab feel, high readability */
  --primary:#0f766e;--primary-dark:#0d5f59;--primary-light:#ccfbf1;
  --secondary:#0e7490;--accent:#ea580c;--accent2:#0d9488;
  --success:#16a34a;--success-light:#dcfce7;--success-dark:#15803d;
  --warning:#ea580c;--warning-light:#fff7ed;--warning-dark:#c2410c;--warning-darker:#9a3412;
  --warning-soft:#ffedd5;--warning-border:#fdba74;--warning-ring:rgba(234,88,12,.16);--warning-glow:rgba(234,88,12,.24);
  --danger:#dc2626;--danger-light:#fee2e2;--danger-dark:#b91c1c;
  --info:#0284c7;--info-light:#e0f2fe;--info-dark:#0369a1;
  --bg:#f0f7f6;--bg-top:#f7fcfb;--bg-bottom:#e4f1ef;
  --surface:#ffffff;--surface2:#f5faf9;--surface3:#e8f3f1;
  --surface-glass:rgba(255,255,255,.82);--surface-glass-strong:rgba(255,255,255,.94);--surface-highlight:rgba(255,255,255,.78);
  --border:#d5e5e2;--text:#134e4a;--text2:#3f6864;--text3:#587570;
  --sidebar-w:276px;--sidebar-drawer-w:276px;--header-h:64px;
  --radius:16px;--radius-sm:10px;--radius-lg:22px;
  --shadow:0 8px 24px rgba(15,70,64,.06),0 2px 8px rgba(15,70,64,.04);
  --shadow-md:0 16px 40px rgba(15,70,64,.09),0 6px 16px rgba(15,70,64,.05);
  --shadow-lg:0 24px 64px rgba(15,70,64,.12),0 12px 28px rgba(15,70,64,.07);
  --backdrop-blur:20px;--page-glow:rgba(15,118,110,.14);--page-glow-2:rgba(14,116,144,.10);--page-warm:rgba(234,88,12,.08);
  --t:.2s cubic-bezier(.4,0,.2,1);
  --focus-ring:0 0 0 4px rgba(15,118,110,.16);
  --tooth1:#0f766e;--tooth2:#0e7490;--tooth3:#14b8a6;
  --field-h:48px;
}
[data-theme="dark"]{
  --primary:#2dd4bf;--primary-dark:#14b8a6;--primary-light:#0f2f2c;
  --success-light:#0a3d24;--success-dark:#4ade80;
  --warning-light:#3d1f0a;--warning-dark:#fdba74;--warning-darker:#fed7aa;
  --warning-soft:#2a1608;--warning-border:#9a3412;--warning-ring:rgba(234,88,12,.22);--warning-glow:rgba(234,88,12,.28);
  --danger-light:#3f0a0a;--danger-dark:#f87171;
  --info-light:#0c2a3d;--info-dark:#38bdf8;
  --bg:#071412;--bg-top:#050f0e;--bg-bottom:#0c1c1a;
  --surface:#0d1f1c;--surface2:#132824;--surface3:#1a332e;
  --surface-glass:rgba(13,31,28,.82);--surface-glass-strong:rgba(13,31,28,.94);--surface-highlight:rgba(255,255,255,.04);
  --border:#1e3d38;--text:#e6f7f4;--text2:#9cb8b3;--text3:#8aa8a2;
  --shadow:0 10px 30px rgba(0,0,0,.36),0 2px 10px rgba(0,0,0,.28);
  --shadow-md:0 18px 44px rgba(0,0,0,.44),0 8px 20px rgba(0,0,0,.32);
  --shadow-lg:0 28px 72px rgba(0,0,0,.52),0 14px 36px rgba(0,0,0,.38);
  --page-glow:rgba(45,212,191,.12);--page-glow-2:rgba(56,189,248,.08);--page-warm:rgba(234,88,12,.06);
  --focus-ring:0 0 0 4px rgba(45,212,191,.22);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Noto Kufi Arabic',sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;direction:rtl;
  font-size:14px;line-height:1.7;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  position:relative;
  isolation:isolate;
}
/* fixed gradient layer — background-attachment:fixed is unreliable on iOS/Android */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 100% 0,var(--page-glow),transparent 32%),
    radial-gradient(circle at 0 12%,var(--page-glow-2),transparent 26%),
    radial-gradient(circle at 15% 100%,var(--page-warm),transparent 30%),
    linear-gradient(180deg,var(--bg-top) 0%,var(--bg) 50%,var(--bg-bottom) 100%);
}
input,select,textarea,button{font-family:inherit}
input[type="date"],input[type="number"],input[type="text"],input[type="password"],input[type="tel"]{font-size:16px}

/* ===== ANIMATIONS ===== */
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes pop{0%{transform:scale(0.9);opacity:0}60%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes toastIn{from{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{to{opacity:0;transform:translateY(-10px) scale(.9)}}
@keyframes dotPulse{0%,80%,100%{opacity:0;transform:scale(0)}40%{opacity:1;transform:scale(1)}}
@keyframes gradAnim{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* ===== LOGIN ===== */
#loginScreen{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;position:fixed;inset:0;z-index:9999;padding:20px;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:
    radial-gradient(ellipse 80% 60% at 12% 18%,rgba(234,88,12,.18),transparent 42%),
    radial-gradient(ellipse 70% 50% at 88% 82%,rgba(14,116,144,.22),transparent 45%),
    linear-gradient(145deg,#042f2e 0%,#0f766e 48%,#0e7490 100%);
  background-size:200% 200%;animation:gradAnim 12s ease infinite;
}
.login-shell{width:100%;max-width:460px}
.login-card{
  background:var(--surface-glass-strong);border-radius:28px;padding:40px 36px 32px;
  width:100%;box-shadow:0 32px 80px rgba(2,24,22,.32);
  border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(var(--backdrop-blur));
  animation:pop .45s ease;
}
.login-brand{text-align:center;margin-bottom:28px}
.login-logo{
  width:84px;height:84px;background:linear-gradient(145deg,#0f766e,#0e7490);
  border-radius:22px;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;font-size:38px;color:#fff;
  box-shadow:0 14px 36px rgba(15,118,110,.42);
}
.login-name{font-size:30px;font-weight:900;color:var(--primary);letter-spacing:-.02em}
.login-logo{background:#fff;border:1px solid rgba(30,155,176,.2)}
.login-logo img,.logo-icon img{display:block;object-fit:contain;flex-shrink:0}
.footer-brand-logo{display:inline-block;vertical-align:middle;object-fit:contain;margin-inline-end:4px;flex-shrink:0}
.login-sub{font-size:13px;color:var(--text3);margin-top:6px;line-height:1.6}
.login-form{margin-top:4px}
.login-remember{margin:4px 0 18px}
.login-hint{
  text-align:center;margin-top:16px;font-size:12px;color:var(--text3);line-height:1.6
}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:13px;font-weight:700;color:var(--text2);margin-bottom:7px}
.form-label .req,.form-label.required::after{content:' *';color:var(--danger);font-weight:900}
.fc,.form-control,.form-select,.form-textarea{
  width:100%;min-height:var(--field-h);padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;
  background:var(--surface);color:var(--text);font-family:inherit;
  font-size:15px;transition:var(--t);outline:none;
}
.fc:focus,.form-control:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--primary);box-shadow:var(--focus-ring)
}
.fc.is-invalid,.form-control.is-invalid,.form-select.is-invalid,.form-textarea.is-invalid{
  border-color:var(--danger);box-shadow:0 0 0 4px rgba(220,38,38,.12)
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;
  border-radius:12px;border:none;cursor:pointer;font-family:inherit;
  font-size:14px;font-weight:700;transition:var(--t);text-decoration:none;
  white-space:nowrap;line-height:1.4;min-height:44px;
}
.btn-lg{padding:14px 24px;font-size:15px;border-radius:14px;min-height:52px}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 6px 18px rgba(15,118,110,.28)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,118,110,.36)}
.btn-success{background:var(--success);color:#fff;box-shadow:0 4px 12px rgba(34,197,86,.25)}
.btn-success:hover{background:var(--success-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(34,197,86,.35)}
.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 12px rgba(239,68,68,.25)}
.btn-danger:hover{background:var(--danger-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(239,68,68,.35)}
.btn-warning{
  background:linear-gradient(135deg,var(--warning),var(--warning-dark));color:#fff;
  box-shadow:0 12px 24px var(--warning-glow);font-weight:700;border:1px solid rgba(255,255,255,.18)
}
.btn-warning:hover{transform:translateY(-2px);box-shadow:0 18px 32px var(--warning-glow);background:linear-gradient(135deg,var(--warning),var(--warning-darker))}
.btn-warning:active{transform:translateY(-1px);box-shadow:0 8px 18px var(--warning-ring)}
.btn-secondary{background:var(--surface2);color:var(--text);border:1.5px solid var(--border);box-shadow:0 2px 4px rgba(0,0,0,.04)}
.btn-secondary:hover{background:var(--surface3);border-color:var(--primary);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary);transition:var(--t)}
.btn-outline:hover{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(15,118,110,.25)}
.btn-outline.warning{color:var(--warning-dark);border-color:var(--warning-border);background:rgba(251,146,60,.05)}
.btn-outline.warning:hover{background:linear-gradient(135deg,var(--warning),var(--warning-dark));color:#fff;box-shadow:0 10px 20px var(--warning-glow);border-color:transparent}
.btn-icon{padding:9px;border-radius:10px;background:var(--surface2);color:var(--text2);border:1px solid var(--border);flex-shrink:0;transition:var(--t)}
.btn-icon:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light);transform:translateY(-1px)}
.btn-icon.warning{color:var(--warning-dark)}
.btn-icon.warning:hover{color:#fff;background:linear-gradient(135deg,var(--warning),var(--warning-dark));border-color:transparent;box-shadow:0 10px 18px var(--warning-glow)}
.btn-icon.danger{color:var(--danger)}
.btn-icon.danger:hover{color:#fff;background:var(--danger);border-color:var(--danger);box-shadow:0 4px 12px rgba(239,68,68,.3)}
.btn-icon.success{color:var(--success)}
.btn-icon.success:hover{color:#fff;background:var(--success);border-color:var(--success);box-shadow:0 4px 12px rgba(34,197,86,.3)}
.btn-sm{padding:7px 14px;font-size:12px;border-radius:8px}
.btn-xs{padding:5px 10px;font-size:11px;border-radius:6px}
.btn-full{width:100%;justify-content:center}

/* ===== LAYOUT ===== */
#app{display:none;min-height:100vh;flex-direction:column}
#app.is-open{display:flex}
.sidebar{
  position:fixed;top:0;right:0;width:min(var(--sidebar-drawer-w),86vw);height:100vh;
  background:var(--surface-glass);border-left:1px solid var(--border);
  display:flex;flex-direction:column;z-index:100;
  transition:transform var(--t),opacity var(--t),box-shadow var(--t);
  box-shadow:var(--shadow-md);backdrop-filter:blur(var(--backdrop-blur));
  overflow-y:auto;
  transform:translateX(0);
  opacity:1;
  pointer-events:auto;
}
.sidebar.closed{
  transform:translateX(100%);
  opacity:0;
  pointer-events:none;
}
.header{
  position:fixed;top:0;left:0;right:var(--sidebar-w);height:var(--header-h);
  background:var(--surface-glass);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 20px;gap:14px;z-index:99;
  box-shadow:0 8px 24px rgba(15,23,42,.05);backdrop-filter:blur(var(--backdrop-blur));
}
.header-title{font-size:18px;font-weight:800;color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:28px;padding-inline-start:32px;background:url('../assets/artident-logo.svg?v=2026-11-04.1') right center/24px 24px no-repeat}
html[dir="ltr"] .header-title{background-position:left center}
.header-actions{display:flex;align-items:center;gap:8px}
.main{
  margin-right:var(--sidebar-w);margin-top:var(--header-h);
  margin-bottom:0;
  padding:28px 26px 36px;
  min-height:calc(100vh - var(--header-h));
  flex:1;
}
.footer{
  margin-right:var(--sidebar-w);
  margin-top:auto;
}

/* Sidebar components */
.sidebar-logo{
  padding:20px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:12px;
}
.logo-icon{
  width:46px;height:46px;border-radius:14px;flex-shrink:0;
  background:#fff;border:1px solid rgba(30,155,176,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#fff;box-shadow:0 4px 16px rgba(15,118,110,.32);
}
.logo-text{font-size:18px;font-weight:900;color:var(--primary)}
.logo-sub{font-size:11px;color:var(--text3)}
.sidebar-nav{flex:1;overflow-y:auto;padding:10px 8px;scrollbar-width:thin}
.nav-section{
  font-size:10.5px;font-weight:800;color:var(--text3);
  padding:10px 12px 4px;letter-spacing:.08em;text-transform:uppercase;
}
.nav-item{
  display:flex;align-items:center;gap:11px;padding:11px 13px;
  border-radius:11px;cursor:pointer;color:var(--text2);
  font-weight:600;font-size:14px;transition:var(--t);
  margin-bottom:4px;border:1px solid transparent;background:none;
  width:100%;text-align:right;position:relative;
}
.nav-item:hover{
  background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(14,116,144,.08));
  color:var(--primary);border-color:rgba(15,118,110,.12);transform:translateX(-2px)
}
.nav-item.active{
  background:linear-gradient(135deg,rgba(15,118,110,.18),rgba(14,116,144,.12));
  color:var(--primary);font-weight:700;
  border-right:3px solid var(--primary);border-color:rgba(15,118,110,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 12px 26px rgba(15,118,110,.08);
}
.nav-icon{width:22px;text-align:center;font-size:15px;flex-shrink:0}
.nav-badge{
  margin-right:auto;background:var(--primary);color:#fff;
  font-size:10px;padding:2px 7px;border-radius:20px;font-weight:800;
  min-width:20px;text-align:center;
}
.sidebar-footer{padding:12px 8px;border-top:1px solid var(--border)}
.clinic-selector{
  background:linear-gradient(135deg,var(--surface-highlight),rgba(15,118,110,.06),rgba(14,116,144,.04));
  border:1px solid var(--border);border-radius:12px;padding:10px 12px;
  margin:8px;cursor:pointer;transition:var(--t);box-shadow:inset 0 1px 0 rgba(255,255,255,.28);
}
.clinic-selector:hover{border-color:var(--primary);background:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow)}
.clinic-name{font-size:13px;font-weight:700;color:var(--text)}
.clinic-hint{font-size:11px;color:var(--text3)}

/* ===== CARDS ===== */
.card{
  background:linear-gradient(180deg,var(--surface-glass-strong),var(--surface));border-radius:var(--radius);
  border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;
}
.card-header{
  padding:16px 20px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:linear-gradient(180deg,var(--surface-highlight),transparent);
}
.card-title{font-size:15px;font-weight:800;color:var(--text)}
.card-body{padding:20px}
.section-title{font-size:22px;font-weight:900;color:var(--text);margin-bottom:20px}

/* ===== STATS ===== */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{
  background:linear-gradient(180deg,var(--surface-glass-strong),var(--surface));border-radius:var(--radius);padding:20px;
  border:1px solid var(--border);box-shadow:var(--shadow);
  display:flex;align-items:center;gap:16px;
  transition:var(--t);cursor:default;
  animation:fadeIn .4s ease both;position:relative;overflow:hidden;
}
.stat-card::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.36),transparent 55%);opacity:0;transition:var(--t)}
.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(15,118,110,.22);background:linear-gradient(135deg,rgba(15,118,110,.03),transparent)}
.stat-card:hover::before{opacity:1}
.stat-card.warning{border-color:var(--warning-border);box-shadow:0 12px 28px var(--warning-ring)}
.stat-card.warning:hover{background:linear-gradient(135deg,var(--warning-light),transparent 72%);box-shadow:0 18px 32px var(--warning-ring)}
.stat-icon{
  width:56px;height:56px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(15,118,110,.1),rgba(14,116,144,.05));
  box-shadow:0 2px 8px rgba(15,118,110,.1);
}
.stat-icon.warning{
  background:linear-gradient(135deg,var(--warning-soft),rgba(251,146,60,.12));
  box-shadow:0 10px 20px var(--warning-ring);
  color:var(--warning-dark);
}
.stat-icon.danger{
  background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.05));
  box-shadow:0 2px 8px rgba(239,68,68,.1);
  color:var(--danger);
}
.stat-icon.success{
  background:linear-gradient(135deg,rgba(34,197,86,.1),rgba(34,197,86,.05));
  box-shadow:0 2px 8px rgba(34,197,86,.1);
  color:var(--success);
}
.stat-value{font-size:26px;font-weight:900;color:var(--text);line-height:1}
.stat-label{font-size:12px;color:var(--text2);margin-top:4px;font-weight:600}
.stat-sub{font-size:11px;color:var(--text3);margin-top:2px}

/* ===== TABLE ===== */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th{
  padding:11px 14px;background:var(--surface2);color:var(--text2);
  font-size:12px;font-weight:800;text-align:right;
  border-bottom:1px solid var(--border);white-space:nowrap;
}
td{
  padding:13px 14px;border-bottom:1px solid var(--border);
  color:var(--text);font-size:13.5px;vertical-align:middle;
}
tr:last-child td{border-bottom:none}
/* Patient / doctor names stay whole on one line; a narrow table scrolls instead */
td.name-cell{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
tr:hover td{background:var(--surface2)}
.table-wrap table{min-width:700px}

/* ===== BADGE ===== */
.badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:20px;
  font-size:11.5px;font-weight:700;white-space:nowrap;
  transition:var(--t);
}
.badge-success{background:var(--success-light);color:var(--success-dark);border:1px solid var(--success);box-shadow:0 2px 4px rgba(34,197,86,.1)}
.badge-success:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(34,197,86,.15)}
.badge-danger{background:var(--danger-light);color:var(--danger-dark);border:1px solid var(--danger);box-shadow:0 2px 4px rgba(239,68,68,.1)}
.badge-danger:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(239,68,68,.15)}
.badge-warning{background:linear-gradient(135deg,var(--warning-light),var(--warning-soft));color:var(--warning-dark);border:1px solid var(--warning-border);box-shadow:0 8px 16px rgba(251,146,60,.12);font-weight:800}
.badge-warning:hover{transform:translateY(-1px);box-shadow:0 12px 20px rgba(251,146,60,.18)}
.badge-info{background:var(--info-light);color:var(--info-dark);border:1px solid var(--info);box-shadow:0 2px 4px rgba(59,130,246,.1)}
.badge-info:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(59,130,246,.15)}
.badge-primary{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);box-shadow:0 2px 4px rgba(15,118,110,.1)}
.badge-primary:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(15,118,110,.15)}
.badge-gray{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
.badge-purple{background:#ccfbf1;color:#0e7490;border:1px solid #99f6e4;box-shadow:0 2px 4px rgba(14,116,144,.1)}
.badge-purple:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(14,116,144,.15)}
[data-theme="dark"] .badge-success{background:var(--success-light);color:var(--success-dark);border-color:#047857}
[data-theme="dark"] .badge-danger{background:var(--danger-light);color:var(--danger-dark);border-color:#991b1b}
[data-theme="dark"] .badge-warning{background:linear-gradient(135deg,var(--warning-light),var(--warning-soft));color:var(--warning-dark);border-color:rgba(251,146,60,.35)}
[data-theme="dark"] .badge-info{background:var(--info-light);color:var(--info-dark);border-color:#1e40af}
[data-theme="dark"] .badge-purple{background:#0f2f2c;color:#5eead4;border-color:#134e4a}

/* ===== TYPE CHIP (per-case-type color symbol, reused wherever a case type is shown) ===== */
.type-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:20px;
  font-size:11.5px;font-weight:700;white-space:nowrap;
  border:1px solid transparent;transition:var(--t);
}
.type-chip:hover{transform:translateY(-1px)}
.type-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px rgba(0,0,0,.05)}
[data-theme="dark"] .type-dot{box-shadow:0 0 0 2px rgba(255,255,255,.1)}
.type-dot-lg{width:14px;height:14px;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
[data-theme="dark"] .type-dot-lg{box-shadow:0 0 0 3px rgba(255,255,255,.1)}

/* ===== MODAL ===== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.55);
  display:none;align-items:center;justify-content:center;
  z-index:1000;padding:16px;backdrop-filter:blur(4px);
}
.modal-overlay.open{display:flex;animation:fadeIn .2s ease}
.modal{
  background:var(--surface);border-radius:20px;
  width:100%;max-width:660px;max-height:92vh;
  overflow-y:auto;box-shadow:var(--shadow-lg);
  animation:pop .25s ease;
}
.modal-lg{max-width:960px}
.modal-xl{max-width:1140px}
.modal-sm{max-width:440px}
.modal-header{
  padding:20px 24px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;background:var(--surface);z-index:1;
}
.modal-title{font-size:17px;font-weight:800;color:var(--text)}
.modal-body{padding:24px}
.modal-footer{
  padding:16px 24px;border-top:1px solid var(--border);
  display:flex;gap:10px;justify-content:flex-end;
  position:sticky;bottom:0;background:var(--surface);
}

/* ===== FORMS ===== */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.form-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:13px;font-weight:700;color:var(--text2);margin-bottom:6px}
.form-control,.form-select,.form-textarea{
  width:100%;padding:11px 14px;border:2px solid var(--border);border-radius:11px;
  background:var(--surface);color:var(--text);font-family:inherit;
  font-size:14px;transition:var(--t);outline:none;
}
.form-control:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.12)
}
.form-textarea{resize:vertical;min-height:90px}
.form-hint{font-size:11.5px;color:var(--text3);margin-top:4px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 10px center;background-size:20px;padding-left:36px}

/* ===== SEARCH BAR ===== */
.search-bar{
  display:flex;align-items:center;gap:8px;
  background:var(--surface-glass-strong);border:1.5px solid var(--border);
  border-radius:12px;padding:8px 14px;transition:var(--t);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32);
}
.search-bar:focus-within{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px rgba(15,118,110,.08),var(--shadow)}
.search-bar input{background:none;border:none;outline:none;color:var(--text);font-family:inherit;font-size:14px;flex:1;min-width:0}
.search-bar input::placeholder{color:var(--text3)}

/* ===== FILTER BAR ===== */
.filter-bar{
  display:flex;flex-wrap:wrap;gap:10px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;
}

/* ===== DENTAL CHART (unified 1-8 system) ===== */
.dental-chart{
  --dc-accent:var(--primary);
  --dc-accent-bg:rgba(15,118,110,.14);
  --dc-accent-border:var(--primary);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.dental-chart-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,var(--surface2),var(--surface));
  flex-wrap:wrap;
}
.dental-chart-title{font-size:15px;font-weight:900;color:var(--text);letter-spacing:-.2px}
.dental-chart-sub{font-size:11px;color:var(--text3);font-weight:700;margin-top:2px}
.dental-chart-actions{display:flex;gap:6px;flex-wrap:wrap}
.dental-chart-body{padding:16px 12px 12px}
.dental-mouth-frame{
  border-radius:28px;
  background:
    radial-gradient(ellipse 65% 55% at 50% 4%,rgba(15,118,110,.10),transparent 72%),
    radial-gradient(ellipse 65% 55% at 50% 96%,rgba(15,118,110,.10),transparent 72%);
  padding:14px 4px;
}
.dental-chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dental-chart-scroll-inner{width:max-content;min-width:100%;margin:0 auto}
.dental-arch-label{
  text-align:center;font-size:13px;font-weight:800;color:var(--dc-accent-border,#0f766e);
  margin:0 0 8px;letter-spacing:.2px;
}
.dental-arch-row{
  display:flex;justify-content:center;align-items:flex-end;gap:4px;
  direction:ltr;flex-wrap:nowrap;
}
.dental-arch-row.lower{align-items:flex-start;margin-top:4px}
/* Compact full-arch layout (embedded charts) — all 16 teeth of one arch in a single
   responsive row, columns shrink to fit so it never needs horizontal scrolling. */
.dental-full-row{
  position:relative;z-index:0;
  display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;
  direction:ltr;padding:18px 10px 14px;margin:0 auto 4px;
  max-width:680px;
}
.dental-full-row::before{
  content:'';position:absolute;inset:0;z-index:-1;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(15,118,110,.07),rgba(15,118,110,.02) 60%);
  border:1px solid rgba(15,118,110,.14);
  box-shadow:inset 0 1px 3px rgba(15,118,110,.06);
}
.dental-full-row .dental-tooth-wrap{min-width:0;position:relative;transition:transform .22s cubic-bezier(.34,1.4,.64,1)}
.dental-full-row .dental-tooth-wrap.mid-gap{margin-inline-end:8px}
.dental-full-row .dental-tooth{
  width:100%;max-width:44px;min-width:16px;margin:0 auto;
  border-radius:12px 12px 10px 10px;height:52px;
}
.dental-full-row .dental-tooth.lower{border-radius:10px 10px 12px 12px;height:50px}
.dental-full-row .dental-tooth.selected::before{width:15px;height:15px;font-size:8px;top:-7px;left:50%;transform:translateX(-50%);right:auto}
.dental-full-row .dental-tooth-icon{
  width:42%;height:42%;max-width:16px;max-height:20px;opacity:.55;
  position:relative;top:-4px;
}
/* Edge landmarks only (UR-1 … UL-8) — matches reference; every tooth shows its 1–8 number on the body */
.dental-full-row .dental-tooth-label{display:none}
.dental-full-row .dental-tooth-wrap.edge-label .dental-tooth-label{
  display:block;position:absolute;left:50%;transform:translateX(-50%);
  font-size:9px;font-weight:900;letter-spacing:-.1px;white-space:nowrap;
  color:#64748b;background:rgba(255,255,255,.96);
  padding:1px 5px;border-radius:5px;z-index:2;line-height:1.2;
  border:1px solid rgba(15,118,110,.18);box-shadow:0 1px 2px rgba(0,0,0,.06);pointer-events:none;
}
.dental-full-row .dental-tooth-wrap.upper.edge-label .dental-tooth-label{top:-15px}
.dental-full-row .dental-tooth-wrap.lower.edge-label .dental-tooth-label{bottom:-15px}
/* Big clear number ON each tooth for instant detection */
.dental-tooth-num{
  position:absolute;left:50%;bottom:4px;transform:translateX(-50%);
  font-size:11px;font-weight:900;line-height:1;color:#5c5346;
  background:rgba(255,255,255,.9);border-radius:5px;padding:1px 4px;
  min-width:14px;text-align:center;pointer-events:none;z-index:2;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
.dental-tooth.lower .dental-tooth-num{bottom:auto;top:4px}
.dental-tooth.selected .dental-tooth-num,
.dental-tooth.treated .dental-tooth-num{
  color:#0f766e;background:rgba(255,255,255,.98)
}
.dental-num-ruler{
  display:grid;grid-template-columns:repeat(8,1fr) 10px repeat(8,1fr);
  gap:2px;direction:ltr;max-width:680px;margin:0 auto 4px;padding:0 10px;
  font-size:10px;font-weight:900;color:#7a9a95;text-align:center;line-height:1;
}
.dental-num-ruler .mid{display:flex;align-items:center;justify-content:center;color:#9fc9c4}
.dental-num-ruler.lower{margin:4px auto 0}
@media(max-width:480px){
  .dental-full-row{padding:16px 4px 12px;gap:2px}
  .dental-full-row .dental-tooth-wrap.edge-label .dental-tooth-label{font-size:8px}
  .dental-tooth-num{font-size:9px;padding:0 3px;min-width:12px}
  .dental-num-ruler{font-size:8px;padding:0 4px}
}
.dental-arch-mid{
  text-align:center;border-bottom:2px dashed var(--border);
  margin:16px 24px 18px;position:relative;
}
.dental-arch-mid span{
  position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  background:var(--surface);padding:0 12px;font-size:11px;font-weight:800;color:var(--text3);
}
.dental-tooth-wrap{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  min-width:38px;flex-shrink:0;
}
.dental-tooth-wrap.upper .dental-tooth-label{order:-1}
.dental-tooth-label{
  font-size:10px;font-weight:800;color:var(--text3);line-height:1;
  white-space:nowrap;letter-spacing:.1px;
}
.dental-tooth{
  width:42px;height:54px;border-radius:14px 14px 11px 11px;
  border:2px solid #e0d5c4;
  background:linear-gradient(180deg,#fffefb 0%,#f8f1e4 55%,#efe4d2 100%);
  cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease;
  display:flex;align-items:center;justify-content:center;
  color:#94a3b8;position:relative;user-select:none;
  box-shadow:0 2px 4px rgba(90,70,40,.07),inset 0 1px 0 rgba(255,255,255,.9);
}
[data-theme="dark"] .dental-tooth{box-shadow:0 1px 2px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.05);border-color:#3d4f4b}
.dental-tooth.lower{border-radius:11px 11px 14px 14px;height:52px}
.dental-tooth:hover:not(.readonly){
  border-color:var(--dc-accent-border);background:linear-gradient(180deg,#f0faf8,#e4f4f0);
  color:var(--dc-accent-border);
  transform:translateY(-2px) scale(1.05);
  box-shadow:0 8px 18px rgba(15,118,110,.16);
}
.dental-tooth.selected{
  background:linear-gradient(180deg,#e8f8f5,#d0f0ea);
  border-color:var(--dc-accent-border);
  border-width:2.5px;
  color:var(--dc-accent-border);
  transform:scale(1.06);
  box-shadow:0 0 0 3px rgba(15,118,110,.14),0 6px 14px rgba(15,118,110,.18);
}
.dental-tooth.selected::before{
  content:'✓';font-weight:900;
  position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:16px;height:16px;border-radius:50%;
  background:var(--dc-accent-border);color:#fff;font-size:9px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.22);z-index:3;
}
.dental-tooth.treated{
  background:var(--dc-accent-bg);border-color:var(--dc-accent-border);color:var(--dc-accent-border);
  box-shadow:0 0 0 3px rgba(15,118,110,.12),0 6px 14px rgba(15,118,110,.16);
}
.dental-tooth.readonly{cursor:default}
/* Previously-treated marker (interactive picker only) — a small amber history dot that
   layers underneath the active teal "selected" state, so both facts stay visible at once. */
.dental-tooth.was-treated:not(.selected){
  border-color:#f0b429;background:rgba(240,180,41,.14);
}
.dental-tooth.was-treated:not(.selected):hover{
  border-color:var(--dc-accent-border);background:var(--dc-accent-bg);color:var(--dc-accent-border);
}
.dental-tooth.was-treated::after{
  content:'';position:absolute;bottom:4px;right:3px;left:auto;transform:none;
  width:7px;height:7px;border-radius:50%;background:#f0b429;
  box-shadow:0 0 0 2px var(--surface);z-index:2;
}
.dental-tooth.lower.was-treated::after{bottom:auto;top:4px}
.dental-legend-swatch.history{background:rgba(240,180,41,.18);border-color:#f0b429}
/* Teeth already assigned to a different lab work than the one currently being edited —
   shown with that work's own color so multiple works stay visually distinguishable at once. */
.dental-tooth.other-work:not(.selected){
  border-color:var(--other-color);background:var(--other-bg);color:var(--other-color);
}
.dental-tooth.other-work:not(.selected):hover{
  border-color:var(--dc-accent-border);background:var(--dc-accent-bg);color:var(--dc-accent-border);
}
.dental-tooth.other-work::after{
  content:'';position:absolute;bottom:4px;left:3px;right:auto;
  width:7px;height:7px;border-radius:50%;background:var(--other-color);
  box-shadow:0 0 0 2px var(--surface);z-index:2;
}
.dental-tooth.lower.other-work::after{bottom:auto;top:4px}
.lab-color-legend{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 10px;justify-content:center}
.lab-color-legend-item{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--text2);padding:3px 8px;border-radius:999px;background:var(--surface2);border:1px solid var(--border)}
.lab-color-legend-item.active{background:var(--surface);border-color:var(--dc-accent-border,var(--primary));color:var(--text);box-shadow:0 0 0 2px rgba(15,118,110,.1)}
.lab-color-legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.dental-tooth-icon{width:22px;height:28px;display:block;object-fit:contain;pointer-events:none}
.dental-tooth-count{
  position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:var(--dc-accent-border);color:#fff;
  font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;
}
.dental-arch-gap{width:14px;flex-shrink:0}
.dental-chart-legend{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
  margin-top:14px;padding-top:12px;border-top:1px dashed var(--border);
}
.dental-legend-item{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--text2)}
.dental-legend-swatch{
  width:18px;height:18px;border-radius:5px;border:2px solid var(--border);background:var(--surface2);
}
.dental-legend-swatch.active{background:var(--dc-accent-bg);border-color:var(--dc-accent-border)}
.teeth-mini{
  display:flex;flex-direction:column;gap:5px;min-width:0;max-width:240px;
}
.teeth-mini.compact{max-width:210px}
.teeth-mini-head{display:flex;align-items:center;gap:6px}
.teeth-mini-count{
  font-size:10px;font-weight:800;color:var(--primary);
  background:var(--primary-light);padding:2px 8px;border-radius:999px;
}
.teeth-mini-arch{
  display:grid;grid-template-columns:14px 1fr;gap:2px 4px;align-items:center;
  padding:6px 7px;border-radius:10px;
  background:var(--surface2);
  border:1px solid var(--border);
}
.teeth-mini-label{
  font-size:9px;font-weight:900;color:#7a9a95;text-align:center;line-height:1;
}
.teeth-mini-row{
  display:grid;grid-template-columns:repeat(8,1fr) 8px repeat(8,1fr);
  gap:1px;direction:ltr;
}
.teeth-mini-mid{
  display:flex;align-items:center;justify-content:center;
  font-size:8px;font-weight:900;color:#9fc9c4;
}
.teeth-mini-cell{
  aspect-ratio:1;min-width:0;min-height:14px;
  border-radius:3px;border:1px solid transparent;
  background:rgba(15,118,110,.06);
  font-size:8px;font-weight:900;color:transparent;
  display:flex;align-items:center;justify-content:center;
  line-height:1;
}
.teeth-mini-cell.on{
  background:linear-gradient(180deg,var(--primary),var(--accent2));color:#fff;
  border-color:var(--primary);box-shadow:0 1px 2px rgba(15,118,110,.25);
}
.dental-chart.embedded .dental-chart-head{background:var(--surface2);border-color:var(--border);padding:10px 12px}
.teeth-mini.compact .teeth-mini-cell{min-height:12px;font-size:7.5px;border-radius:2.5px}
.case-teeth-cell{min-width:160px;max-width:240px;vertical-align:middle}
.case-teeth-cell .teeth-mini{max-width:100%}
.mobile-data-card-row .teeth-mini{max-width:100%}
.info-item-value .teeth-mini{max-width:280px}
@media(max-width:640px){
  .teeth-mini-cell{min-height:11px;font-size:7px}
}
.dental-chart-hint{
  padding:10px 14px;font-size:11.5px;color:var(--text3);font-weight:600;
  background:var(--surface);border-top:1px solid var(--border);text-align:center;
}
.dental-bridge-row{
  display:flex;justify-content:center;gap:16px;margin:8px 0 10px;flex-wrap:wrap;
}
.dental-bridge-item{
  display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;
  color:var(--text2);cursor:pointer;
}
.dental-bridge-item input{position:absolute;opacity:0;width:0;height:0}
.dental-bridge-item input:checked+.dental-bridge-box{background:var(--dc-accent-border);border-color:var(--dc-accent-border)}
.dental-bridge-item input:checked+.dental-bridge-box::after{content:'✓';color:#fff;font-size:9px;font-weight:900}
.dental-bridge-box{
  width:15px;height:15px;border:2px solid var(--border);border-radius:4px;
  background:var(--surface);display:flex;align-items:center;justify-content:center;
}
.dental-chart.embedded{border:none;box-shadow:none;background:transparent}
.dental-chart.embedded .dental-chart-head{background:var(--surface2);border-color:var(--border);padding:10px 12px}
.dental-chart.embedded .dental-chart-body{padding:10px 6px}
.dental-chart.embedded .dental-chart-title{font-size:13px}
@media(max-width:640px){
  .dental-tooth{width:36px;height:48px}
  .dental-tooth.lower{height:46px}
  .dental-tooth-wrap{min-width:34px}
  .dental-tooth-icon{width:18px;height:24px}
  .dental-chart-title{font-size:14px}
  .dental-tooth-label{font-size:9px}
  .dental-mouth-frame{padding:10px 2px;border-radius:22px}
}
.teeth-chart-wrap{padding:12px;overflow-x:auto}
.teeth-display-section{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
@media(max-width:768px){.teeth-display-section{grid-template-columns:1fr}}

/* ===== TOAST ===== */
#toast{position:fixed;bottom:24px;left:24px;z-index:9998;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast-item{
  background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:14px 18px;
  box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:600;
  display:flex;align-items:center;gap:10px;min-width:260px;max-width:360px;
  animation:toastIn .3s ease;pointer-events:all;
  border-left:5px solid var(--primary);position:relative;overflow:hidden;
}
.toast-item::before{
  content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.05),transparent);pointer-events:none;
}
.toast-item > *{position:relative;z-index:1}
.toast-item.success{border-left-color:var(--success)}
.toast-item.danger{border-left-color:var(--danger)}
.toast-item.warning{
  border-left-color:var(--warning);background:linear-gradient(135deg,var(--warning-light),rgba(255,255,255,.92));
  box-shadow:0 12px 28px var(--warning-ring);font-weight:700;
}
.toast-item.info{border-left-color:var(--info)}
.toast-item.out{animation:toastOut .3s ease forwards}

/* ===== EMPTY STATE ===== */
.empty-state{
  text-align:center;padding:48px 24px;color:var(--text3);
}
.empty-state i{font-size:48px;margin-bottom:16px;opacity:.4;display:block}
.empty-state h3{font-size:17px;font-weight:700;color:var(--text2);margin-bottom:6px}
.empty-state p{font-size:13px}

/* ===== AVATAR ===== */
.avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(145deg,var(--primary),var(--secondary));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:16px;flex-shrink:0;overflow:hidden;
}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-sm{width:32px;height:32px;font-size:13px}
.avatar-lg{width:56px;height:56px;font-size:22px}

/* ===== TABS ===== */
.tabs{display:flex;gap:4px;background:rgba(255,255,255,.58);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.34)}
.tab-btn{
  flex:1;padding:9px 14px;border:none;border-radius:9px;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:600;
  background:transparent;color:var(--text2);transition:var(--t);
}
.tab-btn.active{background:linear-gradient(180deg,var(--surface-glass-strong),var(--surface));color:var(--primary);box-shadow:var(--shadow);font-weight:700}

/* ===== BOTTOM NAV (MOBILE) ===== */
.bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  background:var(--surface-glass);border-top:1px solid var(--border);
  padding:8px 0 env(safe-area-inset-bottom,0);
  z-index:98;
  box-shadow:0 -10px 30px rgba(15,23,42,.08);backdrop-filter:blur(var(--backdrop-blur));
}
.bnav-items{display:flex;justify-content:space-around}
.bnav-item{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:8px 12px;border:none;background:none;cursor:pointer;
  color:var(--text3);font-family:inherit;font-size:10px;font-weight:600;
  border-radius:10px;transition:var(--t);position:relative;
}
.bnav-item:active{
  background:var(--primary-light);
}
.bnav-item.active{
  color:var(--primary);
}
.bnav-item i{font-size:20px}
.bnav-dot{
  position:absolute;top:4px;right:6px;
  width:8px;height:8px;background:var(--danger);border-radius:50%;
  border:2px solid var(--surface);
}

/* ===== OVERLAY MOBILE ===== */
.sidebar-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.5);z-index:99;backdrop-filter:blur(2px);
}

/* ===== FAB ===== */
.fab{
  position:fixed;bottom:80px;left:20px;
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-size:22px;border:none;cursor:pointer;
  box-shadow:0 6px 24px rgba(15,118,110,.45);
  display:none;align-items:center;justify-content:center;
  z-index:97;transition:var(--t);
}
.fab:hover{transform:scale(1.1);box-shadow:0 8px 32px rgba(15,118,110,.55)}
.fab:active{transform:scale(.96)}

/* ===== PROGRESS BAR ===== */
.progress-bar{height:8px;background:var(--surface3);border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:10px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px rgba(15,118,110,.3)}
.progress-fill.warning{background:linear-gradient(90deg,var(--warning),var(--warning-dark));box-shadow:0 4px 12px var(--warning-glow)}
.progress-fill.success{background:linear-gradient(90deg,var(--success),#16a34a);box-shadow:0 2px 8px rgba(34,197,86,.3)}
.progress-fill.danger{background:linear-gradient(90deg,var(--danger),var(--danger-dark));box-shadow:0 2px 8px rgba(239,68,68,.3)}

/* ===== REPORT PRINT ===== */
@media print{
  .no-print,.sidebar,.header,.bottom-nav,.fab,.modal-footer,.toast-item,.footer{display:none!important}
  body::before{display:none!important}
  .main{margin:0!important;padding:16px!important}
  body{background:#fff!important;color:#000!important}
  .card{box-shadow:none!important;border:1px solid #ccc!important}
  .print-header{display:block!important}
}
.print-header{display:none}

/* ===== FOOTER ===== */
.footer{
  background:var(--surface);
  border-top:1px solid var(--border);
  padding:24px;
  margin-top:auto;
  margin-right:var(--sidebar-w);
  transition:margin-right var(--t);
}
.footer.sidebar-hidden{
  margin-right:0;
}
.footer-content{
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:20px;
}
.footer-section{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.footer-title{
  font-size:16px;
  font-weight:900;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.footer-text{
  font-size:13px;
  color:var(--text2);
}
.footer-phone{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  font-weight:700;
  color:var(--primary);
}
.footer-qr{
  width:100px;
  height:100px;
  border:2px solid var(--border);
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--surface2);
}
.footer-qr img,.footer-qr svg.qr{
  width:96px;
  height:96px;
  border-radius:8px;
}
.footer-qr:has(svg.qr){width:136px;height:136px;background:#fff;padding:4px}
.footer-qr svg.qr{width:124px;height:124px;display:block}
.footer-bottom{
  text-align:center;
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--border);
  font-size:12px;
  color:var(--text3);
}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  :root{--bnav-h:64px}
  .sidebar{transform:translateX(100%);opacity:0}
  .sidebar:not(.closed){transform:translateX(0);opacity:1}
  .sidebar-overlay{display:none}
  .sidebar-overlay.open{display:block}
  .header{right:0}
  .main{
    margin-right:0;
    padding-bottom:calc(var(--bnav-h) + 28px + env(safe-area-inset-bottom,0px));
  }
  .footer{margin-right:0;margin-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px))}
  .bottom-nav{display:block;min-height:var(--bnav-h)}
  .fab{display:flex;bottom:calc(var(--bnav-h) + 16px)}
  #toast{bottom:calc(var(--bnav-h) + 16px + env(safe-area-inset-bottom,0px))}
  .desktop-only{display:none}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .footer-content{grid-template-columns:1fr;gap:16px}
}
/* Desktop sidebar always visible */
@media(min-width:1025px){
  .sidebar{transform:translateX(0) !important;opacity:1 !important;pointer-events:auto !important}
  .sidebar.closed{transform:translateX(0) !important;opacity:1 !important;width:0;overflow:hidden;pointer-events:none}
  .sidebar-overlay{display:none !important}
  .header{right:0}
  .main{margin-right:var(--sidebar-w);transition:margin-right var(--t)}
  .main.sidebar-hidden{margin-right:0}
}
@media(max-width:768px){
  :root{--sidebar-w:0px;--header-h:56px}
  .main{padding:16px;margin-top:56px}
  .footer{padding:16px;margin-bottom:60px}
  .footer-content{gap:12px}
  .footer-section{gap:8px}
  .footer-qr{width:80px;height:80px}
  .footer-qr img{width:76px;height:76px}
  .footer-qr:has(svg.qr){width:128px;height:128px}
  .footer-qr svg.qr{width:116px;height:116px}
  .form-row,.form-row-3,.form-row-4{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .summary-grid{grid-template-columns:1fr 1fr}
  .dashboard-grid-2,.report-grid-2,.settings-grid{grid-template-columns:1fr !important}
  .finance-bar{flex-direction:column}
  .finance-chip{min-width:0}
  .modal-body{padding:14px}
  .modal-header{padding:14px}
  .modal-footer{padding:10px 14px}
  .filter-bar{gap:8px;flex-wrap:wrap}
  /* let filter controls share rows evenly instead of wrapping raggedly */
  .filter-bar>.search-bar{flex:2 1 240px;min-width:200px}
  .filter-bar>select,.filter-bar>input,.filter-bar>.form-select,.filter-bar>.form-control,.filter-bar>.fc{
    flex:1 1 150px;width:auto!important;min-width:140px
  }
  .header{padding:0 12px;gap:10px}
  .header-title{font-size:16px}
  .table-wrap table{font-size:13px}
  th, td{padding:8px 10px}
  .card{border-radius:12px}
  .table-wrap.hide-mobile table{display:none}
  .mobile-card-list.show-mobile{display:flex}
}
@media(max-width:640px){
  :root{--sidebar-w:0px;--header-h:52px}
  .main{padding:12px;margin-top:52px}
  .footer{padding:12px;margin-bottom:60px}
  .footer-bottom{font-size:10px}
  .footer-phone{font-size:13px}
  .footer-text{font-size:12px}
  .footer-title{font-size:14px}
  .section-title{font-size:18px}
  .stat-card{flex-direction:column;text-align:center}
  .stat-icon{width:44px;height:44px}
  .stat-value{font-size:20px}
  .stat-label{font-size:11px}
  .filter-bar{gap:6px}
  /* tidy filter bars: search on its own row, controls in a 2-up grid */
  .filter-bar>.search-bar{flex:1 1 100%;min-width:0}
  .filter-bar>select,.filter-bar>input,.filter-bar>.form-select,.filter-bar>.form-control,.filter-bar>.fc{
    flex:1 1 calc(50% - 3px);width:calc(50% - 3px)!important;min-width:0
  }
  .filter-bar>.btn{flex:1 1 calc(50% - 3px);justify-content:center}
  .btn-sm{padding:6px 12px;font-size:11px}
  .badge{font-size:10px;padding:2px 8px}
  .bnav-item{padding:6px 8px;font-size:9px}
  .bnav-item i{font-size:18px}
  .login-card{width:100%;max-width:100%;padding:32px 24px;border-radius:0}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .summary-grid{grid-template-columns:1fr}
  .lab-cost-row{flex-direction:column;align-items:stretch}
  .lab-cost-input{width:100%}
}

/* ===== PAGE TRANSITIONS ===== */
.page-content{animation:fadeIn .3s ease}

/* ===== SCROLLBAR ===== */
/* wide enough to grab with a mouse; always visible so you can see there's more */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--surface2)}
::-webkit-scrollbar-thumb{background:var(--text3);background:color-mix(in srgb,var(--text3) 60%,transparent);border-radius:10px;border:2px solid var(--surface2)}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}
::-webkit-scrollbar-corner{background:transparent}
@supports not selector(::-webkit-scrollbar){*{scrollbar-color:var(--text3) transparent}}

/* ===== SCROLL HELP (js/scroll.js) ===== */
.scroll-layer{position:fixed;inset:0 auto auto 0;width:0;height:0;z-index:1001}
.scroll-edge{
  position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;
  display:none;align-items:center;justify-content:center;
  background:var(--surface);color:var(--primary);border:1.5px solid var(--border);
  box-shadow:var(--shadow-md);font-size:13px;cursor:pointer;opacity:.92;
  touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;
  transition:background var(--t),color var(--t),opacity var(--t);
}
.scroll-edge.show{display:flex}
.scroll-edge:hover,.scroll-edge:active{opacity:1;background:var(--primary);color:#fff;border-color:var(--primary)}
.scroll-layer.probing .scroll-edge{pointer-events:none}
.scroll-page{position:fixed;left:20px;bottom:calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px}
.scroll-page.above-fab{bottom:calc(144px + env(safe-area-inset-bottom,0px))}
.scroll-page .scroll-edge{position:static;width:42px;height:42px;font-size:15px}
[data-scroll-x]{cursor:grab}
[data-scroll-panning]{cursor:grabbing;user-select:none;-webkit-user-select:none}
[data-scroll-focus]:focus{outline:none}
[data-scroll-focus]:focus-visible{outline:3px solid rgba(15,118,110,.45);outline-offset:2px}
@media(max-width:1024px){
  .scroll-page{bottom:calc(var(--bnav-h) + 16px + env(safe-area-inset-bottom,0px))}
  .scroll-page.above-fab{bottom:calc(var(--bnav-h) + 80px + env(safe-area-inset-bottom,0px))}
}
@media(hover:none){[data-scroll-x]{cursor:auto}}
@media print{.scroll-layer{display:none!important}}

/* ===== CLINIC CARD ===== */
.clinic-card{
  background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);
  box-shadow:var(--shadow);padding:20px;cursor:pointer;transition:var(--t);
  position:relative;overflow:hidden;
}
.clinic-card::before{
  content:'';position:absolute;top:0;right:0;width:4px;height:100%;
  background:linear-gradient(180deg,var(--primary),var(--secondary));
}
.clinic-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary)}
.clinic-card.active-clinic{border-color:var(--primary);background:var(--primary-light)}

/* ===== PROFILE PATIENT ===== */
.patient-hero{
  display:flex;align-items:flex-start;gap:20px;
  background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(14,116,144,.05),rgba(255,255,255,.62));
  border-radius:16px;padding:20px;margin-bottom:20px;border:1px solid var(--border);box-shadow:var(--shadow);
}
.patient-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:12px;margin-top:16px}
.info-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.info-item-label{font-size:11px;font-weight:700;color:var(--text3);margin-bottom:3px}
.info-item-value{font-size:14px;font-weight:700;color:var(--text)}

/* ===== CASE CARD ===== */
.case-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;margin-bottom:12px;transition:var(--t);
  border-right:4px solid var(--primary);
  animation:fadeIn .3s ease both;
}
.case-card:hover{box-shadow:var(--shadow-md);transform:translateX(-2px)}

/* ===== KEY TYPE CARD ===== */
.key-type-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;display:flex;align-items:center;gap:14px;transition:var(--t);
}
.key-type-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.key-color-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}

/* ===== WARNING STATE STYLES ===== */
.status-warning{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:8px;
  background:linear-gradient(135deg,var(--warning-light),rgba(255,255,255,.9));
  border:1px solid var(--warning-border);
  color:var(--warning-dark);font-weight:700;font-size:12px;
  box-shadow:0 10px 22px rgba(251,146,60,.1);
}
.status-warning::before{
  content:'';display:inline-block;width:8px;height:8px;
  border-radius:50%;background:var(--warning);
  animation:pulse 2s ease-in-out infinite;
}
.warning-indicator{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,var(--warning),var(--warning-dark));
  color:#fff;font-size:12px;font-weight:800;
  box-shadow:0 10px 20px var(--warning-glow);
}
.warning-card{
  background:linear-gradient(135deg,var(--warning-light),rgba(255,255,255,.88));
  border:1px solid var(--warning-border);border-radius:var(--radius);
  padding:16px;position:relative;overflow:hidden;
  box-shadow:0 16px 30px rgba(251,146,60,.12);
}
.warning-card::before{
  content:'';position:absolute;top:0;right:0;
  width:100%;height:3px;background:linear-gradient(90deg,var(--warning),var(--warning-dark));
}
.warning-card::after{
  content:'';position:absolute;bottom:0;right:0;
  width:100px;height:100px;background:radial-gradient(circle,rgba(251,146,60,.16),transparent);
  border-radius:50%;z-index:0;
}
.warning-card > *{position:relative;z-index:1}
.warning-accent{color:var(--warning-dark);font-weight:800}
.warning-border{border-color:var(--warning-border)!important;border-left-width:4px}

/* ===== REPORT ===== */
.report-header{
  text-align:center;padding:24px;
  background:linear-gradient(135deg,rgba(15,118,110,.1),rgba(14,116,144,.05),rgba(255,255,255,.68));
  border-radius:var(--radius);margin-bottom:20px;box-shadow:var(--shadow);
}
.report-title{font-size:22px;font-weight:900;color:var(--text)}
.report-clinic{font-size:15px;font-weight:700;color:var(--primary);margin-top:4px}
.report-period{font-size:13px;color:var(--text3);margin-top:2px}

/* ===== PAYMENT HISTORY ===== */
.payment-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:12px;
  background:var(--surface2);margin-bottom:8px;
  border:1px solid var(--border);transition:var(--t);
}
.payment-item:hover{border-color:var(--primary)}

/* ===== LOADING ===== */
.loading{display:flex;justify-content:center;align-items:center;gap:6px;padding:32px}
.loading span{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:dotPulse 1.4s ease infinite}
.loading span:nth-child(2){animation-delay:.2s}
.loading span:nth-child(3){animation-delay:.4s}

/* ===== INPUT WITH ICON ===== */
.input-icon-wrap{position:relative}
.input-icon-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text3);pointer-events:none}
.input-icon-wrap .form-control{padding-right:38px}

/* ===== SWITCH TOGGLE ===== */
.toggle-wrap{display:flex;align-items:center;gap:10px}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{
  position:absolute;inset:0;background:var(--border);border-radius:20px;
  cursor:pointer;transition:var(--t);
}
.toggle-slider::before{
  content:'';position:absolute;width:18px;height:18px;border-radius:50%;
  background:#fff;bottom:3px;right:3px;transition:var(--t);
}
.toggle input:checked+.toggle-slider{background:var(--primary)}
.toggle input:checked+.toggle-slider::before{right:23px}

/* ===== NOTES ===== */
.note-block{
  background:var(--surface2);border:1px solid var(--border);border-radius:12px;
  padding:14px;margin-bottom:10px;
}
.note-date{font-size:11px;color:var(--text3);margin-bottom:4px}
.note-text{font-size:13.5px;color:var(--text)}

/* ===== GRADIENT TEXT ===== */
.grad-text{color:var(--primary);font-weight:900}

/* ===== STICKY HEADER ===== */
.sticky-header{position:sticky;top:0;background:var(--surface);z-index:3;padding:12px 0;margin-bottom:0}

/* ===== ALERT ===== */
.alert{
  padding:14px 16px;border-radius:12px;font-size:13px;font-weight:600;
  margin-bottom:12px;display:flex;align-items:flex-start;gap:12px;
  border-left:4px solid;transition:var(--t);position:relative;
  overflow:hidden;
}
.alert::before{
  content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.05),transparent);pointer-events:none;
}
.alert-danger{
  background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(220,38,38,.04));
  color:var(--danger-dark);border-left-color:var(--danger);
  border:1px solid var(--danger);border-left-width:4px;
  box-shadow:0 4px 12px rgba(239,68,68,.08);
}
.alert-danger:hover{box-shadow:0 6px 16px rgba(239,68,68,.12)}
.alert-warning{
  background:linear-gradient(135deg,var(--warning-light),rgba(255,255,255,.92));
  color:var(--warning-dark);border-left-color:var(--warning);
  border:1px solid var(--warning-border);border-left-width:4px;
  box-shadow:0 12px 26px rgba(251,146,60,.12);font-weight:700;
}
.alert-warning:hover{box-shadow:0 16px 30px rgba(251,146,60,.18)}
.alert-success{
  background:linear-gradient(135deg,rgba(34,197,86,.08),rgba(22,163,74,.04));
  color:var(--success-dark);border-left-color:var(--success);
  border:1px solid var(--success);border-left-width:4px;
  box-shadow:0 4px 12px rgba(34,197,86,.08);
}
.alert-success:hover{box-shadow:0 6px 16px rgba(34,197,86,.12)}
.alert-info{
  background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(37,99,235,.04));
  color:var(--info-dark);border-left-color:var(--info);
  border:1px solid var(--info);border-left-width:4px;
  box-shadow:0 4px 12px rgba(59,130,246,.08);
}
.alert-info:hover{box-shadow:0 6px 16px rgba(59,130,246,.12)}
[data-theme="dark"] .alert-danger{
  background:linear-gradient(135deg,rgba(127,29,29,.25),rgba(75,10,10,.15));
  color:#f87171;border-color:#991b1b;
  box-shadow:0 4px 12px rgba(239,68,68,.15);
}
[data-theme="dark"] .alert-warning{
  background:linear-gradient(135deg,var(--warning-light),var(--warning-soft));
  color:var(--warning-dark);border-color:rgba(251,146,60,.32);
  box-shadow:0 12px 24px rgba(251,146,60,.2);
}
[data-theme="dark"] .alert-success{
  background:linear-gradient(135deg,rgba(5,46,22,.25),rgba(10,74,42,.15));
  color:#4ade80;border-color:#14532d;
  box-shadow:0 4px 12px rgba(34,197,86,.15);
}
[data-theme="dark"] .alert-info{
  background:linear-gradient(135deg,rgba(12,42,77,.25),rgba(12,74,165,.15));
  color:#60a5fa;border-color:#1e3a5f;
  box-shadow:0 4px 12px rgba(59,130,246,.15);
}
.pill-btn{
  display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;
  border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;
  transition:var(--t);font-weight:700;font-size:12px;position:relative;
}
.pill-btn:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.notif-badge{
  position:absolute;top:-5px;left:-4px;min-width:18px;height:18px;border-radius:999px;
  background:var(--danger);color:#fff;font-size:10px;font-weight:800;display:none;
  align-items:center;justify-content:center;padding:0 5px;box-shadow:0 6px 14px rgba(239,68,68,.24);
}
.summary-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;
}
.summary-card{
  background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px;
}
.summary-card-label{font-size:12px;color:var(--text3);font-weight:700;margin-bottom:6px}
.summary-card-value{font-size:18px;font-weight:900;color:var(--text)}
.finance-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:stretch}
.doctor-report-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.finance-privacy-gate{max-width:600px;margin:clamp(24px,8vh,90px) auto;padding:clamp(22px,5vw,44px);text-align:center;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);overflow-wrap:anywhere}
.finance-privacy-symbol{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 20px;border-radius:22px;background:var(--primary-light);color:var(--primary);font-size:28px}
.finance-privacy-gate h1{font-size:22px;line-height:1.6;margin-bottom:12px;color:var(--text)}
.finance-privacy-gate p{font-size:14px;color:var(--text2);line-height:1.9;margin-bottom:22px}
.finance-privacy-gate small{display:block;margin-top:22px;font-size:12px;line-height:1.8;color:var(--text3)}
.finance-privacy-actions{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.finance-privacy-settings .finance-privacy-actions{justify-content:flex-start}
.finance-privacy-settings .form-hint{margin-bottom:14px;line-height:1.9}
.finance-privacy-error{color:var(--danger);font-size:13px;line-height:1.8;margin-bottom:12px;min-height:1px}
.finance-privacy-link{font:inherit;font-size:12px;font-weight:700;color:var(--primary);background:none;border:0;padding:8px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.finance-privacy-modal{max-width:420px}
.finance-privacy-modal form{min-height:0;overflow-y:auto}
.finance-passcode{font-size:20px;letter-spacing:.2em;min-height:48px}
.finance-privacy-button[hidden]{display:none!important}
.finance-privacy-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text2);font-size:12px;line-height:1.8}
.finance-privacy-notice>span{display:flex;align-items:center;gap:9px;flex:1;min-width:180px}
.finance-privacy-notice .btn{min-height:38px;white-space:normal}
[data-private-finance][hidden]{display:none!important}
.finance-mask{display:inline-block;direction:ltr;unicode-bidi:isolate;letter-spacing:3px;color:var(--text3);font-weight:700;white-space:nowrap;vertical-align:baseline}
[data-finance-kind="chart"][data-finance-masked="1"]{display:grid;place-items:center;min-height:80px;border:1px dashed var(--border);border-radius:12px;background:var(--surface2)}
[data-finance-kind="chart"] .finance-mask{direction:inherit;letter-spacing:normal;display:flex;align-items:center;gap:8px;font-size:12px}
@media(max-width:420px){.finance-privacy-notice{padding:11px 12px;gap:9px}.finance-privacy-notice .btn{width:100%;min-height:42px}}
@media(max-width:420px){.finance-privacy-actions>.btn{width:100%;min-height:44px}.finance-privacy-gate h1{font-size:19px}.finance-privacy-button{flex-shrink:0;width:30px;padding:4px}}
.doctor-report-controls .form-group{margin:0;min-width:0}
.doctor-report-controls input,.doctor-report-controls select{width:100%;min-width:0}
@media(max-width:640px){
  .doctor-report-controls{grid-template-columns:1fr;gap:10px}
  .doctor-range-bar>.doctor-report-controls~div .form-group{flex:1 1 140px}
  .doctor-range-bar .btn{min-height:40px}
  .doctor-panel-hero{align-items:flex-start!important;gap:10px!important;padding:12px!important}
  .doctor-panel-hero>div{min-width:0;overflow-wrap:anywhere}
  .doctor-cases-wrap{overflow:visible}
  .doctor-cases-table,.doctor-cases-table tbody{display:block;width:100%;min-width:0!important}
  .doctor-cases-table thead{display:none}
  .doctor-cases-table tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
  .doctor-cases-table tbody>tr>td{display:block;min-width:0;white-space:normal;padding:6px;border:0;text-align:start;overflow-wrap:anywhere}
  .doctor-cases-table td[data-label]::before{content:attr(data-label);display:block;color:var(--text3);font-weight:600;font-size:10px;line-height:1.6;margin-bottom:3px}
  .doctor-cases-table td.name-cell,.doctor-cases-table td.doctor-case-actions{grid-column:1/-1}
  .doctor-cases-table td.name-cell{font-size:16px;color:var(--primary)}
  .doctor-cases-table td .disc-note{max-width:100%;white-space:normal;flex-wrap:wrap;overflow-wrap:anywhere;border-radius:8px}
  .doctor-cases-table .table-actions{width:100%;max-width:100%;flex-wrap:wrap;gap:8px;justify-content:flex-start}
  .doctor-cases-table .table-actions .btn{min-width:38px;min-height:38px}
  #ov-doctorPanel .modal-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #ov-doctorPanel .modal-footer>span,#ov-doctorPanel .modal-footer>.btn:last-child{grid-column:1/-1}
  #ov-doctorPanel .modal-footer>.btn{width:auto;min-width:0;min-height:40px;padding:8px}
}
.finance-chip{
  display:flex;flex-direction:column;gap:4px;padding:12px 16px;border-radius:14px;
  border:1px solid var(--border);background:var(--surface);min-width:140px;flex:1;
  box-shadow:var(--shadow);
}
.finance-chip-label{font-size:11px;font-weight:800;color:var(--text3)}
.finance-chip-value{font-size:17px;font-weight:900}
.finance-chip.success .finance-chip-value{color:var(--success-dark)}
.finance-chip.danger .finance-chip-value{color:var(--danger-dark)}
.finance-chip.warning .finance-chip-value{color:var(--warning-dark)}
.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.page-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.dashboard-grid-2{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:20px}
.report-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.lab-cost-panel{
  margin:0 16px 16px;padding:16px;border-radius:14px;
  background:linear-gradient(135deg,rgba(47,154,143,.08),rgba(34,197,94,.04));
  border:2px dashed rgba(47,154,143,.3);
}
.lab-cost-panel-title{font-size:14px;font-weight:900;color:var(--lab-teal-dark,#1f6e68);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.lab-cost-hint{font-size:11px;color:#5a7a74;font-weight:600;margin-bottom:12px;line-height:1.5}
.lab-cost-tag{font-style:normal;font-size:10px;font-weight:800;color:#0e7490;background:rgba(14,116,144,.1);padding:1px 6px;border-radius:999px;margin-inline-start:6px}
.lab-cost-tag-locked{color:#c2410c;background:rgba(194,65,12,.1)}
.lab-check-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}
.lab-check-text strong{font-size:12px;font-weight:800;line-height:1.3}
.lab-check-price{font-size:10px;font-weight:800;color:#0f766e;background:rgba(15,118,110,.08);padding:1px 6px;border-radius:999px}
.lab-custom-types{margin-top:12px;padding-top:10px;border-top:1px dashed var(--lab-border,#cfe8e4)}
.lab-custom-types-title{font-size:11px;font-weight:900;color:#0e7490;margin-bottom:8px;letter-spacing:.2px}
.lab-cost-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.lab-cost-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#fff;border-radius:10px;border:1px solid var(--lab-border,#cfe8e4)}
.lab-cost-row span{font-size:12px;font-weight:700;color:var(--lab-teal-dark,#1f6e68);flex:1}
.lab-cost-card{
  background:#fff;border:1.5px solid var(--lab-border,#cfe8e4);border-radius:12px;overflow:hidden;
  transition:border-color .15s,box-shadow .15s;
}
.lab-cost-card.is-active{border-color:var(--lab-teal,#2f9a8f);box-shadow:0 0 0 3px rgba(47,154,143,.16)}
.lab-cost-card-head{
  display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;
  padding:10px 12px;background:transparent;border:0;cursor:pointer;text-align:start;
  font-family:inherit;
}
.lab-cost-card-title{font-size:13px;font-weight:800;color:var(--lab-teal-dark,#1f6e68);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lab-cost-card-teeth{font-size:11px;line-height:1.4}
.lab-cost-card-body{display:flex;align-items:center;gap:8px;padding:0 12px 10px;flex-wrap:wrap}
.lab-cost-unit-note{padding:0 12px 10px;margin-top:-4px;font-size:11.5px;font-weight:700;color:var(--text3)}
.lab-discount-box{
  margin-top:4px;padding:12px;border-radius:12px;background:#fff;
  border:1.5px dashed rgba(194,65,12,.35);
}
.lab-discount-title{font-size:12px;font-weight:900;color:#c2410c;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.lab-discount-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lab-discount-select{
  min-width:120px;padding:8px 10px;border:2px solid var(--lab-border,#cfe8e4);border-radius:8px;
  font-family:inherit;font-size:12px;font-weight:700;background:#fff;
}
.lab-cost-total-box.disc .val{color:#c2410c}
.lab-active-work-hint{
  margin-bottom:8px;padding:8px 10px;border-radius:10px;
  background:rgba(15,118,110,.08);border:1px solid rgba(15,118,110,.18);
  font-size:11px;font-weight:700;color:#0f766e;line-height:1.5;
}
.lab-cost-input{
  width:120px;padding:8px 10px;border:2px solid var(--lab-border,#cfe8e4);border-radius:8px;
  font-family:inherit;font-size:14px;font-weight:800;text-align:center;direction:ltr;
  transition:border-color .15s,box-shadow .15s;
}
.lab-cost-input:focus{outline:none;border-color:var(--lab-teal,#2f9a8f);box-shadow:0 0 0 3px rgba(47,154,143,.14)}
.lab-cost-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px}
.lab-cost-total-box{text-align:center;padding:10px;background:#fff;border-radius:10px;border:1px solid var(--lab-border,#cfe8e4)}
.lab-cost-total-box .lbl{font-size:10px;font-weight:800;color:#64748b}
.lab-cost-total-box .val{font-size:16px;font-weight:900;color:var(--lab-teal-dark,#1f6e68)}
.lab-cost-total-box.paid .val{color:#16a34a}
.lab-cost-total-box.rem .val{color:#dc2626}
.table-actions{display:flex;gap:4px;flex-wrap:nowrap;width:max-content}
.mobile-card-list{display:none;flex-direction:column;gap:10px}
.mobile-data-card{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:14px;box-shadow:var(--shadow);
}
.mobile-data-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.mobile-data-card-title{font-size:14px;font-weight:800}
.mobile-data-card-meta{font-size:12px;color:var(--text3);margin-top:4px}
.mobile-data-card-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-top:1px solid var(--border);font-size:12px}
.mobile-data-card-row span:first-child{color:var(--text3);font-weight:700}
.mobile-data-card-row span:last-child{font-weight:800}
.doctor-card{transition:var(--t)}
.doctor-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.doctor-card .card-body{display:flex;flex-direction:column;height:100%;box-sizing:border-box}
.doc-card-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.doc-card-head .avatar{flex-shrink:0}
.doc-card-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.doc-card-name{font-size:17px;font-weight:800;line-height:1.35;color:var(--text);max-width:100%;overflow-wrap:break-word;word-break:keep-all}
.doc-card-spec{font-size:12px;color:var(--text3)}
.doc-card-clinic{font-size:10.5px;margin-top:4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-card-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.doc-stat{text-align:center;background:var(--surface2);border-radius:10px;padding:9px 4px;min-width:0}
.doc-stat-val{font-size:14px;font-weight:800;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.doc-stat-val.big{font-size:18px}
.doc-stat-lbl{font-size:11px;color:var(--text3);margin-top:2px;white-space:nowrap}
.doc-card-main{margin-top:auto}
.doc-card-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:8px}
.doc-card-actions .btn{padding:0;min-height:38px;justify-content:center}
@media(max-width:520px){.doc-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.doc-stat-val{font-size:15px}}
/* Doctors directory: one row per doctor, every action labelled and visible */
.doctor-list{display:flex;flex-direction:column;gap:14px}
.doctor-row{container-type:inline-size;min-width:0}
.doctor-row:hover{transform:none}
.doctor-row-body{display:flex;flex-direction:column;gap:12px;padding:16px}
.doctor-row-top{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:center}
.doctor-row .doc-card-head{margin-bottom:0;align-items:flex-start}
.doc-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;max-width:100%}
.doc-card-tags .doc-card-clinic{margin-top:0}
.doc-card-phone{margin-top:6px;font-size:13px}
.doctor-row-figures{min-width:0}
.doctor-row .doc-card-stats{margin-bottom:6px}
.doc-card-discount{font-size:12px;color:var(--text2)}
.doc-card-discount i,.doc-card-discount strong{color:var(--warning)}
.doctor-row-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:12px;border-top:1px dashed var(--border)}
.doctor-row-actions .btn{width:auto;margin:0;min-width:0;min-height:54px;padding:6px 4px;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;line-height:1.25;border-radius:10px}
.doctor-row-actions .btn span{max-width:100%;white-space:normal;text-align:center;text-wrap:balance}
.doctor-row-actions .btn i{font-size:15px}
.doctor-row-actions .doc-card-main{grid-column:1/-1;flex-direction:row;gap:8px;min-height:44px;font-size:13.5px}
.doctor-row-actions .act-primary i{color:var(--primary)}
.doctor-row-actions .act-warning i{color:var(--warning)}
.doctor-row-actions .act-danger i{color:var(--danger)}
.doctor-row-actions .act-danger:hover{border-color:var(--danger);background:var(--danger-light)}
.doctor-row-actions .act-danger{grid-column:span 2}
/* Wide rows (landscape phones, tablets, desktop): figures beside the name and
   all eight actions on a single line. */
@container (min-width:640px){
  .doctor-row-top{grid-template-columns:minmax(200px,1fr) minmax(340px,1.5fr)}
  .doctor-row-actions{grid-template-columns:minmax(126px,1.5fr) repeat(7,minmax(0,1fr))}
  .doctor-row-actions .btn{padding:6px 2px}
  .doctor-row-actions .act-danger{grid-column:auto}
  .doctor-row-actions .doc-card-main{grid-column:auto;min-height:54px}
}
@container (max-width:380px){.doctor-row .doc-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Lab order form: each work's price for this doctor, and required fields
   amber until filled, green once filled. */
.lab-check .lab-check-price-slot{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%}
.lab-check .lab-check-box{flex:0 0 auto}
.lab-check-price{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.lab-check-base{font-size:9.5px;font-weight:700;color:var(--text3);white-space:nowrap}
.lab-check-price.is-custom{color:var(--warning-dark);background:var(--warning-light);box-shadow:inset 0 0 0 1px rgba(234,88,12,.35)}
.lab-req-mark{color:var(--danger);font-weight:900;margin-inline-start:3px}
.lab-col-hdr .lab-req-mark{color:#fecaca}
[data-lab-req]{position:relative;transition:background .2s,box-shadow .2s,border-color .2s}
[data-lab-req]::after{position:absolute;top:8px;inset-inline-end:8px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;line-height:1;color:#fff;pointer-events:none}
[data-lab-req].is-missing::after{content:'!';background:var(--warning)}
[data-lab-req].is-filled::after{content:'✓';background:var(--success)}
.lab-info-cell[data-lab-req]{padding-inline-end:36px}
.lab-info-cell[data-lab-req]::after{top:50%;margin-top:-9px}
.lab-info-cell[data-lab-req].is-missing{background:rgba(234,88,12,.07)}
.lab-info-cell[data-lab-req].is-missing .lab-info-input,.lab-info-cell[data-lab-req].is-missing .lab-info-select{border-bottom-color:var(--warning)}
.lab-info-cell[data-lab-req].is-filled{background:rgba(22,163,74,.06)}
.lab-info-cell[data-lab-req].is-filled .lab-info-input,.lab-info-cell[data-lab-req].is-filled .lab-info-select{border-bottom-color:var(--success)}
.lab-col[data-lab-req]::after{top:9px}
.lab-col[data-lab-req].is-missing .lab-col-body{background:rgba(234,88,12,.05)}
.lab-foot-box[data-lab-req].is-missing{border-color:var(--warning)}
.lab-foot-box[data-lab-req].is-filled{border-color:var(--success)}
.lab-foot-box[data-lab-req] .lab-foot-box-hdr{padding-inline-end:30px}
.lab-foot-box[data-lab-req]::after{top:6px;inset-inline-end:6px}
.lab-admin-field[data-lab-req]::after{top:0;inset-inline-end:0}
.lab-admin-field[data-lab-req].is-missing select{border-color:var(--warning);background:rgba(234,88,12,.06)}
.lab-admin-field[data-lab-req].is-filled select{border-color:var(--success)}
[data-lab-req].is-missing.is-flagged{box-shadow:0 0 0 3px rgba(220,38,38,.45);animation:labReqPulse .9s ease-in-out 2}
.lab-info-cell[data-lab-req].is-missing.is-flagged,.lab-col[data-lab-req].is-missing.is-flagged .lab-col-body{background:rgba(220,38,38,.08)}
@keyframes labReqPulse{50%{box-shadow:0 0 0 7px rgba(220,38,38,.15)}}
@media (prefers-reduced-motion:reduce){[data-lab-req].is-flagged{animation:none}}
@media print{[data-lab-req]::after,.lab-req-mark{display:none!important}[data-lab-req]{background:none!important;box-shadow:none!important}}
/* A doctor's price list: own prices orange and tagged, list price struck beside */
.price-list-note{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.7;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.price-list-note.has-custom{background:var(--warning-light);border-color:rgba(234,88,12,.3);color:var(--warning-darker)}
.price-list-note i{margin-top:4px}
.price-list-search{margin-bottom:12px}
.price-list{display:flex;flex-direction:column;gap:16px}
.price-list-group h3{font-size:13px;font-weight:900;color:var(--primary);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.price-list-group h3 small{font-size:11px;font-weight:700;color:var(--text3)}
.price-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 10px;border-bottom:1px dashed var(--border)}
.price-list-row:last-child{border-bottom:none}
.price-list-row.is-custom{background:var(--warning-light);border-radius:10px;border-bottom-color:transparent;margin-bottom:2px}
.price-list-row .type-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.price-list-name{font-size:14px;font-weight:700;color:var(--text);min-width:0;overflow-wrap:anywhere}
.price-list-tag{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:10.5px;font-weight:800;color:var(--warning-dark);background:var(--surface);border:1px solid rgba(234,88,12,.35);border-radius:999px;padding:1px 7px;margin-inline-start:6px;white-space:nowrap}
.price-list-unit{font-size:11px;color:var(--text3);white-space:nowrap}
.price-list-price{display:flex;flex-direction:column;align-items:flex-end;text-align:end;min-width:92px;font-variant-numeric:tabular-nums}
.price-list-price strong{font-size:14px;font-weight:900;color:var(--primary);white-space:nowrap}
.price-list-row.is-custom .price-list-price strong{color:var(--warning-dark)}
.price-list-price s{font-size:11px;color:var(--text3)}
@media(max-width:480px){
  .price-list-row{grid-template-columns:auto minmax(0,1fr) auto;row-gap:2px}
  .price-list-unit{grid-column:2;grid-row:2}
  .price-list-price{grid-column:3;grid-row:1/span 2}
}
.my-prices-card{padding:14px 16px;margin-bottom:16px}
.my-prices-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.my-prices-head h2{font-size:15px;font-weight:900;color:var(--text);display:flex;align-items:center;gap:8px}
.my-prices-head h2 i{color:var(--warning)}
.my-prices-head p{font-size:12px;color:var(--text3);margin-top:2px}
.my-prices-head .btn{width:auto;margin:0}
.my-prices-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.my-price-chip{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:6px 12px;border-radius:999px;background:var(--warning-light);border:1px solid rgba(234,88,12,.3);font-size:13px;font-weight:700;color:var(--text);max-width:100%}
.my-price-chip strong{color:var(--warning-dark);font-weight:900;font-variant-numeric:tabular-nums}
.my-price-chip s,.my-price-chip small{font-size:11px;color:var(--text3)}
.doctor-filter-bar{margin-bottom:14px}
.doctor-filter-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.doctor-chip{
  display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
  border:2px solid var(--border);background:var(--surface);cursor:pointer;
  font-family:inherit;font-size:12px;font-weight:800;color:var(--text2);transition:var(--t);
}
.doctor-chip:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.doctor-chip.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);box-shadow:0 4px 12px rgba(15,118,110,.15)}
.doctor-chip .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.doctor-filter-active{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px 14px;
  border-radius:12px;background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(14,116,144,.05));
  border:1px solid rgba(15,118,110,.2);font-size:13px;
}
.doctor-filter-active strong{color:var(--primary)}
@media(max-width:640px){
  .doctor-filter-chips{gap:6px}
  .doctor-chip{padding:7px 11px;font-size:11px}
}
.timeline-list{display:flex;flex-direction:column;gap:10px}
.timeline-item{
  border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:var(--surface2);
}
.timeline-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.timeline-title{font-size:13px;font-weight:800;color:var(--text)}
.timeline-meta{font-size:11px;color:var(--text3)}
.timeline-body{font-size:13px;color:var(--text2);line-height:1.7}
.inline-action-bar{display:flex;gap:8px;flex-wrap:wrap}
.muted-note{font-size:12px;color:var(--text3)}

/* RESPONSIVE DESIGN FOR MOBILE/TABLET */
@media (max-width:768px){
  .form-row{display:flex;flex-direction:column;gap:12px !important}
  .modal{max-width:95vw;max-height:90vh;margin:0 10px}
  .modal-body{max-height:calc(90vh - 120px);overflow-y:auto;padding:14px}
  .form-control,.form-select,.form-textarea{font-size:16px;padding:14px;border-radius:8px}
  #cPatientList,#aPatientList{max-height:200px}
  .btn{padding:12px 16px;font-size:14px;border-radius:8px}
  .btn-primary,.btn-secondary{min-height:44px}
  input[type="date"],input[type="time"]{font-size:16px;padding:12px}
  label.form-label{font-size:14px;margin-bottom:8px}
  .form-group{margin-bottom:12px}
}

@media (max-width:480px){
  .modal{max-width:100%;border-radius:16px 16px 0 0}
  .modal-body{padding:12px;max-height:calc(100vh - 100px)}
  .form-row{gap:10px}
  .form-control,.form-select,.form-textarea{font-size:16px;padding:12px}
  .btn{padding:12px 12px;font-size:13px}
  .btn-primary,.btn-secondary{width:100%;margin-bottom:8px}
  #cPatientList,#aPatientList{max-height:150px}
  .modal-footer{flex-direction:column;gap:8px}
  .page-content{padding:12px}
}

/* IMPROVE INPUT TOUCH TARGETS */
@media (hover:none) and (pointer:coarse){
  .form-control,.form-select,.btn{min-height:44px;padding:14px}
  input,textarea,select{font-size:16px}
  .tab-btn{padding:12px 14px;min-height:44px}
}

/* SMOOTH TRANSITIONS */
.form-control,.form-select,.form-textarea,.btn{transition:all 0.3s ease}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px rgba(15,118,110,0.1);border-color:var(--primary)}
.btn:active{transform:scale(0.98)}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator{cursor:pointer;font-size:18px}

/* ===== LAB ORDER SHEET (Paper Form Replica — Arti Dent brand colors) ===== */
.lab-form-page{background:#e9f4f2;padding:20px 12px;min-height:calc(100vh - var(--header-h))}
.lab-order-sheet{
  --lab-teal:#2f9a8f;--lab-teal-dark:#1f6e68;--lab-ink:#182228;
  --lab-border:#cfe8e4;--lab-tint:#eaf6f4;--lab-text:#1a2530;
  background:#fff;border:2px solid var(--lab-teal-dark);border-radius:16px;
  box-shadow:0 10px 34px rgba(31,110,104,.14);overflow:hidden;
  max-width:980px;margin:0 auto;font-family:'Noto Kufi Arabic',sans-serif;
  color:var(--lab-text);
}
/* Header — fluid diagonal wedge (percentage-based clip-path, scales at any width) */
.lab-hdr{
  position:relative;display:flex;align-items:stretch;min-height:112px;
  background:var(--lab-teal);border-bottom:3px solid var(--lab-teal-dark);overflow:hidden;
}
.lab-hdr::before{
  content:'';position:absolute;inset:0;background:var(--lab-ink);
  clip-path:polygon(0 0,44% 0,30% 100%,0 100%);
}
.lab-hdr-left{
  position:relative;z-index:2;display:flex;align-items:center;gap:10px;
  padding:16px 20px;min-width:180px;flex-shrink:0;
}
.lab-logo-svg{width:50px;height:50px;flex-shrink:0}
.lab-logo-text{display:flex;flex-direction:column}
.lab-logo-name{font-size:15px;font-weight:900;color:#fff;letter-spacing:1.5px;line-height:1.1}
.lab-logo-sub{font-size:9px;font-weight:800;color:var(--lab-teal);letter-spacing:2px;margin-top:2px}
.lab-hdr-mid{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:12px 10px;z-index:2;min-width:0;
}
.lab-hdr-phones{
  display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;color:#fff;
  direction:ltr;margin-bottom:6px;flex-wrap:wrap;justify-content:center;
}
.lab-hdr-phones .wa{color:#eafff5;font-size:18px}
.lab-hdr-phones .sep{color:rgba(255,255,255,.55);font-weight:400}
.lab-hdr-right{
  display:flex;flex-direction:column;align-items:flex-end;justify-content:center;
  padding:16px 24px;min-width:200px;z-index:2;flex-shrink:0;
}
.lab-hdr-title{font-size:26px;font-weight:900;color:#fff;line-height:1.2;text-align:right}
.lab-hdr-subtitle{font-size:11px;font-weight:700;color:rgba(255,255,255,.8);margin-top:4px;text-align:right}
/* Doctor / Patient row */
.lab-info-row{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-bottom:2px solid var(--lab-teal-dark);padding:0;
}
.lab-info-cell{
  display:flex;align-items:center;gap:10px;padding:12px 20px;
  border-left:2px solid var(--lab-teal-dark);
}
.lab-info-cell:first-child{border-left:none}
.lab-info-label{
  font-size:14px;font-weight:900;color:var(--lab-teal-dark);white-space:nowrap;min-width:90px;
}
.lab-info-input{
  flex:1;min-width:0;border:none;border-bottom:2px dotted #9fc9c4;background:transparent;
  font-size:15px;font-weight:700;color:var(--lab-text);padding:4px 0;outline:none;
  font-family:inherit;transition:border-color .15s;
}
.lab-info-input:focus{border-bottom-color:var(--lab-teal-dark);border-bottom-style:solid}
.lab-info-select{
  flex:1;min-width:0;border:none;border-bottom:2px dotted #9fc9c4;background:transparent;
  font-size:14px;font-weight:700;color:var(--lab-text);padding:4px 0;outline:none;
  font-family:inherit;cursor:pointer;transition:border-color .15s;
}
.lab-info-select:focus{border-bottom-color:var(--lab-teal-dark);border-bottom-style:solid}
/* Main 4-column grid */
.lab-grid{
  display:grid;grid-template-columns:1.1fr 1.1fr .8fr 1.3fr;
  border-bottom:2px solid var(--lab-teal-dark);
}
.lab-col{
  border-left:2px solid var(--lab-teal-dark);display:flex;flex-direction:column;min-height:380px;
  min-width:0;
}
.lab-col:first-child{border-left:none}
.lab-col-hdr{
  background:var(--lab-teal-dark);color:#fff;text-align:center;
  padding:9px 8px;font-size:13px;font-weight:900;letter-spacing:.3px;
}
.lab-col-body{flex:1;padding:6px 10px 10px;background:#fff;min-width:0}
.lab-col-body.ltr{direction:ltr;text-align:left}
/* Checkboxes — label left, box right (like paper form) */
.lab-check{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 2px;border-bottom:1px dotted var(--lab-border);cursor:pointer;
  font-size:11.5px;font-weight:700;color:#1e293b;line-height:1.35;
  transition:background .15s;
}
.lab-check:hover{background:var(--lab-tint)}
.lab-check:last-child{border-bottom:none}
.lab-check span{flex:1;text-align:left}
.lab-check-box{
  width:16px;height:16px;border:2px solid var(--lab-teal-dark);border-radius:4px;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:#fff;transition:all .15s;
}
.lab-check input{position:absolute;opacity:0;width:0;height:0}
.lab-check input:checked+.lab-check-box{background:var(--lab-teal-dark);border-color:var(--lab-teal-dark);transform:scale(1.05)}
.lab-check input:checked+.lab-check-box::after{
  content:'✓';color:#fff;font-size:10px;font-weight:900;line-height:1;
}
.lab-check input:focus-visible+.lab-check-box{box-shadow:0 0 0 3px rgba(47,154,143,.25)}
/* Shade column — real VITA-style shade guide swatches */
.shade-guide{
  display:flex;flex-wrap:wrap;gap:6px;justify-content:center;
  padding:8px 2px;margin:4px 0;
}
.shade-swatch{
  width:34px;height:34px;border-radius:8px;border:2px solid var(--lab-border);
  cursor:pointer;position:relative;display:flex;align-items:flex-end;justify-content:center;
  transition:transform .15s,box-shadow .15s,border-color .15s;padding:0;
  flex-shrink:0;
}
.shade-swatch:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.14)}
.shade-swatch.selected{
  border-color:var(--lab-teal-dark);
  box-shadow:0 0 0 3px rgba(31,110,104,.18),0 4px 10px rgba(0,0,0,.12);
  transform:translateY(-2px);
}
.shade-check{
  position:absolute;top:-7px;right:-7px;width:16px;height:16px;border-radius:50%;
  background:var(--lab-teal-dark);color:#fff;font-size:9px;font-weight:900;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.shade-label{
  font-size:8px;font-weight:900;color:rgba(0,0,0,.55);
  background:rgba(255,255,255,.55);border-radius:3px 3px 0 0;
  width:100%;text-align:center;line-height:1.5;
}
.lab-shade-custom{
  display:block;width:calc(100% - 20px);margin:10px auto 4px;padding:9px 12px;
  border:2px solid var(--lab-border);border-radius:10px;background:#fff;
  font-size:16px;font-weight:900;color:var(--lab-teal-dark);text-align:center;
  outline:none;font-family:inherit;text-transform:uppercase;
  transition:border-color .15s,box-shadow .15s;
}
.lab-shade-custom:focus{border-color:var(--lab-teal-dark);box-shadow:0 0 0 3px rgba(31,110,104,.14)}
/* Picture column */
.lab-pic-section{margin-bottom:8px}
.lab-pic-hdr{
  background:var(--lab-teal-dark);color:#fff;text-align:center;padding:6px;
  font-size:11px;font-weight:900;margin-bottom:6px;border-radius:6px 6px 0 0;
}
.lab-nums-row{
  display:flex;justify-content:center;align-items:center;gap:2px;
  direction:ltr;font-size:9px;font-weight:900;color:#64748b;margin-bottom:3px;
}
.lab-nums-row .n{width:22px;text-align:center}
.lab-nums-row .mid{width:10px;text-align:center;color:#9fc9c4}
.lab-bridge-row{
  display:flex;justify-content:center;gap:16px;margin:6px 0 8px;
}
.lab-bridge-item{
  display:flex;align-items:center;gap:5px;font-size:10px;font-weight:800;
  color:#334155;cursor:pointer;
}
.lab-bridge-item input{position:absolute;opacity:0;width:0;height:0}
.lab-bridge-item input:checked+.lab-check-box{background:var(--lab-teal-dark);border-color:var(--lab-teal-dark)}
.lab-bridge-item input:checked+.lab-check-box::after{content:'●';color:#fff;font-size:8px}
.lab-bridge-item .lab-check-box{width:14px;height:14px}
/* Explanation sub-section */
.lab-explain-section{margin-top:4px}
.lab-explain-hdr{
  background:var(--lab-teal-dark);color:#fff;text-align:center;padding:6px;
  font-size:11px;font-weight:900;border-radius:6px 6px 0 0;
}
.lab-explain-box{
  width:100%;min-height:80px;border:2px solid var(--lab-border);border-top:none;
  border-radius:0 0 8px 8px;padding:8px;font-size:12px;font-family:inherit;
  resize:vertical;outline:none;background:var(--lab-tint);transition:background .15s,border-color .15s;
}
.lab-explain-box:focus{border-color:var(--lab-teal-dark);background:#fff}
/* Footer — 5 boxes + Finish */
.lab-foot{
  padding:14px;background:#fff;
}
.lab-foot-row{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px;
}
.lab-foot-box{
  border:2px solid var(--lab-teal-dark);border-radius:10px;overflow:hidden;background:#fff;
  transition:box-shadow .15s;
}
.lab-foot-box:focus-within{box-shadow:0 0 0 3px rgba(47,154,143,.16)}
.lab-foot-box-hdr{
  display:flex;align-items:center;gap:6px;padding:6px 8px;
  background:var(--lab-tint);border-bottom:1px solid var(--lab-border);
}
.lab-foot-box-hdr i{color:var(--lab-teal-dark);font-size:13px;width:16px;text-align:center}
.lab-foot-box-hdr span{font-size:10px;font-weight:900;color:var(--lab-teal-dark);flex:1}
.lab-foot-box-body{padding:6px 8px}
.lab-foot-box-body input[type="date"]{
  width:100%;border:none;background:transparent;font-size:11px;font-weight:700;
  color:#1e293b;outline:none;font-family:inherit;padding:2px 0;
}
.lab-foot-check{
  display:flex;align-items:center;justify-content:center;padding:8px;
}
.lab-foot-check .lab-check-box{width:19px;height:19px}
.lab-finish-box{
  border:2px solid var(--lab-teal-dark);border-radius:10px;overflow:hidden;
}
.lab-finish-hdr{
  display:flex;align-items:center;gap:8px;padding:7px 12px;
  background:var(--lab-teal-dark);color:#fff;
}
.lab-finish-hdr i{font-size:13px}
.lab-finish-hdr span{font-size:12px;font-weight:900}
.lab-finish-body{padding:8px 12px}
.lab-finish-body input{
  width:100%;border:none;border-bottom:2px dotted #9fc9c4;background:transparent;
  font-size:14px;font-weight:700;outline:none;font-family:inherit;padding:4px 0;
  transition:border-color .15s;
}
.lab-finish-body input:focus{border-bottom-color:var(--lab-teal-dark);border-bottom-style:solid}
/* Actions bar */
.lab-order-actions{
  display:flex;gap:10px;flex-wrap:wrap;justify-content:center;
  padding:14px 18px;background:var(--lab-tint);border-top:1px solid var(--lab-border);
}
.lab-admin-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
  padding:12px 16px;background:#f8fafc;border-top:1px dashed var(--lab-border);
}
.lab-admin-field label{font-size:11px;font-weight:800;color:var(--lab-teal-dark);display:block;margin-bottom:4px}
.lab-admin-field select,
.lab-admin-field input{
  width:100%;padding:8px 10px;border:1.5px solid var(--lab-border);border-radius:8px;
  font-size:13px;font-weight:700;background:#fff;outline:none;font-family:inherit;
  transition:border-color .15s;color:#134e4a;
}
.lab-admin-field select:focus,
.lab-admin-field input:focus{border-color:var(--lab-teal-dark)}
@media (max-width:900px){
  .lab-admin-row{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .lab-admin-row{grid-template-columns:1fr}
}
/* Embedded tooth picker inside the sheet reads teal, matching the rest of the form */
.lab-order-sheet .dental-chart{border:none;box-shadow:none;background:transparent}
.lab-order-sheet .dental-chart-head{display:none}
.lab-order-sheet .dental-chart-body{padding:4px 0 0}
.lab-order-sheet .dental-mouth-frame{
  padding:8px 0;
  background:
    radial-gradient(ellipse 65% 55% at 50% 4%,rgba(47,154,143,.10),transparent 72%),
    radial-gradient(ellipse 65% 55% at 50% 96%,rgba(47,154,143,.10),transparent 72%);
}
.lab-order-sheet .dental-chart-hint{background:transparent;border-color:var(--lab-border)}
.lab-order-sheet .dental-arch-label{color:var(--lab-teal-dark)}
/* The sheet always renders as light paper regardless of the app's dark/light toggle —
   force tooth colors to match instead of inheriting the app theme's dark surface tones. */
.lab-order-sheet .dental-tooth{
  background:linear-gradient(180deg,#fffefb,#f8f1e4 55%,#efe4d2)!important;
  border-color:#e0d5c4!important;
}
.lab-order-sheet .dental-tooth.selected{
  background:linear-gradient(180deg,#e8f8f5,#d0f0ea)!important;
  border-color:var(--dc-accent-border,var(--lab-teal-dark))!important;
}
.lab-order-sheet .dental-tooth-num{color:#6b5c48}
.lab-order-sheet .dental-tooth.selected .dental-tooth-num{color:var(--lab-teal-dark)}
.lab-order-sheet .dental-full-row::before{
  background:linear-gradient(180deg,rgba(47,154,143,.08),rgba(47,154,143,.02) 60%);
  border-color:rgba(47,154,143,.16);
}
.lab-order-sheet .dental-tooth-label{color:var(--lab-teal-dark)}
.lab-order-sheet .dental-num-ruler{color:#7a9a95;max-width:100%}

@media(max-width:900px){
  .lab-grid{grid-template-columns:1fr 1fr}
  .lab-col{min-height:auto;border-bottom:2px solid var(--lab-teal-dark)}
  .lab-col:nth-child(2){border-left:none}
  .lab-foot-row{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:680px){
  .lab-hdr{flex-wrap:wrap;min-height:0}
  .lab-hdr::before{clip-path:none;background:var(--lab-teal-dark)}
  .lab-hdr-left,.lab-hdr-right{min-width:0;width:100%;justify-content:center;padding:14px 16px}
  .lab-hdr-right{align-items:center;text-align:center}
  .lab-hdr-title{text-align:center;font-size:22px}
  .lab-hdr-subtitle{text-align:center}
  .lab-hdr-mid{width:100%;order:3;padding-bottom:14px}
}
@media(max-width:600px){
  .lab-grid{grid-template-columns:1fr}
  .lab-col{border-left:none}
  .lab-info-row{grid-template-columns:1fr}
  .lab-info-cell{border-left:none;border-bottom:1px solid var(--lab-border)}
  .lab-foot-row{grid-template-columns:1fr 1fr}
}
@media(max-width:420px){
  .lab-form-page{padding:12px 6px}
  .lab-order-sheet{border-radius:12px}
  .lab-hdr-title{font-size:19px}
  .lab-logo-svg{width:42px;height:42px}
  .lab-logo-name{font-size:13px}
  .lab-info-cell{padding:10px 14px}
  .lab-foot-row{grid-template-columns:1fr 1fr}
  .lab-foot-box-hdr span{font-size:9px}
}
@media print{
  .lab-order-actions,.no-print-lab,.lab-admin-row,.lab-form-toolbar{display:none!important}
  .lab-form-page{background:#fff;padding:0}
  .lab-order-sheet{box-shadow:none;border:2px solid var(--lab-teal-dark);max-width:100%}
  body *{visibility:hidden}
  .lab-order-sheet,.lab-order-sheet *{visibility:visible}
  .lab-order-sheet{position:absolute;left:0;top:0;width:100%}
}

/* ============================================================
   UX REDESIGN — forms, pickers, shell polish (2026)
   ============================================================ */

/* Input with icon + password toggle */
.input-with-icon{position:relative;display:flex;align-items:center}
.input-with-icon .input-leading-icon{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  color:var(--text3);font-size:14px;pointer-events:none;z-index:1
}
.input-with-icon .fc,.input-with-icon .form-control{padding-right:42px}
.input-with-icon.has-toggle .fc,.input-with-icon.has-toggle .form-control{padding-left:44px}
.input-toggle-btn{
  position:absolute;left:8px;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border:none;border-radius:10px;background:transparent;
  color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:var(--t)
}
.input-toggle-btn:hover{background:var(--surface2);color:var(--primary)}
.pw-field{position:relative}
.pw-field .form-control{padding-left:48px}
html[dir="ltr"] .pw-field .form-control{padding-left:14px;padding-right:48px}

/* Custom checkbox */
.check-label{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-size:13px;font-weight:700;color:var(--text2);user-select:none
}
.check-label input{position:absolute;opacity:0;width:0;height:0}
.check-box{
  width:20px;height:20px;border-radius:6px;border:2px solid var(--border);
  background:var(--surface);display:inline-flex;align-items:center;justify-content:center;
  color:transparent;font-size:10px;transition:var(--t);flex-shrink:0
}
.check-label input:checked+.check-box{
  background:var(--primary);border-color:var(--primary);color:#fff
}
.check-label input:focus-visible+.check-box{box-shadow:var(--focus-ring)}

/* Form sections inside modals */
.form-section{
  background:var(--surface2);border:1px solid var(--border);border-radius:14px;
  padding:16px;margin-bottom:16px
}
.form-section-title{
  display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;
  color:var(--text);margin-bottom:14px;padding-bottom:10px;border-bottom:1px dashed var(--border)
}
.form-section-title i{color:var(--primary)}
.form-section.dashed{border-style:dashed;background:linear-gradient(180deg,var(--surface),var(--surface2))}
.form-section.accent{
  background:linear-gradient(135deg,rgba(15,118,110,.06),rgba(14,116,144,.04));
  border-color:rgba(15,118,110,.22)
}

/* Patient / entity picker */
.form-tabs{
  display:flex;gap:6px;background:var(--surface2);border:1px solid var(--border);
  border-radius:14px;padding:6px;margin-bottom:16px
}
.form-tab-btn{
  flex:1;padding:11px 12px;border:none;border-radius:10px;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:800;background:transparent;
  color:var(--text3);transition:var(--t)
}
.form-tab-btn.active{
  background:var(--surface);color:var(--primary);box-shadow:var(--shadow)
}
.form-tab-btn:hover:not(.active){color:var(--text);background:rgba(255,255,255,.4)}

.patient-picker-list{
  margin-top:8px;border:1.5px solid var(--border);border-radius:12px;
  max-height:260px;overflow-y:auto;background:var(--surface);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4)
}
.patient-picker-item{
  padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  transition:var(--t);background:transparent
}
.patient-picker-item:last-child{border-bottom:none}
.patient-picker-item:hover,.patient-picker-item:focus-visible{
  background:var(--primary-light);outline:none
}
.patient-picker-item .ppi-name{font-weight:800;color:var(--text);font-size:14px}
.patient-picker-item .ppi-meta{font-size:12px;color:var(--text3);margin-top:3px}
.patient-picker-item i{color:var(--primary);opacity:.55;font-size:13px}
.patient-picker-item:hover i{opacity:1}
.patient-picker-new{
  padding:16px;background:var(--surface2);border-radius:12px;border:1px dashed var(--border)
}

/* Clinic checkbox rows */
.clinic-check-list{display:flex;flex-direction:column;gap:8px}
.clinic-check-item{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  border:1.5px solid var(--border);border-radius:12px;background:var(--surface);
  cursor:pointer;transition:var(--t)
}
.clinic-check-item:hover{border-color:var(--primary);background:var(--primary-light)}
.clinic-check-item input{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}
.clinic-check-item .cci-name{font-weight:800;color:var(--text)}
.clinic-check-item .cci-meta{margin-right:auto}

/* Color input polish */
.form-control[type="color"]{height:48px;padding:6px 8px;cursor:pointer}

/* Doctor per-case-type custom price rows */
.doctor-price-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;padding-inline-end:4px}
.doctor-price-row{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto 130px;align-items:center;gap:6px 10px;padding:9px 12px;
  border:1.5px solid var(--border);border-radius:12px;background:var(--surface);
  transition:var(--t);box-sizing:border-box;min-width:0
}
.doctor-price-row.has-custom{border-color:var(--primary);background:var(--primary-light)}
.doctor-price-name{font-weight:700;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doctor-price-base{font-size:11px;color:var(--text3);white-space:nowrap}
.doctor-price-row input.dPriceOverride{width:100%;min-width:0;box-sizing:border-box;margin:0}
/* Phones: name on its own line, then base price and the input side by side */
@media (max-width:560px){
  .doctor-price-list{max-height:none;overflow:visible;padding-inline-end:0}
  .doctor-price-row{grid-template-columns:auto minmax(0,1fr);padding:10px 12px}
  .doctor-price-name{white-space:normal;overflow-wrap:anywhere}
  .doctor-price-base{grid-column:1 / -1}
  .doctor-price-row input.dPriceOverride{grid-column:1 / -1;height:44px;font-size:16px}
}

/* Readonly value display */
.form-value{
  min-height:var(--field-h);padding:12px 14px;border:1.5px solid var(--border);
  border-radius:12px;background:var(--surface2);color:var(--text);
  display:flex;align-items:center;font-weight:800;font-size:14px
}

/* Modal polish */
.modal-overlay{background:rgba(4,24,22,.52);backdrop-filter:blur(6px)}
.modal{
  border:1px solid var(--border);
  box-shadow:0 28px 80px rgba(4,24,22,.28)
}
.modal-header{
  background:linear-gradient(180deg,var(--surface-highlight),var(--surface));
  gap:12px
}
.modal-title{display:flex;align-items:center;gap:10px}
.modal-title i{font-size:18px}
.modal-body{padding:20px 22px}
.modal-footer{
  background:linear-gradient(0deg,var(--surface),var(--surface2));
  gap:10px;flex-wrap:wrap
}
.modal-footer .btn{min-width:120px}

/* Sidebar user row */
.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px}
.sidebar-user-meta{flex:1;min-width:0}
.sidebar-user-name{font-size:13px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user-role{font-size:11px;color:var(--text3)}

/* Page intro / empty polish */
.page-content{animation:fadeIn .28s ease}
.empty-state{
  background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.empty-state .btn{margin-top:14px}

/* Filter bar polish */
.filter-bar{
  background:linear-gradient(180deg,var(--surface-glass-strong),var(--surface));
  box-shadow:var(--shadow);align-items:center
}

/* Soft purple badge → teal-friendly */
.badge-purple{background:#ccfbf1;color:#0f766e;border:1px solid #99f6e4;box-shadow:0 2px 4px rgba(15,118,110,.08)}
[data-theme="dark"] .badge-purple{background:#0f2f2c;color:#5eead4;border-color:#134e4a}

/* Nav hover without purple */
.nav-item:hover{
  background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(14,116,144,.06));
  color:var(--primary);border-color:rgba(15,118,110,.12);transform:translateX(-2px)
}
.nav-item.active{
  background:linear-gradient(135deg,rgba(15,118,110,.16),rgba(14,116,144,.08));
  color:var(--primary);font-weight:700;
  border-right:3px solid var(--primary);border-color:rgba(15,118,110,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 12px 26px rgba(15,118,110,.08);
}
.clinic-selector{
  background:linear-gradient(135deg,var(--surface-highlight),rgba(15,118,110,.06),rgba(14,116,144,.04));
}
.patient-hero{
  background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(14,116,144,.05),rgba(255,255,255,.62));
}
.report-header{
  background:linear-gradient(135deg,rgba(15,118,110,.1),rgba(14,116,144,.05),rgba(255,255,255,.68));
}
.doctor-filter-active{
  background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(14,116,144,.05));
  border:1px solid rgba(15,118,110,.2)
}

/* Stat icon default tint */
.stat-icon{
  background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(14,116,144,.06));
  box-shadow:0 2px 8px rgba(15,118,110,.1);
}

/* Sticky save bar hint on long modals */
.form-hint-bar{
  display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:14px;
  border-radius:12px;background:rgba(15,118,110,.06);border:1px solid rgba(15,118,110,.16);
  font-size:12px;font-weight:700;color:var(--text2)
}
.form-hint-bar i{color:var(--primary)}

/* Better table action spacing */
.table-actions .btn{min-height:34px}

/* Mobile login */
@media(max-width:640px){
  #loginScreen{padding:0;align-items:flex-start}
  .login-shell{max-width:100%}
  .login-card{
    border-radius:0;max-width:100%;padding:36px 22px 28px;
    box-shadow:none;border:none;min-height:100vh
  }
}

/* Login always stays light & readable on the brand gradient */
#loginScreen .login-card{
  --text:#134e4a;--text2:#3f6864;--text3:#4a6b66;
  --surface:#ffffff;--surface2:#f5faf9;--border:#d5e5e2;
  --primary:#0f766e;--primary-light:#ccfbf1;--primary-dark:#0d5f59;
  --success:#16a34a;--success-light:#dcfce7;--success-dark:#15803d;
  background:#fff;color:var(--text);
  box-shadow:0 28px 80px rgba(2,24,22,.35);
}
#loginScreen .login-name{color:#0f766e}
#loginScreen .login-sub,
#loginScreen .login-hint{color:#3f6864}
#loginScreen .fc,#loginScreen .form-control{
  background:#fff;color:#134e4a;border-color:#d5e5e2
}
#loginScreen .form-label{color:#3f6864}
#loginScreen .login-hint,#loginScreen .login-sub{color:#6b8f8a}
#loginScreen .check-label{color:#3f6864}
#loginScreen .alert-danger{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}

/* Extra polish — sticky modal footer actions on mobile */
@media(max-width:480px){
  .modal-footer .btn{min-width:0;flex:1}
  .form-section{padding:14px}
  .form-section-title{font-size:12.5px}
}
/* Soft focus highlight for required labels */
.form-label.required{letter-spacing:.01em}
/* Prevent double-border clash on form-control inside form-value wrappers */
.form-value .badge{margin:0}

/* ============================================================
   Case list + realistic teeth + VITA shade polish
   ============================================================ */

/* Realistic enamel look on tooth PNGs (assets are blue line-art) */
.dental-tooth-icon{
  filter:brightness(1.35) sepia(.55) saturate(.45) hue-rotate(340deg) contrast(1.05);
}
.dental-tooth.selected .dental-tooth-icon,
.dental-tooth.treated .dental-tooth-icon{
  filter:brightness(1.2) sepia(.35) saturate(.7) hue-rotate(120deg) contrast(1.05);
}
.dental-tooth{
  background:linear-gradient(165deg,#fffef9 0%,#f7f1e6 55%,#efe6d6 100%);
  border-color:#e0d5c4;
  box-shadow:0 2px 4px rgba(90,70,40,.08),inset 0 1px 0 rgba(255,255,255,.85);
}
.dental-tooth:hover:not(.readonly){
  border-color:var(--dc-accent-border,#0f766e);
  background:linear-gradient(165deg,#f0faf8,#e6f5f2);
}
.dental-tooth.selected,
.dental-tooth.treated{
  background:linear-gradient(165deg,#e6f7f4,#ccfbf1);
  border-color:var(--dc-accent-border,#0f766e);
}
[data-theme="dark"] .dental-tooth{
  background:linear-gradient(165deg,#1a2e2b,#132421);
  border-color:#3d4f4b;color:var(--text3);
  box-shadow:0 1px 2px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.05);
}
[data-theme="dark"] .dental-tooth:hover:not(.readonly){
  background:linear-gradient(165deg,#1f3a36,#17403a);
  border-color:var(--primary);
}
[data-theme="dark"] .dental-tooth.selected,
[data-theme="dark"] .dental-tooth.treated{
  background:linear-gradient(165deg,#0f2f2c,#134e4a);
  border-color:var(--primary);
}
[data-theme="dark"] .dental-tooth-num{
  color:var(--text2);background:rgba(13,31,28,.85);
}
[data-theme="dark"] .dental-tooth.selected .dental-tooth-num{
  color:var(--primary);background:rgba(13,31,28,.95);
}
.lab-order-sheet .dental-tooth{
  background:linear-gradient(165deg,#fffef9,#f7f1e6)!important;
  border-color:#d9cfc0!important;
}
.lab-order-sheet .dental-tooth.selected{
  background:linear-gradient(165deg,#e6f7f4,#d5f5ef)!important;
  border-color:var(--dc-accent-border,var(--lab-teal-dark))!important;
}
.lab-order-sheet .dental-tooth-icon{
  filter:brightness(1.35) sepia(.55) saturate(.45) hue-rotate(340deg) contrast(1.05);
}
.lab-order-sheet .dental-tooth.selected .dental-tooth-icon{
  filter:brightness(1.15) sepia(.3) saturate(.75) hue-rotate(120deg);
}
/* The two light-paper overrides above (!important, 2 classes) would otherwise also flatten
   the other-work color marker back to plain beige — this needs to out-specificity them. */
.lab-order-sheet .dental-tooth.other-work:not(.selected){
  border-color:var(--other-color)!important;
  background:var(--other-bg)!important;
}

/* VITA shade guide — realistic enamel gradients, A/B/C/D rows */
.shade-guide-rows{display:flex;flex-direction:column;gap:6px;padding:4px 2px}
.shade-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.shade-row-lab{
  width:16px;font-size:10px;font-weight:900;color:var(--lab-teal-dark,#0f766e);
  flex-shrink:0;text-align:center
}
.shade-swatch{
  width:32px;height:36px;border-radius:8px 8px 12px 12px;
  border:2px solid rgba(0,0,0,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 2px rgba(0,0,0,.06);
}
.shade-swatch .shade-label{
  background:rgba(255,255,255,.72);color:rgba(0,0,0,.62);font-size:7.5px;font-weight:900
}
.shade-swatch.selected{
  border-color:var(--lab-teal-dark,#0f766e);
  box-shadow:0 0 0 3px rgba(15,118,110,.18),inset 0 1px 0 rgba(255,255,255,.5)
}
.shade-preview{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:8px 6px 0;padding:8px;border-radius:10px;
  background:#fff;border:1.5px solid var(--lab-border,#cfe8e4)
}
.shade-preview.empty{color:#94a3b8;font-size:11px;font-weight:700}
.shade-preview-chip{
  width:36px;height:36px;border-radius:10px;border:2px solid var(--lab-teal-dark,#0f766e);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5)
}
.shade-preview strong{font-size:18px;font-weight:900;color:var(--lab-teal-dark,#0f766e)}

/* Cases table — actions under patient name */
.cases-table{min-width:760px}
.case-patient-cell{min-width:200px;max-width:280px}
.case-patient-block{display:flex;flex-direction:column;gap:8px}
.case-patient-top{display:flex;align-items:center;gap:10px}
.case-patient-meta{min-width:0;flex:1}
.case-patient-name{font-weight:800;font-size:14px;color:var(--text);line-height:1.35}
.case-patient-phone{font-size:11px;color:var(--text3);margin-top:2px}
.case-name-actions{
  display:flex;flex-wrap:wrap;gap:4px;align-items:center;
  padding-top:2px
}
.case-name-actions .btn{min-height:30px}
.case-date-main{font-weight:800;font-size:13px}
.case-date-sub{font-size:11px;color:var(--text3);margin-top:3px;font-weight:600}
.case-teeth-cell .case-teeth-list{margin-top:6px}
.case-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.num-cell{font-weight:800;white-space:nowrap}
.paid-cell{color:var(--success-dark)}
.case-row:hover td{background:rgba(15,118,110,.04)}
.case-view-hero{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:14px 16px;margin-bottom:16px;border-radius:14px;
  background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(14,116,144,.04));
  border:1px solid rgba(15,118,110,.16)
}
.case-mobile-card .case-patient-top{align-items:flex-start}

@media(max-width:900px){
  .cases-table{min-width:0}
  .hide-mobile{display:none!important}
  .mobile-card-list.show-mobile{display:flex!important}
}
@media(max-width:640px){
  .case-name-actions .btn{flex:1 1 calc(50% - 4px);justify-content:center}
  .dental-full-row .dental-tooth{max-width:36px}
  .shade-swatch{width:28px;height:32px}
}

/* Consistent navigation, readable surfaces, and accessible controls. */
[hidden]{display:none!important}
body.modal-open{overflow:hidden}
.lab-check{position:relative}
.lab-check input{display:block!important;position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.icons-fallback [data-icon-fallback]::before{content:attr(data-icon-fallback)!important;font-family:Arial,sans-serif!important;font-weight:700;font-style:normal}
.qr-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;color:var(--primary);height:100%;width:100%}
.qr-fallback>span{font-size:28px;line-height:1}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,[role="link"]:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.skip-link{position:fixed;inset-block-start:8px;inset-inline-start:16px;transform:translateY(-160%);z-index:10001;background:var(--surface);color:var(--primary);padding:10px 18px;border-radius:10px;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
.main:focus{outline:none}
.main{min-width:0}
.page-content{width:100%;min-width:0;max-width:1520px;margin-inline:auto}
.page-toolbar{gap:16px}
.lab-form-toolbar{position:sticky;top:calc(var(--header-h) + 8px);z-index:4;padding:12px;background:var(--surface-glass-strong);border:1px solid var(--border);border-radius:14px;backdrop-filter:blur(16px)}
.table-wrap{overscroll-behavior-inline:contain}
th{text-align:start}
.modal-header{gap:12px}
.modal-title{min-width:0;overflow-wrap:anywhere}
.modal-header>.btn{flex-shrink:0}
.modal-footer{flex-wrap:wrap}
.form-group{min-width:0}
.storage-status{margin:calc(var(--header-h) + 16px) 20px 0;margin-inline-start:calc(var(--sidebar-w) + 20px);display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;background:var(--warning-light);border:1px solid var(--warning-border);border-radius:12px;color:var(--warning-darker)}
.storage-status span{flex:1 1 240px}
.storage-status:not([hidden])~.main{margin-top:16px}
[data-theme="dark"] .btn-primary,[data-theme="dark"] .fab{color:#042f2e}
[data-theme="dark"] .btn-danger:hover{background:#b91c1c}
[data-theme="dark"] .btn-success:hover{background:#15803d}
html[dir="ltr"] body{direction:ltr}
html[dir="ltr"] .sidebar{right:auto;left:0;border-left:0;border-right:1px solid var(--border)}
html[dir="ltr"] .sidebar.closed{transform:translateX(-100%)}
html[dir="ltr"] .main,html[dir="ltr"] .footer{margin-right:0;margin-left:var(--sidebar-w)}
html[dir="ltr"] .main.sidebar-hidden,html[dir="ltr"] .footer.sidebar-hidden{margin-left:0}
html[dir="ltr"] .header{right:0;left:var(--sidebar-w)}
html[dir="ltr"] .sidebar.closed~.header{left:0}
html[dir="ltr"] .input-leading-icon{right:auto;left:15px}
html[dir="ltr"] .input-with-icon input{padding-right:14px;padding-left:44px}
html[dir="ltr"] .input-with-icon.has-toggle input{padding-right:48px}
html[dir="ltr"] .input-toggle-btn{left:auto;right:10px}
html[dir="ltr"] .form-label,html[dir="ltr"] .sidebar-user-meta,html[dir="ltr"] .nav-item{text-align:left}
@media(min-width:1025px){
  .main{width:calc(100% - var(--sidebar-w))}
  .main.sidebar-hidden{width:100%}
  .header{right:var(--sidebar-w)}
  .sidebar.closed~.header{right:0}
  html[dir="ltr"] .header{right:0;left:var(--sidebar-w)}
  html[dir="ltr"] .sidebar.closed~.header{left:0}
}
@media(max-width:1024px){
  .main{width:100%}
  html[dir="ltr"] .main,html[dir="ltr"] .footer{margin-left:0}
  html[dir="ltr"] .header{left:0}
  .storage-status{margin-inline:12px}
}
@media(max-width:768px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat-card{padding:16px 10px;min-width:0;gap:8px}
  .stat-value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
  .stat-label{line-height:1.6}
  .finance-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .finance-chip{width:auto;padding:12px;overflow-wrap:anywhere}
  .finance-chip-value{font-variant-numeric:tabular-nums}
  .main{padding-bottom:90px}
  .footer{padding-bottom:24px}
  .modal-overlay{padding:10px}
  .modal{max-height:calc(100dvh - 20px);border-radius:16px}
  .modal-header{align-items:center}
  .modal-header>div:not(.modal-title){flex-wrap:wrap;justify-content:flex-end}
  .modal-footer .btn{flex:1}
  .page-toolbar .section-title{overflow-wrap:anywhere}
  .header-actions{gap:5px}
  .header-title{font-size:14px}
  .header .pill-btn{padding:6px 9px}
  .login-card{border-radius:22px;padding:28px 22px}
}
@media(max-width:360px){.header-title{font-size:12px}.header{gap:6px;padding-inline:8px}.finance-bar{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.skip-link,.storage-status{display:none!important}}

/* ===== PACKET LABELS ===== */
.labels-sub{font-size:12.5px;color:var(--text3);font-weight:600}
.labels-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:rgba(255,255,255,.22);font-size:12px;font-weight:800}
.labels-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.labels-main{min-width:0}
.labels-side>*{flex-shrink:0}
.labels-side{position:sticky;top:calc(var(--header-h) + 16px);display:flex;flex-direction:column;gap:12px;min-width:0;max-height:calc(100vh - var(--header-h) - 120px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-radius:var(--radius)}
.labels-scan{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:14px;border-radius:var(--radius);background:linear-gradient(135deg,var(--primary-light),var(--surface));border:1.5px dashed var(--primary);box-shadow:var(--shadow)}
.labels-scan>i{font-size:22px;color:var(--primary)}
.labels-scan input{flex:1;min-width:0;border:none;background:transparent;font:inherit;font-size:15px;font-weight:700;color:var(--text);outline:none;letter-spacing:.04em}
.labels-scan input::placeholder{color:var(--text3);font-weight:600;letter-spacing:0}
.labels-scan-hint{font-size:11px;font-weight:800;color:var(--primary);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:2px 8px;direction:ltr}
.labels-list{padding:0;overflow:hidden}
.labels-list-head{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface2);font-size:12.5px;font-weight:700;color:var(--text2)}
.labels-count{margin-inline-start:auto;color:var(--text3)}
.labels-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.labels-check input,.labels-toggle input{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}
.label-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--t),box-shadow var(--t)}
.label-row:last-child{border-bottom:none}
.label-row:hover{background:var(--surface2)}
.label-row.selected{background:linear-gradient(90deg,transparent,var(--primary-light));box-shadow:inset -3px 0 0 var(--primary)}
.label-row.previewing .label-row-name::after{content:'\f06e';font-family:'Font Awesome 6 Free';font-weight:900;font-size:11px;color:var(--primary);margin-inline-start:8px}
.label-row.flash{animation:labelFlash 1.4s ease}
@keyframes labelFlash{0%,40%{background:var(--warning-soft)}100%{background:transparent}}
.label-row-main{min-width:0}
.label-row-name{font-weight:800;font-size:14.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.label-row-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text3);font-weight:600;margin-top:2px}
.label-row-meta i{opacity:.7;margin-inline-end:3px}
.label-row-work{color:var(--text2)}
.label-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.label-row-code{font-family:'Courier New',monospace;font-size:12px;font-weight:700;color:var(--text2);letter-spacing:.04em;white-space:nowrap}
.labels-card{padding:14px}
.labels-card-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text);margin-bottom:8px}
.labels-card-title i{color:var(--primary)}
.labels-size-tag{margin-inline-start:auto;font-size:11.5px;font-weight:800;color:var(--primary);background:var(--primary-light);border-radius:6px;padding:1px 8px}
.labels-preview-stage{display:flex;justify-content:center;align-items:center;padding:12px;border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg,var(--surface2) 0 10px,var(--surface3) 10px 20px);min-height:100px}
.labels-preview-frame{position:relative;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 26px rgba(15,70,64,.18);background:#fff;overflow:hidden;flex-shrink:0}
.labels-preview-frame iframe{position:absolute;top:0;left:0;border:0;transform-origin:0 0;pointer-events:none;background:#fff}
.labels-preview-note{font-size:11px;color:var(--text3);text-align:center;margin-top:6px;font-weight:600}
.labels-sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.labels-size{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:7px 4px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text2);font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:var(--t)}
.labels-size:hover{border-color:var(--primary);color:var(--primary)}
.labels-size.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);box-shadow:var(--focus-ring)}
.labels-size-shape{width:20px;max-height:15px;flex-shrink:0;border:1.5px solid currentColor;border-radius:3px;background:var(--surface)}
.labels-custom-size{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;margin-top:8px}
.labels-custom-size .form-control{padding:7px 10px;min-height:0}
.labels-custom-size .form-group{margin-bottom:0}
.labels-custom-size .form-label{font-size:11.5px}
.labels-x{padding-bottom:12px;font-weight:800;color:var(--text3)}
.labels-toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.labels-toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text2);cursor:pointer;padding:6px 8px;line-height:1.3;border-radius:8px;border:1px solid var(--border);background:var(--surface2)}
.labels-copies{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px;font-weight:700;color:var(--text2)}
.labels-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--border);border-radius:10px;overflow:hidden;direction:ltr}
.labels-stepper button{width:30px;height:30px;border:none;background:var(--surface2);color:var(--primary);font-size:18px;font-weight:800;cursor:pointer}
.labels-stepper button:disabled{opacity:.35;cursor:not-allowed}
.labels-stepper b{min-width:34px;text-align:center;font-size:14px;color:var(--text)}
.labels-guide{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);font-size:12px;line-height:1.7}
.labels-guide summary{cursor:pointer;padding:9px 12px;font-weight:800;color:var(--text)}
.labels-guide summary i{color:var(--warning);margin-inline-end:6px}
.labels-guide ol{margin:0;padding:0 30px 10px 14px;color:var(--text2);display:flex;flex-direction:column;gap:6px}
[dir=ltr] .labels-guide ol{padding:0 14px 10px 30px}
.labels-modal-preview{display:flex;justify-content:center;align-items:center;padding:16px;margin-bottom:14px;border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg,var(--surface2) 0 10px,var(--surface3) 10px 20px);min-height:110px}
@media(max-width:1100px){
  .labels-layout{grid-template-columns:1fr}
  .labels-side{position:static;max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}
@media(max-width:600px){
  .label-row{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:12px}
  .label-row-side{grid-column:2/3;grid-row:2;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px}
  .label-row>.btn{grid-column:3;grid-row:1/3}
  .labels-scan-hint{display:none}
  .labels-sizes{grid-template-columns:repeat(3,1fr)}
}

/* ===== LIVE SYNC CHIP ===== */
.sync-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--border);background:var(--surface);color:var(--text2);white-space:nowrap;cursor:default}
.sync-chip[hidden]{display:none}
.sync-chip i{font-size:12px}
.sync-chip.sync-synced{color:var(--success-dark);border-color:color-mix(in srgb,var(--success) 45%,transparent);background:var(--success-light)}
.sync-chip.sync-synced i{animation:syncPulse 2.4s ease-in-out infinite}
.sync-chip.sync-saving{color:var(--info-dark);border-color:color-mix(in srgb,var(--info) 45%,transparent);background:var(--info-light)}
.sync-chip.sync-offline{color:var(--warning-dark);border-color:var(--warning-border);background:var(--warning-light)}
.sync-chip.sync-error{color:var(--danger-dark);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:var(--danger-light)}
@keyframes syncPulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.sync-chip i{animation:none!important}}
@media(max-width:600px){.sync-chip{padding:0;width:34px;justify-content:center}.sync-chip span{display:none}}

/* ===== STORAGE & DATA (settings) ===== */
.storage-card .card-header{gap:10px;flex-wrap:wrap}
.storage-card .card-title{display:flex;align-items:center;gap:8px}
.storage-meters{display:grid;gap:12px;margin-bottom:16px}
.storage-meter{padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2)}
.storage-meter-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px}
.storage-meter-head i{color:var(--primary)}
.storage-meter-head b{margin-inline-start:auto;font-size:15px;color:var(--primary)}
.storage-bar{height:10px;border-radius:999px;background:var(--surface3);overflow:hidden}
.storage-bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--accent2));transition:width .6s cubic-bezier(.4,0,.2,1)}
.storage-bar-fill.warning{background:linear-gradient(90deg,var(--warning),#f59e0b)}
.storage-bar-fill.danger{background:linear-gradient(90deg,var(--danger),#f43f5e)}
.storage-meter-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--text3);font-weight:600}
.storage-meter-foot b{color:var(--text)}
.storage-note{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-size:11.5px;color:var(--text3);font-weight:600;line-height:1.6}
.storage-note i{margin-top:3px;color:var(--primary)}
.storage-table{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px}
.storage-table table{font-size:12.5px}
.storage-table td,.storage-table th{padding:8px 12px}
.storage-cleanup-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px}
.storage-cleanup-title i{color:var(--primary)}
.storage-actions{display:flex;flex-direction:column;gap:8px}
.storage-actions .btn{justify-content:flex-start;gap:8px;text-align:start;white-space:normal;line-height:1.5}
.storage-actions .btn .badge{margin-inline-start:auto}
.settings-grid>*{min-width:0}
.storage-table{overflow-x:auto}
.storage-table td:first-child{white-space:nowrap}
.storage-table table{min-width:0;width:100%}
@media(max-width:600px){.storage-table td,.storage-table th{padding:7px 8px}}
.storage-table td:nth-child(n+2),.storage-table th{white-space:nowrap}
.sync-chip.sync-local{color:var(--warning-darker);border-color:var(--warning-border);background:var(--warning-soft)}
.sync-chip.sync-connecting{color:var(--info-dark);border-color:color-mix(in srgb,var(--info) 45%,transparent);background:var(--info-light)}
.update-notice{position:fixed;z-index:3000;inset-inline:16px;bottom:calc(16px + env(safe-area-inset-bottom));margin:0 auto;max-width:560px;display:flex;align-items:center;gap:12px;padding:12px 14px 12px 18px;border-radius:14px;background:var(--primary);color:#fff;font-weight:700;font-size:13.5px;box-shadow:var(--shadow-lg);animation:fadeIn .3s ease}
.update-notice i{font-size:18px}
.update-notice span{flex:1}
.update-notice .btn{background:#fff;color:var(--primary);font-weight:800;border:none}
@media(max-width:1024px){.update-notice{bottom:calc(84px + env(safe-area-inset-bottom))}}
/* field that the form just filled in for you */
.auto-filled{box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 35%,transparent)!important;transition:box-shadow .3s}

/* ===== CONTACT (call / WhatsApp / Telegram / Viber) ===== */
.contact-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.contact-number{direction:ltr;unicode-bidi:isolate;color:var(--primary);font-weight:800;text-decoration:none;letter-spacing:.02em;white-space:nowrap}
.contact-number:hover{text-decoration:underline}
.contact-actions{display:inline-flex;align-items:center;gap:6px}
.contact-btn{--c:var(--primary);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);font-size:16px;text-decoration:none;transition:transform var(--t),background var(--t),color var(--t)}
.contact-btn:hover{background:var(--c);color:#fff;transform:translateY(-1px)}
.contact-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.contact-btn.call{--c:var(--primary)}
.contact-btn.whatsapp{--c:#25D366}
.contact-btn.telegram{--c:#229ED9}
.contact-btn.viber{--c:#7360F2}
.contact-actions.xs .contact-btn{width:28px;height:28px;font-size:13px}
.contact-line.compact{gap:6px}
@media(pointer:coarse){.contact-actions .contact-btn,.contact-actions.xs .contact-btn{width:40px;height:40px}.contact-line{row-gap:8px}}
.contact-card-row{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}
[data-theme="dark"] .contact-btn.whatsapp{--c:#3ee07a}
[data-theme="dark"] .contact-btn.telegram{--c:#4cb8ef}
[data-theme="dark"] .contact-btn.viber{--c:#9a8bff}

/* ===== DISCOUNT NOTE ===== */
.disc-note{display:inline-flex;align-items:center;gap:4px;margin-top:3px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:800;color:var(--warning-dark);background:var(--warning-light);border:1px solid var(--warning-border);white-space:nowrap}
.disc-note i{font-size:10px}
td .disc-note,span .disc-note{display:flex;width:fit-content}
.finance-chip.warning .finance-chip-value{color:var(--warning-dark)}

/* ===== STORAGE: review rows + cleanup list ===== */
.storage-action{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:start;transition:var(--t)}
.storage-action:hover{border-color:var(--primary);background:var(--surface2)}
.storage-action>i{color:var(--primary);width:18px;text-align:center}
.storage-action-label{flex:1}
.storage-action-go{font-size:12px;color:var(--primary);font-weight:800;white-space:nowrap}
.storage-action-go i{font-size:10px;margin-inline-start:4px}
[dir="ltr"] .storage-action-go i,html[lang="en"] .storage-action-go i{transform:scaleX(-1)}
.cleanup-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);margin-bottom:10px;font-size:13px;font-weight:700}
.cleanup-count{margin-inline-start:auto;color:var(--text3)}
.cleanup-list{max-height:min(56vh,520px);overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}
.cleanup-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--t)}
.cleanup-item:last-child{border-bottom:none}
.cleanup-item:hover{background:var(--surface2)}
.cleanup-item.selected{background:var(--danger-light)}
.cleanup-item input{width:18px;height:18px;accent-color:var(--danger)}
.cleanup-item-title{font-weight:800;font-size:13.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cleanup-item-sub{font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cleanup-item-meta{font-size:11.5px;color:var(--text3);white-space:nowrap;text-align:end}
@media(max-width:600px){.cleanup-item{grid-template-columns:auto minmax(0,1fr)}.cleanup-item-meta{grid-column:2;text-align:start}}

/* Settings: social media links editor */
.social-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.social-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"ico type move" "val val val";gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--border)}
.social-row:last-child{border-bottom:0;padding-bottom:0}
.social-row .social-ico{grid-area:ico}
.social-row .form-select{grid-area:type}
.social-row .social-move{grid-area:move}
.social-row .form-control{grid-area:val}
.social-row .social-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:19px}
.social-row .social-move{display:flex;gap:2px}
.social-row .form-control,.social-row .form-select{min-width:0}
.social-preview{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px;border:1px dashed var(--border);border-radius:14px;background:var(--surface2)}
.social-preview svg.qr{width:120px;height:120px;border-radius:8px;background:#fff;padding:4px;flex:0 0 auto}
.social-preview .social-preview-info{flex:1;min-width:160px;display:flex;flex-direction:column;gap:8px}
.social-empty{color:var(--text3);font-size:13px;padding:10px;text-align:center;border:1px dashed var(--border);border-radius:12px}

/* Payment form: searchable case list */
.pay-case-search{margin-bottom:8px}
.pay-case-list{border:1.5px solid var(--border);border-radius:14px;max-height:300px;overflow-y:auto;background:var(--surface);padding:6px;display:flex;flex-direction:column;gap:6px}
.pay-case-list.single{max-height:none}
.pay-case-list.is-invalid{border-color:var(--danger)}
.pay-case-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid transparent;border-radius:12px;cursor:pointer;transition:var(--t);background:var(--surface2)}
.pay-case-item[hidden]{display:none}
.pay-case-item:hover,.pay-case-item:focus-visible{border-color:var(--primary);outline:none}
.pay-case-item.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.pci-check{flex:0 0 24px;height:24px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;color:transparent;font-size:11px;background:var(--surface)}
.pay-case-item.selected .pci-check{background:var(--primary);border-color:var(--primary);color:#fff}
.pci-main{flex:1;min-width:0}
.pci-name{font-weight:800;font-size:14.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pci-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--text3);margin-top:3px}
.pci-meta i{opacity:.7;margin-inline-end:3px}
.pci-amount{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;line-height:1.2;padding:4px 8px;border-radius:10px;font-size:13px}
.pci-amount small{font-size:10.5px;font-weight:600}
.pci-amount.due{color:var(--danger);background:var(--danger-light)}
.pci-amount.paid{color:var(--success);background:var(--success-light)}
.pay-case-empty{text-align:center;color:var(--text3);padding:18px 8px;font-size:13px}

/* Share as PDF: preparing spinner */
.share-spinner{width:42px;height:42px;margin:0 auto;border-radius:50%;border:4px solid var(--primary-light);border-top-color:var(--primary);animation:share-spin .8s linear infinite}
@keyframes share-spin{to{transform:rotate(360deg)}}

/* Doctor monthly payment reminder (25th-27th) */
.payment-reminder-modal{max-width:420px}
.payment-reminder-modal .modal-body{text-align:center}
.payment-reminder-icon{width:64px;height:64px;margin:4px auto 12px;border-radius:50%;display:grid;place-items:center;background:var(--primary-light);color:var(--primary);font-size:28px}
.payment-reminder-text{font-size:15px;font-weight:700;line-height:1.8;margin:0 0 14px;color:var(--text)}
.payment-reminder-due{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;border:1.5px solid var(--primary);background:var(--primary-light);margin-bottom:12px}
.payment-reminder-due span{font-size:13px;color:var(--text2)}
.payment-reminder-due strong{font-size:18px;color:var(--primary)}
.payment-reminder-call{width:100%;justify-content:center}
.payment-reminder-modal .modal-footer .btn{flex:1;justify-content:center}

/* ===== Shades: two-part picker (Classic / VITA 3D) ===== */
.shade-picker{display:flex;flex-direction:column;min-width:0}
.shade-sys-tabs{
  display:flex;flex-wrap:wrap;gap:3px;padding:3px;margin:2px 2px 6px;border-radius:10px;
  background:var(--lab-tint,#eaf6f4);border:1px solid var(--lab-border,#cfe8e4)
}
.shade-sys-tab{
  flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  min-height:32px;padding:4px 8px;border:none;border-radius:8px;cursor:pointer;
  font-family:inherit;font-size:11.5px;font-weight:800;white-space:nowrap;
  background:transparent;color:var(--lab-teal-dark,#1f6e68);transition:background .15s,color .15s,box-shadow .15s
}
.shade-sys-tab span{font-size:9.5px;font-weight:800;padding:0 6px;border-radius:99px;background:rgba(31,110,104,.12);line-height:1.6}
.shade-sys-tab.active{background:var(--lab-teal-dark,#1f6e68);color:#fff;box-shadow:0 2px 6px rgba(31,110,104,.25)}
.shade-sys-tab.active span{background:rgba(255,255,255,.22)}
.shade-sys-tab:focus-visible{outline:2px solid var(--lab-teal,#2f9a8f);outline-offset:1px}
.shade-sys-pane{display:flex;flex-direction:column;gap:6px}
.shade-group{display:flex;flex-direction:column;gap:4px}
.shade-sys-pane[data-sys="3d"] .shade-group+.shade-group{padding-top:6px;border-top:1px dashed var(--lab-border,#cfe8e4)}
/* Compact tabs inside the narrow paper-form column */
.lab-order-sheet .shade-row{gap:3px}
.lab-order-sheet .shade-swatch{width:27px;height:32px}
.lab-order-sheet .shade-sys-tab{padding:3px 6px;font-size:10.5px}
.shade-sys-pane[hidden]{display:none}
.shade-row-lab{direction:ltr}
.shade-swatch:focus-visible{outline:2px solid var(--lab-teal-dark,#1f6e68);outline-offset:2px}
.shade-preview-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.shade-preview-txt small{font-size:10px;font-weight:700;color:#5a7a74;white-space:nowrap}
/* The picker inside dialogs follows the app theme instead of the paper sheet */
.shade-picker-box{
  --lab-teal:var(--accent2);--lab-teal-dark:var(--primary);--lab-border:var(--border);--lab-tint:var(--surface2);
  padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)
}
.shade-picker-box .shade-row{gap:6px}
.shade-picker-box .shade-preview{background:var(--surface);border-color:var(--border)}
.shade-picker-box .shade-preview-txt small{color:var(--text3)}
.shade-picker-box .lab-shade-custom{width:100%;margin:8px 0 0;background:var(--surface);color:var(--primary);border-color:var(--border)}
.shade-picker-box .shade-sys-tab.active{color:var(--surface)}
[data-theme="dark"] .shade-picker-box .shade-sys-tab.active{color:#06201d}
/* Saved shade shown as a chip */
.shade-badge{display:inline-flex;align-items:center;gap:6px;direction:ltr;unicode-bidi:isolate}
.shade-badge-dot{width:18px;height:20px;border-radius:5px 5px 8px 8px;border:1px solid rgba(0,0,0,.15);flex-shrink:0}
.shade-badge small{font-size:10px;font-weight:700;color:var(--text3)}

/* ===== Shades admin page ===== */
.shades-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.shades-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.shade-parts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.shade-part{
  display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:start;cursor:pointer;
  font-family:inherit;color:var(--text);background:var(--surface);
  border:2px solid var(--border);border-radius:var(--radius);transition:var(--t)
}
.shade-part:hover{border-color:var(--primary)}
.shade-part:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.shade-part.active{border-color:var(--primary);background:linear-gradient(135deg,var(--primary-light),var(--surface));box-shadow:var(--shadow)}
.shade-part-strip{display:flex;gap:2px;flex-shrink:0;direction:ltr}
.shade-part-strip span{width:12px;height:38px;border-radius:4px 4px 7px 7px;border:1px solid rgba(0,0,0,.1);background:var(--surface3)}
.shade-part-txt{display:flex;flex-direction:column;min-width:0;line-height:1.4}
.shade-part-txt b{font-size:15px;font-weight:900}
.shade-part-txt small{font-size:12px;color:var(--text3);font-weight:600}
.shade-admin-group{margin-bottom:18px}
.shade-admin-group[hidden]{display:none}
.shade-admin-group-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:800;color:var(--text2)}
.shade-admin-group-lab{
  display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;
  background:var(--primary);color:var(--surface);font-size:13px;font-weight:900
}
.shade-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px}
.shade-card{
  display:flex;align-items:center;gap:12px;padding:12px;min-width:0;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:var(--t)
}
.shade-card[hidden]{display:none}
.shade-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.shade-card.is-off{opacity:.62}
.shade-card.is-off .shade-card-tooth{filter:grayscale(.5)}
.shade-card-tooth{
  width:40px;height:50px;flex-shrink:0;border-radius:10px 10px 18px 18px;
  border:1px solid rgba(0,0,0,.14);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),0 2px 6px rgba(0,0,0,.08)
}
.shade-card-body{flex:1;min-width:0}
.shade-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shade-card-top b{font-size:17px;font-weight:900;color:var(--text)}
.shade-card-top code{font-size:11px;color:var(--text3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.shade-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.shade-tag{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--surface3);color:var(--text2);white-space:nowrap}
.shade-tag-low{background:#fef3c7;color:#92400e}
.shade-tag-high{background:#e0f2fe;color:#075985}
.shade-tag-used{background:var(--primary-light);color:var(--primary)}
[data-theme="dark"] .shade-tag-low{background:#3a2a07;color:#fcd34d}
[data-theme="dark"] .shade-tag-high{background:#0c2a3d;color:#7dd3fc}
.shade-card-note{font-size:12px;color:var(--text3);margin-top:5px;overflow-wrap:anywhere}
.shade-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
/* On/off switch */
.shade-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex-shrink:0}
.shade-switch input{position:absolute;opacity:0;width:1px;height:1px}
.shade-switch span{width:40px;height:22px;border-radius:99px;background:var(--border);position:relative;transition:background .2s}
.shade-switch span::after{
  content:'';position:absolute;top:3px;inset-inline-start:3px;width:16px;height:16px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s
}
.shade-switch input:checked+span{background:var(--primary)}
.shade-switch input:checked+span::after{transform:translateX(-18px)}
[dir="ltr"] .shade-switch input:checked+span::after{transform:translateX(18px)}
.shade-switch input:focus-visible+span{box-shadow:var(--focus-ring)}
.shade-active-row{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;font-size:13px;margin-top:4px}
/* Add/edit dialog */
.shade-modal-preview{
  display:flex;align-items:center;gap:14px;padding:12px 14px;margin-bottom:14px;
  border-radius:var(--radius);background:var(--surface2);border:1px solid var(--border);direction:ltr
}
.shade-modal-tooth{width:46px;height:58px;border-radius:12px 12px 20px 20px;border:1px solid rgba(0,0,0,.14);box-shadow:inset 0 2px 0 rgba(255,255,255,.55);flex-shrink:0}
.shade-modal-code{font-size:24px;font-weight:900;color:var(--primary);line-height:1.1}
.shade-modal-sys{font-size:12px;font-weight:700;color:var(--text3)}
.shade-color-field{display:flex;gap:8px;align-items:center}
.shade-color-field input[type="color"]{width:52px;height:var(--field-h);padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex-shrink:0}
.shade-color-field .form-control{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}

@media(max-width:640px){
  .shade-parts{grid-template-columns:1fr;gap:8px}
  .shade-part{padding:12px}
  .shade-part-strip span{width:10px;height:32px}
  .shades-head-actions{width:100%}
  .shades-head-actions .btn{flex:1;justify-content:center}
  .shade-card{padding:10px;gap:10px}
  .shade-card-tooth{width:34px;height:44px}
  .shade-picker-box .shade-swatch{width:34px;height:40px}
  .shade-sys-tab{min-height:38px;font-size:12px}
}
@media(hover:none){
  .shade-swatch:hover{transform:none}
}

/* ===== Clinic assistants ===== */
:root{--asst:#7c3aed;--asst-bg:#f3e8ff;--asst-border:#ddd6fe}
[data-theme="dark"]{--asst:#c4b5fd;--asst-bg:#2e1065;--asst-border:#4c1d95}
.badge-assistant{background:var(--asst-bg);color:var(--asst);border:1px solid var(--asst-border);font-weight:800;gap:4px;margin-top:4px;white-space:nowrap}
.assistant-card .doc-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.assistant-card-main{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.assistant-clinics{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.assistant-login{display:flex;align-items:center;gap:8px;font-size:12px;padding:8px 10px;border-radius:var(--radius-sm);margin:10px 0;background:var(--surface2);color:var(--text2);border:1px dashed var(--border)}
.assistant-login.on{color:var(--success-dark);background:var(--success-light);border-color:var(--success)}
.assistant-login.off{color:var(--text3)}
.perm-card{margin-bottom:16px}
.perm-card>summary{cursor:pointer;padding:14px 16px;font-weight:800;display:flex;align-items:center;gap:8px;list-style:none}
.perm-card>summary::-webkit-details-marker{display:none}
.perm-card>summary::after{content:'\25BE';margin-inline-start:auto;color:var(--text3)}
.perm-card[open]>summary::after{content:'\25B4'}
.perm-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}
.perm-col{background:var(--surface2);border-radius:var(--radius-sm);padding:12px}
.perm-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.perm-title{font-weight:800;font-size:13px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.perm-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text2);line-height:1.5}
.perm-item>i{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;margin-top:2px}
.perm-item span i{color:var(--text3);margin-inline-end:2px}
.perm-yes{color:var(--success-dark)}
.perm-no{color:var(--danger-dark)}
.perm-item.perm-yes>i{background:var(--success-light);color:var(--success-dark)}
.perm-item.perm-no>i{background:var(--danger-light);color:var(--danger-dark)}
.perm-item.perm-yes,.perm-item.perm-no{color:var(--text2)}
.perm-box.compact .perm-item{font-size:12px}
.assistant-form-note{display:flex;gap:12px;align-items:flex-start;max-width:980px;margin:0 auto 14px;padding:12px 14px;border-radius:var(--radius);background:var(--asst-bg);border:1px solid var(--asst-border);color:var(--text)}
.assistant-form-note>i{font-size:22px;color:var(--asst);margin-top:2px}
.assistant-form-note strong{display:block;margin-bottom:2px}
.assistant-form-note span{font-size:13px;color:var(--text2)}
.assistant-order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:14px}
.assistant-order-state{font-size:12px;font-weight:700;padding:7px 10px;border-radius:var(--radius-sm);margin:8px 0;display:flex;align-items:center;gap:6px}
.assistant-order-state.state-pending{background:var(--warning-soft,#fff7ed);color:var(--warning-dark)}
.assistant-order-state.state-approved{background:var(--success-light);color:var(--success-dark)}
.assistant-order-state.state-rejected{background:var(--danger-light);color:var(--danger-dark)}
.assistant-hero{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding:18px;margin-bottom:18px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--asst-bg),var(--surface));border:1px solid var(--asst-border)}
.assistant-hero-hello{font-size:20px;font-weight:900}
.assistant-hero-sub{font-size:13px;color:var(--text3);margin-top:2px}
.assistant-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.assistant-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--t)}
.assistant-row:hover{background:var(--surface2)}
.assistant-row:last-child{border-bottom:none}
.assistant-row-title{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assistant-row-meta{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:600px){.assistant-hero-actions{width:100%}.assistant-hero-actions .btn{flex:1}}

/* ===== QUICK CASE STATUS (admin) ===== */
.status-pick{cursor:pointer;font-family:inherit;line-height:inherit}
.status-pick i{font-size:9px;opacity:.65;transition:transform .2s}
.status-pick:hover i{opacity:1}
.status-pick:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.status-menu{position:fixed;z-index:10050;min-width:170px;padding:6px;display:flex;flex-direction:column;gap:2px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);
  animation:statusMenuIn .14s ease-out}
@keyframes statusMenuIn{from{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}
.status-menu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-family:inherit;text-align:start}
.status-menu-item:hover,.status-menu-item:focus-visible{background:var(--surface2);outline:none}
.status-menu-item.current{background:var(--surface3)}
.status-menu-item .badge{font-size:12.5px;padding:5px 12px}
.status-menu-check{color:var(--primary);font-size:13px}
@media (max-width:600px){.status-menu-item{padding:11px 12px}}

/* Settings: number style switch (Kurdish ٠-٩ / English 0-9) */
.digits-toggle{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);cursor:pointer;transition:var(--t)}
.digits-toggle:hover{border-color:var(--primary)}
.digits-toggle.on{border-color:var(--primary);background:var(--primary-light)}
.digits-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.digits-toggle-text b{font-size:14px;color:var(--text)}
.digits-toggle-text small{font-size:12px;line-height:1.8;color:var(--text3)}
.digits-switch-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.digits-switch{position:relative;flex-shrink:0;width:48px;height:28px;border-radius:999px;background:var(--border);transition:background .2s}
.digits-switch::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:inset-inline-start .2s}
.digits-switch-input:checked+.digits-switch{background:var(--primary)}
.digits-switch-input:checked+.digits-switch::after{inset-inline-start:23px}
.digits-switch-input:focus-visible+.digits-switch{outline:2px solid var(--primary);outline-offset:3px}
.digits-preview{display:flex;align-items:center;gap:10px;margin-top:12px}
.digits-sample{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);color:var(--text3);transition:var(--t)}
.digits-sample.active{border-style:solid;border-color:var(--primary);background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.digits-sample-num{font-size:17px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.digits-sample-cap{font-size:11.5px;font-weight:700}
.digits-sample.active .digits-sample-cap{color:var(--primary)}
.digits-arrow{color:var(--text3);font-size:13px;flex-shrink:0}

/* Expenses: amount per category; a chip filters the list by that category */
.expense-cat-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.expense-cat-chip{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border-radius:12px;
  border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;
  transition:var(--t);min-width:0;max-width:100%
}
.expense-cat-chip:hover{border-color:var(--warning)}
.expense-cat-chip.is-active{border-color:var(--warning);background:var(--warning-light);box-shadow:0 0 0 2px var(--warning-light)}
.expense-cat-name{font-size:12px;font-weight:800;overflow-wrap:anywhere}
.expense-cat-name em{font-style:normal;font-size:11px;color:var(--text3);font-weight:700}
.expense-cat-total{font-size:14px;font-weight:900;color:var(--danger-dark)}

/* Doctor accounts and payments: one readable hierarchy on desktop and phones. */
.payment-management{max-width:1600px;margin-inline:auto}
.payment-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 28px;margin-bottom:20px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(125deg,var(--surface),var(--primary-light));box-shadow:var(--shadow)}
.payment-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--primary);margin-bottom:6px}
.payment-hero h1{font-size:26px;color:var(--text);line-height:1.7;margin:0}
.payment-hero p{margin:6px 0 0;font-size:12px;color:var(--text2);line-height:1.9}
.payment-hero-actions,.payment-selected-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.payment-hero-actions{flex-shrink:0}
.payment-tabs{display:flex;gap:6px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:16px}
.payment-tabs button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:800;font-size:13px;border:0;border-radius:9px;background:transparent;color:var(--text2);padding:13px 10px;cursor:pointer;line-height:1.7}
.payment-tabs button[aria-selected="true"]{background:var(--primary);color:#fff;box-shadow:0 3px 10px rgba(15,118,110,.16)}
.payment-tabs button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.payment-filters{padding:18px;margin-bottom:18px;overflow:visible}
.payment-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.payment-filters>.payment-filter-grid{grid-template-columns:2fr 1fr 1fr}
.payment-filter-grid .form-group,.doctor-directory-filters .form-group{margin:0;min-width:0}
.payment-filter-grid .form-control,.payment-filter-grid .form-select{width:100%;min-width:0;font-size:12px}
.payment-filter-grid .form-label{font-size:11px}
.payment-search-field{min-width:0}
.payment-search-field .search-bar{width:100%;min-width:0;margin:0}
.payment-search-field input{min-width:0;width:100%}
.payment-advanced-filters{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
.payment-advanced-filters summary{cursor:pointer;font-weight:800;font-size:12px;color:var(--primary);padding:5px 0;line-height:1.9}
.payment-advanced-filters summary span{font-size:10px;color:var(--text3);font-weight:500;margin-inline-start:8px}
.payment-advanced-filters[open]>.payment-filter-grid{margin-top:12px}
.payment-filter-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.payment-quick-ranges{display:flex;gap:6px;flex-wrap:wrap}
.payment-selected-doctor{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-inline-start:4px solid var(--primary);border-radius:14px;padding:16px;margin-bottom:16px}
.payment-selected-doctor>div{min-width:0}.payment-selected-doctor h2{font-size:16px;margin:0;overflow-wrap:anywhere}.payment-selected-doctor p{font-size:11px;color:var(--text3);margin:5px 0 0}.payment-selected-actions{margin-inline-start:auto}
.payment-scope{display:flex;align-items:flex-start;gap:8px;color:var(--text3);font-size:11px;line-height:1.9;margin:10px 2px 14px;overflow-wrap:anywhere}.payment-scope i{margin-top:4px}
.payment-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}
.payment-metric{border:1px solid var(--border);border-radius:15px;padding:17px 15px;background:var(--surface);min-width:0;box-shadow:var(--shadow-sm)}
.payment-metric-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--text2);line-height:1.9;margin-bottom:12px}.payment-metric-top i{color:var(--text3)}
.payment-metric>strong{display:block;font-size:clamp(17px,1.35vw,23px);line-height:1.8;font-weight:900;color:var(--text);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.payment-metric small{font-size:10px;font-weight:600;color:var(--text3)}
.payment-metric-note{font-size:9px;color:var(--text3);line-height:1.9;margin-top:7px}.payment-metric.received{border-color:rgba(22,163,74,.25)}.payment-metric.received>strong,.payment-positive{color:var(--success)!important}.payment-metric.balance{border-color:rgba(220,38,38,.23)}.payment-metric.balance>strong,.payment-due{color:var(--danger)!important}.payment-metric.discount>strong{color:var(--warning-dark,#b45309)}
.payment-received-strip{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;background:var(--primary-light);border:1px solid var(--border);border-radius:14px}.payment-received-strip>div{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.payment-received-strip span{font-size:12px;font-weight:700;color:var(--text2)}.payment-received-strip strong{font-size:18px;color:var(--primary);font-variant-numeric:tabular-nums}.payment-received-strip p{font-size:10px;color:var(--text3);line-height:1.9;margin:0}
.payment-scope-note{font-size:11px;line-height:2;color:var(--text3);margin:10px 2px 18px;overflow-wrap:anywhere}
.payment-accounts-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.payment-account{padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);min-width:0;display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(260px,1.8fr) minmax(140px,1fr) minmax(200px,1.3fr);grid-template-areas:"identity details balance actions" "contact details balance actions";gap:10px 20px;align-items:center}
.payment-account-head{grid-area:identity;display:flex;gap:12px;align-items:center;min-width:0}.payment-account-head>div{min-width:0}.payment-account h3{font-size:16px;line-height:1.7;margin:0;overflow-wrap:anywhere}.payment-account-head p{font-size:10px;color:var(--text3);line-height:1.9;margin:4px 0 0}
.payment-account-balance{grid-area:balance;padding:0 16px;border-inline-start:1px solid var(--border);margin:0;min-width:0}.payment-account-balance>span{display:block;font-size:11px;color:var(--text3);margin-bottom:5px}.payment-account-balance strong{font-size:22px;line-height:1.6;color:var(--danger);font-variant-numeric:tabular-nums}.payment-account-balance small{font-size:11px;color:var(--text3)}
.payment-account-details{grid-area:details;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;min-width:0}.payment-account-details>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;min-width:0}.payment-account-details dt{font-size:11px;color:var(--text2)}.payment-account-details dd{font-size:14px;overflow-wrap:anywhere;font-weight:800;margin:0;font-variant-numeric:tabular-nums}
.payment-account-actions{grid-area:actions;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;min-width:0}.payment-account-actions>.btn:first-child{grid-column:1/-1}.payment-account-actions .btn{font-size:11px;min-height:40px;white-space:normal}.payment-account .contact-card-row{grid-area:contact;margin:0;min-width:0;flex-wrap:wrap}
.payment-ledger{overflow:hidden}.payment-section-heading{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.payment-section-heading h2,.payment-section-heading h3{font-size:14px;line-height:1.8;margin:0}.payment-section-heading p{font-size:10px;line-height:1.9;color:var(--text3);margin:4px 0 0}
.payment-table-wrap{margin:0;max-width:100%;overflow-x:auto}.payment-responsive-table{width:100%;min-width:850px}.payment-responsive-table td{vertical-align:top;font-size:11px;font-variant-numeric:tabular-nums;line-height:1.9}.payment-responsive-table th{font-size:10px;white-space:normal}.payment-responsive-table td strong{font-weight:800}.payment-cell-note{display:block;font-size:9px;line-height:1.9;color:var(--text3);margin-top:3px;overflow-wrap:anywhere}.payment-note-cell{max-width:240px;overflow-wrap:anywhere}.payment-work{display:flex;flex-direction:column;gap:1px;margin-bottom:5px;line-height:1.8}.payment-work small{font-size:9px;color:var(--text3)}.payment-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.payment-row-actions{display:flex;gap:5px;flex-wrap:wrap}.payment-row-actions .btn{min-height:32px}.payment-empty{background:var(--surface);border:1px dashed var(--border);border-radius:18px}.payment-empty p{font-size:12px;line-height:1.9;color:var(--text3)}
.doctor-directory-tools{padding:16px;margin-bottom:20px;overflow:visible}.doctor-directory-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.doctor-directory-tools .payment-scope-note{margin-bottom:0}.payment-panel-shortcut{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;margin-bottom:16px;color:var(--text2);font-size:11px;line-height:1.9}
.doctor-payment-modal form{min-height:0;overflow-y:auto}.doctor-payment-intro{margin-bottom:16px}.doctor-payment-intro h3{margin:0;font-size:18px}.doctor-payment-intro p{font-size:11px;line-height:2;color:var(--text3);margin:6px 0 0}.doctor-payment-amount{font-size:22px;font-weight:800;min-height:50px}.doctor-payment-available{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;margin:5px 0 14px;font-size:11px}.doctor-payment-available strong{font-size:16px;color:var(--primary)}.doctor-payment-modal .payment-responsive-table{min-width:0}.doctor-payment-success .modal-body{text-align:center}.doctor-payment-success h2{font-size:26px;color:var(--success)}.doctor-payment-success p{font-size:12px;line-height:2;color:var(--text2)}.payment-receipt-reference{padding:9px;background:var(--surface2);border-radius:8px;overflow-wrap:anywhere}
@media(max-width:1200px){.payment-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-hero{align-items:flex-start;gap:16px}.payment-hero-actions{flex-shrink:1;justify-content:flex-end}.payment-hero-actions .btn{font-size:11px}}
@media(max-width:760px){.payment-hero{flex-direction:column;padding:20px;gap:16px}.payment-hero h1{font-size:23px}.payment-hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.payment-hero-actions .btn{white-space:normal;min-height:44px}.payment-tabs button{flex-direction:column;gap:5px;font-size:10px;padding:11px 5px}.payment-filters{padding:14px}.payment-filter-grid,.payment-filters>.payment-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-search-field{grid-column:1/-1}.payment-advanced-filters summary span{display:block;margin-inline-start:0}.payment-filter-footer{align-items:stretch}.payment-filter-footer>.btn{width:100%}.payment-quick-ranges{width:100%;display:grid;grid-template-columns:1fr 1fr}.payment-quick-ranges .btn{min-height:38px;font-size:10px;white-space:normal}.payment-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.payment-metric{padding:13px 11px}.payment-metric>strong{font-size:18px}.payment-metric-top{font-size:10px;margin-bottom:8px}.payment-metric-note{font-size:9px}.payment-selected-doctor{flex-wrap:wrap;padding:14px}.payment-selected-actions{width:100%;margin:0}.payment-selected-actions .btn{min-height:38px;flex:1;white-space:normal;font-size:10px}.payment-received-strip{align-items:flex-start;flex-direction:column;gap:6px;padding:14px}.payment-received-strip>div{gap:6px;flex-direction:column;align-items:flex-start}.payment-received-strip strong{font-size:19px}.payment-scope{font-size:10px}.payment-account{padding:16px}.payment-section-heading{padding:14px}.doctor-directory-filters{grid-template-columns:1fr 1fr}.doctor-directory-filters>.form-group:first-child{grid-column:1/-1}
  .payment-table-wrap{overflow:visible}
  .table-wrap table.payment-responsive-table{display:block;width:100%;min-width:0!important}
  .payment-responsive-table tbody{display:block;width:100%;min-width:0;padding:12px}
  .payment-responsive-table thead{display:none}
  .payment-responsive-table tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
  .payment-responsive-table tbody>tr:last-child{margin-bottom:0}
  .payment-responsive-table td{display:block;text-align:start;padding:7px 4px;min-width:0;max-width:none;border:0;white-space:normal;overflow-wrap:anywhere}
  .payment-responsive-table td:first-child,.payment-responsive-table td:last-child{grid-column:1/-1}
  .payment-responsive-table td:first-child>strong{font-size:14px;color:var(--primary)}
  .payment-responsive-table td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--text3);font-size:10px;font-weight:600;line-height:1.7}
  .payment-responsive-table td .badge{white-space:normal;overflow-wrap:anywhere}
  .payment-responsive-table td .payment-cell-note{margin-top:0}
  .payment-status-stack{flex-direction:row;flex-wrap:wrap}
  .payment-responsive-table td:last-child{padding-top:10px;border-top:1px solid var(--border)}
  .payment-row-actions .btn{min-height:38px;min-width:34px}
  .doctor-payment-modal .table-wrap{overflow:visible}.doctor-payment-modal .payment-responsive-table tbody{padding:0}.doctor-payment-modal .form-row{grid-template-columns:1fr}.doctor-payment-available{gap:9px}.doctor-payment-available .btn{width:100%;min-height:40px}.doctor-payment-success .modal-footer .btn{flex:1;white-space:normal;min-height:42px}}
@media(max-width:380px){.payment-metric-top{align-items:flex-start}.payment-metric-top i{display:none}.payment-metric>strong{font-size:16px}.payment-hero-actions{grid-template-columns:1fr}.payment-hero{padding:17px}.payment-filter-grid{gap:10px}.payment-filter-grid .form-control,.payment-filter-grid .form-select{font-size:11px}.payment-account-actions{grid-template-columns:1fr}.payment-account-actions>.btn:first-child{grid-column:auto}}

.payment-row-actions .btn{width:auto;flex:0 0 auto;margin:0;padding:7px 10px}
.payment-management .btn,.doctor-payment-modal .btn{margin-bottom:0}
.payment-account.is-settled .payment-account-balance strong{color:var(--success)}
.payment-account-actions .btn:disabled,.payment-row-actions .btn:disabled{opacity:.48;box-shadow:none;cursor:not-allowed;transform:none}

/* One full-width account row per doctor at every viewport size. */
@media(max-width:1200px){
  .payment-account{grid-template-columns:minmax(180px,1fr) minmax(0,1.4fr);grid-template-areas:"identity balance" "details actions" "contact actions";gap:16px 20px}
  .payment-account-balance{justify-self:stretch;text-align:end;border-inline-start:0;padding:0}
}
@media(max-width:700px){
  .payment-account{grid-template-columns:minmax(0,1fr);grid-template-areas:"identity" "balance" "details" "actions" "contact";gap:16px;padding:16px}
  .payment-account-balance{text-align:start;padding:0 0 14px;border-bottom:1px solid var(--border)}
  .payment-account-details{gap:10px}
  .payment-account-details dt{font-size:10px;line-height:1.8}
  .payment-account-details dd{font-size:13px}
}

/* Inclusive calendar filters shared by the dashboard and case lists. */
.calendar-period{padding:18px;margin:16px 0;overflow:visible}
.calendar-period-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.calendar-period-heading h2{font-size:14px;line-height:1.8;margin:0;color:var(--text)}
.calendar-period-heading h2 i{margin-inline-end:7px;color:var(--primary)}
.calendar-period-heading p{font-size:11px;line-height:1.9;color:var(--text3);margin:4px 0 0}
.calendar-period-heading>.btn{width:auto;margin:0;white-space:normal}
.calendar-period-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.calendar-period-fields .form-group{min-width:0;margin:0}
.calendar-period-fields .form-control,.calendar-period-fields .form-select{width:100%;min-width:0;font-size:12px}
.calendar-period-fields .form-label{font-size:11px}
.calendar-period-presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.calendar-period-presets .btn{width:auto;margin:0;min-height:38px;font-size:11px}
.calendar-period-description{font-size:11px;line-height:1.9;color:var(--primary);margin:12px 0 0;overflow-wrap:anywhere}
.calendar-account-note{font-size:11px;line-height:2;color:var(--text3);margin:8px 2px 16px;overflow-wrap:anywhere}
@media(max-width:1100px){.calendar-period-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.calendar-period{padding:14px}.calendar-period-heading{align-items:flex-start}.calendar-period-heading>.btn{font-size:10px;max-width:120px}.calendar-period-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calendar-period-fields>.form-group:first-child{grid-column:1/-1}.calendar-period-presets{display:grid;grid-template-columns:1fr 1fr}.calendar-period-presets .btn{width:100%;white-space:normal;min-height:40px}.calendar-period-fields .form-control,.calendar-period-fields .form-select{font-size:11px}.calendar-account-note{font-size:10px}}
.dashboard-period-chart{display:flex;align-items:flex-end;gap:8px;height:132px;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:10px 2px 4px;overscroll-behavior-inline:contain}
.dashboard-chart-month{flex:1 0 28px;min-width:28px;display:flex;flex-direction:column;align-items:center;gap:4px}
.dashboard-period-chart:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:6px}

/* Card lists: every row button stays in view, wrapping onto a second line when a card is narrow. */
.mobile-data-card .table-actions{flex-wrap:wrap;width:auto}
.mobile-data-card .table-actions .btn,.mobile-data-card .case-name-actions .btn{min-width:38px;min-height:36px;justify-content:center}

/* Phone turned sideways: the screen is short. Show the lists as cards, two to a row, so every
   button is visible without sideways scrolling, and slim the header and bottom bar to give the
   content room. Side padding follows the notch. */
@media(orientation:landscape) and (max-height:540px) and (max-width:1024px){
  :root{--header-h:50px;--bnav-h:48px}
  .header{padding-inline:max(12px,env(safe-area-inset-left,0px)) max(12px,env(safe-area-inset-right,0px));gap:8px}
  .header .btn-icon,.header .pill-btn{min-height:36px}
  .main{
    margin-top:var(--header-h);
    padding:14px max(16px,env(safe-area-inset-right,0px)) calc(var(--bnav-h) + 24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  }
  .footer{margin-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px));padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px))}
  .bottom-nav{padding:3px max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px))}
  .bnav-item{flex-direction:row;gap:7px;padding:8px 14px;font-size:11px}
  .bnav-item i{font-size:16px}
  .fab{width:46px;height:46px;font-size:19px;bottom:calc(var(--bnav-h) + 12px + env(safe-area-inset-bottom,0px));left:max(16px,env(safe-area-inset-left,0px))}
  .scroll-page{bottom:calc(var(--bnav-h) + 12px + env(safe-area-inset-bottom,0px))}
  .scroll-page.above-fab{bottom:calc(var(--bnav-h) + 68px + env(safe-area-inset-bottom,0px))}
  .page-toolbar .section-title{font-size:19px}

  .hide-mobile{display:none!important}
  .mobile-card-list.show-mobile{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}

  .payment-table-wrap{overflow:visible}
  .table-wrap table.payment-responsive-table{display:block;width:100%;min-width:0!important}
  .payment-responsive-table thead{display:none}
  .payment-responsive-table tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;min-width:0;padding:12px}
  .payment-responsive-table tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
  .payment-responsive-table td{display:block;text-align:start;padding:7px 4px;min-width:0;max-width:none;border:0;white-space:normal;overflow-wrap:anywhere}
  .payment-responsive-table td:first-child,.payment-responsive-table td:last-child{grid-column:1/-1}
  .payment-responsive-table td:first-child>strong{font-size:14px;color:var(--primary)}
  .payment-responsive-table td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--text3);font-size:10px;font-weight:600;line-height:1.7}
  .payment-responsive-table td:last-child{padding-top:10px;border-top:1px solid var(--border)}
  .payment-row-actions .btn{min-height:38px;min-width:34px}
  .doctor-payment-modal .payment-responsive-table tbody{grid-template-columns:1fr;padding:0}

  .modal{max-height:calc(100dvh - 16px)}
  .modal-overlay{padding:8px}
}
