@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&display=swap');

:root {
  --font: 'Plus Jakarta Sans', system-ui, sans-serif;
  --serif: 'Fraunces', Georgia, serif;
  --brand: #1a56db; --brand-dark: #1447b3; --brand-light: #eef3ff; --brand-mid: #3b7cf8;
  --navy: #0b1629; --navy-2: #132039; --navy-3: #1e3254;
  --ink: #111827; --ink-2: #1f2937; --ink-3: #374151;
  --muted: #6b7280; --muted-2: #9ca3af; --muted-3: #d1d5db;
  --line: #e5e7eb; --line-2: #f3f4f6; --surface: #f5f7fa; --white: #ffffff;
  --green: #059669; --green-bg: #ecfdf5; --green-border: #6ee7b7;
  --amber: #d97706; --amber-bg: #fffbeb; --amber-border: #fcd34d;
  --red: #dc2626; --red-bg: #fef2f2; --red-border: #fca5a5;
  --purple: #7c3aed; --purple-bg: #f5f3ff; --teal: #0891b2;
  --r-xs:4px; --r-sm:8px; --r-md:10px; --r-lg:14px; --r-xl:20px; --r-2xl:28px;
  --sh-xs:0 1px 2px rgba(0,0,0,.05);
  --sh-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --sh-md:0 4px 16px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);
  --sh-lg:0 10px 40px rgba(0,0,0,.12),0 4px 10px rgba(0,0,0,.06);
  --nav-h:60px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font);font-size:14px;background:var(--surface);color:var(--ink-2);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:var(--brand);text-decoration:none;}
a:hover{color:var(--brand-dark);}
img{max-width:100%;display:block;}

/* NAVBAR */
.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-h);background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;z-index:200;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.nav-brand{display:flex;align-items:center;gap:.5rem;font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--navy);letter-spacing:-.02em;text-decoration:none;}
.nav-brand-mark{width:32px;height:32px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:white;box-shadow:0 2px 6px rgba(26,86,219,.3);}
.nav-links{display:flex;align-items:center;gap:.1rem;flex:1;justify-content:center;}
.nav-links a{padding:.38rem .8rem;border-radius:var(--r-sm);font-size:.82rem;font-weight:500;color:var(--muted);transition:all .15s;white-space:nowrap;}
.nav-links a:hover{background:var(--surface);color:var(--ink);}
.nav-links a.active{background:var(--brand-light);color:var(--brand);font-weight:600;}
.nav-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0;}
.nav-user-pill{display:flex;align-items:center;gap:.45rem;padding:.3rem .7rem .3rem .3rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.78rem;font-weight:500;color:var(--ink-2);}
.nav-user-avatar{width:26px;height:26px;background:linear-gradient(135deg,var(--brand),#7c3aed);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:white;}
.nav-role-tag{font-size:.62rem;background:var(--amber-bg);color:var(--amber);padding:.1rem .4rem;border-radius:20px;font-weight:600;border:1px solid var(--amber-border);}
.btn-logout{padding:.38rem .9rem;background:var(--navy);color:white;border-radius:var(--r-sm);font-size:.78rem;font-weight:600;font-family:var(--font);border:none;cursor:pointer;text-decoration:none;transition:background .15s;display:inline-flex;align-items:center;}
.btn-logout:hover{background:var(--navy-2);color:white;}

/* LAYOUT */
.container{max-width:1160px;margin:0 auto;padding:calc(var(--nav-h) + 2rem) 2rem 3rem;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.48rem 1.1rem;border-radius:var(--r-md);font-size:.82rem;font-weight:600;font-family:var(--font);cursor:pointer;border:1.5px solid transparent;transition:all .15s;text-decoration:none;white-space:nowrap;width:auto;line-height:1.4;}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:none;}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:white;border-color:var(--brand-dark);box-shadow:0 2px 6px rgba(26,86,219,.25);}
.btn-primary:hover{box-shadow:0 4px 12px rgba(26,86,219,.35);color:white;}
.btn-secondary{background:white;color:var(--ink-2);border-color:var(--line);box-shadow:var(--sh-xs);}
.btn-secondary:hover{background:var(--surface);border-color:var(--muted-3);color:var(--ink);}
.btn-danger{background:white;color:var(--red);border-color:var(--red-border);}
.btn-danger:hover{background:var(--red-bg);}
.btn-warning{background:white;color:var(--amber);border-color:var(--amber-border);}
.btn-warning:hover{background:var(--amber-bg);}
.btn-sm{padding:.32rem .8rem;font-size:.76rem;border-radius:var(--r-sm);}
.btn-lg{padding:.65rem 1.5rem;font-size:.9rem;}
.btn-full{width:100%;}

/* ALERTS */
.alert{padding:.8rem 1rem;border-radius:var(--r-md);font-size:.84rem;font-weight:500;border:1.5px solid transparent;margin-bottom:1.25rem;display:flex;align-items:flex-start;gap:.5rem;}
.alert.success,.alert-success{background:var(--green-bg);color:#065f46;border-color:var(--green-border);}
.alert.error{background:var(--red-bg);color:#991b1b;border-color:var(--red-border);}
.alert.info{background:var(--brand-light);color:var(--brand-dark);border-color:rgba(26,86,219,.2);}

/* PAGE HEADER */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap;}
.page-title{font-family:var(--serif);font-size:1.75rem;font-weight:700;color:var(--navy);letter-spacing:-.03em;line-height:1.2;}
.page-subtitle{font-size:.84rem;color:var(--muted);margin-top:.2rem;}

/* STAT CARDS */
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem;margin-bottom:1.75rem;}
.stat-card{background:white;border-radius:var(--r-lg);padding:1.25rem 1.35rem;border:1.5px solid var(--line);box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.stat-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;}
.stat-card.blue::before{background:var(--brand);}
.stat-card.green::before{background:var(--green);}
.stat-card.amber::before{background:var(--amber);}
.stat-card.teal::before{background:var(--teal);}
.stat-card.purple::before{background:var(--purple);}
.stat-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px);}
.stat-label{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.45rem;}
.stat-value{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--navy);line-height:1;letter-spacing:-.04em;margin-bottom:.25rem;}
.stat-sub{font-size:.75rem;color:var(--muted-2);}

/* WELCOME BANNER */
.welcome-banner{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-3) 60%,#1a3a6e 100%);border-radius:var(--r-xl);padding:2rem 2.25rem;margin-bottom:1.5rem;color:white;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;box-shadow:var(--sh-lg);}
.welcome-banner::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.04);}
.welcome-title{font-family:var(--serif);font-size:1.65rem;font-weight:600;letter-spacing:-.03em;line-height:1.2;margin-bottom:.35rem;}
.welcome-sub{color:rgba(255,255,255,.6);font-size:.86rem;}
.welcome-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-lg);padding:1.1rem 1.6rem;text-align:center;flex-shrink:0;backdrop-filter:blur(10px);position:relative;z-index:1;}
.welcome-badge-num{font-family:var(--serif);font-size:2.6rem;font-weight:600;color:white;line-height:1;letter-spacing:-.05em;}
.welcome-badge-lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin-top:.3rem;}

/* QUICK ACTIONS */
.quick-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.75rem;}

/* PATIENT CARDS */
.patient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.9rem;}
.patient-mini{background:white;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:1.1rem;display:flex;align-items:center;gap:.9rem;box-shadow:var(--sh-xs);transition:all .2s;flex-wrap:nowrap;}
.patient-mini:hover{box-shadow:var(--sh-md);transform:translateY(-2px);}
.mini-avatar{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,var(--brand-light),#d4e0ff);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;overflow:hidden;border:1.5px solid rgba(26,86,219,.12);}
.mini-avatar img{width:100%;height:100%;object-fit:cover;}
.mini-info{flex:1;min-width:0;overflow:hidden;}
.mini-name{font-size:.9rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-meta{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem;}
.mini-actions{display:flex;gap:.35rem;flex-shrink:0;}

/* INPUTS */
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
select, textarea {
  font-family:var(--font);padding:.58rem .9rem;border:1.5px solid #b8c9de;
  border-radius:var(--r-md);font-size:.85rem;font-weight:400;color:var(--ink-2);
  background:white;transition:border-color .15s,box-shadow .15s;outline:none;
  width:100%;line-height:1.5;box-shadow:0 1px 3px rgba(0,0,0,.06);
}
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):hover,
select:hover, textarea:hover{border-color:#9ca3af;}
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):focus,
select:focus, textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,86,219,.12);background:white;}
input::placeholder,textarea::placeholder{color:#94a3b8;}
input[readonly],input[disabled]{background:var(--surface);color:var(--muted);border-color:var(--line);cursor:default;}
textarea{resize:vertical;min-height:80px;}
select{cursor:pointer;}
.input-unit-wrap{position:relative;display:flex;align-items:center;}
.input-unit-wrap input{padding-right:2.8rem;}
.input-unit{position:absolute;right:.8rem;font-size:.7rem;font-weight:600;color:var(--muted-2);pointer-events:none;}

/* FORM LAYOUT */
.form-section{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.75rem;margin-bottom:1.25rem;box-shadow:var(--sh-sm);}
.form-section h3{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:var(--navy);letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1.25rem;border-bottom:2px solid var(--line);}
.form-section h4{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:700;margin:1.1rem 0 .65rem;}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
.form-grid.three{grid-template-columns:repeat(3,1fr);}
.form-grid.four{grid-template-columns:repeat(4,1fr);}
.form-group{display:flex;flex-direction:column;gap:.35rem;}
.form-group.full-width,.form-group.full{grid-column:1/-1;}
.form-group label{font-size:.68rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;}
.unit-hint{font-size:.62rem;color:var(--muted-2);font-weight:400;text-transform:none;letter-spacing:0;margin-left:.2rem;}
.form-actions{display:flex;gap:.65rem;align-items:center;justify-content:flex-end;padding-top:1.25rem;border-top:1.5px solid var(--line-2);margin-top:1.25rem;}

/* CARD */
.card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-sm);overflow:hidden;margin-bottom:1.25rem;}
.card-header{padding:1.1rem 1.5rem;border-bottom:1.5px solid var(--line-2);font-weight:600;font-size:.88rem;color:var(--ink);background:var(--surface);}
.card-body{padding:1.25rem 1.5rem;}

/* PATIENT PROFILE */
.patient-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.75rem;box-shadow:var(--sh-sm);margin-bottom:1.25rem;display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;}
.patient-avatar{width:68px;height:68px;border-radius:16px;background:linear-gradient(135deg,var(--brand-light),#d0dcff);display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0;border:2px solid rgba(26,86,219,.15);overflow:hidden;}
.patient-avatar img{width:100%;height:100%;object-fit:cover;}
.patient-info h2{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--navy);letter-spacing:-.03em;margin-bottom:.3rem;}
.patient-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.85rem;}
.meta-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.35rem;}
.chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;border:1.5px solid;}
.chip.blue{background:var(--brand-light);color:var(--brand-dark);border-color:rgba(26,86,219,.2);}
.chip.green{background:var(--green-bg);color:#065f46;border-color:var(--green-border);}
.chip.amber{background:var(--amber-bg);color:#92400e;border-color:var(--amber-border);}
.chip.grey{background:var(--surface);color:var(--muted);border-color:var(--line);}

/* VISIT TIMELINE */
.timeline{position:relative;padding-left:1.4rem;}
.timeline::before{content:'';position:absolute;left:0;top:1.4rem;bottom:0;width:2px;background:linear-gradient(to bottom,var(--brand),transparent);}
.visit-node{position:relative;margin-bottom:1.1rem;}
.visit-node::before{content:'';position:absolute;left:-1.78rem;top:1.2rem;width:9px;height:9px;border-radius:50%;background:var(--brand);border:2px solid white;box-shadow:0 0 0 2px var(--brand);z-index:1;}
.visit-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden;}
.visit-header{padding:1rem 1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;background:var(--surface);transition:background .15s;user-select:none;}
.visit-header:hover{background:#eef2f7;}
.visit-date{font-size:.78rem;font-weight:600;color:var(--muted);}
.visit-cc{font-size:.88rem;font-weight:500;color:var(--ink);margin-top:.1rem;}
.visit-toggle{font-size:.73rem;color:var(--muted-2);}
.visit-body{padding:1.4rem;display:none;border-top:1.5px solid var(--line-2);}
.visit-body.open{display:block;}
.visit-section-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);margin:1.1rem 0 .6rem;}
.visit-section-title:first-child{margin-top:0;}

/* INFO ITEMS */
.section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem;margin-bottom:.65rem;}
.info-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:.65rem .85rem;}
.info-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-2);margin-bottom:.2rem;}
.info-value{font-size:.88rem;font-weight:600;color:var(--ink);}

/* TABLES */
.patients-table,table.pt-table,table.data-table,.records-table{width:100%;border-collapse:collapse;background:white;}
.patients-table th,table.pt-table th,table.data-table th,.records-table th{background:var(--navy);color:rgba(255,255,255,.85);padding:.8rem 1.15rem;text-align:left;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;border:none;font-family:var(--font);}
.patients-table td,table.pt-table td,table.data-table td,.records-table td{padding:.9rem 1.15rem;border-bottom:1px solid var(--line-2);font-size:.84rem;color:var(--ink-2);vertical-align:middle;font-family:var(--font);}
.patients-table tr:last-child td,table.pt-table tr:last-child td,table.data-table tr:last-child td,.records-table tr:last-child td{border-bottom:none;}
.patients-table tbody tr:hover td,table.pt-table tbody tr:hover td,table.data-table tbody tr:hover td,.records-table tbody tr:hover td{background:#f0f5ff;}
.table-wrap{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-sm);}
.table-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem;border-bottom:1.5px solid var(--line-2);background:var(--surface);}
.table-title{font-size:.8rem;font-weight:700;color:var(--ink-3);}
.table-count{background:var(--brand-light);color:var(--brand-dark);font-size:.68rem;font-weight:700;padding:.18rem .6rem;border-radius:999px;border:1px solid rgba(26,86,219,.2);}
.rx-table{width:100%;border-collapse:collapse;font-size:.83rem;}
.rx-table th{background:var(--surface);padding:.6rem .9rem;text-align:left;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);border-bottom:1.5px solid var(--line);font-family:var(--font);}
.rx-table td{padding:.65rem .9rem;border-bottom:1px solid var(--line-2);color:var(--ink-2);vertical-align:middle;font-family:var(--font);}
.rx-table tr:last-child td{border-bottom:none;}
.rx-table tr:hover td{background:var(--surface);}
.dynamic-table{width:100%;border-collapse:collapse;}
.dynamic-table th{padding:.55rem .8rem;font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);border-bottom:1.5px solid var(--line);background:var(--surface);text-align:left;font-family:var(--font);}
.dynamic-table td{padding:.45rem .5rem;border-bottom:1px solid var(--line-2);vertical-align:middle;font-family:var(--font);}
.dynamic-table td input,.dynamic-table td select{padding:.38rem .6rem;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.8rem;background:white;width:100%;color:var(--ink-2);font-family:var(--font);}
.dynamic-table td input:focus,.dynamic-table td select:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(26,86,219,.1);outline:none;}
.btn-remove{background:none;border:none;cursor:pointer;color:var(--muted-2);font-size:.82rem;padding:.22rem .45rem;border-radius:var(--r-xs);transition:all .15s;font-family:var(--font);}
.btn-remove:hover{color:var(--red);background:var(--red-bg);}

/* TABS */
.tabs,.an-tabs,.page-tabs{display:flex;gap:.15rem;border-bottom:2px solid var(--line);margin-bottom:1.5rem;}
.tab-btn,.an-tab,.page-tab{padding:.55rem 1.1rem;font-size:.82rem;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2.5px solid transparent;margin-bottom:-2px;cursor:pointer;font-family:var(--font);transition:all .15s;border-radius:var(--r-xs) var(--r-xs) 0 0;}
.tab-btn:hover,.an-tab:hover,.page-tab:hover{color:var(--ink);background:var(--surface);}
.tab-btn.active,.an-tab.active,.page-tab.active{color:var(--brand);border-bottom-color:var(--brand);background:none;}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.d-none{display:none !important;}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.badge-success{background:var(--green-bg);color:#065f46;border:1px solid var(--green-border);}
.badge-warning{background:var(--amber-bg);color:#92400e;border:1px solid var(--amber-border);}
.badge-danger{background:var(--red-bg);color:#991b1b;border:1px solid var(--red-border);}
.badge-info{background:var(--brand-light);color:var(--brand-dark);border:1px solid rgba(26,86,219,.2);}
.badge-neutral{background:var(--surface);color:var(--muted);border:1px solid var(--line);}

/* FLAGS */
.flag{display:inline-block;padding:.18rem .6rem;background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border);border-radius:999px;font-size:.7rem;font-weight:600;margin-right:.3rem;margin-bottom:.3rem;}

/* CHECKBOXES */
.checkbox-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.checkbox-row label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;color:var(--ink-2);cursor:pointer;padding:.32rem .7rem;border-radius:var(--r-sm);border:1.5px solid var(--line);background:white;transition:all .15s;}
.checkbox-row label:hover{border-color:var(--brand);background:var(--brand-light);}
.checkbox-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand);cursor:pointer;}

/* RANGE HINTS */
.range-hint{font-size:.68rem;color:var(--muted-2);margin-top:.22rem;font-weight:500;}
.range-hint.ok{color:var(--green);}
.range-hint.warn{color:var(--amber);}
.range-hint.danger{color:var(--red);font-weight:600;}

/* PHOTO UPLOAD */
.photo-upload-area{border:2px dashed var(--line);border-radius:var(--r-lg);padding:1.35rem 1rem;text-align:center;background:var(--surface);transition:all .2s;}
.photo-upload-area:hover{border-color:var(--brand);background:var(--brand-light);}
.photo-preview{width:86px;height:86px;border-radius:16px;object-fit:cover;margin:0 auto .65rem;display:block;border:2px solid var(--line);}
.upload-icon{font-size:1.65rem;margin-bottom:.35rem;}
.upload-text{font-size:.76rem;color:var(--muted);}
.photo-btn-row{display:flex;gap:.45rem;justify-content:center;margin-top:.65rem;}
.photo-btn{flex:1;padding:.38rem .5rem;border-radius:var(--r-sm);font-size:.74rem;font-weight:600;cursor:pointer;border:1.5px solid var(--line);background:white;color:var(--ink-2);transition:all .15s;display:flex;align-items:center;justify-content:center;gap:.3rem;font-family:var(--font);}
.photo-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light);}
.photo-btn.camera-btn{background:var(--navy);color:white;border-color:var(--navy);}
.photo-btn.camera-btn:hover{background:var(--navy-2);}

/* EMPTY STATES */
.no-visits,.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--muted-2);}
.empty-icon{font-size:2.2rem;margin-bottom:.75rem;opacity:.4;}
.no-visits h3,.empty-title{font-size:.95rem;font-weight:600;color:var(--muted);margin-bottom:.3rem;}
.empty-sub{font-size:.83rem;}

/* CAMERA */
.cam-overlay{position:fixed;inset:0;background:rgba(11,22,41,.82);backdrop-filter:blur(6px);z-index:9000;display:none;align-items:center;justify-content:center;padding:1.5rem;}
.cam-overlay.open{display:flex;}
.cam-box{background:white;border-radius:var(--r-xl);padding:1.75rem;width:90%;max-width:460px;box-shadow:var(--sh-lg);}
.cam-title{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--navy);margin-bottom:.9rem;}
.cam-video,.cam-canvas{width:100%;border-radius:var(--r-lg);background:var(--surface);border:1.5px solid var(--line);}
.cam-actions{display:flex;gap:.5rem;margin-top:.9rem;justify-content:center;}

/* PERMISSIONS */
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem;}
.perm-item input[type=checkbox]{display:none;}
.perm-item label{display:flex;align-items:center;gap:.45rem;padding:.5rem .8rem;border-radius:var(--r-sm);border:1.5px solid var(--line);background:white;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:var(--font);color:var(--ink-2);}
.perm-item label:hover{border-color:var(--brand);}
.perm-item input:checked+label{background:var(--brand-light);border-color:var(--brand);color:var(--brand-dark);}

/* PROFILE */
.profile-layout{display:grid;grid-template-columns:240px 1fr;gap:1.25rem;align-items:start;}
.profile-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.5rem;box-shadow:var(--sh-sm);text-align:center;position:sticky;top:80px;}
.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--brand-light),#d4e0ff);margin:0 auto .75rem;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:var(--brand);position:relative;overflow:hidden;border:2px solid rgba(26,86,219,.15);}
.profile-avatar img{width:100%;height:100%;object-fit:cover;}
.avatar-edit{position:absolute;bottom:0;right:0;width:22px;height:22px;background:var(--brand);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;cursor:pointer;color:white;border:2px solid white;}
.profile-name{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.2rem;}
.profile-clinic{font-size:.78rem;color:var(--muted);margin-bottom:.15rem;}
.profile-reg{font-size:.72rem;color:var(--muted-2);}
.tab-nav{display:flex;border-bottom:2px solid var(--line);margin-bottom:1.25rem;gap:.1rem;}
.tab-btn{padding:.55rem 1rem;border:none;background:none;font-size:.82rem;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s;font-family:var(--font);display:flex;align-items:center;gap:.35rem;white-space:nowrap;}
.tab-btn.active{color:var(--brand);border-bottom-color:var(--brand);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.person-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.1rem 1.25rem;box-shadow:var(--sh-sm);margin-bottom:.75rem;display:flex;align-items:center;gap:1rem;}
.person-avatar{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--brand-light),#d4e0ff);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--brand);flex-shrink:0;overflow:hidden;border:1.5px solid rgba(26,86,219,.12);}
.person-avatar img{width:100%;height:100%;object-fit:cover;}
.person-info{flex:1;min-width:0;}
.person-name{font-size:.88rem;font-weight:700;color:var(--ink);margin-bottom:.2rem;}
.person-sub{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.person-email{font-size:.75rem;color:var(--muted-2);margin-top:.15rem;}
.person-actions{display:flex;gap:.4rem;flex-shrink:0;}
.role-badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1.5px solid;}
.role-doctor{background:#eff6ff;color:#1a56db;border-color:#bfdbfe;}
.role-staff{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0;}
.perm-tag{display:inline-block;padding:.1rem .45rem;border-radius:5px;font-size:.65rem;font-weight:600;background:var(--surface);color:var(--muted);border:1px solid var(--line);margin:.1rem .1rem 0 0;}
.add-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:1.5px dashed var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s;margin-bottom:1rem;}
.add-toggle-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light);}
.plus-icon{font-size:1.1rem;line-height:1;}
.add-form-wrap{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.5rem;margin-top:1rem;}
.add-form-inner{display:none;}
.add-form-inner.open{display:block;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem;}
.form-group{display:flex;flex-direction:column;gap:.3rem;}
.form-group.full-width{grid-column:1/-1;}
.form-group label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.form-group input,.form-group select,.form-group textarea{padding:.52rem .8rem;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.85rem;font-family:var(--font);color:var(--ink);background:white;outline:none;transition:border-color .15s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);}
.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1.5px solid var(--line-2);}
.clinic-form{max-width:900px;margin:0 auto;}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px);}
.modal-overlay.open{display:flex;}
.modal-box{background:white;border-radius:var(--r-xl);padding:1.75rem;width:100%;max-width:480px;box-shadow:var(--sh-lg);max-height:90vh;overflow-y:auto;}
.modal-title{font-family:var(--serif);font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:1rem;}
.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1.5px solid var(--line-2);}

/* RECORDS */
.records-layout{display:grid;grid-template-columns:260px 1fr;gap:1.25rem;align-items:start;}
.record-list{display:flex;flex-direction:column;gap:.5rem;}
.record-item{padding:.75rem 1rem;border:1.5px solid var(--line);border-radius:var(--r-lg);background:white;cursor:pointer;transition:all .15s;}
.record-item:hover,.record-item.active{border-color:var(--brand);background:var(--brand-light);}
.record-name{font-size:.85rem;font-weight:600;color:var(--ink);}
.record-meta{font-size:.72rem;color:var(--muted);margin-top:.15rem;}

/* AUTH */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg);}
.auth-box{background:white;border-radius:var(--r-xl);padding:2.5rem 2.25rem;width:100%;max-width:420px;box-shadow:var(--sh-lg);border:1.5px solid var(--line);}
.auth-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:1.75rem;justify-content:center;}
.auth-title{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:.3rem;text-align:center;}
.auth-sub{font-size:.83rem;color:var(--muted);text-align:center;margin-bottom:1.5rem;}
.auth-footer{text-align:center;margin-top:1.25rem;font-size:.8rem;color:var(--muted);}
.auth-footer a{color:var(--brand);text-decoration:none;font-weight:600;}

/* SUBSCRIPTION */
.pay-wrap{max-width:520px;margin:0 auto;}

/* SEARCH */
.search-row{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.search-row input[type=text],.search-row input[type=search]{flex:1;max-width:380px;min-width:180px;}
.search-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.search-bar input[type=text]{flex:1;max-width:360px;min-width:160px;}

/* STATUS BADGE */
.status-badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.status-active{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;}
.status-inactive{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;}
.status-pending{background:#fffbeb;color:#d97706;border:1px solid #fde68a;}

/* RESPONSIVE */
@media(max-width:900px){.appt-layout{grid-template-columns:1fr;}.profile-layout{grid-template-columns:1fr;}.rev-hero{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){
  .container{padding:calc(var(--nav-h) + 1rem) 1rem 2rem;}
  .navbar{padding:0 1rem;}
  .nav-links{display:none;}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .form-grid{grid-template-columns:1fr;}
  .charts-row{grid-template-columns:1fr;}
  .records-layout{grid-template-columns:1fr;}
  .profile-layout{grid-template-columns:1fr;}
  .patient-card{flex-direction:column;}
  .modal-box{margin:1rem;}
}
@media(max-width:480px){
  .stats-row{grid-template-columns:1fr;}
  .appt-stats{grid-template-columns:repeat(3,1fr);}
  .mini-cal{font-size:.8rem;}
}

/* PAGE HEADER */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap;}
.page-title{font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--navy);letter-spacing:-.03em;line-height:1.15;}
.page-subtitle{font-size:.82rem;color:var(--muted);margin-top:.2rem;}
.page-actions{display:flex;gap:.5rem;flex-shrink:0;flex-wrap:wrap;}

/* WELCOME BANNER */
.welcome-banner{background:linear-gradient(135deg,#0b1629 0%,#1a3a5c 100%);border-radius:var(--r-xl);padding:1.75rem 2rem;margin-bottom:1.75rem;color:white;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.welcome-title{font-family:var(--serif);font-size:1.4rem;font-weight:700;margin-bottom:.3rem;}
.welcome-sub{font-size:.83rem;opacity:.75;}
.welcome-badge-num{font-family:var(--serif);font-size:2rem;font-weight:700;line-height:1;}
.welcome-badge-lbl{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-top:.2rem;}

/* STAT CARDS */
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem;margin-bottom:1.75rem;}
.stat-card{background:white;border-radius:var(--r-lg);padding:1.25rem 1.35rem;border:1.5px solid var(--line);box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.stat-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;}
.stat-card.blue::before{background:var(--brand);}
.stat-card.green::before{background:var(--green);}
.stat-card.amber::before{background:var(--amber);}
.stat-card.teal::before{background:var(--teal);}
.stat-card.purple::before{background:var(--purple);}
.stat-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px);}
.stat-label{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.45rem;}
.stat-value{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--navy);line-height:1;letter-spacing:-.04em;margin-bottom:.25rem;}
.stat-sub{font-size:.75rem;color:var(--muted-2);}

/* QUICK ACTIONS */
.quick-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.75rem;}

/* RECENT PATIENTS */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;}
.section-title{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--navy);}
.mini-list{display:flex;flex-direction:column;gap:.5rem;}
.mini-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--sh-sm);transition:box-shadow .15s;}
.mini-card:hover{box-shadow:var(--sh-md);}
.mini-avatar{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,var(--brand-light),#d4e0ff);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;overflow:hidden;border:1.5px solid rgba(26,86,219,.12);}
.mini-avatar img{width:100%;height:100%;object-fit:cover;}
.mini-info{flex:1;min-width:0;overflow:hidden;}
.mini-name{font-size:.9rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-meta{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem;}
.mini-actions{display:flex;gap:.35rem;flex-shrink:0;}

/* PATIENT CARD */
.patient-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.75rem;box-shadow:var(--sh-sm);margin-bottom:1.25rem;display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;}
.patient-avatar{width:72px;height:72px;border-radius:16px;background:linear-gradient(135deg,var(--brand-light),#d4e0ff);display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;color:var(--brand);flex-shrink:0;overflow:hidden;border:2px solid rgba(26,86,219,.12);}
.patient-avatar img{width:100%;height:100%;object-fit:cover;}
.patient-info{flex:1;min-width:200px;}
.patient-name{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:var(--navy);margin-bottom:.3rem;}
.patient-meta{font-size:.78rem;color:var(--muted);display:flex;gap:.75rem;flex-wrap:wrap;}
.patient-actions{display:flex;gap:.4rem;flex-wrap:wrap;flex-shrink:0;}

/* VISIT CARD */
.visit-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden;}
.visit-header{padding:.75rem 1.1rem;border-bottom:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;background:var(--surface);}
.visit-date{font-size:.78rem;font-weight:700;color:var(--navy);}
.visit-body{padding:1rem 1.1rem;}

/* CARD */
.card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-sm);overflow:hidden;margin-bottom:1.25rem;}
.card-header{padding:1.1rem 1.5rem;border-bottom:1.5px solid var(--line-2);font-weight:600;font-size:.88rem;color:var(--ink);background:var(--surface);}
.card-body{padding:1.25rem 1.5rem;}

/* ANALYTICS */
.an-tabs{display:flex;border-bottom:2px solid var(--line);margin-bottom:1.5rem;gap:.1rem;}
.an-tab{padding:.55rem 1.1rem;border:none;background:none;font-size:.85rem;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s;font-family:var(--font);}
.an-tab.active{color:var(--brand);border-bottom-color:var(--brand);}
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.9rem;margin-bottom:1.5rem;}
.metric-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:1.25rem 1.35rem;box-shadow:var(--sh-sm);position:relative;overflow:hidden;}
.metric-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--brand);}
.metric-label{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.45rem;}
.metric-value{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--navy);line-height:1;letter-spacing:-.04em;margin-bottom:.25rem;}
.metric-sub{font-size:.75rem;color:var(--muted-2);}
.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:1.1rem;}
.chart-card{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.25rem 1.5rem;box-shadow:var(--sh-sm);}
.chart-card canvas{max-height:220px !important;}
.chart-title{font-size:.82rem;font-weight:700;color:var(--navy);margin-bottom:.9rem;}
.empty-note{font-size:.82rem;color:var(--muted-2);text-align:center;padding:2rem 0;}

/* APPOINTMENTS */
.appt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin-bottom:1.5rem;}
.appt-stats .stat-card{text-align:center;}
.stat-num{font-family:var(--serif);font-size:2.2rem;font-weight:600;color:var(--brand);line-height:1;letter-spacing:-.04em;margin-bottom:.3rem;}
.stat-lbl{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.appt-layout{display:grid;grid-template-columns:300px 1fr;gap:1.1rem;align-items:start;}
.mini-cal{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-sm);margin-bottom:1rem;}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1.5px solid var(--line-2);background:var(--surface);}
.cal-month{font-size:.85rem;font-weight:700;color:var(--navy);}
.cal-nav{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.9rem;padding:.2rem .4rem;border-radius:var(--r-sm);transition:all .15s;}
.cal-nav:hover{background:var(--brand-light);color:var(--brand);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:.5rem;}
.cal-day-label{text-align:center;font-size:.62rem;font-weight:700;color:var(--muted);padding:.3rem 0;text-transform:uppercase;}
.cal-day{text-align:center;font-size:.78rem;padding:.35rem;border-radius:6px;cursor:pointer;transition:all .15s;color:var(--ink-2);}
.cal-day:hover{background:var(--brand-light);color:var(--brand);}
.cal-day.today{background:var(--brand);color:white;font-weight:700;}
.cal-day.selected{background:var(--brand-light);color:var(--brand);font-weight:700;border:1.5px solid var(--brand);}
.cal-day.other-month{color:var(--muted-3);}
.cal-day.has-appt::after{content:'';display:block;width:4px;height:4px;border-radius:50%;background:var(--brand);margin:.1rem auto 0;}
.quick-book{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.1rem;box-shadow:var(--sh-sm);}
.quick-book-title{font-size:.82rem;font-weight:700;color:var(--navy);margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem;}
.day-view{background:white;border:1.5px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-sm);}
.day-view-header{padding:.8rem 1.1rem;border-bottom:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;background:var(--surface);}
.day-view-header h3{font-family:var(--serif);font-size:.95rem;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:.5rem;}
.view-tabs{display:flex;gap:.25rem;}
.view-tab{padding:.3rem .7rem;border-radius:var(--r-sm);font-size:.75rem;font-weight:600;color:var(--muted);text-decoration:none;border:1.5px solid transparent;transition:all .15s;}
.view-tab.active{background:var(--brand);color:white;border-color:var(--brand);}
.view-tab:hover:not(.active){background:var(--brand-light);color:var(--brand);}
.slots-grid{padding:0;}
.slot-row{display:flex;align-items:flex-start;min-height:38px;border-bottom:1px solid #f0f2f5;transition:background .1s;}
.slot-row:last-child{border-bottom:none;}
.slot-row:hover{background:#f8faff;}
.slot-time{width:70px;font-size:.7rem;color:#94a3b8;padding:.55rem .7rem;flex-shrink:0;font-weight:600;background:#fafbfc;border-right:1px solid #eef2f7;letter-spacing:.01em;}
.slot-content{flex:1;padding:.3rem .5rem;}
.appt-card{border-radius:var(--r-md);padding:.45rem .8rem;display:flex;align-items:flex-start;gap:.45rem;cursor:pointer;border-left:3px solid var(--brand);background:var(--brand-light);margin-bottom:.2rem;transition:all .15s;}
.appt-card:hover{box-shadow:var(--sh-sm);transform:translateX(2px);}
.appt-card.cancelled{border-left-color:var(--muted-3);background:var(--surface);opacity:.7;}
.appt-card.completed{border-left-color:var(--green);background:var(--green-bg);}
.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:.28rem;}
.appt-patient{font-size:.78rem;font-weight:600;color:var(--ink);}
.appt-reason{font-size:.7rem;color:var(--muted);margin-top:.05rem;}
.status-select{padding:.45rem .75rem;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.82rem;font-family:var(--font);color:var(--ink-2);background:white;cursor:pointer;}

/* BUTTONS */
.btn-sm{padding:.32rem .8rem;font-size:.76rem;border-radius:var(--r-sm);}
.btn-delete{padding:.3rem .75rem;font-size:.76rem;border-radius:var(--r-sm);border:1.5px solid var(--red-border);background:white;color:var(--red);cursor:pointer;font-family:var(--font);transition:all .15s;}
.btn-delete:hover{background:var(--red-bg);}
.btn-action{padding:.3rem .75rem;font-size:.76rem;border-radius:var(--r-sm);border:1.5px solid var(--line);background:white;color:var(--ink-2);cursor:pointer;font-family:var(--font);transition:all .15s;}
.btn-action:hover{border-color:var(--brand);color:var(--brand);}

/* NAV USER PILL */
.nav-user-pill{display:flex;align-items:center;gap:.5rem;padding:.3rem .75rem .3rem .3rem;border:1.5px solid var(--line);border-radius:999px;background:white;cursor:pointer;transition:all .15s;text-decoration:none;}
.nav-user-pill:hover{border-color:var(--brand);background:var(--brand-light);}
.nav-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:white;flex-shrink:0;overflow:hidden;}
.nav-user-avatar img{width:100%;height:100%;object-fit:cover;}
.nav-user-name{font-size:.78rem;font-weight:600;color:var(--ink);white-space:nowrap;}

/* ADD DOCTOR/STAFF FORM */
.add-form-wrap{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.5rem;margin-top:1rem;}
.add-form-inner{display:none;}
.add-form-inner.open{display:block;}
.add-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:1.5px dashed var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s;margin-bottom:1rem;}
.add-toggle-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem;}
.form-group{display:flex;flex-direction:column;gap:.3rem;}
.form-group.full-width{grid-column:1/-1;}
.form-group label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.form-group input,.form-group select,.form-group textarea{padding:.52rem .8rem;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.85rem;font-family:var(--font);color:var(--ink);background:white;outline:none;transition:border-color .15s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);}
.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1.5px solid var(--line-2);}

/* FIX SLOT-TIME DARK BACKGROUND */
.slot-time{background:#fafbfc !important;color:#94a3b8 !important;}

/* ===== APPOINTMENTS SLOT TIME COLUMN RESTORE ===== */
.slot-time {
    background: #fafbfc !important;
    border-right: 1px solid #eef2f7 !important;
    color: #94a3b8 !important;
}
/* ================================================= */

/* ===== BTN-BOOK ===== */
.btn-book{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;background:var(--brand);color:white;border:none;border-radius:var(--r-md);font-size:.85rem;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .15s;width:100%;justify-content:center;margin-top:.5rem;}
.btn-book:hover{background:var(--brand-2);}
/* ==================== */

/* ===== CARD VISIBILITY FIX ===== */
.stat-card, .card, .patient-card, .visit-card, .metric-card,
.chart-card, .mini-cal, .profile-card, .quick-book, .day-view,
.mini-card, .person-card, .add-form-wrap, .appt-stats .stat-card {
    background: white !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.06) !important;
}
/* ================================ */

/* ===== CARD SHADOW BOOST ===== */
.stat-card, .card, .patient-card, .visit-card, .metric-card,
.chart-card, .mini-cal, .profile-card, .quick-book, .day-view,
.mini-card, .person-card, .add-form-wrap, .appt-stats .stat-card {
    background: white !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.1), 0 0 0 1.5px rgba(0,0,0,.07) !important;
}
/* ============================== */

/* ===== GLOBAL CARD SHADOW + INPUT BORDERS ===== */
.stat-card, .card, .patient-card, .visit-card, .metric-card,
.chart-card, .mini-cal, .profile-card, .quick-book, .day-view,
.mini-card, .person-card, .add-form-wrap, .appt-stats .stat-card,
.auth-box, .modal-box, .cam-box {
    background: white !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.1), 0 0 0 1.5px rgba(0,0,0,.07) !important;
}

input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="date"], input[type="number"],
input[type="search"], select, textarea {
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background: white !important;
    color: #1e293b !important;
}

input:focus, select:focus, textarea:focus {
    border-color: #1a56db !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(26,86,219,.1) !important;
}
/* =============================================== */

/* ===== GLOBAL CARD SHADOW ALL PAGES ===== */
.stat-card, .card, .patient-card, .visit-card, .metric-card,
.chart-card, .mini-cal, .profile-card, .quick-book, .day-view,
.mini-card, .person-card, .add-form-wrap, .appt-stats .stat-card,
.auth-box, .modal-box, .cam-box, .record-item, .clinic-form,
.tab-panel.active, .welcome-badge, .inv-sub-tabs,
.pay-wrap, .perm-grid, .form-group, .visit-header,
[class*="card"], [class*="-box"], [class*="-wrap"] {
    box-shadow: 0 2px 12px rgba(0,0,0,.09), 0 0 0 1.5px rgba(0,0,0,.06) !important;
}
/* ========================================= */

/* ===== LAYOUT FIXES ===== */
.tab-panel.active {
    box-shadow: none !important;
    background: transparent !important;
}
.add-form-wrap {
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}
.add-form-wrap .add-form-inner.open {
    background: white !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 16px !important;
    padding: 1.5rem !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.09) !important;
}
.add-toggle-btn {
    box-shadow: none !important;
}
/* ========================= */

/* ===== SETTINGS SUB-PANELS BORDER + SHADOW ===== */
.settings-sub-panel {
    background: white !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 16px !important;
    padding: 1.5rem !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04) !important;
    margin-bottom: 1rem !important;
}
/* ================================================ */

/* ===== SETTINGS SUB-PANELS BORDER + SHADOW BOOST ===== */
.settings-sub-panel {
    background: white !important;
    border: 2px solid #cbd5e1 !important;
    border-radius: 16px !important;
    padding: 1.5rem !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.05) !important;
    margin-bottom: 1rem !important;
}
/* ===================================================== */

/* ===== GLOBAL CONSISTENCY PASS ===== */
/* Universal card style */
.stat-card, .metric-card, .chart-card, .mini-cal,
.profile-card, .quick-book, .day-view, .mini-card,
.person-card, .visit-card, .patient-card, .card,
.record-item, .auth-box, .modal-box, .cam-box {
    background: white !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04) !important;
}

/* Card headers consistent */
.card-header, .visit-header, .day-view-header, .cal-header {
    background: #f8fafc !important;
    border-bottom: 1.5px solid #e2e8f0 !important;
}

/* All form inputs consistent */


/* Tab panels transparent - no double card */
.tab-panel.active {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* Add form wrap transparent */
.add-form-wrap {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
}

/* Consistent section spacing */
.stats-row, .metrics-grid {
    gap: 1rem !important;
}

/* Consistent page background */
body {
    background: #f1f5f9 !important;
}
/* ==================================== */

/* ===== NEW VISIT / VIEW PATIENT CONSISTENCY ===== */
.form-section {
    background: white !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 16px !important;
    padding: 1.5rem !important;
    margin-bottom: 1.25rem !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.07), 0 0 0 1px rgba(0,0,0,.04) !important;
}
.form-section-title, .section-title, .visit-section-title {
    font-size: .82rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #64748b !important;
    margin-bottom: 1rem !important;
    padding-bottom: .5rem !important;
    border-bottom: 1.5px solid #f1f5f9 !important;
}
.inv-sub-tabs, .dev-tabs, [class*="sub-tab"] {
    display: flex !important;
    gap: .4rem !important;
    margin-bottom: 1rem !important;
    flex-wrap: wrap !important;
}
.inv-sub-tab, .dev-tab, [class*="sub-tab"] button {
    padding: .4rem 1rem !important;
    border-radius: 999px !important;
    border: 1.5px solid #e2e8f0 !important;
    background: white !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    color: #64748b !important;
}
.inv-sub-tab.active, .dev-tab.active {
    background: #1a56db !important;
    color: white !important;
    border-color: #1a56db !important;
}
.section-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(160px,1fr)) !important;
    gap: .75rem !important;
}
/* ================================================= */

/* ===== DEV-PANEL + INV-PANEL TAB VISIBILITY FIX ===== */
.dev-panel {
    display: none !important;
}
.dev-panel.active {
    display: block !important;
}
.inv-panel {
    display: none !important;
}
.inv-panel.active {
    display: block !important;
}
/* ==================================================== */

/* ===== INVESTIGATION MAIN PANEL VISIBILITY FIX ===== */
.inv-main-panel {
    display: none !important;
}
.inv-main-panel.active {
    display: block !important;
}
/* =================================================== */

/* ===== INV SUB-PANEL VISIBILITY FIX ===== */
.inv-sub-panel {
    display: none !important;
}
.inv-sub-panel.active {
    display: block !important;
}
/* ========================================= */

/* ===== SEARCH BOX FIX ===== */
input[type="search"], input[type="text"][placeholder*="Search"],
input[type="text"][placeholder*="search"],
input[type="text"][placeholder*="Type or search"],
.search-bar input, .search-row input {
    background: white !important;
    border: 2px solid #cbd5e1 !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.07) !important;
    color: #1e293b !important;
}
/* =========================== */

/* ===== SEARCH INPUT FORCE FIX ===== */
.search-input-wrap input,
.search-input-wrap input[type="text"] {
    background: white !important;
    border: 2px solid #cbd5e1 !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
}
/* =================================== */

/* ===== SEARCH INPUT BORDER BOOST ===== */
.search-input-wrap input,
.search-input-wrap input[type="text"] {
    background: white !important;
    border: 2px solid #94a3b8 !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.1) !important;
}
.search-input-wrap input:focus {
    border-color: #1a56db !important;
    box-shadow: 0 0 0 3px rgba(26,86,219,.12) !important;
}
/* ====================================== */

/* ===== SEARCH WRAP OVERRIDE ===== */
.search-input-wrap {
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.search-input-wrap input {
    background: white !important;
    border: 2px solid #94a3b8 !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.1) !important;
    width: 100% !important;
}
/* ================================= */

/* ===== SEARCH INPUT PADDING FIX ===== */
.search-input-wrap input {
    padding-left: 2.8rem !important;
}
/* ===================================== */

/* ===== DASHBOARD SHADOW + BORDER ===== */
.patient-mini {
    background: white !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 16px !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04) !important;
    padding: .85rem 1rem !important;
    display: flex !important;
    align-items: center !important;
    gap: .75rem !important;
    margin-bottom: .5rem !important;
}
.welcome-banner {
    box-shadow: 0 4px 20px rgba(11,22,41,.25) !important;
}
.stat-card {
    border: 2px solid #e2e8f0 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04) !important;
}
/* ====================================== */

/* ===== DASHBOARD SHADOW BOOST ===== */
.patient-mini {
    border: 2px solid #b8ccdf !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.13), 0 0 0 1.5px rgba(0,0,0,.07) !important;
}
.stat-card {
    border: 2px solid #b8ccdf !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.13), 0 0 0 1.5px rgba(0,0,0,.07) !important;
}
.welcome-banner {
    box-shadow: 0 8px 32px rgba(11,22,41,.35) !important;
}
/* ==================================== */
