:root{
    color-scheme:light;
    --bg:#f4f7fb;--surface:#ffffff;--surface2:#f8fafc;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;
    --brand:#2563eb;--brand2:#06b6d4;--brand-soft:#eff6ff;--success:#16a34a;--danger:#dc2626;--warning:#f59e0b;
    --shadow:0 16px 40px rgba(15,23,42,.08);--radius:22px;--sidebar:292px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Segoe UI",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text);direction:rtl}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;background:radial-gradient(circle at top left,rgba(37,99,235,.12),transparent 32%),linear-gradient(180deg,#f8fbff 0,#eef3f9 100%)}
.sidebar{position:fixed;right:18px;top:18px;bottom:18px;width:var(--sidebar);background:linear-gradient(180deg,#07162f 0%,#08224c 52%,#0e7490 150%);color:#fff;border-radius:30px;padding:18px;box-shadow:0 24px 60px rgba(15,23,42,.22);overflow:auto;z-index:10}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:999px}
.brand{display:flex;gap:12px;align-items:center;padding:8px 8px 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:14px}.brand .logo{width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,#fff,#dbeafe);display:grid;place-items:center;font-size:28px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.brand strong{display:block;font-size:18px;letter-spacing:.2px}.brand span{font-size:12px;color:#cbd5e1}.nav-group-title{margin:16px 10px 8px;color:#94a3b8;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:10px;color:#dbeafe;padding:11px 12px;border-radius:16px;margin:3px 0;font-weight:800;transition:.15s;background:transparent}.nav-link .ico{width:26px;height:26px;display:grid;place-items:center;background:rgba(255,255,255,.08);border-radius:10px}.nav-link:hover{background:rgba(255,255,255,.11);transform:translateX(-2px)}.nav-link.active{background:#fff;color:#0f172a;box-shadow:0 12px 28px rgba(0,0,0,.18)}.nav-link.active .ico{background:var(--brand-soft)}.userbox{margin-top:18px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:10px}.userbox small{color:#e2e8f0}.userbox a{color:#fff;font-weight:800}
.main{margin-right:calc(var(--sidebar) + 36px);padding:24px 26px 46px;min-height:100vh}.topbar{height:64px;background:rgba(255,255,255,.72);backdrop-filter:blur(14px);border:1px solid rgba(226,232,240,.8);border-radius:24px;padding:10px 16px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 10px 28px rgba(15,23,42,.05)}.topbar .crumb{font-size:14px;color:var(--muted);font-weight:800}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);color:#334155;font-weight:800;font-size:13px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:8px 0 22px}.page-header h1{margin:0 0 7px;font-size:32px;line-height:1.15}.page-header p{margin:0;color:var(--muted);font-weight:600}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:#334155;border-radius:14px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:900;box-shadow:0 8px 20px rgba(15,23,42,.04);min-height:42px}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,23,42,.08)}.btn.primary{background:linear-gradient(135deg,var(--brand),#1d4ed8);color:#fff;border-color:transparent}.btn.success{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border-color:transparent}.btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent}.btn.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:transparent}.btn.small{padding:7px 10px;font-size:12px;min-height:34px;border-radius:11px}.btn.ghost{background:var(--surface2)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:18px}.card{position:relative;overflow:hidden;background:var(--surface);border:1px solid rgba(226,232,240,.9);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card:before{content:"";position:absolute;inset:auto -20px -40px auto;width:110px;height:110px;border-radius:50%;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(6,182,212,.12))}.card span{display:block;color:var(--muted);font-size:13px;font-weight:800}.card strong{display:block;font-size:29px;margin-top:6px;line-height:1.1}.card small{color:#94a3b8;font-weight:700}.card .card-icon{width:42px;height:42px;border-radius:15px;background:var(--brand-soft);display:grid;place-items:center;font-size:22px;margin-bottom:12px}.green strong,.green .card-icon{color:var(--success)}.red strong,.red .card-icon{color:var(--danger)}.orange strong,.orange .card-icon{color:var(--warning)}.panel{background:var(--surface);border:1px solid rgba(226,232,240,.95);border-radius:var(--radius);padding:18px;margin-bottom:18px;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel h2,.panel-header h2{margin:0;font-size:20px}.panel-header p{margin:4px 0 0;color:var(--muted)}.panel.danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.table-wrap{overflow:auto;border-radius:18px;border:1px solid var(--line)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;min-width:760px}th,td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:right;vertical-align:middle}th{background:#f8fafc;color:#64748b;font-size:12px;font-weight:900;position:sticky;top:0}tr:last-child td{border-bottom:0}tbody tr:hover td{background:#f8fbff}.link{font-weight:900;color:#1d4ed8}.badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--brand-soft);color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;white-space:nowrap}.badge.good{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.badge.bad{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.badge.warn{background:#fffbeb;color:#b45309;border-color:#fde68a}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.actions form{display:inline-flex;margin:0}.row-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:18px;margin-bottom:10px;background:linear-gradient(180deg,#fff,#f8fafc)}.row-card .meta strong,.row-card strong,.row-card span,.row-card small{display:block}.row-card small{color:var(--muted);margin-top:3px}.empty{border:1px dashed #cbd5e1;border-radius:18px;padding:22px;text-align:center;background:#f8fafc;color:#64748b;font-weight:800}.filters{display:flex;gap:10px;margin-bottom:14px;align-items:center;flex-wrap:wrap}.filters input{max-width:420px;min-width:260px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid.single{grid-template-columns:1fr}.form-grid h2{margin:8px 0 0}.form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:900;color:#334155}.form-grid .wide{grid-column:1/-1}.check{flex-direction:row!important;align-items:center;gap:8px}.field-hint{color:var(--muted);font-size:12px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:var(--surface);color:var(--text);outline:none;transition:.12s}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.10)}textarea{min-height:96px;resize:vertical}.alert{background:#fef2f2;color:#991b1b;padding:13px 15px;border-radius:16px;margin-bottom:15px;border:1px solid #fecaca;font-weight:800}.success-alert{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.teeth-shell{display:grid;gap:14px}.teeth-row{display:grid;grid-template-columns:repeat(16,1fr);gap:8px}.tooth{min-height:86px;border-radius:18px;background:#f8fbff;border:1px solid #dbeafe;padding:9px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:4px;position:relative}.tooth strong{font-size:18px}.tooth span{font-size:11px;color:#334155;font-weight:900}.tooth small{font-size:11px;color:#64748b}.tooth.rootcanal,.tooth.extractionneeded,.tooth.caries{background:#fff7f7;border-color:#fecaca}.tooth.crown,.tooth.filling,.tooth.needsfollowup{background:#fffbeb;border-color:#fde68a}.tooth.sound{background:#f0fdf4;border-color:#bbf7d0}.tooth.implant{background:#eff6ff;border-color:#bfdbfe}.profile-hero{background:linear-gradient(135deg,#0f172a,#1d4ed8 62%,#06b6d4);color:#fff;border-radius:28px;padding:24px;margin-bottom:18px;box-shadow:0 20px 50px rgba(37,99,235,.18);display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}.profile-hero h1{margin:0;font-size:34px}.profile-hero p{color:#dbeafe;margin:6px 0 0}.profile-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.profile-tags .pill{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.16);color:#fff}.timeline{position:relative}.timeline-item{position:relative;padding:0 22px 16px 0;border-right:2px solid #dbeafe}.timeline-item:before{content:"";position:absolute;right:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px #eff6ff}.timeline-item strong{display:block}.timeline-item small{color:var(--muted)}.prescription,.consent{border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:12px;background:linear-gradient(180deg,#fff,#f8fafc)}.prescription h3,.consent h3{margin-top:0}.money{font-weight:1000;color:#0f172a}.money.good{color:var(--success)}.money.bad{color:var(--danger)}
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#dbeafe,#f8fafc 60%,#e0f2fe);padding:20px}.login-card{width:min(460px,100%);background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.9);border-radius:34px;padding:34px;box-shadow:0 30px 90px rgba(15,23,42,.18);display:flex;flex-direction:column;gap:12px}.login-logo{width:70px;height:70px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#06b6d4);font-size:38px;box-shadow:0 18px 40px rgba(37,99,235,.28)}.login-card h1{margin:0;font-size:31px}.login-card p{margin:0 0 8px;color:var(--muted);font-weight:700}.login-card label{font-weight:900;color:#334155}.login-card small{color:#64748b;font-weight:800}.print-only{display:none}
@media(max-width:1260px){.cards{grid-template-columns:repeat(2,minmax(180px,1fr))}.grid.two,.grid.three{grid-template-columns:1fr}.teeth-row{grid-template-columns:repeat(8,1fr)}}
@media(max-width:860px){:root{--sidebar:0}.sidebar{position:relative;right:auto;top:auto;bottom:auto;width:auto;margin:12px;border-radius:24px}.main{margin-right:0;padding:12px}.topbar{height:auto;align-items:flex-start;gap:10px;flex-direction:column}.page-header,.profile-hero{grid-template-columns:1fr;display:block}.page-actions,.top-actions{margin-top:12px}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.teeth-row{grid-template-columns:repeat(4,1fr)}.filters input{min-width:0;max-width:none}.btn{width:auto}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:4px}.nav-group-title{grid-column:1/-1}.nav-link{font-size:13px;padding:10px}}
@media print{.sidebar,.topbar,.page-actions,.btn,.actions{display:none!important}.main{margin:0;padding:0}.panel,.card,.profile-hero{box-shadow:none;border:1px solid #ddd}.print-only{display:block}}
/* V3 filters and charts */
.compact-filter{padding:14px 16px}.filter-panel{background:linear-gradient(180deg,#fff,#f8fbff)}.smart-filter{align-items:end}.smart-filter label{display:flex;flex-direction:column;gap:6px;font-weight:900;color:#334155}.quick-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dashboard-filter{display:grid;grid-template-columns:1fr repeat(4,minmax(130px,160px)) auto;gap:10px}.dashboard-filter .quick-filters{grid-column:1/-1}.filter-summary{padding:11px 13px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;color:#1e3a8a;font-weight:900;margin-top:8px}.chart-panel canvas{width:100%;height:300px;display:block}.hbar{margin:0 0 13px}.hbar-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.hbar-label strong{font-weight:1000}.hbar-label span{font-weight:900;color:#2563eb}.hbar-track{height:13px;background:#eef2f7;border-radius:999px;overflow:hidden;border:1px solid #e2e8f0}.hbar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#06b6d4)}
@media(max-width:1260px){.dashboard-filter{grid-template-columns:1fr 1fr}.dashboard-filter .quick-filters{grid-column:1/-1}}
@media(max-width:860px){.smart-filter,.dashboard-filter{display:flex;flex-direction:column;align-items:stretch}.quick-filters{display:grid;grid-template-columns:1fr 1fr}.chart-panel canvas{height:260px}}
/* V4 enterprise filters, charts and pagination */
.advanced-filter-panel{background:linear-gradient(180deg,#fff,#f8fbff);position:relative;overflow:hidden}.advanced-filter-panel:before{content:"";position:absolute;left:-60px;top:-60px;width:140px;height:140px;border-radius:50%;background:rgba(37,99,235,.08)}
.advanced-date-filter{display:grid;grid-template-columns:1.2fr repeat(6,minmax(120px,1fr)) auto;gap:10px;align-items:end;margin-bottom:0}.advanced-date-filter .quick-filters{grid-column:1/-1}.advanced-date-filter label{display:flex;flex-direction:column;gap:6px;font-weight:900;color:#334155}.advanced-date-filter input,.advanced-date-filter select{min-width:0}.filter-summary{margin-bottom:18px}.chart-panel canvas{width:100%;height:310px;display:block}.btn.disabled,.btn.disabled:hover{opacity:.45;pointer-events:none;transform:none;box-shadow:none}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px;border:1px solid var(--line);background:#f8fafc;border-radius:18px}.pager-summary{font-weight:900;color:#475569}.pager-links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pager-dots{color:#94a3b8;font-weight:1000;padding:0 3px}.table-wrap + .pager{border-top-left-radius:0;border-top-right-radius:0}.chart-panel .panel-header p{font-size:13px}.cards + .grid,.grid + .grid{margin-top:4px}
@media(max-width:1260px){.advanced-date-filter{grid-template-columns:1fr 1fr 1fr}.advanced-date-filter .quick-filters{grid-column:1/-1}}
@media(max-width:860px){.advanced-date-filter{display:flex;flex-direction:column;align-items:stretch}.advanced-date-filter .quick-filters{display:grid;grid-template-columns:1fr 1fr}.pager{align-items:flex-start;flex-direction:column}.pager-links{width:100%}.chart-panel canvas{height:260px}}

/* ===== V5: Dark theme (المستخدم يختار) ===== */
:root[data-theme="dark"]{
    color-scheme:dark;
    --bg:#0b1220;--surface:#131c2e;--surface2:#1b2740;--text:#e5edf7;--muted:#93a2ba;--line:#27334c;
    --brand-soft:rgba(37,99,235,.20);--shadow:0 18px 44px rgba(0,0,0,.5);
}
:root[data-theme="dark"] .app-shell{background:radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 34%),linear-gradient(180deg,#0a1120 0,#0b1424 100%)}
:root[data-theme="dark"] .topbar{background:rgba(19,28,46,.72);border-color:var(--line)}
:root[data-theme="dark"] .pill{color:#cbd5e1}
:root[data-theme="dark"] .btn{background:var(--surface2);color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] .btn.ghost{background:var(--surface2)}
:root[data-theme="dark"] .card,:root[data-theme="dark"] .panel{border-color:var(--line)}
:root[data-theme="dark"] .card small{color:#8b9bb5}
:root[data-theme="dark"] .panel.danger{background:linear-gradient(180deg,#1a1420,#231320);border-color:#5b2330}
:root[data-theme="dark"] table{background:var(--surface)}
:root[data-theme="dark"] th{background:#1b2740;color:#93a2ba}
:root[data-theme="dark"] tbody tr:hover td{background:#1b2740}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:var(--surface2);color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] .form-grid label,:root[data-theme="dark"] .login-card label{color:#cbd5e1}
:root[data-theme="dark"] .empty{background:var(--surface2);color:#93a2ba;border-color:#3a4763}
:root[data-theme="dark"] .row-card,:root[data-theme="dark"] .prescription,:root[data-theme="dark"] .consent{background:var(--surface2);border-color:var(--line)}
:root[data-theme="dark"] .pager,:root[data-theme="dark"] .filter-panel,:root[data-theme="dark"] .advanced-filter-panel{background:var(--surface2);border-color:var(--line)}
:root[data-theme="dark"] .filter-summary{background:rgba(37,99,235,.14);border-color:#2a3f66;color:#bcd0ff}
:root[data-theme="dark"] .hbar-track{background:#1b2740;border-color:var(--line)}
:root[data-theme="dark"] .link{color:#7db0ff}
:root[data-theme="dark"] .money{color:#e5edf7}
:root[data-theme="dark"] .badge{background:rgba(37,99,235,.18);color:#9cc0ff;border-color:#2a3f66}
:root[data-theme="dark"] .badge.good{background:rgba(22,163,74,.16);color:#66d68f;border-color:#245b39}
:root[data-theme="dark"] .badge.bad{background:rgba(220,38,38,.16);color:#ff8f8f;border-color:#5b2330}
:root[data-theme="dark"] .badge.warn{background:rgba(245,158,11,.16);color:#f6c66b;border-color:#5c4620}
:root[data-theme="dark"] .tooth span,:root[data-theme="dark"] .form-grid h2{color:inherit}
:root[data-theme="dark"] .login-body{background:radial-gradient(circle at top,#132445,#0b1220 60%,#08131f)}
:root[data-theme="dark"] .login-card{background:rgba(19,28,46,.86);border-color:rgba(255,255,255,.08)}
/* زر تبديل الثيم */
.theme-toggle{border:1px solid var(--line);background:var(--surface2);color:var(--text);width:42px;height:42px;border-radius:14px;display:inline-grid;place-items:center;cursor:pointer;font-size:18px;box-shadow:0 8px 20px rgba(15,23,42,.04)}
.theme-toggle:hover{transform:translateY(-1px)}
