/* =====================================================================
   Dental Clinic System — luxury medical theme (RTL-first)
   Palette: white / medical-blue / turquoise / soft-gold / light-gray
   v2 — refined spacing, mobile fixes, new components. All original
   class names kept, so no page markup depends on removed styles.
   ===================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700;800&display=swap');

:root{
  --blue-900:#0E3F66;
  --blue-700:#1466A6;
  --blue-600:#1E78BE;
  --teal-500:#13B6BE;
  --teal-400:#36C7CE;
  --gold-500:#C7A35A;
  --gold-300:#E6D5AC;
  --ink:#1B2A3A;
  --muted:#67788C;
  --bg:#F2F6FB;
  --card:#FFFFFF;
  --line:#E5EDF6;
  --line-2:#EEF3F9;
  --good:#1E9E6A; --good-bg:#E6F6EE;
  --warn:#C9871B; --warn-bg:#FBF1DE;
  --bad:#D2453B;  --bad-bg:#FBE9E7;
  --info:#1E78BE; --info-bg:#E7F1FA;
  --radius:16px; --radius-sm:10px;
  --shadow:0 6px 24px rgba(20,60,100,.08);
  --shadow-sm:0 2px 8px rgba(20,60,100,.06);
  --sidebar:268px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Tajawal',system-ui,-apple-system,'Segoe UI',Tahoma,sans-serif;
  background:var(--bg); color:var(--ink); font-size:15px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0 0 .4em;font-weight:800;color:var(--ink);line-height:1.25}
h2{font-size:1.4rem} h3{font-size:1.12rem}
small{color:var(--muted)}
:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px;border-radius:6px}

/* ----------------------------- Layout ------------------------------- */
.app{min-height:100vh}
.sidebar{
  position:fixed; inset-block:0; inset-inline-start:0; width:var(--sidebar);
  background:linear-gradient(180deg,var(--blue-900),#0B2F4D);
  color:#DCE9F5; display:flex; flex-direction:column; z-index:40;
  box-shadow:0 0 40px rgba(0,0,0,.12);
}
.brand{display:flex;gap:12px;align-items:center;padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--teal-500),var(--blue-600));
  display:grid;place-items:center;font-size:22px;box-shadow:0 4px 14px rgba(19,182,190,.35);overflow:hidden;flex:none}
.brand-mark img{width:100%;height:100%;object-fit:cover}
.brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.brand-text strong{color:#fff;font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-text span{color:#8FB4D4;font-size:.74rem;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:3px}
.nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;
  color:#BFD6EC;font-weight:500;transition:.16s;position:relative}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:rgba(19,182,190,.16);color:#fff}
.nav-item.active::before{content:"";position:absolute;inset-inline-start:-12px;top:50%;transform:translateY(-50%);
  width:4px;height:24px;border-radius:0 4px 4px 0;background:var(--gold-500)}
html[dir="rtl"] .nav-item.active::before{inset-inline-start:auto;inset-inline-end:-12px;border-radius:4px 0 0 4px}
.nav-ic{width:20px;height:20px;display:grid;place-items:center;flex:none}
.nav-ic svg{width:20px;height:20px}
.sidebar-foot{padding:12px;border-top:1px solid rgba(255,255,255,.08)}

.main{margin-inline-start:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);padding:12px 26px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.topbar-title{font-weight:800;font-size:1.15rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-right{display:flex;align-items:center;gap:12px;flex:none}
.lang-switch{display:flex;background:var(--line-2);border-radius:999px;padding:3px;gap:2px}
.lang-switch a{padding:5px 12px;border-radius:999px;font-size:.82rem;color:var(--muted);font-weight:700;white-space:nowrap}
.lang-switch a.on{background:#fff;color:var(--blue-700);box-shadow:var(--shadow-sm)}
.user-chip{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue-600),var(--teal-500));
  color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.user-meta{display:flex;flex-direction:column;line-height:1.15}
.user-meta strong{font-size:.9rem}
.user-meta span{font-size:.72rem;color:var(--muted)}
.content{padding:26px;max-width:1340px;width:100%;margin:0 auto}

.menu-toggle{display:none;position:fixed;top:12px;inset-inline-start:12px;z-index:50;width:42px;height:42px;
  border:none;border-radius:12px;background:var(--blue-700);color:#fff;cursor:pointer;box-shadow:0 4px 14px rgba(20,102,166,.35)}
.menu-toggle svg{width:22px;height:22px}
.sidebar-backdrop{display:none}

/* ----------------------------- Cards & grid ------------------------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px;margin-bottom:20px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.card-head h2,.card-head h3{margin:0}
.grid{display:grid;gap:18px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.spacer{flex:1}

/* ----------------------------- Stat cards --------------------------- */
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;
  display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.stat::after{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:5px;background:var(--accent,var(--blue-600))}
.stat .label{color:var(--muted);font-size:.84rem;font-weight:600}
.stat .value{font-size:1.7rem;font-weight:800;letter-spacing:-.5px}
.stat .ic{position:absolute;inset-inline-end:16px;top:16px;opacity:.12;font-size:34px}
.stat.blue{--accent:var(--blue-600)} .stat.teal{--accent:var(--teal-500)}
.stat.gold{--accent:var(--gold-500)} .stat.green{--accent:var(--good)}
.stat.red{--accent:var(--bad)}

/* ----------------------------- Buttons ------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:inherit;
  font-weight:700;font-size:.92rem;padding:10px 18px;border-radius:11px;transition:.16s;position:relative;
  background:linear-gradient(135deg,var(--blue-700),var(--blue-600));color:#fff;box-shadow:0 4px 14px rgba(20,102,166,.25);
  text-align:center}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn svg{width:18px;height:18px}
.btn-teal{background:linear-gradient(135deg,var(--teal-500),var(--teal-400));box-shadow:0 4px 14px rgba(19,182,190,.28)}
.btn-gold{background:linear-gradient(135deg,#B98E3F,var(--gold-500));box-shadow:0 4px 14px rgba(199,163,90,.3)}
.btn-ghost{background:#fff;color:var(--blue-700);border:1px solid var(--line);box-shadow:none}
.btn-ghost:hover{background:var(--info-bg)}
.btn-danger{background:linear-gradient(135deg,#C13B31,var(--bad))}
.btn-sm{padding:7px 12px;font-size:.82rem;border-radius:9px}
.btn-block{width:100%;justify-content:center}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn.loading{color:transparent!important;pointer-events:none}
.btn.loading::after{content:"";position:absolute;width:17px;height:17px;border-radius:50%;
  border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;animation:spin .7s linear infinite}
.btn-ghost.loading::after{border-color:rgba(20,102,166,.3);border-top-color:var(--blue-700)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ----------------------------- Forms -------------------------------- */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
label{font-size:.85rem;font-weight:700;color:#3A4D62}
input,select,textarea{font-family:inherit;font-size:.95rem;padding:11px 13px;border:1px solid var(--line);
  border-radius:11px;background:#FBFDFF;color:var(--ink);transition:.15s;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-600);background:#fff;
  box-shadow:0 0 0 3px rgba(30,120,190,.12)}
textarea{resize:vertical;min-height:90px}
.hint{font-size:.78rem;color:var(--muted)}
input[data-num]{font-variant-numeric:tabular-nums;letter-spacing:.4px}
.select-search{margin-bottom:6px}

/* segmented radio (gender etc.) */
.seg{display:flex;background:var(--line-2);border-radius:11px;padding:3px;gap:3px}
.seg-opt{flex:1;position:relative;margin:0}
.seg-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.seg-opt span{display:block;text-align:center;padding:9px 6px;border-radius:9px;font-weight:700;color:var(--muted);
  font-size:.9rem;transition:.15s;user-select:none}
.seg-opt input:checked + span{background:#fff;color:var(--blue-700);box-shadow:var(--shadow-sm)}
.seg-opt input:focus-visible + span{outline:2px solid var(--blue-600)}

.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px dashed var(--line)}

/* allergy field gets a soft warning look */
.input-allergy{border-color:#F3DFA8;background:#FFFBF0}
.input-allergy:focus{border-color:var(--warn);box-shadow:0 0 0 3px rgba(201,135,27,.14)}

/* ----------------------------- Tables ------------------------------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--line);background:#fff}
table{width:100%;border-collapse:collapse;font-size:.92rem}
thead th{background:#F6F9FD;color:#42566C;text-align:start;font-weight:700;padding:13px 14px;
  border-bottom:1px solid var(--line);white-space:nowrap;font-size:.82rem;letter-spacing:.02em}
tbody td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr:hover{background:#FAFCFF}
tbody tr:last-child td{border-bottom:none}
.t-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.appt-row-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.status-select{width:auto;min-width:110px;padding:7px 9px;font-size:.85rem}
.btn-call-row{white-space:nowrap}

/* ----------------------------- Pills/badges ------------------------- */
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:.78rem;font-weight:700}
.pill.good{background:var(--good-bg);color:var(--good)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.info{background:var(--info-bg);color:var(--info)}
.pill.gray{background:#EEF2F7;color:var(--muted)}
.pill.teal{background:#E2F7F8;color:#0E8A90}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.7}

/* ----------------------------- Flash -------------------------------- */
.flash{padding:13px 16px;border-radius:12px;margin-bottom:16px;font-weight:600;border:1px solid transparent;
  transition:opacity .8s ease, transform .8s ease}
.flash-success{background:var(--good-bg);color:var(--good);border-color:#BDE6CF}
.flash-error{background:var(--bad-bg);color:var(--bad);border-color:#F1C9C5}
.flash-info{background:var(--info-bg);color:var(--info);border-color:#C5DEF3}
.flash-hide{opacity:0;transform:translateY(-6px)}

/* ----------------------------- Misc --------------------------------- */
.empty{text-align:center;padding:48px 20px;color:var(--muted)}
.empty .big{font-size:46px;opacity:.4;margin-bottom:8px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line)}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--muted);font-weight:600}
.kv .v{font-weight:700}
.section-title{display:flex;align-items:center;gap:10px;margin:6px 0 14px;font-weight:800;color:var(--blue-900)}
.section-title::before{content:"";width:5px;height:20px;border-radius:4px;background:var(--gold-500)}
.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.85rem;margin-bottom:14px;flex-wrap:wrap}
.breadcrumb a{color:var(--blue-700);font-weight:600}
.search-bar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:end}
.search-bar input{max-width:340px}
.tag{display:inline-block;background:var(--info-bg);color:var(--blue-700);padding:2px 9px;border-radius:7px;font-size:.78rem;font-weight:700}
.muted{color:var(--muted)}
.text-end{text-align:end}
.text-center{text-align:center}
.mono{font-family:ui-monospace,monospace;letter-spacing:1px}
hr{border:none;border-top:1px solid var(--line);margin:18px 0}

/* progress bar (patient financial card) */
.progress{height:8px;background:var(--line-2);border-radius:99px;overflow:hidden;margin:8px 0 2px}
.progress > span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--teal-500),var(--good));
  transition:width .4s ease}

/* ----------------------------- Tabs --------------------------------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}
.tabs a{padding:10px 16px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a.on{color:var(--blue-700);border-bottom-color:var(--blue-600)}

/* ----------------------- Call-next-patient card --------------------- */
.call-card{border-inline-start:5px solid var(--teal-500)}
.call-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.call-card-title{display:flex;gap:12px;align-items:flex-start}
.call-card-title .cc-ic{font-size:1.6rem;line-height:1;margin-top:2px}
.call-card-title h3{margin:0 0 2px;font-size:1.05rem}
.cc-doctor-name{color:var(--blue-700);font-weight:800;font-size:.95rem}
.cc-doctor-select{width:auto;min-width:210px;padding:8px 10px;font-weight:700;margin-top:2px}
.call-card-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin-bottom:14px}
.cc-cell{background:#F8FBFE;border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:0}
.cc-lbl{display:block;color:var(--muted);font-size:.75rem;font-weight:700;margin-bottom:2px}
.cc-val{display:block;font-size:1.02rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-sub{display:block;color:var(--teal-500);font-weight:700;font-size:.78rem;min-height:1em}
.cc-count-cell{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:92px;
  background:var(--info-bg);border-color:#C5DEF3}
.cc-count{font-size:1.7rem;font-weight:800;color:var(--blue-700);line-height:1}
.btn-call{width:100%;padding:15px 20px;font-size:1.05rem;border-radius:13px}
.cc-msg{min-height:1.4em;margin-top:10px;font-weight:700;font-size:.9rem;text-align:center}
.cc-msg.ok{color:var(--good)}
.cc-msg.err{color:var(--bad)}

/* --------------------------- Tooth selector ------------------------- */
.tooth-picker{margin-top:6px}
.tooth-picker summary{cursor:pointer;color:var(--blue-700);font-weight:700;font-size:.82rem;user-select:none;list-style:none}
.tooth-picker summary::before{content:"🦷 "}
.tooth-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:4px;margin-top:8px;direction:ltr}
.tooth-grid button{padding:6px 0;font-size:.74rem;font-weight:700;border:1px solid var(--line);border-radius:7px;
  background:#fff;color:var(--ink);cursor:pointer;font-family:inherit;min-width:0}
.tooth-grid button:hover{background:var(--info-bg);border-color:var(--blue-600);color:var(--blue-700)}
.tooth-grid button.on{background:var(--blue-600);border-color:var(--blue-600);color:#fff}
.tooth-gap{grid-column:span 16;height:4px}

/* ----------------------------- Theme styles ------------------------- */
body.theme-luxury .card,body.theme-luxury .stat{box-shadow:var(--shadow);border-color:#E9E0CB}
body.theme-luxury .section-title::before{background:linear-gradient(180deg,var(--gold-500),#B98E3F)}
body.theme-luxury .btn-gold{box-shadow:0 6px 20px rgba(199,163,90,.4)}
body.theme-luxury .topbar{background:rgba(255,253,247,.9)}
body.theme-simple .card,body.theme-simple .stat{box-shadow:none}
body.theme-simple .btn{box-shadow:none}
body.theme-simple .stat::after{width:3px}

/* ----------------------------- Print -------------------------------- */
@media print{
  .sidebar,.topbar,.menu-toggle,.sidebar-backdrop,.tabs,.search-bar,
  .call-card,.form-actions,.btn,.breadcrumb{display:none!important}
  .main{margin:0!important}
  .content{padding:0;max-width:100%}
  body{background:#fff}
  .card,.table-wrap{box-shadow:none;border-color:#ccc}
  .print-title{display:block!important;text-align:center;margin-bottom:14px}
}

/* ----------------------------- Responsive --------------------------- */
@media(max-width:1100px){.g-4{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){
  .sidebar{transform:translateX(-110%);transition:.25s}
  html[dir="rtl"] .sidebar{transform:translateX(110%)}
  body.sidebar-open .sidebar{transform:translateX(0)}
  .main{margin-inline-start:0}
  .menu-toggle{display:grid;place-items:center}
  .topbar{padding-inline-start:64px;flex-wrap:wrap;row-gap:8px}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(10,30,50,.45);z-index:35}
  .call-card-grid{grid-template-columns:1fr 1fr}
  .cc-count-cell{grid-column:1/-1;flex-direction:row;gap:10px;min-width:0}
  .tooth-grid{grid-template-columns:repeat(8,1fr)}
  .tooth-gap{grid-column:span 8}
}
@media(max-width:640px){
  /* !important so pages using inline style="grid-template-columns:…"
     still collapse to one readable column on phones */
  .grid.g-2,.grid.g-3,.grid.g-4,.form-grid{grid-template-columns:1fr!important}
  .content{padding:14px}
  .card{padding:16px}
  .user-meta{display:none}
  .topbar{padding:10px 12px;padding-inline-start:64px}
  .topbar-title{font-size:1rem}
  .search-bar input{max-width:none;flex:1}
  .t-actions .btn{flex:1;justify-content:center}
  .form-actions .btn{flex:1 1 100%}
  .tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  thead th,tbody td{padding:10px 10px;font-size:.86rem}
}
.cc-msg.muted{color:var(--muted)}

/* ---- v3: my-clinic workspace + call-card flow buttons ---- */
.stat-strip{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.cc-flow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cc-flow .btn{flex:1;min-width:130px}
.btn-ok{background:linear-gradient(135deg,#2E8B57,var(--ok,#3AAE7A));color:#fff}
