:root{
  --bg:#f5f7fb; --panel:#ffffff; --text:#172033; --muted:#778198;
  --border:#e7eaf0; --accent:#b47a22; --accent-dark:#7b4d12; --sidebar:#1d1710;
  --danger:#b42318; --warning:#b54708; --info:#175cd3;
}
*{box-sizing:border-box}
body{margin:0;font-family:Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:255px;background:var(--sidebar);color:white;padding:22px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:12px;align-items:center}.brand small{display:block;color:#b9c7c0;margin-top:3px}
.brand-mark{width:42px;height:42px;border-radius:12px;background:white;color:var(--sidebar);display:grid;place-items:center;font-weight:bold}
.sidebar nav{display:flex;flex-direction:column;gap:7px}
.sidebar nav a,.sidebar nav .disabled{padding:11px 12px;border-radius:9px;color:#eaf3ee}
.sidebar nav a:hover{background:rgba(255,255,255,.08)}
.sidebar nav .disabled{opacity:.5;display:flex;justify-content:space-between}.sidebar em{font-size:10px}
.user-box{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:15px}
.link-button{background:none;border:0;color:#ead8b8;cursor:pointer;padding:8px 0}
.main{flex:1;padding:28px;overflow:auto;min-width:0}
.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:25px}
.topbar h1{margin:0 0 6px;font-size:28px}.topbar p{margin:0;color:var(--muted)}
.companies{display:flex;gap:6px;flex-wrap:wrap}.companies span{background:#fff4dd;color:var(--accent-dark);padding:7px 10px;border-radius:999px;font-size:12px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px;margin-bottom:20px}
.stat-card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 3px 14px rgba(20,30,50,.04)}
.stat-card{padding:20px}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card strong{display:block;font-size:32px;margin-top:8px}
.panel{padding:18px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.panel h2{margin:0 0 6px;font-size:18px}.muted{margin:0;color:var(--muted);font-size:12px}
.table-wrap{overflow:auto;border-radius:10px}table{width:100%;border-collapse:collapse;min-width:820px}th,td{text-align:right;padding:12px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:12px;color:#687386;background:#fafbfc;position:sticky;top:0;z-index:2}td{font-size:13px}.empty{text-align:center;color:var(--muted);padding:25px}
.btn{display:inline-block;border:1px solid var(--border);background:white;color:var(--text);padding:9px 14px;border-radius:9px;cursor:pointer;font:inherit}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.primary:hover{background:var(--accent-dark)}.btn.large{padding:12px 20px;font-weight:bold}
input,select,textarea{width:100%;border:1px solid #dfe3e9;border-radius:9px;padding:10px;background:white;font:inherit;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:#d5ad63;box-shadow:0 0 0 3px rgba(31,122,82,.08)}
.patient-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.patient-grid span{display:block;color:var(--muted);font-size:12px}.patient-grid strong{display:block;margin-top:5px}
.tabs{display:flex;gap:8px;overflow:auto;margin:0 0 18px}.tabs span{background:white;border:1px solid var(--border);padding:9px 12px;border-radius:9px;white-space:nowrap;color:var(--muted)}.tabs .active{background:var(--accent);color:white;border-color:var(--accent)}
.login-page{min-height:100vh;display:grid;place-items:center;background:#edf2ef}.login-card{width:min(430px,92vw);background:white;border-radius:18px;padding:30px;box-shadow:0 20px 50px rgba(15,40,28,.12)}.login-card h2{margin:15px 0}.login-card p{margin:12px 0}.login-card label{display:block;margin-bottom:6px;font-size:13px;font-weight:bold}
.message{background:white;border:1px solid var(--border);padding:12px;border-radius:10px;margin-bottom:15px}
.warn{background:#fff0df!important;color:#8a551b!important}

.filters-panel{padding:14px 18px}
.filters-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(145px,1fr)) auto;gap:10px;align-items:end}
.filter-field label,.field label{display:block;font-size:12px;font-weight:bold;margin-bottom:6px;color:#4b5568}
.filter-actions{display:flex;gap:7px}
.bookings-table table{min-width:1850px}
.patient-link{font-weight:bold;color:#7a4b12}
.patient-code{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.company-pill{display:inline-flex;background:#fff4dd;color:#7b4d12;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:bold}
.status-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:bold}
.status-new{background:#eef2f6;color:#475467}
.status-pending{background:#fff4e5;color:#b54708}
.status-confirmed{background:#fff4dd;color:#8b5a18}
.status-arrived{background:#e7f0ff;color:#175cd3}
.status-completed{background:#fff2d7;color:#946116}
.status-postponed{background:#f4ebff;color:#6941c6}
.status-cancelled{background:#feeceb;color:#b42318}
.deposit-badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:bold;margin-left:5px}
.deposit-none{background:#f2f4f7;color:#667085}
.deposit-partial{background:#fff4e5;color:#b54708}
.deposit-paid{background:#fff4dd;color:#8b5a18}

.section-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.step-number{width:32px;height:32px;border-radius:9px;background:#fff4dd;color:#8b5a18;display:grid;place-items:center;font-weight:bold}
.section-title h2{margin:0}.section-title p{margin:4px 0 0;color:var(--muted);font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.form-grid.one-col{grid-template-columns:1fr}
.patient-new-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.field{min-width:0}
.field textarea{min-height:90px}
.error{display:block;color:var(--danger);font-size:11px;margin-top:5px}
.help{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.form-errors{background:#fff1f0;border:1px solid #ffd0cc;color:var(--danger);padding:12px;border-radius:10px;margin-bottom:15px}
.patient-mode{display:flex;gap:10px;margin-bottom:15px}
.mode-card{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;background:#fafbfc}
.mode-card input{width:auto}
.finance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.finance-summary{background:#fffaf1;border:1px dashed #e1c58f;border-radius:12px;padding:12px;display:flex;flex-direction:column;justify-content:center}
.finance-summary span{font-size:12px;color:var(--muted)}
.finance-summary strong{font-size:22px;margin-top:5px;color:#8b5a18}
.form-footer{display:flex;gap:10px;justify-content:flex-start;margin:20px 0 40px}

@media(max-width:1100px){
  .filters-grid{grid-template-columns:repeat(2,1fr)}
  .filter-actions{grid-column:1/-1}
  .patient-new-grid{grid-template-columns:repeat(2,1fr)}
  .form-grid,.finance-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .sidebar{width:210px}.cards{grid-template-columns:1fr}.patient-grid{grid-template-columns:1fr 1fr}
  .topbar{flex-direction:column}.main{padding:18px}
}
@media(max-width:680px){
  .app-shell{display:block}.sidebar{position:relative;width:100%;height:auto}
  .form-grid,.patient-new-grid,.finance-grid,.filters-grid{grid-template-columns:1fr}
}


/* V0.1.3 */
.filters-grid{
  grid-template-columns:minmax(210px,2fr) repeat(5,minmax(135px,1fr)) auto;
}
.bookings-table table{min-width:1720px}
.bookings-table th,.bookings-table td{padding:9px 8px;font-size:12px}
.bookings-table .sticky-patient{
  position:sticky;
  right:0;
  background:#fff;
  z-index:3;
  box-shadow:-6px 0 10px rgba(20,30,50,.04);
}
.bookings-table thead .sticky-patient{
  background:#fafbfc;
  z-index:5;
}
.money-note{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.row-actions{display:flex;gap:5px;align-items:center}
.mini-btn{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border);background:#fff;color:var(--text);
  padding:5px 8px;border-radius:7px;font-size:11px;
}
.mini-btn:hover{border-color:#b8c4ce}
.mini-btn.danger{color:var(--danger);border-color:#f3c7c3}
.quick-status-form{margin:0}
.quick-status{
  width:auto;min-width:120px;padding:5px 26px 5px 8px;border:0;
  border-radius:999px;font-size:11px;font-weight:bold;cursor:pointer;
}
.quick-status.status-new{background:#eef2f6;color:#475467}
.quick-status.status-pending{background:#fff4e5;color:#b54708}
.quick-status.status-confirmed{background:#fff4dd;color:#8b5a18}
.quick-status.status-arrived{background:#e7f0ff;color:#175cd3}
.quick-status.status-completed{background:#fff2d7;color:#946116}
.quick-status.status-postponed{background:#f4ebff;color:#6941c6}
.quick-status.status-cancelled{background:#feeceb;color:#b42318}

.detail-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.btn.danger-btn,.danger-btn{
  background:#b42318;color:#fff;border-color:#b42318;
}
.btn.danger-btn:hover{background:#912018}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.detail-card{margin-bottom:0}
.detail-card-head{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-bottom:14px;
}
.detail-card-head h2{margin:0}
.detail-list{margin:0}
.detail-list>div{
  display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1.2fr);
  gap:12px;padding:10px 0;border-bottom:1px solid var(--border);
}
.detail-list>div:last-child{border-bottom:0}
.detail-list dt{color:var(--muted);font-size:12px}
.detail-list dd{margin:0;font-weight:bold}
.detail-hint{margin:12px 0 0;color:var(--muted);font-size:12px}
.notes-box{min-height:70px;line-height:1.8}
.delete-card{max-width:600px;text-align:center;padding:30px;margin:30px auto}
.delete-icon{
  width:54px;height:54px;border-radius:50%;background:#feeceb;color:#b42318;
  display:grid;place-items:center;font-size:28px;font-weight:bold;margin:0 auto 14px;
}
.delete-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}
.edit-notice{
  background:#fff7e8;border:1px solid #ead7b2;color:#8b5a18;
  padding:11px 14px;border-radius:10px;margin-bottom:15px;
}

@media(max-width:1150px){
  .filters-grid{grid-template-columns:repeat(3,1fr)}
  .filter-actions{grid-column:auto}
}
@media(max-width:800px){
  .detail-grid{grid-template-columns:1fr}
}


/* V0.1.4 ---------------------------------------------------------- */

/* Western/Latin digits everywhere numbers are shown. */
.latin-number,
input[type="number"],
input[type="date"],
input[type="time"],
input[type="month"],
input[type="tel"]{
    font-family: Arial, Tahoma, sans-serif;
    font-variant-numeric: tabular-nums lining-nums;
}

/* Horizontal scrolling: keep the scroller LTR while table content stays RTL. */
.bookings-table{
    direction:ltr;
    overflow-x:auto;
    overflow-y:visible;
    overscroll-behavior-inline:contain;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
    cursor:grab;
}
.bookings-table.is-dragging{
    cursor:grabbing;
    user-select:none;
}
.bookings-table table{
    direction:rtl;
}
.table-scroll-hint{
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--muted);
    font-size:11px;
    margin:-2px 0 10px;
}
.table-scroll-hint span{
    display:inline-grid;
    place-items:center;
    width:25px;
    height:25px;
    border:1px solid var(--border);
    border-radius:7px;
    background:#fafbfc;
    color:var(--accent);
    font-size:15px;
}

/* Sortable table headings. */
.sort-link{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#536174;
    font-weight:bold;
}
.sort-link:hover{color:var(--accent)}
.sort-arrow{
    display:inline-grid;
    place-items:center;
    min-width:18px;
    height:18px;
    border-radius:5px;
    background:#eef2f5;
    color:#718096;
    font-size:11px;
}
.sort-link:hover .sort-arrow{
    background:#fff4dd;
    color:var(--accent-dark);
}

/* Three tabs used on view / edit / delete. */
.booking-tabs{
    display:flex;
    gap:8px;
    margin-bottom:18px;
    padding:6px;
    width:max-content;
    max-width:100%;
    background:#fff;
    border:1px solid var(--border);
    border-radius:13px;
    box-shadow:0 3px 12px rgba(20,30,50,.035);
}
.booking-tab{
    display:flex;
    align-items:center;
    gap:7px;
    padding:9px 14px;
    border-radius:9px;
    color:#536174;
    font-weight:bold;
    font-size:13px;
    white-space:nowrap;
}
.booking-tab:hover{
    background:#f6f8fa;
    color:var(--text);
}
.booking-tab.active{
    background:#fff4dd;
    color:var(--accent-dark);
}
.booking-tab.delete-tab{color:#9f2b23}
.booking-tab.delete-tab.active{
    background:#feeceb;
    color:#b42318;
}
.tab-icon{
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    font-size:13px;
}

/* Professional booking detail page. */
.booking-hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:22px;
}
.booking-hero-main{
    display:flex;
    align-items:center;
    gap:15px;
    min-width:0;
}
.patient-avatar{
    width:58px;
    height:58px;
    flex:0 0 58px;
    border-radius:16px;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,#e6f3ec,#f7fbf8);
    border:1px solid #cfe4d8;
    color:#8b5a18;
    font-weight:800;
    font-size:24px;
}
.hero-eyebrow{
    color:var(--muted);
    font-size:11px;
    margin-bottom:3px;
}
.booking-hero h2{
    margin:0 0 7px;
    font-size:24px;
}
.hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.hero-meta span{
    background:#f5f7f9;
    border:1px solid #e9edf1;
    color:#5c687a;
    padding:5px 8px;
    border-radius:8px;
    font-size:11px;
}
.hero-status{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:9px;
}
.subtle-link{
    font-size:12px;
    color:var(--accent);
}

.detail-grid-pro{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.info-section{
    margin-bottom:0;
}
.info-section-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:15px;
}
.info-section-head>div{
    display:flex;
    align-items:center;
    gap:9px;
}
.info-section-head h2{
    margin:0;
}
.section-kicker{
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:#edf7f1;
    color:#8b5a18;
    font-size:11px;
    font-weight:bold;
}
.optional-pill{
    background:#f3f5f7;
    color:#667085;
    padding:5px 8px;
    border-radius:999px;
    font-size:10px;
}
.info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.info-grid.two-col{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.info-item{
    min-width:0;
    padding:12px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:11px;
}
.info-item span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:6px;
}
.info-item strong{
    display:block;
    font-size:13px;
    overflow-wrap:anywhere;
}
.finance-section{
    background:linear-gradient(180deg,#fff,#fbfdfc);
}
.finance-cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.finance-card{
    padding:14px;
    border:1px solid #e9edf1;
    background:#fafbfc;
    border-radius:12px;
}
.finance-card span{
    display:block;
    color:var(--muted);
    font-size:10px;
}
.finance-card strong{
    display:block;
    font-size:20px;
    margin-top:6px;
}
.finance-card small{
    display:block;
    margin-top:5px;
    color:#7b8494;
}
.finance-card.highlight{
    border-color:#cce5d7;
    background:#fff7e8;
}
.finance-card.highlight strong{
    color:#8b5a18;
}
.notes-section{
    margin-top:16px;
}
.notes-box{
    min-height:75px;
    padding:14px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:11px;
    line-height:1.8;
}

/* Delete page. */
.delete-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    text-align:right;
    margin:20px 0;
}
.delete-summary>div{
    padding:12px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:10px;
}
.delete-summary span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:5px;
}
.delete-summary strong{
    font-size:13px;
}
.delete-warning{
    background:#fff7ed;
    border:1px solid #fed7aa;
    color:#9a4c10;
    padding:12px;
    border-radius:10px;
    font-size:12px;
}

@media(max-width:1100px){
    .detail-grid-pro{grid-template-columns:1fr}
    .info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
    .booking-tabs{width:100%;overflow-x:auto}
    .booking-hero{align-items:flex-start;flex-direction:column}
    .hero-status{width:100%}
    .info-grid,.info-grid.two-col,.finance-cards,.delete-summary{
        grid-template-columns:1fr;
    }
}


/* V0.1.5 ======================================================== */

/* Company-specific visual identity */
.company-theme{
    --theme-accent:#b47a22;
    --theme-dark:#7b4d12;
    --theme-soft:#fff4dd;
    --theme-border:#cfe4d8;
    --theme-page:#f6faf8;
}
.company-theme.company-derma{
    --theme-accent:#18aeb2;
    --theme-dark:#087c80;
    --theme-soft:#e7f8f8;
    --theme-border:#bfe7e8;
    --theme-page:#f4fbfb;
}
.company-theme.company-aeon{
    --theme-accent:#b78a26;
    --theme-dark:#866214;
    --theme-soft:#fff7df;
    --theme-border:#eddca9;
    --theme-page:#fffdf7;
}
.company-theme .themed-panel,
.company-theme .patient-file-hero,
.company-theme .info-section{
    border-color:var(--theme-border);
}
.company-theme .step-number,
.company-theme .section-kicker{
    background:var(--theme-soft);
    color:var(--theme-dark);
}
.company-theme .booking-tab.active{
    background:var(--theme-soft);
    color:var(--theme-dark);
}
.company-theme .btn.primary{
    background:var(--theme-accent);
    border-color:var(--theme-accent);
}
.company-theme .btn.primary:hover{
    background:var(--theme-dark);
    border-color:var(--theme-dark);
}
.company-theme .patient-avatar{
    background:var(--theme-soft);
    border-color:var(--theme-border);
    color:var(--theme-dark);
}
.company-theme .finance-card.highlight,
.company-theme .finance-summary{
    background:var(--theme-soft);
    border-color:var(--theme-border);
}
.company-theme .finance-card.highlight strong,
.company-theme .finance-summary strong,
.company-theme .subtle-link{
    color:var(--theme-dark);
}
.company-pill.company-derma{
    background:#e7f8f8;
    color:#087c80;
}
.company-pill.company-aeon{
    background:#fff7df;
    color:#866214;
}

/* Status colors */
.status-new{
    background:#eaf3ff !important;
    color:#175cd3 !important;
}
.status-pending{
    background:#fff3d6 !important;
    color:#9a6700 !important;
}
.status-confirmed{
    background:#fff4dd !important;
    color:#8b5a18 !important;
}
.status-arrived{
    background:#e3f7f8 !important;
    color:#087c80 !important;
}
.status-completed{
    background:#e9f3ff !important;
    color:#3448a5 !important;
}
.status-postponed{
    background:#f4ebff !important;
    color:#6941c6 !important;
}
.status-cancelled{
    background:#feeceb !important;
    color:#b42318 !important;
}
.status-color-select{
    font-weight:bold;
    transition:background .15s ease,color .15s ease,border-color .15s ease;
}
#id_status option[value="NEW"]{background:#eaf3ff;color:#175cd3}
#id_status option[value="PENDING"]{background:#fff3d6;color:#9a6700}
#id_status option[value="CONFIRMED"]{background:#fff4dd;color:#8b5a18}
#id_status option[value="ARRIVED"]{background:#e3f7f8;color:#087c80}
#id_status option[value="COMPLETED"]{background:#e9f3ff;color:#3448a5}
#id_status option[value="POSTPONED"]{background:#f4ebff;color:#6941c6}
#id_status option[value="CANCELLED"]{background:#feeceb;color:#b42318}

/* Patient data in booking edit */
.patient-identity-strip{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}
.patient-identity-strip>div{
    padding:11px 12px;
    background:#fafbfc;
    border:1px solid var(--border);
    border-radius:10px;
}
.patient-identity-strip span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:4px;
}
.patient-edit-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.file-field input[type="file"]{
    padding:7px;
}
.offer-field{
    margin-top:15px;
}
.offer-field textarea{
    min-height:90px;
}
.offer-detail-box{
    margin-top:12px;
    padding:13px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:11px;
}
.offer-detail-box>span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:7px;
}

/* Full patient file */
.patient-file-hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:22px;
}
.patient-file-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.patient-file-nav{
    position:sticky;
    top:0;
    z-index:8;
    display:flex;
    gap:7px;
    overflow-x:auto;
    margin-bottom:16px;
    padding:7px;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(10px);
    border:1px solid var(--theme-border,var(--border));
    border-radius:12px;
}
.patient-file-nav a{
    padding:8px 11px;
    border-radius:8px;
    white-space:nowrap;
    color:#596579;
    font-size:12px;
    font-weight:bold;
}
.patient-file-nav a:hover{
    background:var(--theme-soft,#f3f5f7);
    color:var(--theme-dark,var(--accent-dark));
}
.anchor-section{
    scroll-margin-top:75px;
}
.patient-booking-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.patient-booking-card{
    display:grid;
    grid-template-columns:160px minmax(0,1fr) auto;
    gap:15px;
    align-items:center;
    padding:13px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:12px;
}
.booking-card-date span{
    display:block;
    color:var(--muted);
    font-size:10px;
}
.booking-card-date strong{
    display:block;
    font-size:16px;
    margin:4px 0;
}
.booking-card-date small{
    color:#737d8d;
}
.booking-card-title{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
}
.booking-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    color:#667085;
    font-size:11px;
}
.booking-card-meta span{
    padding:4px 7px;
    background:#fff;
    border:1px solid #e8ebef;
    border-radius:7px;
}
.booking-card-offer{
    margin-top:8px;
    color:#4f5c6f;
    font-size:11px;
    line-height:1.6;
}
.booking-card-actions{
    display:flex;
    gap:5px;
}
.document-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.document-card,
.upload-card{
    padding:14px;
    border:1px solid #edf0f3;
    background:#fafbfc;
    border-radius:12px;
}
.document-card{
    display:flex;
    align-items:center;
    gap:12px;
}
.document-icon{
    width:50px;
    height:50px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:var(--theme-soft,#fff4dd);
    color:var(--theme-dark,#7b4d12);
    font-weight:bold;
}
.document-content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
}
.document-content span{
    color:var(--muted);
    font-size:10px;
}
.muted-strong{
    color:#7c8798;
}
.upload-card{
    display:grid;
    gap:8px;
}
.upload-card label{
    font-weight:bold;
    font-size:12px;
}
.photo-upload-form{
    display:grid;
    grid-template-columns:180px minmax(220px,1fr) minmax(220px,1fr) auto;
    gap:10px;
    align-items:end;
    padding:12px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:12px;
    margin-bottom:15px;
}
.patient-photo-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.patient-photo-card{
    margin:0;
    overflow:hidden;
    border:1px solid #e8ebef;
    border-radius:12px;
    background:#fff;
}
.patient-photo-card img{
    display:block;
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    background:#f3f5f7;
}
.patient-photo-card figcaption{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:9px;
}
.photo-category{
    color:var(--theme-dark,#7b4d12);
    font-size:10px;
    font-weight:bold;
}
.patient-photo-card small{
    color:var(--muted);
}
.photo-empty{
    grid-column:1/-1;
}
.patient-notes-form{
    display:grid;
    gap:10px;
}
.patient-notes-form textarea{
    min-height:120px;
}
.patient-form-panel{
    max-width:1050px;
}
.patient-edit-form .span-all{
    grid-column:1/-1;
}
.patient-search{
    display:flex;
    gap:8px;
    flex:1;
    max-width:580px;
}
.patient-search input{
    min-width:0;
}

@media(max-width:1100px){
    .patient-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .photo-upload-form{grid-template-columns:repeat(2,minmax(0,1fr))}
    .patient-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
    .patient-identity-strip,
    .document-layout,
    .patient-booking-card{
        grid-template-columns:1fr;
    }
    .patient-file-hero{
        align-items:flex-start;
        flex-direction:column;
    }
    .patient-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
    .patient-photo-grid,
    .photo-upload-form,
    .patient-edit-grid{
        grid-template-columns:1fr;
    }
}


/* V0.2.0 — Consultations ======================================= */

.dashboard-four{
    grid-template-columns:repeat(4,minmax(150px,1fr));
}
.dashboard-columns{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
    gap:16px;
}
.dashboard-columns .panel{margin-bottom:0}
.dashboard-table{min-width:650px}
.consultation-dashboard-list{
    display:flex;
    flex-direction:column;
    gap:7px;
}
.consultation-dashboard-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:11px 12px;
    border:1px solid #edf0f3;
    background:#fafbfc;
    border-radius:10px;
    color:var(--text);
}
.consultation-dashboard-item:hover{
    border-color:#d8e2dc;
    background:#fff;
}
.consultation-dashboard-item>div{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.consultation-dashboard-item>div:last-child{
    align-items:flex-end;
}
.consultation-dashboard-item span{
    color:var(--muted);
    font-size:10px;
}

.consultation-filters{
    display:grid;
    grid-template-columns:minmax(210px,2fr) repeat(5,minmax(130px,1fr)) auto;
    gap:10px;
    align-items:end;
}
.consultation-table table{
    min-width:1350px;
}
.consult-status,
.candidate-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:bold;
    white-space:nowrap;
}
.consult-status-draft{
    background:#eef2f6;
    color:#475467;
}
.consult-status-completed{
    background:#fff4dd;
    color:#8b5a18;
}
.consult-status-followup{
    background:#fff3d6;
    color:#9a6700;
}
.candidate-suitable{
    background:#fff4dd;
    color:#8b5a18;
}
.candidate-review{
    background:#fff3d6;
    color:#9a6700;
}
.candidate-not-suitable{
    background:#feeceb;
    color:#b42318;
}
.candidate-undecided{
    background:#eef2f6;
    color:#667085;
}
.consultation-hero-status{
    gap:6px;
}
.medical-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.previous-transplant-box{
    margin-top:14px;
    padding:13px;
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:11px;
}
.checkbox-line{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    font-weight:bold;
    font-size:12px;
}
.checkbox-line input{
    width:auto;
}
.consult-text-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.consult-text-grid .span-all{
    grid-column:1/-1;
}
.consult-text-view{
    display:grid;
    gap:10px;
}
.consult-text-view>div{
    padding:12px;
    border:1px solid #edf0f3;
    background:#fafbfc;
    border-radius:10px;
}
.consult-text-view span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:6px;
}
.consult-text-view p{
    margin:0;
    line-height:1.75;
    font-size:13px;
}
.consultation-photo-section{
    margin-top:16px;
}
.consultation-patient-card{
    border-inline-start:3px solid var(--theme-accent,#b47a22);
}

@media(max-width:1200px){
    .consultation-filters{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:1000px){
    .dashboard-four{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dashboard-columns{grid-template-columns:1fr}
    .medical-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .consultation-filters,
    .consult-text-grid{
        grid-template-columns:1fr;
    }
    .consult-text-grid .span-all{
        grid-column:auto;
    }
}


/* V0.2.2 — unified consultations classification */
.consultation-scope-filter{
    grid-column:1/-1;
    border-top:1px solid var(--border);
    padding-top:12px;
    margin-top:2px;
}
.scope-title{
    color:#4b5568;
    font-size:12px;
    font-weight:bold;
    margin-bottom:8px;
}
.scope-options{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.scope-option{
    position:relative;
    display:inline-flex;
    cursor:pointer;
}
.scope-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.scope-option span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid var(--border);
    border-radius:999px;
    background:#fff;
    color:#596579;
    font-size:11px;
    font-weight:bold;
    transition:.15s ease;
}
.scope-option:hover span{
    border-color:#b9c5cf;
}
.scope-option input:checked + span{
    background:#eef2f6;
    color:#344054;
    border-color:#d5dbe2;
}
.scope-option.scope-clinic input:checked + span{
    background:#e7f8f8;
    color:#087c80;
    border-color:#bfe7e8;
}
.scope-option.scope-remote input:checked + span{
    background:#eef4ff;
    color:#3448a5;
    border-color:#d4def9;
}
.scope-help{
    margin:8px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.6;
}


/* V0.2.3 — patient-first workflow + consultation patient preview */

.patient-workflow{
    max-width:900px;
    margin:0 auto 16px;
}
.workflow-steps{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}
.workflow-step{
    display:flex;
    align-items:center;
    gap:7px;
    color:#8a94a4;
    font-size:12px;
}
.workflow-step span{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#eef1f4;
    font-weight:bold;
}
.workflow-step.active{
    color:var(--accent-dark);
}
.workflow-step.active span{
    background:#fff4dd;
    color:#8b5a18;
}
.workflow-line{
    width:80px;
    height:1px;
    background:#dfe4e9;
}
.patient-basic-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.phone-combined{
    display:grid;
    grid-template-columns:minmax(155px,.75fr) minmax(0,1.25fr);
    gap:8px;
}
.phone-combined select,
.phone-combined input{
    direction:ltr;
}
.patient-optional-section{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--border);
}
.section-title.small{
    margin-bottom:14px;
}
.section-title.small h2{
    font-size:15px;
}
.two-col-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.consultation-patient-preview{
    margin-top:15px;
    padding:14px;
    border:1px solid var(--theme-border,#d9e5de);
    border-radius:12px;
    background:var(--theme-page,#f8fbf9);
}
.preview-title{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:center;
    margin-bottom:12px;
}
.preview-title strong{
    color:var(--theme-dark,#7b4d12);
}
.preview-title span{
    color:var(--muted);
    font-size:10px;
}
.preview-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    margin-bottom:10px;
}
.preview-grid>div{
    padding:10px;
    background:#fff;
    border:1px solid #e9edf1;
    border-radius:9px;
}
.preview-grid span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:5px;
}
.preview-grid strong{
    display:block;
    font-size:12px;
    overflow-wrap:anywhere;
}

/* Scope filter should feel like tabs and apply immediately */
.scope-option span{
    cursor:pointer;
}

@media(max-width:800px){
    .patient-basic-grid,
    .two-col-form,
    .preview-grid{
        grid-template-columns:1fr;
    }
    .phone-combined{
        grid-template-columns:1fr;
    }
    .workflow-line{
        width:30px;
    }
}


/* V0.2.4 ====================================================== */

/* Linked patient summary, shared by consultation + booking */
.linked-patient-card{
    margin-top:15px;
    padding:15px;
    border:1px solid var(--theme-border,#d9e5de);
    background:linear-gradient(180deg,var(--theme-page,#f8fbf9),#fff);
    border-radius:14px;
}
.linked-patient-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    padding-bottom:12px;
    margin-bottom:12px;
    border-bottom:1px solid #e9edef;
}
.linked-patient-header>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.linked-kicker{
    color:var(--theme-dark,#7b4d12);
    font-size:10px;
    font-weight:bold;
}
.linked-patient-header strong{
    font-size:16px;
}
.linked-patient-header small{
    color:var(--muted);
    font-size:10px;
}
.linked-patient-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.linked-data-item{
    min-width:0;
    padding:10px 11px;
    border:1px solid #e9edf1;
    background:#fff;
    border-radius:10px;
}
.linked-data-item span{
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-bottom:5px;
}
.linked-data-item strong{
    display:block;
    font-size:12px;
    overflow-wrap:anywhere;
}
.linked-consultation-hint{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-top:10px;
    padding:10px;
    border-radius:9px;
    background:var(--theme-soft,#fff7e8);
    color:var(--theme-dark,#8b5a18);
    font-size:11px;
}
.linked-consultation-hint span{
    color:var(--muted);
}
.linked-consultation-hint small{
    color:var(--muted);
}

/* Duplicate phone warning */
.duplicate-phone-box{
    margin-top:16px;
    padding:14px;
    border:1px solid #f3c28d;
    background:#fff9f2;
    border-radius:13px;
}
.duplicate-warning-head{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:11px;
}
.duplicate-warning-icon{
    width:30px;
    height:30px;
    flex:0 0 30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff0db;
    color:#b95f08;
    font-weight:bold;
}
.duplicate-warning-head strong{
    color:#8b4b0e;
}
.duplicate-warning-head p{
    margin:3px 0 0;
    color:#7a6753;
    font-size:10px;
    line-height:1.6;
}
.duplicate-phone-results{
    display:grid;
    gap:9px;
}
.duplicate-patient-card{
    padding:12px;
    border:1px solid #f0d5b7;
    background:#fff;
    border-radius:10px;
}
.duplicate-patient-main{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:9px;
}
.duplicate-patient-main>div:first-child{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.duplicate-patient-main span{
    color:var(--muted);
    font-size:10px;
}
.duplicate-phone-number{
    direction:ltr;
    font-family:Arial,Tahoma,sans-serif;
    font-weight:bold;
    color:#4f5969;
}
.duplicate-patient-meta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:9px;
}
.duplicate-patient-meta>div{
    padding:9px;
    border-radius:8px;
    background:#fafbfc;
    border:1px solid #edf0f3;
}
.duplicate-patient-meta span{
    display:block;
    color:var(--muted);
    font-size:9px;
    margin-bottom:4px;
}
.duplicate-patient-meta strong{
    display:inline-block;
    font-size:11px;
}
.duplicate-status{
    padding:4px 7px;
    border-radius:999px;
}
.duplicate-status-green{background:#fff4dd;color:#8b5a18}
.duplicate-status-red{background:#feeceb;color:#b42318}
.duplicate-status-blue{background:#eaf3ff;color:#175cd3}
.duplicate-status-amber{background:#fff3d6;color:#9a6700}
.duplicate-status-gray{background:#eef2f6;color:#667085}

@media(max-width:800px){
    .linked-patient-grid,
    .duplicate-patient-meta{
        grid-template-columns:1fr;
    }
    .linked-patient-header,
    .duplicate-patient-main{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* V0.3.0 — PRP / Mesotherapy */
.dashboard-five{grid-template-columns:repeat(5,minmax(135px,1fr))}
.treatment-filters{display:grid;grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:10px;align-items:end}
.treatment-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.treatment-course-card{border:1px solid var(--theme-border,#e1e6eb);border-radius:14px;background:#fff;padding:15px}
.treatment-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.treatment-card-head>div{display:flex;flex-direction:column;gap:3px}
.treatment-status,.session-status{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:bold;white-space:nowrap}
.treatment-active{background:#eaf3ff;color:#175cd3}.treatment-completed{background:#fff4dd;color:#8b5a18}.treatment-paused{background:#fff3d6;color:#9a6700}.treatment-cancelled{background:#feeceb;color:#b42318}
.treatment-progress-wrap{margin-top:14px}.treatment-progress-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:#667085;font-size:10px}
.treatment-progress{height:7px;border-radius:999px;overflow:hidden;background:#eef1f4}.treatment-progress span{display:block;height:100%;border-radius:inherit;background:var(--theme-accent,#b47a22)}
.treatment-progress.compact{margin-top:9px;height:6px}
.treatment-count-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}
.treatment-count-grid>div,.treatment-next{padding:10px;border:1px solid #edf0f3;background:#fafbfc;border-radius:10px}
.treatment-count-grid span,.treatment-next span{display:block;color:#7b8494;font-size:9px;margin-bottom:4px}
.treatment-count-grid strong{display:block;font-size:17px}.treatment-count-grid small,.treatment-next small{color:#7b8494;font-size:9px}
.treatment-next{margin-top:9px}.treatment-card-actions{display:flex;gap:6px;margin-top:11px}.treatment-empty{grid-column:1/-1}
.treatment-form-panel{max-width:1050px}.treatment-plan-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.treatment-plan-box{padding:16px;border:1px solid var(--theme-border,#e0e6ea);border-radius:13px;background:var(--theme-page,#fafcfa)}
.treatment-plan-box>span{display:inline-flex;padding:4px 8px;border-radius:999px;margin-bottom:10px;font-size:10px;font-weight:bold}
.prp-plan>span{background:#fff2ec;color:#ad4d1f}.meso-plan>span{background:#eef4ff;color:#3448a5}
.treatment-plan-box label{display:block;margin-bottom:7px;font-weight:bold}.treatment-notes-field{margin-top:16px}
.treatment-detail-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px}
.treatment-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.treatment-summary-card{margin:0}.treatment-summary-card>span{color:var(--muted);font-size:10px}.treatment-summary-card>strong{display:block;font-size:22px;margin-top:6px}.treatment-summary-card>small{display:block;color:var(--muted);margin-top:5px}
.treatment-summary-card.highlight{border-color:var(--theme-border,#cfe4d8);background:var(--theme-page,#f8fbf9)}
.treatment-detail-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:16px}.treatment-session-table{min-width:900px}.add-session-panel{align-self:start}.session-inline-form{display:grid;gap:10px}
.session-scheduled{background:#eaf3ff;color:#175cd3}.session-completed{background:#fff4dd;color:#8b5a18}.session-postponed{background:#fff3d6;color:#9a6700}.session-no-show{background:#f4ebff;color:#6941c6}.session-cancelled{background:#feeceb;color:#b42318}
.treatment-course-notes{margin-top:16px}.patient-treatment-list{display:grid;gap:10px}
.patient-treatment-card{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid #edf0f3;border-radius:11px;background:#fafbfc}
.patient-treatment-head{display:flex;flex-direction:column;gap:6px}.patient-treatment-head span:first-child{color:var(--muted);font-size:9px}
.patient-treatment-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.patient-treatment-counts>div{padding:8px;background:#fff;border:1px solid #e8ebef;border-radius:8px}
.patient-treatment-counts span{display:block;color:var(--muted);font-size:9px;margin-bottom:3px}.patient-treatment-actions{display:flex;gap:5px}
.dashboard-treatment-panel{margin-top:16px}.dashboard-treatment-list{display:grid;gap:7px}
.dashboard-treatment-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #edf0f3;border-radius:10px;background:#fafbfc;color:var(--text)}
.dashboard-treatment-item>div{display:flex;flex-direction:column;gap:3px}.dashboard-treatment-item>div:nth-child(2){align-items:flex-end}.dashboard-treatment-item span{color:var(--muted);font-size:10px}

@media(max-width:1200px){.dashboard-five{grid-template-columns:repeat(3,minmax(0,1fr))}.treatment-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.treatment-course-grid,.treatment-detail-columns{grid-template-columns:1fr}.treatment-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-treatment-card{grid-template-columns:1fr}}
@media(max-width:650px){.dashboard-five,.treatment-summary-grid,.treatment-plan-counts,.treatment-count-grid,.patient-treatment-counts,.treatment-filters{grid-template-columns:1fr}.treatment-detail-hero{align-items:flex-start;flex-direction:column}.dashboard-treatment-item{grid-template-columns:1fr}}


/* V0.3.1 — Booking workflow + advanced filters ================= */

/* New booking status palette */
.status-pending-confirmation{
    background:#fff4e5 !important;
    color:#b54708 !important;
}
.status-confirmed{
    background:#fff4dd !important;
    color:#8b5a18 !important;
}
.status-completed{
    background:#dff7ea !important;
    color:#087443 !important;
}
.status-second-session{
    background:#eaf3ff !important;
    color:#175cd3 !important;
}
.status-postponed-unset{
    background:#f2f4f7 !important;
    color:#475467 !important;
}
.status-postponed-1{
    background:#f4ebff !important;
    color:#6941c6 !important;
}
.status-postponed-2{
    background:#fff0e8 !important;
    color:#b93815 !important;
}
.status-cancelled{
    background:#feeceb !important;
    color:#b42318 !important;
}

.booking-filter-form{
    display:grid;
    gap:14px;
}
.booking-filter-main{
    display:grid;
    grid-template-columns:minmax(300px,2fr) minmax(170px,1fr) minmax(180px,1fr);
    gap:10px;
    align-items:end;
}
.booking-advanced-filters{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(340px,.9fr);
    gap:14px;
    padding-top:14px;
    border-top:1px solid var(--border);
}
.advanced-filter-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:9px;
}
.advanced-filter-title strong{
    font-size:12px;
    color:#344054;
}
.advanced-filter-title span{
    font-size:9px;
    color:var(--muted);
}
.booking-status-options{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.booking-status-option{
    position:relative;
    display:inline-flex;
    cursor:pointer;
}
.booking-status-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.booking-status-option span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:6px 10px;
    border:1px solid #e1e6eb;
    border-radius:999px;
    background:#fff;
    color:#596579;
    font-size:10px;
    font-weight:bold;
    transition:.15s ease;
}
.booking-status-option:hover span{
    border-color:#bac4cf;
}
.booking-status-option input:checked + span{
    box-shadow:0 0 0 2px rgba(31,122,82,.09);
    border-color:#93c7aa;
}
.status-filter-pending_confirmation input:checked + span{
    background:#fff4e5;color:#b54708;border-color:#f1c895;
}
.status-filter-confirmed input:checked + span{
    background:#fff4dd;color:#8b5a18;border-color:#b9dcc9;
}
.status-filter-completed input:checked + span{
    background:#dff7ea;color:#087443;border-color:#a8dec0;
}
.status-filter-second_session input:checked + span{
    background:#eaf3ff;color:#175cd3;border-color:#b9d4fa;
}
.status-filter-postponed_unset input:checked + span{
    background:#f2f4f7;color:#475467;border-color:#d0d5dd;
}
.status-filter-postponed_1 input:checked + span{
    background:#f4ebff;color:#6941c6;border-color:#d9c1f8;
}
.status-filter-postponed_2 input:checked + span{
    background:#fff0e8;color:#b93815;border-color:#f3c4ad;
}
.status-filter-cancelled input:checked + span{
    background:#feeceb;color:#b42318;border-color:#f1b8b5;
}
.booking-date-filter{
    padding-inline-start:14px;
    border-inline-start:1px solid var(--border);
}
.booking-date-controls{
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap:8px;
    align-items:end;
}
.booking-filter-note{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
}
.booking-filter-actions{
    justify-content:flex-start;
    margin-top:0;
}
.treatment-patient-preview{
    margin-top:15px;
}

@media(max-width:1050px){
    .booking-advanced-filters{
        grid-template-columns:1fr;
    }
    .booking-date-filter{
        padding-inline-start:0;
        border-inline-start:0;
        padding-top:12px;
        border-top:1px solid var(--border);
    }
}
@media(max-width:800px){
    .booking-filter-main,
    .booking-date-controls{
        grid-template-columns:1fr;
    }
}


/* V0.3.2 — automatic PRP + Meso scheduling ===================== */
.combined-treatment-field{
    grid-column:span 2;
}
.treatment-count-title{
    margin-top:22px;
}
.automatic-plan-eligibility,
.automatic-schedule-note{
    margin-top:12px;
    padding:11px 12px;
    border-radius:10px;
    display:flex;
    flex-direction:column;
    gap:4px;
}
.automatic-plan-eligibility strong,
.automatic-schedule-note strong{
    font-size:11px;
}
.automatic-plan-eligibility span,
.automatic-schedule-note span{
    font-size:10px;
    line-height:1.6;
}
.automatic-plan-eligibility.eligible,
.automatic-schedule-note.eligible{
    background:#fff4dd;
    color:#8b5a18;
    border:1px solid #b9dcc9;
}
.automatic-plan-eligibility.not-eligible,
.automatic-schedule-note.not-eligible{
    background:#fff4e5;
    color:#9a5b13;
    border:1px solid #f1c895;
}
.quick-session-status-form{
    margin:0;
}
.quick-session-status{
    min-width:105px;
    border:1px solid transparent;
    border-radius:999px;
    padding:5px 24px 5px 8px;
    font-size:10px;
    font-weight:bold;
    cursor:pointer;
    outline:none;
}
.quick-session-status:focus{
    box-shadow:0 0 0 2px rgba(31,122,82,.12);
}
#id_prp_total[readonly],
#id_meso_total[readonly]{
    background:#f5f7f8;
    color:#475467;
    cursor:not-allowed;
}
@media(max-width:800px){
    .combined-treatment-field{grid-column:span 1}
}


/* V0.3.3 — reusable bulk selection ============================ */

.panel-head-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.bulk-select-toggle{
    border-style:dashed;
}
.bulk-select-toggle.active{
    background:#eef4ff;
    color:#3448a5;
    border-color:#b9cdf8;
}

.bulk-action-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 12px;
    padding:10px 12px;
    border:1px solid #d9e1e8;
    border-radius:11px;
    background:#f8fafc;
}
.bulk-action-bar[hidden]{
    display:none !important;
}
.bulk-action-bar.has-selection{
    border-color:#c7d7ea;
    background:#f5f9ff;
}
.bulk-action-info{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.bulk-action-info strong{
    font-size:11px;
}
.bulk-action-info span{
    color:var(--muted);
    font-size:10px;
}
.bulk-select-all{
    display:inline-flex;
    align-items:center;
    gap:6px;
    cursor:pointer;
    font-size:10px;
    color:#475467;
}
.bulk-select-all input{
    width:16px;
    height:16px;
    accent-color:var(--accent);
}
.bulk-action-buttons{
    display:flex;
    gap:7px;
    align-items:center;
}

.bulk-selection-cell,
.bulk-card-selector{
    display:none;
}
.bulk-mode .bulk-selection-cell{
    display:table-cell;
}
.bulk-mode .bulk-card-selector{
    display:flex;
}

.bulk-selection-cell{
    width:42px;
    min-width:42px;
    text-align:center;
}
.bulk-selection-cell input,
.bulk-card-selector input{
    width:17px;
    height:17px;
    accent-color:var(--accent);
    cursor:pointer;
}

.bulk-row-selected{
    background:#f8fbff;
}

.bulk-card-selector{
    position:absolute;
    top:10px;
    inset-inline-start:10px;
    z-index:3;
    width:30px;
    height:30px;
    align-items:center;
    justify-content:center;
    border:1px solid #d9e1e8;
    border-radius:9px;
    background:#fff;
    box-shadow:0 4px 14px rgba(16,24,40,.08);
}
.bulk-mode .treatment-course-card{
    position:relative;
    padding-top:48px;
}
.bulk-mode .treatment-course-card:has(.bulk-card-selector input:checked){
    border-color:#9dc3e9;
    box-shadow:0 0 0 2px rgba(52,100,165,.08);
}

.bulk-delete-btn{
    background:#fff1f0;
    color:#b42318;
    border-color:#f3c0bc;
}
.bulk-delete-btn:hover{
    background:#feeceb;
}

@media(max-width:700px){
    .bulk-action-bar{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* V0.4.0 — Medications / treatments =========================== */

.dashboard-five{
    grid-template-columns:repeat(6,minmax(125px,1fr));
}

.medication-filters{
    display:grid;
    grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) minmax(160px,1fr) auto;
    gap:10px;
    align-items:end;
}

.medication-plan-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.medication-plan-card{
    position:relative;
    border:1px solid var(--theme-border,#e1e6eb);
    border-radius:14px;
    background:#fff;
    padding:15px;
}

.bulk-mode .medication-plan-card{
    padding-top:48px;
}
.bulk-mode .medication-plan-card:has(.bulk-card-selector input:checked){
    border-color:#9dc3e9;
    box-shadow:0 0 0 2px rgba(52,100,165,.08);
}

.medication-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.medication-card-head>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.medication-card-head>div>span{
    color:var(--muted);
    font-size:10px;
}

.med-plan-status,
.med-item-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:bold;
    white-space:nowrap;
}

.med-plan-active{
    background:#eaf3ff;
    color:#175cd3;
}
.med-plan-completed{
    background:#fff4dd;
    color:#8b5a18;
}
.med-plan-paused{
    background:#fff3d6;
    color:#9a6700;
}
.med-plan-cancelled{
    background:#feeceb;
    color:#b42318;
}

.med-item-active{
    background:#fff4dd;
    color:#8b5a18;
}
.med-item-completed{
    background:#eaf3ff;
    color:#175cd3;
}
.med-item-stopped{
    background:#feeceb;
    color:#b42318;
}

.medication-card-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:13px;
}
.medication-card-stats>div{
    padding:10px;
    border:1px solid #edf0f3;
    border-radius:9px;
    background:#fafbfc;
}
.medication-card-stats span{
    display:block;
    color:var(--muted);
    font-size:9px;
    margin-bottom:4px;
}
.medication-card-stats strong{
    display:block;
    font-size:15px;
}

.medication-followup{
    margin-top:9px;
    padding:10px;
    border:1px solid #edf0f3;
    border-radius:9px;
    background:#fff;
}
.medication-followup>span{
    display:block;
    color:var(--muted);
    font-size:9px;
    margin-bottom:4px;
}
.medication-followup>strong{
    display:block;
    font-size:13px;
}
.medication-followup>small{
    display:block;
    color:var(--muted);
    margin-top:4px;
}

.medication-form-panel{
    max-width:1050px;
}
.medication-notes-title{
    margin-top:22px;
}

.medication-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.medication-detail-columns{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);
    gap:16px;
}

.medication-items-table{
    min-width:980px;
}

.table-subtext{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:9px;
    max-width:260px;
}

.add-medication-panel{
    align-self:start;
}

.medication-plan-notes{
    margin-top:16px;
}

@media(max-width:1200px){
    .dashboard-five{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .medication-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .medication-plan-grid,
    .medication-detail-columns{
        grid-template-columns:1fr;
    }
    .medication-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .dashboard-five,
    .medication-summary-grid,
    .medication-card-stats,
    .medication-filters{
        grid-template-columns:1fr;
    }
}


/* V0.5.0 — complementary package sales ======================= */

.dashboard-five{
    grid-template-columns:repeat(7,minmax(118px,1fr));
}

.package-leads-panel{
    border-color:#d9e7df;
}
.package-leads-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.package-lead-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px 14px;
    align-items:center;
    padding:12px;
    border:1px solid var(--theme-border,#e2e8ed);
    border-radius:11px;
    background:var(--theme-page,#fafbfc);
}
.package-lead-card>div:first-child{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.package-lead-card>div:first-child span,
.package-lead-meta span{
    color:var(--muted);
    font-size:9px;
}
.package-lead-meta{
    display:flex;
    flex-direction:column;
    gap:3px;
    align-items:flex-end;
}
.package-lead-card .mini-btn{
    grid-column:1/-1;
    width:max-content;
}

.package-name-line{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:12px;
    padding:9px 10px;
    border:1px solid #edf0f3;
    border-radius:9px;
    background:#fafbfc;
}

.interest-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:bold;
}
.interest-will-buy{
    background:#fff4dd;
    color:#8b5a18;
}
.interest-thinking{
    background:#fff3d6;
    color:#9a6700;
}

.med-plan-follow-up{
    background:#eaf3ff;
    color:#175cd3;
}
.med-plan-completed{
    background:#fff4dd;
    color:#8b5a18;
}

.package-section-title{
    margin-top:22px;
}
.package-summary-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.package-description-panel{
    margin-bottom:16px;
}
.medication-items-table tfoot td{
    background:#fafbfc;
    border-top:2px solid #e5e9ee;
}

@media(max-width:1200px){
    .dashboard-five{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .package-leads-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .package-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:800px){
    .package-leads-grid{
        grid-template-columns:1fr;
    }
    .package-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:600px){
    .dashboard-five,
    .package-summary-grid{
        grid-template-columns:1fr;
    }
}


/* V0.5.2 — no-operation packages + ready package templates ===== */

.package-template-select{
    margin-bottom:12px;
}

.ready-package-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.ready-package-card{
    appearance:none;
    border:1px solid #e2e7ec;
    background:#fff;
    border-radius:12px;
    padding:13px;
    text-align:right;
    cursor:pointer;
    transition:.16s ease;
    font:inherit;
}

.ready-package-card:hover{
    border-color:#b7c8d8;
    transform:translateY(-1px);
    box-shadow:0 6px 18px rgba(16,24,40,.06);
}

.ready-package-card.selected{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#f7fbf8);
    box-shadow:0 0 0 2px rgba(31,122,82,.08);
}

.ready-package-card span{
    display:block;
    font-size:12px;
    font-weight:bold;
    color:#344054;
}

.ready-package-card strong{
    display:block;
    margin-top:5px;
    font-size:17px;
    color:var(--theme-dark,#8b5a18);
}

.ready-package-card small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
    line-height:1.6;
}

.ready-package-preview{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px 18px;
    padding:13px;
    margin-bottom:15px;
    border:1px solid var(--theme-border,#d7e5dc);
    border-radius:11px;
    background:var(--theme-page,#f8fbf9);
}

.ready-package-preview[hidden]{
    display:none !important;
}

.ready-package-preview>div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.ready-package-preview span{
    color:var(--muted);
    font-size:9px;
}

.ready-package-preview-description{
    grid-column:1/-1;
}

#ready-package-preview-description{
    white-space:pre-line;
    line-height:1.85;
    font-size:11px;
    color:#475467;
}

.package-name-line>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.ready-package-label{
    color:var(--muted);
    font-size:9px;
}

@media(max-width:1100px){
    .ready-package-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .ready-package-grid,
    .ready-package-preview{
        grid-template-columns:1fr;
    }
}


/* V0.6.0 — Accounting ========================================= */

.accounting-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.accounting-summary-card{
    margin:0;
    position:relative;
    overflow:hidden;
}

.accounting-summary-card span{
    display:block;
    color:var(--muted);
    font-size:10px;
}

.accounting-summary-card strong{
    display:block;
    margin-top:7px;
    font-size:23px;
}

.accounting-summary-card.income{
    border-color:#cce5d7;
    background:#f5fbf7;
}
.accounting-summary-card.income strong{
    color:#8b5a18;
}

.accounting-summary-card.expense{
    border-color:#f1cecb;
    background:#fff8f7;
}
.accounting-summary-card.expense strong{
    color:#b42318;
}

.accounting-summary-card.net{
    border-color:#c9daf5;
    background:#f7faff;
}
.accounting-summary-card.net strong{
    color:#175cd3;
}
.accounting-summary-card.net.negative strong{
    color:#b42318;
}

.accounting-filters{
    display:grid;
    grid-template-columns:minmax(250px,2fr) repeat(7,minmax(125px,1fr)) auto;
    gap:9px;
    align-items:end;
}

.accounting-filter-note{
    display:block;
    margin-top:8px;
    color:var(--muted);
    font-size:9px;
}

.accounting-table{
    min-width:1450px;
}

.finance-type-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:bold;
}

.finance-income{
    color:#8b5a18 !important;
}
.finance-type-badge.finance-income{
    background:#fff4dd;
}

.finance-expense{
    color:#b42318 !important;
}
.finance-type-badge.finance-expense{
    background:#feeceb;
}

.finance-amount{
    font-weight:bold;
    direction:ltr;
    white-space:nowrap;
}

.mini-link{
    color:#175cd3;
    font-size:10px;
    text-decoration:none;
}
.mini-link:hover{
    text-decoration:underline;
}

.accounting-form-panel{
    max-width:1100px;
}

.accounting-link-title{
    margin-top:22px;
}

.accounting-form-note{
    margin-top:18px;
    padding:12px 14px;
    border:1px solid #dce6f1;
    border-radius:10px;
    background:#f8fbff;
    color:#475467;
    font-size:10px;
    line-height:1.7;
}

.finance-accounting-action{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #edf0f3;
}

.finance-accounting-action small{
    color:var(--muted);
    font-size:9px;
}

@media(max-width:1250px){
    .accounting-filters{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .accounting-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .accounting-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .accounting-summary-grid,
    .accounting-filters{
        grid-template-columns:1fr;
    }
}


/* V0.6.1 — receivables + refined clinic expenses ============== */

.expense-breakdown-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.expense-breakdown-card{
    padding:12px 14px;
    border:1px solid #e3e8ed;
    border-radius:11px;
    background:#fff;
}
.expense-breakdown-card span{
    display:block;
    color:var(--muted);
    font-size:9px;
}
.expense-breakdown-card strong{
    display:block;
    margin-top:5px;
    font-size:16px;
}

.finance-reference{
    color:#344054;
    white-space:nowrap;
    font-size:10px;
}

.finance-reference-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
    padding:10px 12px;
    border:1px solid #dce6f1;
    border-radius:10px;
    background:#f8fbff;
}
.finance-reference-box span{
    color:var(--muted);
    font-size:9px;
}
.finance-reference-box strong{
    font-size:11px;
}

.expense-only-field[hidden]{
    display:none !important;
}

.receivables-btn{
    border-color:#f1c788;
    background:#fff9ed;
    color:#9a6700;
}

.receivables-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.accounting-summary-card.receivable{
    border-color:#f1c788;
    background:#fff9ed;
}
.accounting-summary-card.receivable strong{
    color:#9a6700;
}

.receivables-filters{
    display:grid;
    grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) minmax(170px,1fr) auto;
    gap:10px;
    align-items:end;
}

.receivables-table{
    min-width:1100px;
}

.receivable-paid{
    color:#8b5a18;
    font-weight:bold;
}

.receivable-remaining{
    color:#b42318;
    font-weight:bold;
}

.due-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:bold;
}
.due-overdue{
    background:#feeceb;
    color:#b42318;
}
.due-today{
    background:#fff3d6;
    color:#9a6700;
}
.due-upcoming{
    background:#eaf3ff;
    color:#175cd3;
}
.due-unset{
    background:#f2f4f7;
    color:#475467;
}

@media(max-width:900px){
    .expense-breakdown-grid,
    .receivables-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .receivables-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .expense-breakdown-grid,
    .receivables-summary-grid,
    .receivables-filters{
        grid-template-columns:1fr;
    }
}


/* V0.6.2 — shared expenses =================================== */

.accounting-mode-section[hidden],
[data-income-only][hidden],
[data-expense-only][hidden]{
    display:none !important;
}

.shared-expense-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
    padding:12px 14px;
    border:1px solid #d8e2eb;
    border-radius:11px;
    background:#f8fafc;
}

.shared-expense-banner strong{
    color:#344054;
    font-size:11px;
}

.shared-expense-banner span{
    color:var(--muted);
    font-size:10px;
}

.expense-description-field input{
    min-height:46px;
    font-size:12px;
}

.expense-description-text{
    display:block;
    max-width:260px;
    white-space:normal;
    line-height:1.6;
    color:#344054;
}

.expense-mode-section{
    border-top:1px solid #edf0f3;
    margin-top:18px;
    padding-top:2px;
}

.income-mode-section{
    margin-top:4px;
}

@media(max-width:650px){
    .shared-expense-banner{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* V0.6.3 — Global back navigation */
.global-back-button{
    position:sticky;
    top:12px;
    z-index:35;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:36px;
    margin:0 0 10px;
    padding:7px 11px;
    border:1px solid #dfe5eb;
    border-radius:10px;
    background:rgba(255,255,255,.96);
    color:#475467;
    font:inherit;
    font-size:10px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(16,24,40,.06);
    backdrop-filter:blur(6px);
    transition:.15s ease;
}
.global-back-button:hover{
    border-color:#c8d1da;
    color:#1f2937;
    transform:translateX(-1px);
    box-shadow:0 6px 18px rgba(16,24,40,.09);
}
.global-back-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:7px;
    background:#f2f4f7;
    font-size:14px;
    line-height:1;
}
.global-back-label{line-height:1}
@media(max-width:650px){
    .global-back-button{
        top:8px;
        min-width:38px;
        width:38px;
        height:38px;
        padding:0;
        justify-content:center;
        border-radius:11px;
    }
    .global-back-label{display:none}
    .global-back-icon{
        width:auto;
        height:auto;
        background:transparent;
        font-size:17px;
    }
}


/* V0.7.0 — Employees & Doctors ================================ */

.employee-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.employee-summary-card{
    margin:0;
}
.employee-summary-card span{
    display:block;
    color:var(--muted);
    font-size:10px;
}
.employee-summary-card strong{
    display:block;
    margin-top:6px;
    font-size:22px;
}
.employee-summary-card.active strong{color:#8b5a18}
.employee-summary-card.doctors strong{color:#175cd3}
.employee-summary-card.accounts strong{color:#7a5af8}

.employee-filters{
    display:grid;
    grid-template-columns:minmax(300px,2fr) repeat(3,minmax(150px,1fr)) auto;
    gap:10px;
    align-items:end;
}
.employee-table{
    min-width:1150px;
}
.employee-code{
    white-space:nowrap;
    color:#475467;
}
.employee-type-badge,
.employee-status-badge,
.account-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:700;
}
.employee-staff{
    background:#f2f4f7;
    color:#475467;
}
.employee-doctor{
    background:#eaf3ff;
    color:#175cd3;
}
.employee-active{
    background:#fff4dd;
    color:#8b5a18;
}
.employee-inactive{
    background:#feeceb;
    color:#b42318;
}
.account-badge.linked{
    background:#f0edff;
    color:#6941c6;
}
.account-badge.unlinked{
    background:#f2f4f7;
    color:#667085;
}

.employee-form-panel{
    max-width:1100px;
}
.employee-code-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
    padding:11px 13px;
    border:1px solid #dfe5eb;
    border-radius:10px;
    background:#f8fafc;
}
.employee-code-banner span{
    color:var(--muted);
    font-size:9px;
}
.employee-section-space{
    margin-top:22px;
}
.employee-phone-grid{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:8px;
}
.employee-company-field ul{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    margin:7px 0 0;
    padding:0;
    list-style:none;
}
.employee-company-field li label{
    display:flex;
    align-items:center;
    gap:6px;
    cursor:pointer;
}
.doctor-specialty-field[hidden]{
    display:none !important;
}

.employee-detail-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-bottom:12px;
}
.danger-outline{
    border-color:#f1cecb !important;
    color:#b42318 !important;
    background:#fff8f7 !important;
}
.employee-detail-grid{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:14px;
    align-items:start;
}
.employee-profile-card{
    position:sticky;
    top:62px;
    text-align:center;
}
.employee-avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    width:76px;
    height:76px;
    margin:0 auto 12px;
    border-radius:20px;
    background:var(--theme-page,#f3f7f4);
    color:var(--theme-dark,#8b5a18);
    font-size:30px;
    font-weight:800;
}
.employee-profile-card h2{
    margin:0;
    font-size:18px;
}
.employee-profile-badges{
    display:flex;
    justify-content:center;
    gap:7px;
    margin-top:10px;
}
.employee-profile-code{
    margin:13px auto;
    color:#667085;
    font-size:11px;
}
.employee-profile-contact{
    display:grid;
    gap:0;
    text-align:right;
    border-top:1px solid #edf0f3;
}
.employee-profile-contact>div{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid #edf0f3;
}
.employee-profile-contact span,
.employee-account-grid span{
    color:var(--muted);
    font-size:9px;
}
.employee-profile-contact strong{
    max-width:60%;
    font-size:10px;
    text-align:left;
}
.employee-detail-content{
    display:grid;
    gap:14px;
}
.employee-company-chips{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.employee-company-chips span{
    padding:7px 10px;
    border-radius:999px;
    background:#f2f4f7;
    color:#475467;
    font-size:10px;
    font-weight:700;
}
.employee-company-chips .shared-chip{
    background:#fff8e8;
    color:#9a6700;
}
.employee-account-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.employee-account-grid>div{
    padding:11px;
    border:1px solid #e6eaee;
    border-radius:10px;
    background:#fbfcfd;
}
.employee-account-grid strong{
    display:block;
    margin-top:5px;
    font-size:10px;
}
.employee-subheading{
    margin:18px 0 9px;
    font-size:11px;
}
.employee-access-list{
    display:grid;
    gap:8px;
}
.employee-access-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border:1px solid #e6eaee;
    border-radius:10px;
}
.employee-access-row>div{
    display:flex;
    gap:6px;
}
.employee-access-row span{
    padding:4px 7px;
    border-radius:999px;
    font-size:8px;
}
.employee-access-row .yes{
    background:#fff4dd;
    color:#8b5a18;
}
.employee-access-row .no{
    background:#f2f4f7;
    color:#98a2b3;
}
.employee-admin-link{
    margin-top:12px;
}
.employee-no-account{
    padding:22px !important;
}
.employee-notes{
    margin-top:10px;
    color:#475467;
    line-height:1.8;
    font-size:10px;
}

@media(max-width:1000px){
    .employee-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .employee-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .employee-detail-grid{
        grid-template-columns:1fr;
    }
    .employee-profile-card{
        position:static;
    }
}
@media(max-width:650px){
    .employee-summary-grid,
    .employee-filters,
    .employee-account-grid{
        grid-template-columns:1fr;
    }
    .employee-phone-grid{
        grid-template-columns:80px 1fr;
    }
}

/* V0.8.0 — workflow refinement ================================= */
.global-page-tools{display:flex;align-items:center;gap:8px;margin:0 0 10px;position:sticky;top:10px;z-index:36;width:max-content}
.global-page-tools .global-back-button{position:static;margin:0}
.global-refresh-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid #dfe5eb;border-radius:10px;background:rgba(255,255,255,.96);color:#475467;font:inherit;font-size:10px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(16,24,40,.06)}
.global-refresh-button:hover{border-color:#c8d1da;color:#1f2937}

.hr-tabs{display:flex;gap:7px;overflow-x:auto;margin-bottom:14px;padding:5px;background:#f7f8fa;border:1px solid #e7ebef;border-radius:12px}
.hr-tabs a{white-space:nowrap;padding:9px 12px;border-radius:8px;color:#475467;text-decoration:none;font-size:10px;font-weight:700}
.hr-tabs a:hover,.hr-tabs a.active{background:#fff;color:#173f32;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.hr-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.hr-stat{margin:0}.hr-stat span{display:block;color:var(--muted);font-size:9px}.hr-stat strong{display:block;margin-top:5px;font-size:21px}.hr-stat.former strong{color:#b42318}
.employee-admin{background:#f0edff;color:#6941c6}.employee-support{background:#fff4e5;color:#b54708}
.partner-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.partner-card{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid #e5e9ee;border-radius:12px;background:#fff;text-decoration:none;color:#344054}.partner-card:hover{border-color:#b8c4ce;box-shadow:0 5px 16px rgba(16,24,40,.06)}.partner-card span,.partner-card small{color:var(--muted);font-size:9px}.partner-card strong{font-size:13px}.partner-card em{font-style:normal}.partner-card b{font-size:9px;color:#8b5a18}
.partner-detail-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:14px}.partner-contact-list{display:grid;gap:8px}.partner-contact{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:8px;padding:10px;border:1px solid #e8ebef;border-radius:10px}.partner-contact span,.partner-contact small{color:var(--muted)}.partner-contact-form{margin-top:18px;padding-top:14px;border-top:1px solid #edf0f3}.partner-filters{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end}

.patient-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr)) auto;gap:10px;align-items:end}.patient-quick-form select{min-width:125px;font-size:9px;padding:6px 8px}
.patient-file-hero{border-top:3px solid var(--theme-accent,#b47a22)}.patient-file-nav{position:sticky;top:56px;z-index:20;box-shadow:0 3px 12px rgba(16,24,40,.05)}.info-section{border-radius:14px}.info-section-head{padding-bottom:10px;border-bottom:1px solid #edf0f3;margin-bottom:12px}

.consultation-offer-panel{border-style:dashed}.consultation-offer-summary{border-right:3px solid #d6a64b}

.direct-exam-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}.direct-exam-table{min-width:1100px}.direct-status,.direct-prior{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:700}.direct-status-scheduled{background:#eaf3ff;color:#175cd3}.direct-status-attended{background:#fff4dd;color:#8b5a18}.direct-status-no-show,.direct-status-cancelled{background:#feeceb;color:#b42318}.direct-status-postponed{background:#fff3d6;color:#9a6700}.direct-prior.yes{background:#fff4dd;color:#8b5a18}.direct-prior.no{background:#f2f4f7;color:#667085}.direct-exam-form{max-width:1100px}.direct-exam-text{display:grid;gap:8px;margin-top:14px}.direct-exam-text>div{padding:12px;border:1px solid #e7ebef;border-radius:10px;background:#fbfcfd;line-height:1.7}

.booking-view-switch{display:flex;gap:8px;margin-bottom:12px}.booking-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.booking-calendar-toolbar div{text-align:center}.booking-calendar-toolbar small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.booking-month-panel{margin-top:14px}.booking-month-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.booking-month-head h2{margin:0}.booking-month-head span{color:var(--muted);font-size:9px}.booking-calendar-table{min-width:1100px;table-layout:fixed}.booking-calendar-table th:first-child{width:145px}.calendar-date-cell{vertical-align:top}.calendar-date-cell strong,.calendar-date-cell span{display:block}.calendar-date-cell span{margin-top:3px;color:var(--muted);font-size:9px}.calendar-date-cell em{display:inline-block;margin-top:5px;padding:3px 6px;border-radius:999px;background:#fff4dd;color:#8b5a18;font-style:normal;font-size:8px}.calendar-slot-cell{padding:6px!important;vertical-align:top}.slot-available,.slot-booked,.slot-empty{display:block;min-height:72px;padding:9px;border-radius:9px;text-decoration:none}.slot-available{border:1px dashed #9fc7ae;background:#f5fbf7;color:#8b5a18}.slot-available:hover{background:#edf8f1}.slot-available strong,.slot-available span,.slot-available small{display:block}.slot-available span{margin-top:4px;font-size:9px}.slot-available small{margin-top:3px;color:#9a6700}.slot-booked{border:1px solid #d9e0e7;background:#fff}.slot-booked>div{display:flex;justify-content:space-between;gap:6px}.slot-booked small{display:block;margin-top:4px;color:var(--muted)}.slot-booked a{display:inline-block;margin-top:7px;font-size:9px;color:#175cd3}.slot-empty{background:#f7f8fa;color:#98a2b3}.slot-empty strong,.slot-empty span{display:block}.slot-empty span{font-size:9px;margin-top:4px}.exceptional-slot{background:#fffdf7}.calendar-today td{background:#f8fbff}.calendar-past{opacity:.72}.booking-list-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}

@media(max-width:1000px){.hr-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-card-grid,.partner-detail-grid{grid-template-columns:1fr}.patient-filter-grid,.direct-exam-filters,.booking-list-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.global-page-tools{top:7px}.global-refresh-button{width:38px;height:38px;padding:0;justify-content:center}.global-refresh-button span:last-child{display:none}.hr-overview-grid,.patient-filter-grid,.direct-exam-filters,.booking-list-filters{grid-template-columns:1fr}.partner-contact{grid-template-columns:1fr}.booking-calendar-toolbar{align-items:stretch;flex-direction:column}.booking-month-head{align-items:flex-start;flex-direction:column}}
.patient-file-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px 0 12px}.patient-file-summary a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid #e6eaee;border-radius:10px;background:#fff;text-decoration:none;color:#475467}.patient-file-summary span{font-size:9px}.patient-file-summary strong{font-size:15px;color:var(--theme-dark,#8b5a18)}
@media(max-width:900px){.patient-file-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.patient-file-summary{grid-template-columns:1fr}}


/* V0.8.0 — bookings without a specific operation time */
.calendar-unassigned{margin-top:7px;padding-top:7px;border-top:1px dashed #d8dee6;display:grid;gap:4px}.calendar-unassigned strong{font-size:8px;color:#9a6700}.calendar-unassigned a{font-size:8px;color:#175cd3;text-decoration:none}.calendar-unassigned a:hover{text-decoration:underline}


/* V0.8.1 — Single-month booking operations sheet ============== */

.booking-status-tabs{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:9px;
    margin-bottom:12px;
}

.booking-status-tab{
    display:grid;
    grid-template-columns:1fr auto;
    gap:3px 8px;
    align-items:center;
    min-height:68px;
    padding:10px 12px;
    border:1px solid #e1e6eb;
    border-radius:11px;
    background:#fff;
    color:#344054;
    text-decoration:none;
    transition:.15s ease;
}

.booking-status-tab:hover{
    border-color:#c8d3dd;
    transform:translateY(-1px);
    box-shadow:0 5px 16px rgba(16,24,40,.06);
}

.booking-status-tab span{
    font-size:10px;
    font-weight:800;
}

.booking-status-tab strong{
    font-size:17px;
}

.booking-status-tab small{
    grid-column:1/-1;
    color:var(--muted);
    font-size:8px;
}

.booking-status-tab.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#f5fbf7);
    color:var(--theme-dark,#8b5a18);
    box-shadow:0 0 0 2px rgba(31,122,82,.06);
}

.booking-status-tab.cancelled.active{
    border-color:#efb4ae;
    background:#fff7f6;
    color:#b42318;
}

.booking-status-tab.custom{
    border-style:dashed;
}

.booking-filter-panel{
    margin-bottom:12px;
}

.booking-filter-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.booking-filter-head h2{
    margin:0;
}

.booking-filter-head p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:9px;
}

.booking-advanced-filters{
    display:grid;
    grid-template-columns:minmax(230px,2fr) repeat(4,minmax(145px,1fr));
    gap:10px;
    align-items:end;
}

.booking-search-wide{
    grid-column:span 2;
}

.booking-status-filter{
    grid-column:1/-1;
    padding:10px 11px;
    border:1px solid #e5e9ed;
    border-radius:10px;
    background:#fbfcfd;
}

.booking-status-filter .filter-label{
    display:block;
    margin-bottom:7px;
    font-size:9px;
    font-weight:800;
}

.booking-status-checks{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.booking-status-checks label{
    display:flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
    border:1px solid #dfe5eb;
    border-radius:999px;
    background:#fff;
    cursor:pointer;
    font-size:9px;
}

.booking-status-checks input{
    width:14px;
    height:14px;
    margin:0;
}

.booking-status-filter small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:8px;
}

.booking-filter-actions{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
}

.booking-month-navigation{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.booking-period-title{
    text-align:center;
}

.booking-period-title span{
    display:block;
    color:var(--muted);
    font-size:9px;
}

.booking-period-title h2{
    margin:2px 0 4px;
    font-size:17px;
}

.booking-period-title small{
    color:#667085;
    font-size:9px;
}

.booking-month-nav-actions{
    display:flex;
    align-items:center;
    gap:7px;
}

.booking-sheet-panel{
    padding:0;
    overflow:hidden;
}

.booking-sheet-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #e7eaee;
}

.booking-sheet-head h2{
    margin:0;
}

.booking-sheet-head p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:9px;
}

.booking-manager-note{
    padding:7px 9px;
    border-radius:9px;
    background:#f2f4f7;
    color:#667085;
    font-size:9px;
}

.booking-sheet-title{
    padding:12px;
    background:#fff2a6;
    color:#1f2937;
    text-align:center;
    font-size:18px;
    font-weight:900;
    border-bottom:1px solid #d9c94e;
}

.booking-sheet-wrap{
    max-height:68vh;
    overflow:auto;
}

.booking-sheet-table{
    min-width:2200px;
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    font-size:9px;
}

.booking-sheet-table th{
    position:sticky;
    top:0;
    z-index:8;
    padding:9px 7px;
    border-left:1px solid #cfd5da;
    border-bottom:1px solid #aeb7bf;
    background:#d8d8d8;
    color:#1f2937;
    text-align:center;
    white-space:nowrap;
    font-weight:800;
}

.booking-sheet-table td{
    padding:7px;
    border-left:1px solid #d9dde1;
    border-bottom:1px solid #d9dde1;
    background:#fff;
    text-align:center;
    vertical-align:middle;
}

.booking-sheet-table tr:hover td{
    background:#fafcff;
}

.booking-sheet-today td{
    background:#f4f9ff;
}

.booking-sheet-past{
    opacity:.82;
}

.booking-sheet-cancelled td{
    background:#fff8f7;
}

.booking-patient-name{
    display:block;
    min-width:150px;
    color:#1f2937;
    font-weight:800;
    text-decoration:none;
    text-align:right;
}

.booking-patient-name:hover{
    color:#175cd3;
}

.booking-date-cell{
    min-width:92px;
    background:#fffdf4!important;
}

.booking-date-cell.today{
    background:#eaf3ff!important;
}

.booking-date-cell strong{
    display:block;
}

.booking-date-cell em{
    display:inline-block;
    margin-top:4px;
    padding:2px 5px;
    border-radius:999px;
    background:#175cd3;
    color:#fff;
    font-size:7px;
    font-style:normal;
}

.booking-weekday-cell{
    min-width:70px;
    font-weight:700;
    background:#fffdf4!important;
}

.booking-empty-day{
    color:#98a2b3;
    text-align:right!important;
    font-style:italic;
}

.exception-time-label{
    display:block;
    margin-top:3px;
    color:#9a6700;
    font-size:7px;
}

.booking-money{
    white-space:nowrap;
    font-weight:800;
}

.booking-company-chip{
    display:inline-flex;
    padding:4px 7px;
    border-radius:999px;
    white-space:nowrap;
    font-size:8px;
    font-weight:800;
}

.booking-company-chip.company-aeon{
    background:#fff4d6;
    color:#8a6300;
}

.booking-company-chip.company-derma{
    background:#e5f7f4;
    color:#137569;
}

.booking-free-slots-cell{
    min-width:205px;
    background:#fbfcfd!important;
}

.booking-free-slots{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:5px;
}

.booking-free-slot{
    display:flex;
    flex-direction:column;
    min-width:57px;
    padding:6px 7px;
    border:1px solid #abd2b8;
    border-radius:8px;
    background:#f3fbf6;
    color:#8b5a18;
    text-decoration:none;
    line-height:1.2;
}

.booking-free-slot:hover{
    background:#e9f7ef;
}

.booking-free-slot strong{
    font-size:10px;
}

.booking-free-slot small{
    margin-top:3px;
    font-size:6px;
}

.booking-free-slot.exceptional{
    border-color:#e8c56d;
    background:#fff9e8;
    color:#946200;
}

.booking-free-slot.readonly{
    opacity:.78;
}

.booking-day-full,
.booking-day-closed{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    background:#f2f4f7;
    color:#667085;
    font-size:8px;
}

.booking-day-full{
    background:#feeceb;
    color:#b42318;
}

@media(max-width:1200px){
    .booking-status-tabs{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .booking-advanced-filters{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .booking-search-wide{
        grid-column:span 2;
    }
}

@media(max-width:850px){
    .booking-status-tabs{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .booking-advanced-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .booking-month-navigation{
        grid-template-columns:1fr;
    }
    .booking-month-navigation>a,
    .booking-month-nav-actions{
        justify-self:stretch;
    }
    .booking-month-navigation>a{
        text-align:center;
    }
    .booking-month-nav-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:600px){
    .booking-status-tabs,
    .booking-advanced-filters{
        grid-template-columns:1fr;
    }
    .booking-search-wide{
        grid-column:auto;
    }
    .booking-status-checks{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
}


/* V0.8.3 — Booking UX refinement ============================== */

.booking-compact-tabs{
    display:flex;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    padding:2px 1px 9px;
    margin-bottom:10px;
    scrollbar-width:thin;
}

.booking-compact-tabs a,
.booking-compact-tabs .booking-custom-status{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:7px 11px;
    border:1px solid #dde3e8;
    border-radius:9px;
    background:#fff;
    color:#475467;
    text-decoration:none;
    font-size:9px;
    font-weight:700;
    transition:.14s ease;
}

.booking-compact-tabs a b{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:21px;
    height:21px;
    padding:0 5px;
    border-radius:7px;
    background:#f2f4f7;
    color:#344054;
    font-size:9px;
}

.booking-compact-tabs a:hover{
    border-color:#bcc8d2;
    background:#fafcfd;
}

.booking-compact-tabs a.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#fffaf0);
    color:var(--theme-dark,#8b5a18);
}

.booking-compact-tabs a.active b{
    background:#fff;
    color:inherit;
}

.booking-compact-tabs a.cancelled.active{
    border-color:#efb4ae;
    background:#fff7f6;
    color:#b42318;
}

.booking-custom-status{
    border-style:dashed!important;
    color:#6941c6!important;
    background:#f8f5ff!important;
}

.booking-smart-filter{
    padding:13px 14px;
    margin-bottom:10px;
}

.booking-filter-topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-bottom:9px;
    margin-bottom:10px;
    border-bottom:1px solid #edf0f3;
}

.booking-filter-title{
    display:flex;
    align-items:baseline;
    gap:9px;
}

.booking-filter-title strong{
    font-size:11px;
}

.booking-filter-title span{
    color:var(--muted);
    font-size:8px;
}

.booking-reset-link{
    color:#667085;
    font-size:8px;
    text-decoration:none;
}

.booking-reset-link:hover{
    color:#b42318;
}

.booking-filter-grid-v2{
    display:grid;
    grid-template-columns:repeat(5,minmax(125px,1fr));
    gap:9px;
    align-items:end;
}

.booking-filter-grid-v2 .filter-field{
    min-width:0;
}

.booking-filter-grid-v2 .filter-field[hidden]{
    display:none!important;
}

.booking-filter-grid-v2 label{
    margin-bottom:4px;
    font-size:8px;
    color:#667085;
}

.booking-filter-grid-v2 input,
.booking-filter-grid-v2 select{
    min-height:36px;
    height:36px;
    padding:6px 9px;
    border-radius:8px;
    font-size:9px;
}

.booking-filter-search-v2{
    grid-column:span 2;
}

.booking-filter-submit{
    display:flex;
    justify-content:flex-end;
}

.booking-filter-submit .btn{
    min-height:36px;
    min-width:90px;
}

.booking-month-bar{
    display:grid;
    grid-template-columns:150px minmax(0,1fr) 250px;
    align-items:center;
    gap:10px;
    padding:11px 13px;
    margin-bottom:10px;
    border:1px solid #e3e7eb;
    border-radius:11px;
    background:#fff;
}

.booking-month-arrow,
.booking-month-actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:6px 10px;
    border:1px solid #dde3e8;
    border-radius:8px;
    background:#fff;
    color:#475467;
    text-decoration:none;
    font-size:9px;
}

.booking-month-center{
    text-align:center;
}

.booking-month-center>span{
    display:block;
    color:#98a2b3;
    font-size:8px;
}

.booking-month-center h2{
    margin:2px 0 5px;
    font-size:17px;
}

.booking-slot-legend{
    display:flex;
    justify-content:center;
    gap:12px;
    color:#667085;
    font-size:7px;
}

.booking-slot-legend span{
    display:inline-flex;
    align-items:center;
    gap:4px;
}

.booking-slot-legend i{
    width:7px;
    height:7px;
    border-radius:50%;
    background:#49a66c;
}

.booking-slot-legend .exception i{
    background:#d7a72c;
}

.booking-month-actions{
    display:flex;
    justify-content:flex-end;
    gap:6px;
}

.booking-sheet-v2{
    padding:0;
    overflow:hidden;
}

.booking-sheet-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 14px;
    border-bottom:1px solid #e7ebef;
}

.booking-sheet-toolbar>div{
    display:flex;
    align-items:baseline;
    gap:10px;
}

.booking-sheet-toolbar strong{
    font-size:11px;
}

.booking-sheet-toolbar span{
    color:#667085;
    font-size:8px;
}

.booking-sheet-month-title{
    padding:10px;
    border-bottom:1px solid #e4ce61;
    background:#fff4a8;
    color:#252b33;
    text-align:center;
    font-size:15px;
    font-weight:900;
}

.booking-table-scroll{
    max-height:67vh;
    overflow:auto;
    scrollbar-width:thin;
}

.booking-comfort-table{
    min-width:1850px;
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    font-size:9px;
}

.booking-comfort-table th{
    position:sticky;
    top:0;
    z-index:10;
    height:39px;
    padding:7px 8px;
    border-left:1px solid #ccd3d9;
    border-bottom:1px solid #b9c1c8;
    background:#d7dadd;
    color:#344054;
    text-align:center;
    white-space:nowrap;
    font-size:8px;
    font-weight:800;
}

.booking-comfort-table td{
    min-height:44px;
    padding:8px;
    border-left:1px solid #e3e7ea;
    border-bottom:1px solid #e6eaed;
    background:#fff;
    color:#344054;
    text-align:center;
    vertical-align:middle;
    line-height:1.35;
}

.booking-data-row:nth-child(even) td{
    background:#fcfdfd;
}

.booking-data-row:hover td{
    background:#f5f9fc;
}

.booking-day-start td{
    border-top:2px solid #d5dde4;
}

.booking-row-today td{
    background:#f5f9ff!important;
}

.booking-row-cancelled td{
    background:#fff8f7!important;
}

.patient-col{
    min-width:175px;
}

.patient-cell{
    min-width:175px;
    text-align:right!important;
}

.patient-cell a{
    display:block;
    color:#1f2937;
    text-decoration:none;
    font-size:9.5px;
    font-weight:800;
}

.patient-cell a:hover{
    color:#175cd3;
}

.patient-cell small,
.booking-finance-cell small{
    display:block;
    margin-top:3px;
    color:#98a2b3;
    font-size:7px;
}

.phone-cell{
    white-space:nowrap;
}

.date-col{
    min-width:110px;
}

.operation-date-cell{
    min-width:105px;
    background:#fffdf4!important;
}

.operation-date-cell strong{
    display:block;
    font-size:9px;
}

.operation-date-cell span{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:8px;
}

.operation-date-cell em{
    display:inline-flex;
    margin-top:4px;
    padding:2px 5px;
    border-radius:999px;
    background:#175cd3;
    color:#fff;
    font-size:6px;
    font-style:normal;
}

.operation-date-cell.today{
    background:#eef5ff!important;
}

.time-cell{
    min-width:64px;
    font-size:10px;
    font-weight:800;
}

.time-cell small{
    display:block;
    margin-top:3px;
    color:#9a6700;
    font-size:6px;
    font-weight:600;
}

.booking-finance-cell{
    min-width:100px;
}

.booking-finance-cell strong{
    display:block;
    white-space:nowrap;
    font-size:9px;
}

.booking-company-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:62px;
    padding:5px 7px;
    border-radius:8px;
    font-size:7px;
    font-weight:800;
    white-space:nowrap;
}

.booking-company-chip.company-aeon{
    background:#fff3d2;
    color:#8a6400;
}

.booking-company-chip.company-derma{
    background:#e4f7f3;
    color:#116f65;
}

.slots-col{
    min-width:205px;
}

.booking-slots-cell{
    min-width:205px;
    padding:7px!important;
    background:#fbfcfd!important;
}

.booking-slot-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:5px;
}

.booking-slot-chip{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:57px;
    min-height:38px;
    padding:5px 4px;
    border:1px solid;
    border-radius:7px;
    text-decoration:none;
    line-height:1.15;
}

.booking-slot-chip strong{
    font-size:9px;
}

.booking-slot-chip small{
    margin-top:3px;
    font-size:6px;
}

.booking-slot-chip.free{
    border-color:#a9d3b7;
    background:#f1faf4;
    color:#8b5a18;
}

.booking-slot-chip.free:hover{
    background:#e5f6eb;
}

.booking-slot-chip.booked{
    border-color:#e4c5c1;
    background:#fff4f2;
    color:#a93b31;
}

.booking-slot-chip.exceptional{
    border-color:#e5c66f;
    background:#fff9e7;
    color:#906000;
}

.booking-slot-chip.booked.exceptional{
    border-color:#e5c66f;
    background:#f7f0dc;
    color:#82631d;
}

.booking-slot-chip.readonly{
    pointer-events:none;
    opacity:.74;
}

.booking-past-day{
    display:inline-flex;
    padding:5px 7px;
    border-radius:7px;
    background:#f2f4f7;
    color:#667085;
    font-size:7px;
}

.booking-empty-row td{
    background:#fbfdfb;
    color:#98a2b3;
}

.booking-empty-row:hover td{
    background:#f6fbf7;
}

.booking-empty-summary{
    text-align:right!important;
    padding-right:14px!important;
}

.booking-empty-summary strong{
    display:inline-block;
    margin-left:7px;
    color:#4d7c5c;
    font-size:9px;
}

.booking-empty-summary span{
    color:#98a2b3;
    font-size:7px;
}

.booking-empty-space{
    color:#b0b7c0!important;
    font-size:7px;
}

.booking-empty-action{
    color:#667085;
    font-size:7px;
}

@media(max-width:1200px){
    .booking-filter-grid-v2{
        grid-template-columns:repeat(3,minmax(130px,1fr));
    }

    .booking-filter-search-v2{
        grid-column:span 2;
    }

    .booking-month-bar{
        grid-template-columns:130px 1fr 220px;
    }
}

@media(max-width:800px){
    .booking-filter-title span{
        display:none;
    }

    .booking-filter-grid-v2{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .booking-filter-search-v2{
        grid-column:1/-1;
    }

    .booking-month-bar{
        grid-template-columns:1fr;
    }

    .booking-month-actions{
        justify-content:center;
    }

    .booking-month-arrow{
        justify-self:center;
    }

    .booking-sheet-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:520px){
    .booking-filter-grid-v2{
        grid-template-columns:1fr;
    }

    .booking-filter-search-v2{
        grid-column:auto;
    }
}


/* V0.8.4 — Booking table readability & direct editing ========= */

.booking-compact-tabs a,
.booking-compact-tabs .booking-custom-status{
    font-size:10.5px;
}

.booking-smart-filter{
    padding:15px 16px;
}

.booking-filter-title strong{
    font-size:13px;
}

.booking-filter-title span{
    font-size:10.5px;
}

.booking-reset-link{
    font-size:10.5px;
}

.booking-filter-grid-v2 label{
    margin-bottom:5px;
    font-size:10.5px;
}

.booking-filter-grid-v2 input,
.booking-filter-grid-v2 select{
    min-height:40px;
    height:40px;
    padding:7px 10px;
    font:inherit;
    font-size:11.5px;
}

.booking-filter-submit .btn{
    min-height:40px;
    font-size:11px;
}

.booking-month-arrow,
.booking-month-actions a{
    min-height:38px;
    font-size:10.5px;
}

.booking-month-center>span{
    font-size:10px;
}

.booking-month-center h2{
    font-size:19px;
}

.booking-slot-legend{
    font-size:9.5px;
}

.booking-sheet-toolbar{
    position:relative;
    padding:13px 15px;
}

.booking-sheet-toolbar strong{
    font-size:12.5px;
}

.booking-sheet-toolbar span{
    font-size:10.5px;
}

.booking-toolbar-actions{
    display:flex;
    align-items:center;
    gap:7px;
}

.booking-sheet-month-title{
    padding:12px;
    font-size:17px;
}

.booking-customizable-table{
    min-width:1750px;
    font:inherit;
    font-size:12px;
}

.booking-customizable-table th{
    height:43px;
    padding:8px 9px;
    font-size:10.5px;
    line-height:1.35;
}

.booking-customizable-table td{
    height:49px;
    padding:9px;
    font-size:11.5px;
    line-height:1.45;
}

.booking-customizable-table [hidden]{
    display:none!important;
}

.booking-patient-code{
    display:inline-block;
    min-width:74px;
    color:#344054;
    font-size:11px;
    white-space:nowrap;
}

.booking-customizable-table .patient-cell a{
    font-size:12px;
}

.booking-customizable-table .operation-date-cell strong{
    font-size:11.5px;
}

.booking-customizable-table .operation-date-cell span{
    margin-top:4px;
    font-size:10px;
}

.booking-customizable-table .time-cell{
    min-width:88px;
    font-size:11.5px;
}

.booking-deposit-state{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:78px;
    padding:6px 8px;
    border-radius:8px;
    background:#f5f7f9;
    color:#475467;
    font-size:10px;
    font-weight:700;
    white-space:nowrap;
}

.booking-amount-cell strong{
    font-size:11px;
    white-space:nowrap;
}

.booking-status-cell{
    min-width:150px;
}

.booking-inline-status-form{
    margin:0;
}

.booking-inline-status{
    width:100%;
    min-width:140px;
    min-height:34px;
    padding:5px 8px;
    border:1px solid #d6dde3;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:10.5px;
    font-weight:700;
    cursor:pointer;
}

.booking-inline-status:focus{
    outline:none;
    border-color:#91bda2;
    box-shadow:0 0 0 2px rgba(31,122,82,.08);
}

.booking-inline-status.status-pending,
.booking-inline-status.status-pending-confirmation{
    background:#fff7e8;
    color:#9a6700;
}

.booking-inline-status.status-confirmed{
    background:#edf8f1;
    color:#8b5a18;
}

.booking-inline-status.status-completed{
    background:#eef5ff;
    color:#175cd3;
}

.booking-inline-status.status-cancelled{
    background:#fff1ef;
    color:#b42318;
}

.booking-empty-name{
    min-width:150px;
    text-align:right!important;
}

.booking-empty-name strong{
    display:block;
    color:#5f7f68;
    font-size:11px;
}

.booking-empty-name small{
    display:block;
    margin-top:3px;
    color:#98a2b3;
    font-size:9px;
}

/* Column customization popover */

.booking-column-panel{
    position:absolute;
    top:60px;
    left:15px;
    z-index:50;
    width:min(620px,calc(100% - 30px));
    padding:14px;
    border:1px solid #dce2e7;
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 40px rgba(16,24,40,.14);
}

.booking-column-panel[hidden]{
    display:none!important;
}

.booking-column-panel-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:10px;
    margin-bottom:10px;
    border-bottom:1px solid #edf0f3;
}

.booking-column-panel-head strong{
    display:block;
    font-size:12px;
}

.booking-column-panel-head span{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:9.5px;
}

.booking-column-close{
    width:30px;
    height:30px;
    border:0;
    border-radius:8px;
    background:#f2f4f7;
    color:#475467;
    font-size:18px;
    cursor:pointer;
}

.booking-column-options{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
}

.booking-column-options label{
    display:flex;
    align-items:center;
    gap:6px;
    min-height:34px;
    padding:6px 8px;
    border:1px solid #e4e8ec;
    border-radius:8px;
    background:#fbfcfd;
    color:#475467;
    font-size:10px;
    cursor:pointer;
}

.booking-column-options input{
    width:15px;
    height:15px;
    margin:0;
}

.booking-column-panel-actions{
    display:flex;
    justify-content:flex-end;
    gap:7px;
    padding-top:11px;
    margin-top:10px;
    border-top:1px solid #edf0f3;
}

/* Time popup instead of the old "day schedule" column */

.booking-time-menu-cell{
    position:relative;
    overflow:visible!important;
}

.booking-time-trigger{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:72px;
    min-height:36px;
    margin:auto;
    padding:5px 8px;
    border:1px solid #d7e0e6;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font:inherit;
    cursor:pointer;
    transition:.14s ease;
}

.booking-time-trigger:hover{
    border-color:#99b8a4;
    background:#f5fbf7;
}

.booking-time-trigger strong{
    font-size:11.5px;
}

.booking-time-trigger small{
    margin-top:2px;
    color:#98a2b3;
    font-size:8px;
}

.booking-time-trigger.empty{
    border-style:dashed;
    color:#8b5a18;
    background:#f6fbf7;
}

.booking-time-popup{
    position:absolute;
    top:calc(100% - 2px);
    right:50%;
    z-index:70;
    width:300px;
    padding:11px;
    transform:translateX(50%);
    border:1px solid #d9e0e5;
    border-radius:11px;
    background:#fff;
    box-shadow:0 16px 38px rgba(16,24,40,.17);
}

.booking-time-popup[hidden]{
    display:none!important;
}

.booking-time-popup-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:8px;
    margin-bottom:8px;
    border-bottom:1px solid #edf0f3;
    text-align:right;
}

.booking-time-popup-head strong{
    display:block;
    font-size:11px;
}

.booking-time-popup-head span{
    display:block;
    margin-top:2px;
    color:#667085;
    font-size:9px;
}

.booking-time-popup-head button{
    width:27px;
    height:27px;
    border:0;
    border-radius:7px;
    background:#f2f4f7;
    color:#475467;
    cursor:pointer;
}

.booking-time-popup-slots{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
}

.popup-slot{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:69px;
    padding:7px 5px;
    border:1px solid;
    border-radius:8px;
    text-decoration:none;
}

.popup-slot strong{
    font-size:12px;
}

.popup-slot span{
    margin-top:3px;
    font-size:9px;
}

.popup-slot small{
    margin-top:5px;
    font-size:8px;
    font-weight:700;
}

.popup-slot.free{
    border-color:#add3ba;
    background:#f2faf5;
    color:#8b5a18;
}

.popup-slot.free:hover{
    background:#e6f6eb;
}

.popup-slot.booked{
    border-color:#edc8c4;
    background:#fff4f2;
    color:#a93b31;
}

.popup-slot.exceptional{
    border-color:#e6c76f;
    background:#fff9e8;
    color:#906000;
}

.popup-slot.readonly{
    pointer-events:none;
    opacity:.78;
}

@media(max-width:900px){
    .booking-column-options{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .booking-time-popup{
        right:0;
        transform:none;
    }
}

@media(max-width:620px){
    .booking-column-options{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .booking-toolbar-actions{
        width:100%;
        flex-wrap:wrap;
    }

    .booking-column-panel{
        left:8px;
        width:calc(100% - 16px);
    }
}


/* V0.8.5 — Booking polish + collapsible sidebar ================ */

/* Larger, centered status navigation */
.booking-compact-tabs{
    justify-content:center;
    gap:9px;
    padding:4px 8px 13px;
}

.booking-compact-tabs a,
.booking-compact-tabs .booking-custom-status{
    min-height:43px;
    padding:9px 15px;
    border-radius:11px;
    font-size:12px;
    font-weight:800;
    box-shadow:0 2px 8px rgba(16,24,40,.035);
}

.booking-compact-tabs a b{
    min-width:24px;
    height:24px;
    font-size:10.5px;
}

/* Quick month chooser */
.booking-month-actions{
    align-items:center;
}

.booking-quick-month-select{
    min-width:170px;
    height:38px;
    padding:6px 10px;
    border:1px solid #d9e0e5;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:10.5px;
    font-weight:700;
    cursor:pointer;
}

.booking-quick-month-select:focus{
    outline:none;
    border-color:#9abaaa;
    box-shadow:0 0 0 2px rgba(31,122,82,.07);
}

/* The month is already shown above — remove the old duplicate banner if cached */
.booking-sheet-month-title{
    display:none!important;
}

/* Professional, softer booking table */
.booking-table-scroll{
    padding:7px 9px 10px;
    background:#f7f9fb;
}

.booking-customizable-table{
    border-collapse:separate;
    border-spacing:0 6px;
    min-width:1750px;
    background:transparent;
    font-family:inherit;
    font-size:12.5px;
}

.booking-customizable-table thead th{
    position:sticky;
    top:0;
    z-index:10;
    height:44px;
    padding:9px 10px;
    border:0;
    border-bottom:1px solid #d8dee4;
    background:#f3f6f8;
    color:#24313f;
    font-size:11.5px;
    font-weight:850;
    line-height:1.4;
    box-shadow:0 2px 5px rgba(16,24,40,.035);
}

.booking-customizable-table tbody td{
    height:52px;
    padding:10px 10px;
    border:0;
    border-top:1px solid #e8edf1;
    border-bottom:1px solid #e8edf1;
    background:#fff;
    color:#253241;
    font-size:12.5px;
    font-weight:600;
    line-height:1.5;
}

.booking-customizable-table tbody tr td:first-child{
    border-right:1px solid #e8edf1;
    border-radius:0 10px 10px 0;
}

.booking-customizable-table tbody tr td:last-child{
    border-left:1px solid #e8edf1;
    border-radius:10px 0 0 10px;
}

.booking-customizable-table tbody tr:hover td{
    background:#f8fbfa;
    border-color:#dbe6e0;
}

.booking-customizable-table .booking-day-start td{
    border-top-color:#dfe6e2;
}

.booking-customizable-table .booking-row-today td{
    background:#f3f8ff!important;
}

.booking-customizable-table .booking-row-cancelled td{
    background:#fff7f6!important;
}

.booking-customizable-table .patient-cell a{
    color:#182230;
    font-size:13px;
    font-weight:850;
}

.booking-patient-code{
    color:#344054;
    font-size:12px;
    font-weight:800;
}

.booking-customizable-table .operation-date-cell{
    background:#fbfcfd!important;
    color:#253241;
}

.booking-customizable-table .operation-date-cell.today{
    background:#eef5ff!important;
}

.booking-customizable-table .operation-date-cell strong{
    font-size:12.5px;
    color:#182230;
}

.booking-customizable-table .operation-date-cell span{
    font-size:10.5px;
    color:#667085;
}

.booking-customizable-table .time-cell{
    font-size:12.5px;
}

.booking-time-trigger{
    min-width:82px;
    min-height:39px;
    border-color:#d3dce2;
    background:#fbfcfd;
}

.booking-time-trigger strong{
    color:#182230;
    font-size:12.5px;
}

.booking-time-trigger small{
    font-size:8.5px;
}

.booking-deposit-state{
    font-size:10.5px;
}

.booking-amount-cell strong{
    color:#182230;
    font-size:12px;
}

.booking-inline-status{
    min-height:36px;
    font-size:11px;
}

.booking-company-chip{
    min-width:68px;
    padding:6px 8px;
    font-size:9px;
}

.booking-empty-row td{
    background:#fcfefd;
    color:#8a98a8;
}

.booking-empty-name strong{
    color:#426f51;
    font-size:12px;
}

/* Sidebar hide / show */
.sidebar{
    transition:
        width .2s ease,
        padding .2s ease,
        opacity .15s ease,
        transform .2s ease;
}

.main{
    transition:padding .2s ease;
}

.sidebar-visibility-toggle{
    position:fixed;
    top:88px;
    right:242px;
    z-index:120;
    display:flex;
    align-items:center;
    justify-content:center;
    width:31px;
    height:42px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:9px 0 0 9px;
    background:var(--sidebar);
    color:#fff;
    font:inherit;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 5px 16px rgba(16,24,40,.12);
    transition:right .2s ease, background .15s ease;
}

.sidebar-visibility-toggle:hover{
    background:#164b39;
}

body.sidebar-collapsed .sidebar{
    width:0;
    min-width:0;
    padding-left:0;
    padding-right:0;
    opacity:0;
    overflow:hidden;
    transform:translateX(100%);
}

body.sidebar-collapsed .sidebar-visibility-toggle{
    right:0;
    border-radius:9px 0 0 9px;
}

body.sidebar-collapsed .main{
    width:100%;
}

@media(max-width:850px){
    .booking-compact-tabs{
        justify-content:flex-start;
    }

    .booking-month-actions{
        justify-content:center;
        flex-wrap:wrap;
    }

    .booking-quick-month-select{
        min-width:190px;
    }

    .sidebar-visibility-toggle{
        top:72px;
    }
}

@media(max-width:520px){
    .booking-customizable-table tbody td{
        font-size:12px;
    }

    .booking-customizable-table thead th{
        font-size:11px;
    }
}


/* V0.8.6 — Consultation rating, booking stability, PRP tabs ===== */

/* Consultation patient quality stars */
.consultation-quality-field{
    grid-column:span 1;
}

.patient-quality-stars{
    direction:rtl;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    min-height:42px;
    padding:5px 9px;
    border:1px solid #dce3e8;
    border-radius:9px;
    background:#fff;
}

.patient-quality-stars input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.patient-quality-stars label{
    margin:0!important;
    color:#d0d5dd;
    font-size:27px;
    line-height:1;
    cursor:pointer;
    transition:.12s ease;
}

.patient-quality-stars label:hover,
.patient-quality-stars label:hover ~ label,
.patient-quality-stars input:checked ~ label{
    color:#e8aa22;
}

.consultation-quality-display{
    letter-spacing:2px;
    color:#98a2b3;
    font-size:17px;
}

.consultation-quality-display.rated{
    color:#e0a21f;
}

/* PRP / Meso main status navigation */
.treatment-status-tabs{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    overflow-x:auto;
    margin-bottom:14px;
    padding:3px 4px 6px;
}

.treatment-status-tab{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:8px 14px;
    border:1px solid #dfe5ea;
    border-radius:10px;
    background:#fff;
    color:#475467;
    text-decoration:none;
    font-size:11px;
    font-weight:800;
    box-shadow:0 2px 8px rgba(16,24,40,.035);
}

.treatment-status-tab strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24px;
    height:24px;
    padding:0 5px;
    border-radius:7px;
    background:#f2f4f7;
    color:#344054;
    font-size:10px;
}

.treatment-status-tab:hover{
    border-color:#bfcbd4;
    background:#fbfcfd;
}

.treatment-status-tab.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#fffaf0);
    color:var(--theme-dark,#8b5a18);
}

.treatment-status-tab.active strong{
    background:#fff;
    color:inherit;
}

/* Booking stability helper */
#id_booking_stability{
    font-weight:700;
}

/* More explicit required-patient selects */
#id_patient:required{
    border-color:#dfd2c0;
}

@media(max-width:650px){
    .treatment-status-tabs{
        justify-content:flex-start;
    }
}


/* V0.8.7 — Professional patient quality rating + uniqueness rules */

/* New consultation rating */
.patient-quality-rating{
    width:100%;
    max-width:430px;
    padding:10px 12px 8px;
    border:1px solid #dce3e8;
    border-radius:12px;
    background:linear-gradient(180deg,#ffffff 0%,#fbfcfd 100%);
    box-shadow:0 3px 10px rgba(16,24,40,.035);
}

.quality-rating-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.quality-star-row{
    direction:ltr;
    display:flex;
    align-items:center;
    gap:5px;
}

.quality-star-row input{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}

.quality-star-row label{
    display:flex;
    align-items:center;
    justify-content:center;
    width:39px;
    height:39px;
    margin:0!important;
    border:1px solid #e1e6eb;
    border-radius:10px;
    background:#fff;
    color:#c7cdd4;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    user-select:none;
    transition:
        transform .12s ease,
        color .12s ease,
        background .12s ease,
        border-color .12s ease,
        box-shadow .12s ease;
}

.quality-star-row label:hover{
    transform:translateY(-2px);
    border-color:#e8c463;
    color:#e3a51f;
    box-shadow:0 5px 12px rgba(197,139,18,.10);
}

.quality-star-row label.selected{
    border-color:#ebc65c;
    background:#fff9e9;
    color:#e2a21d;
    box-shadow:inset 0 0 0 1px rgba(226,162,29,.08);
}

.quality-rating-value{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:76px;
    min-height:30px;
    padding:5px 9px;
    border-radius:999px;
    background:#f2f4f7;
    color:#667085;
    font-size:10.5px;
    font-weight:800;
    white-space:nowrap;
}

.quality-rating-value[data-value="4"],
.quality-rating-value[data-value="5"]{
    background:#fff4d6;
    color:#946200;
}

.quality-rating-value[data-value="3"]{
    background:#eef5ff;
    color:#175cd3;
}

.quality-rating-value[data-value="1"],
.quality-rating-value[data-value="2"]{
    background:#fff1ef;
    color:#b5473c;
}

.quality-rating-scale{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:7px;
    color:#98a2b3;
    font-size:8.5px;
}

.booking-patient-rule{
    display:block;
    margin-top:6px;
    padding:7px 9px;
    border-radius:8px;
    background:#f8fafb;
    color:#667085;
    line-height:1.55;
}

@media(max-width:650px){
    .quality-rating-top{
        align-items:flex-start;
        flex-direction:column;
    }

    .quality-star-row label{
        width:36px;
        height:36px;
        font-size:22px;
    }
}


/* V0.8.8 — Searchable patient selector, icon rail & HR tabs ===== */

/* -------------------------------------------------------------
   Searchable existing-patient selector
   ------------------------------------------------------------- */
.patient-native-select{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:0!important;
    opacity:0!important;
    pointer-events:none!important;
    overflow:hidden!important;
}

.patient-search-picker{
    position:relative;
    width:100%;
}

.patient-search-trigger{
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:9px 11px;
    border:1px solid #dfe3e9;
    border-radius:9px;
    background:#fff;
    color:#667085;
    font:inherit;
    text-align:right;
    cursor:pointer;
    transition:.14s ease;
}

.patient-search-trigger:hover,
.patient-search-trigger.open{
    border-color:#9bbca8;
    box-shadow:0 0 0 3px rgba(31,122,82,.06);
}

.patient-search-trigger.has-value{
    color:#172033;
    font-weight:700;
}

.patient-search-trigger.is-invalid{
    border-color:#e2a29b;
    box-shadow:0 0 0 3px rgba(180,35,24,.06);
}

.patient-search-trigger-text{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.patient-search-trigger-icon{
    flex:0 0 auto;
    font-size:16px;
    color:#667085;
    transition:transform .14s ease;
}

.patient-search-trigger.open .patient-search-trigger-icon{
    transform:rotate(180deg);
}

.patient-search-dropdown{
    position:absolute;
    top:calc(100% + 6px);
    right:0;
    left:0;
    z-index:100;
    padding:9px;
    border:1px solid #dce3e8;
    border-radius:11px;
    background:#fff;
    box-shadow:0 16px 38px rgba(16,24,40,.14);
}

.patient-search-dropdown[hidden]{
    display:none!important;
}

.patient-search-box{
    display:flex;
    align-items:center;
    gap:7px;
    padding:0 9px;
    border:1px solid #dfe4e9;
    border-radius:9px;
    background:#f9fbfc;
}

.patient-search-icon{
    flex:0 0 auto;
    color:#667085;
    font-size:16px;
}

.patient-search-box input{
    height:39px;
    padding:6px 0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none!important;
    font-size:12px;
}

.patient-search-meta{
    padding:7px 3px 5px;
    color:#98a2b3;
    font-size:9px;
}

.patient-search-options{
    max-height:290px;
    overflow:auto;
    display:grid;
    gap:4px;
    padding:2px;
}

.patient-search-option{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:38px;
    padding:8px 10px;
    border:1px solid transparent;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:11px;
    text-align:right;
    cursor:pointer;
}

.patient-search-option:hover{
    border-color:#d9e5dd;
    background:#f6faf7;
}

.patient-search-option.selected{
    border-color:#c8ddcf;
    background:#f0f8f3;
    color:#8b5a18;
    font-weight:800;
}

.patient-search-option b{
    color:#8b5a18;
}

.patient-search-more{
    padding:9px;
    border-radius:8px;
    background:#f8fafb;
    color:#667085;
    font-size:9px;
    text-align:center;
}

/* -------------------------------------------------------------
   Sidebar icons and compact quick-access rail
   ------------------------------------------------------------- */
.sidebar-nav{
    min-width:0;
}

.sidebar-nav-link{
    display:flex!important;
    align-items:center;
    gap:11px;
    min-height:43px;
}

.sidebar-nav-icon{
    flex:0 0 22px;
    width:22px;
    height:22px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.sidebar-nav-icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.sidebar-nav-label{
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}

body.sidebar-collapsed .sidebar{
    width:68px;
    min-width:68px;
    padding:18px 9px;
    opacity:1;
    overflow:hidden;
    transform:none;
    gap:18px;
}

body.sidebar-collapsed .brand{
    justify-content:center;
}

body.sidebar-collapsed .brand>div:not(.brand-mark){
    display:none;
}

body.sidebar-collapsed .brand-mark{
    width:42px;
    height:42px;
    border-radius:11px;
}

body.sidebar-collapsed .sidebar nav{
    width:100%;
    align-items:center;
    gap:7px;
}

body.sidebar-collapsed .sidebar-nav-link{
    width:48px;
    height:44px;
    min-height:44px;
    padding:0!important;
    justify-content:center!important;
    border-radius:10px;
}

body.sidebar-collapsed .sidebar-nav-label,
body.sidebar-collapsed .sidebar nav .disabled em{
    display:none!important;
}

body.sidebar-collapsed .sidebar-nav-icon{
    width:23px;
    height:23px;
    flex-basis:23px;
}

body.sidebar-collapsed .sidebar-nav-icon svg{
    width:21px;
    height:21px;
}

body.sidebar-collapsed .sidebar nav .disabled{
    display:flex!important;
    opacity:.38;
}

body.sidebar-collapsed .user-box{
    display:none;
}

body.sidebar-collapsed .sidebar-visibility-toggle{
    right:68px;
    border-radius:9px 0 0 9px;
}

body.sidebar-collapsed .main{
    width:auto;
    flex:1;
}

/* -------------------------------------------------------------
   HR navigation: centered and grouped like bookings / PRP tabs
   ------------------------------------------------------------- */
.hr-tabs-v2{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    overflow-x:auto;
    margin-bottom:15px;
    padding:7px 9px;
    border:1px solid #e3e8ec;
    border-radius:13px;
    background:#fff;
    box-shadow:0 3px 12px rgba(16,24,40,.035);
}

.hr-tab-group{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    flex:0 0 auto;
}

.hr-tabs-v2 a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 13px;
    border:1px solid #e0e5e9;
    border-radius:10px;
    background:#fff;
    color:#475467;
    white-space:nowrap;
    text-decoration:none;
    font-size:10.5px;
    font-weight:800;
    transition:.14s ease;
}

.hr-tabs-v2 a:hover{
    border-color:#bdc9d2;
    background:#fbfcfd;
    color:#253241;
}

.hr-tabs-v2 a.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#fff8ea);
    color:var(--theme-dark,#8b5a18);
    box-shadow:0 2px 8px rgba(31,122,82,.06);
}

.hr-tabs-divider{
    flex:0 0 1px;
    width:1px;
    height:28px;
    background:#dfe4e8;
}

.hr-tab-group-partners a{
    border-color:#e7ddbd;
    background:#fffdf7;
}

.hr-tab-group-archive a{
    background:#fbfcfd;
}

@media(max-width:1100px){
    .hr-tabs-v2{
        justify-content:flex-start;
    }
}

@media(max-width:700px){
    body.sidebar-collapsed .sidebar{
        width:58px;
        min-width:58px;
        padding-left:6px;
        padding-right:6px;
    }

    body.sidebar-collapsed .sidebar-nav-link{
        width:44px;
    }

    body.sidebar-collapsed .sidebar-visibility-toggle{
        right:58px;
    }

    .hr-tabs-divider{
        height:24px;
    }
}


/* V0.8.9 — star fix, selection, operation relation, accounting */
.quality-hidden-field{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.quality-star-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #e0e5ea;border-radius:10px;background:#fff;color:#c9cfd6;font:inherit;font-size:25px;line-height:1;cursor:pointer;transition:.14s ease}
.quality-star-button:hover{transform:translateY(-2px);border-color:#e4bd55;color:#e2a11f;box-shadow:0 5px 12px rgba(197,139,18,.10)}
.quality-star-button.selected{border-color:#e8c45e;background:#fff8e6;color:#e2a11f}
.booking-select-col{width:38px!important;min-width:38px!important;max-width:38px!important}
.booking-bulk-bar{margin:0 14px 8px}

.accounting-main-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:15px;padding:5px;overflow-x:auto}
.accounting-main-tabs a{display:inline-flex;align-items:center;justify-content:center;min-width:145px;min-height:43px;padding:8px 14px;border:1px solid #dfe5ea;border-radius:10px;background:#fff;color:#475467;text-decoration:none;font-size:11px;font-weight:800}
.accounting-main-tabs a.active{border-color:var(--theme-accent,#b47a22);background:var(--theme-page,#fffaf0);color:var(--theme-dark,#8b5a18)}
.accounting-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.accounting-kpi span{display:block;color:#667085;font-size:10px}.accounting-kpi strong{display:block;margin-top:7px;font-size:20px}.accounting-kpi.income strong{color:#8b5a18}.accounting-kpi.expense strong{color:#b5473c}.accounting-kpi.net strong{color:#175cd3}.accounting-kpi.remaining strong{color:#9a6700}
.accounting-intro{display:flex;align-items:center;justify-content:space-between;gap:14px}.accounting-intro h2{margin:0 0 4px}.accounting-intro p{margin:0;color:#667085;font-size:10px;max-width:760px;line-height:1.8}
.accounting-mini-list{display:grid;gap:7px;margin-top:10px}.accounting-mini-list>div{display:grid;grid-template-columns:1.3fr 1fr auto;gap:12px;padding:10px 12px;border:1px solid #e8ecef;border-radius:9px;background:#fbfcfd;font-size:10px}.legacy-accounting-note{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff9e8;color:#7a5d18;font-size:9.5px}
.accounting-ledger-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(135px,1fr)) auto;gap:9px;align-items:end}.accounting-ledger-summary{display:flex;justify-content:center;gap:8px;margin:10px 0}.accounting-ledger-summary span{padding:7px 11px;border:1px solid #e3e8ec;border-radius:9px;background:#fff;font-size:10px}.accounting-ledger-table{min-width:1500px}.accounting-ledger-table td{font-weight:600}.ledger-income{color:#8b5a18!important;font-weight:800!important}.ledger-expense{color:#b5473c!important;font-weight:800!important}.ledger-net{color:#175cd3!important;font-weight:850!important}
.accounting-new-ledger-form{max-width:1120px}.ledger-section-space{margin-top:22px}.ledger-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.ledger-money-card{padding:15px;border:1px solid #e2e7eb;border-radius:12px;background:#fbfcfd}.ledger-money-card.income{border-top:3px solid #59a974}.ledger-money-card.expense{border-top:3px solid #d2776e}.ledger-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.ledger-card-head span{font-size:13px;font-weight:850}.ledger-card-head strong{font-size:19px}.ledger-money-card.income .ledger-card-head{color:#8b5a18}.ledger-money-card.expense .ledger-card-head{color:#b5473c}.ledger-remaining-card{margin-top:16px;padding:15px;border:1px solid #eadba9;border-radius:12px;background:#fffdf6}
@media(max-width:1000px){.accounting-overview-grid{grid-template-columns:repeat(2,1fr)}.accounting-ledger-filter-grid{grid-template-columns:repeat(3,1fr)}.ledger-two-columns{grid-template-columns:1fr}}
@media(max-width:650px){.accounting-main-tabs{justify-content:flex-start}.accounting-overview-grid,.accounting-ledger-filter-grid{grid-template-columns:1fr}.accounting-mini-list>div{grid-template-columns:1fr}.accounting-intro{align-items:flex-start;flex-direction:column}}


/* V0.9.0 — Sidebar groups, tasks, account profile, accounting v3 ========== */

/* Sidebar sections */
.sidebar-nav-v3{
    display:flex;
    flex-direction:column;
    gap:13px!important;
}

.sidebar-section{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding-bottom:12px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.sidebar-section:last-child{
    border-bottom:0;
}

.sidebar-section-title{
    padding:0 8px 4px;
    color:rgba(255,255,255,.46);
    font-size:8px;
    font-weight:800;
    letter-spacing:.03em;
}

.sidebar-profile-link{
    min-height:54px!important;
    padding:7px 8px!important;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.08);
}

.sidebar-profile-avatar{
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#fff;
    color:var(--sidebar);
    font-size:13px;
    font-weight:900;
}

.sidebar-profile-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
    gap:2px;
}

.sidebar-profile-copy strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#fff;
    font-size:10px;
}

.sidebar-profile-copy small{
    color:rgba(255,255,255,.58);
    font-size:8px;
}

body.sidebar-collapsed .sidebar-section-title,
body.sidebar-collapsed .sidebar-profile-copy{
    display:none!important;
}

body.sidebar-collapsed .sidebar-section{
    align-items:center;
    width:100%;
    padding-bottom:9px;
    border-bottom-color:rgba(255,255,255,.1);
}

body.sidebar-collapsed .sidebar-profile-link{
    width:48px!important;
    min-height:44px!important;
    height:44px!important;
    padding:0!important;
    border:0;
    background:transparent;
}

body.sidebar-collapsed .sidebar-profile-avatar{
    width:35px;
    height:35px;
    flex-basis:35px;
}

/* Profile */
.profile-layout{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:14px;
    align-items:start;
}

.profile-main-card{
    text-align:center;
}

.profile-avatar-large{
    width:84px;
    height:84px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 12px;
    border-radius:24px;
    background:var(--theme-page,#f2f7f4);
    color:var(--theme-dark,#8b5a18);
    font-size:32px;
    font-weight:900;
}

.profile-main-card h2{
    margin:0 0 3px;
}

.profile-username{
    color:#667085;
    font-size:10px;
}

.profile-info-grid{
    display:grid;
    gap:0;
    margin-top:18px;
    text-align:right;
    border-top:1px solid #edf0f3;
}

.profile-info-grid>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 0;
    border-bottom:1px solid #edf0f3;
}

.profile-info-grid span,
.profile-company-row span{
    color:#667085;
    font-size:9px;
}

.profile-info-grid strong{
    font-size:10px;
}

.profile-side{
    display:grid;
    gap:14px;
}

.profile-chips{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:10px;
}

.profile-chips span{
    padding:6px 9px;
    border-radius:999px;
    background:#f2f4f7;
    color:#475467;
    font-size:9px;
    font-weight:700;
}

.profile-company-list{
    display:grid;
    gap:8px;
    margin-top:10px;
}

.profile-company-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 11px;
    border:1px solid #e4e8eb;
    border-radius:9px;
}

.profile-company-row>div{
    display:flex;
    gap:5px;
}

.profile-company-row span{
    padding:4px 6px;
    border-radius:999px;
    background:#f2f4f7;
}

.profile-company-row .yes{
    background:#fff4dd;
    color:#8b5a18;
}

.profile-company-row .no{
    color:#98a2b3;
}

/* Tasks */
.task-tabs{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:7px;
    margin-bottom:13px;
}

.task-tabs a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:39px;
    padding:7px 12px;
    border:1px solid #dfe5e9;
    border-radius:10px;
    background:#fff;
    color:#475467;
    text-decoration:none;
    font-size:10px;
    font-weight:800;
}

.task-tabs a b{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:23px;
    height:23px;
    border-radius:7px;
    background:#f2f4f7;
    font-size:9px;
}

.task-tabs a.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#fffaf0);
    color:var(--theme-dark,#8b5a18);
}

.task-toolbar{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.task-search-form{
    display:flex;
    align-items:end;
    gap:8px;
    flex:1;
}

.task-search-form .filter-field{
    min-width:260px;
    max-width:520px;
    flex:1;
}

.professional-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 5px;
}

.professional-table th{
    padding:8px 10px;
    background:#f3f6f8;
    color:#344054;
    font-size:10px;
}

.professional-table td{
    padding:10px;
    border-top:1px solid #e7ebee;
    border-bottom:1px solid #e7ebee;
    background:#fff;
    font-size:10.5px;
}

.task-title-cell strong,
.task-title-cell small{
    display:block;
}

.task-title-cell small{
    margin-top:3px;
    color:#667085;
    font-size:8.5px;
}

.task-priority{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    background:#f2f4f7;
    font-size:8px;
    font-weight:800;
}

.priority-high{
    background:#fff0ee;
    color:#b42318;
}

.priority-medium{
    background:#fff7e8;
    color:#9a6700;
}

.priority-low{
    background:#eef5ff;
    color:#175cd3;
}

.task-inline-status select{
    min-width:110px;
    min-height:32px;
    border:1px solid #dfe4e8;
    border-radius:8px;
    padding:5px 7px;
    font:inherit;
    font-size:9px;
}

.task-inline-status select.task-overdue{
    background:#fff0ee;
    color:#b42318;
}

.task-inline-status select.task-done{
    background:#fff4dd;
    color:#8b5a18;
}

.task-form-panel{
    max-width:900px;
}

/* Accounting nav */
.accounting-tabs-v2{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    overflow-x:auto;
    margin-bottom:14px;
    padding:5px;
}

.accounting-tabs-v2 a{
    flex:0 0 auto;
    min-height:41px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border:1px solid #dfe5e9;
    border-radius:10px;
    background:#fff;
    color:#475467;
    text-decoration:none;
    font-size:10.5px;
    font-weight:800;
}

.accounting-tabs-v2 a.active{
    border-color:var(--theme-accent,#b47a22);
    background:var(--theme-page,#fffaf0);
    color:var(--theme-dark,#8b5a18);
}

/* Accounting overview */
.accounting-summary-v2{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.summary-card.transfer strong{
    color:#6941c6;
}

.summary-card.balance strong{
    color:#175cd3;
}

.accounting-overview-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
}

.accounting-overview-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:14px;
}

.simple-finance-list{
    display:grid;
    gap:6px;
    margin-top:8px;
}

.simple-finance-list>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 10px;
    border:1px solid #e7ebee;
    border-radius:9px;
    background:#fbfcfd;
}

.simple-finance-list>div>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.simple-finance-list span{
    color:#667085;
    font-size:8.5px;
}

.simple-finance-list strong{
    font-size:10px;
}

/* Monthly accounting */
.accounting-month-nav{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.accounting-month-nav>div:nth-child(2){
    text-align:center;
}

.accounting-month-nav span{
    color:#667085;
    font-size:9px;
}

.accounting-month-nav h2{
    margin:2px 0 0;
    font-size:18px;
}

.accounting-month-actions{
    display:flex;
    align-items:center;
    gap:7px;
}

.accounting-month-actions input{
    min-width:150px;
    min-height:36px;
    border:1px solid #dfe4e8;
    border-radius:8px;
    padding:6px 8px;
    font:inherit;
}

.accounting-monthly-panel{
    padding:0;
    overflow:hidden;
}

.accounting-month-table{
    min-width:1500px;
}

.accounting-month-table td{
    color:#253241!important;
    font-weight:600;
}

.accounting-day-start td{
    border-top:2px solid #d8e1dc!important;
}

.accounting-day-cell{
    min-width:105px;
    background:#f8faf9!important;
}

.accounting-day-cell strong,
.accounting-day-cell span{
    display:block;
}

.accounting-day-cell span{
    margin-top:3px;
    color:#667085;
    font-size:9px;
}

.accounting-entry-label{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:8px;
}

.monthly-money-cell{
    min-width:135px;
}

.monthly-money-cell strong{
    display:block;
    margin-bottom:5px;
    font-size:11px;
}

.monthly-money-cell a{
    display:inline-flex;
    padding:4px 6px;
    border-radius:7px;
    text-decoration:none;
    font-size:8px;
    font-weight:800;
}

.monthly-money-cell.income strong{
    color:#8b5a18;
}

.monthly-money-cell.income a{
    background:#fff4dd;
    color:#8b5a18;
}

.monthly-money-cell.expense strong{
    color:#b42318;
}

.monthly-money-cell.expense a{
    background:#fff0ee;
    color:#b42318;
}

.accounting-day-net{
    min-width:135px;
    background:#fbfcfd!important;
}

.accounting-day-net strong{
    display:block;
    font-size:12px;
}

.accounting-day-net small{
    display:block;
    margin-top:4px;
    color:#667085;
    font-size:7.5px;
}

.accounting-day-net.positive strong{
    color:#8b5a18;
}

.accounting-day-net.negative strong,
.negative{
    color:#b42318!important;
}

.accounting-empty-day td{
    background:#fcfdfd!important;
    color:#98a2b3!important;
}

/* Income / expense lists */
.accounting-list-filter{
    margin-bottom:12px;
}

.accounting-list-filter-grid{
    display:grid;
    grid-template-columns:minmax(260px,2fr) repeat(4,minmax(135px,1fr)) auto;
    gap:8px;
    align-items:end;
}

.accounting-list-filter-grid.compact{
    grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) auto;
}

.accounting-entry-table{
    min-width:1500px;
}

.accounting-entry-form{
    max-width:1100px;
}

.transfer-form-panel{
    max-width:850px;
}

.transfer-responsible-card{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:16px;
    padding:10px 12px;
    border:1px solid #e2e7ea;
    border-radius:10px;
    background:#f8fafb;
}

.transfer-responsible-card span,
.transfer-responsible-card small{
    color:#667085;
    font-size:9px;
}

.transfer-responsible-card strong{
    font-size:11px;
}

@media(max-width:1000px){
    .profile-layout{
        grid-template-columns:1fr;
    }

    .accounting-summary-v2{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .accounting-overview-grid{
        grid-template-columns:1fr;
    }

    .accounting-list-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .accounting-month-nav{
        grid-template-columns:1fr;
    }

    .accounting-month-actions{
        justify-content:center;
        flex-wrap:wrap;
    }
}

@media(max-width:650px){
    .accounting-summary-v2,
    .accounting-list-filter-grid,
    .accounting-list-filter-grid.compact{
        grid-template-columns:1fr;
    }

    .task-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .task-search-form{
        align-items:stretch;
        flex-direction:column;
    }

    .task-search-form .filter-field{
        min-width:0;
        max-width:none;
    }
}


/* V0.9.0 — optional patient picker reset */
.patient-search-clear{
    border-style:dashed!important;
    background:#f8fafb!important;
    color:#667085!important;
}
.patient-search-clear:hover{
    border-color:#cbd5dd!important;
    background:#f2f5f7!important;
}


/* V0.10.0 — Notifications, chats and attendance ================= */

/* Fixed / sticky top notification center */
.topbar{
    position:sticky;
    top:0;
    z-index:95;
    margin:-10px -8px 22px;
    padding:10px 8px 12px;
    background:rgba(245,247,251,.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(231,234,240,.88);
}

.topbar-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}

.notification-center{position:relative;z-index:140}
.notification-center-button{
    min-height:39px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 10px;
    border:1px solid #dce3e8;
    border-radius:10px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 3px 12px rgba(16,24,40,.045);
}
.notification-center-button:hover{border-color:#bdcbc3;background:#fbfdfc}
.notification-bell{width:22px;height:22px;display:flex;align-items:center;justify-content:center;color:#b47a22}
.notification-bell svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-count{min-width:22px;height:22px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#b42318;color:#fff;font-size:9px}
.notification-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:390px;max-width:calc(100vw - 38px);overflow:hidden;border:1px solid #dce3e8;border-radius:14px;background:#fff;box-shadow:0 22px 55px rgba(16,24,40,.17)}
.notification-dropdown[hidden]{display:none!important}
.notification-dropdown-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid #edf0f3;background:#fbfcfd}
.notification-dropdown-head strong{display:block;font-size:12px}.notification-dropdown-head span{display:block;margin-top:2px;color:#667085;font-size:8.5px}.notification-dropdown-head button{border:0;background:none;color:#8b5a18;font:inherit;font-size:8.5px;font-weight:800;cursor:pointer}
.notification-dropdown-list{max-height:410px;overflow:auto}
.notification-dropdown-item{display:grid;grid-template-columns:7px minmax(0,1fr) 8px;gap:9px;align-items:start;padding:11px 13px;border-bottom:1px solid #f0f2f4;color:#344054;text-decoration:none}
.notification-dropdown-item:hover{background:#fafcfd}.notification-dropdown-item.unread{background:#fbfefc}.notification-item-indicator{width:7px;height:38px;border-radius:999px;background:#98a2b3}.level-danger .notification-item-indicator{background:#b42318}.level-warning .notification-item-indicator{background:#e4a11b}.level-info .notification-item-indicator{background:#2f7ed8}
.notification-dropdown-copy strong{display:block;font-size:10px;color:#182230}.notification-dropdown-copy small{display:block;margin-top:3px;color:#667085;font-size:9px;line-height:1.5;white-space:normal}.notification-dropdown-copy em{display:block;margin-top:4px;color:#98a2b3;font-size:7.5px;font-style:normal}.notification-unread-dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#b47a22}
.notification-dropdown-empty{padding:25px;text-align:center;color:#98a2b3;font-size:10px}.notification-dropdown-footer{display:block;padding:10px;text-align:center;background:#fbfcfd;color:#8b5a18;font-size:9.5px;font-weight:800}

.notification-page-tabs,.attendance-tabs{display:flex;align-items:center;justify-content:center;gap:8px;overflow-x:auto;margin-bottom:14px}.notification-page-tabs a,.attendance-tabs a{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid #dfe5e9;border-radius:10px;background:#fff;color:#475467;font-size:10.5px;font-weight:800;white-space:nowrap}.notification-page-tabs a b{min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:#f2f4f7;font-size:9px}.notification-page-tabs a.active,.attendance-tabs a.active{border-color:#b47a22;background:#f1f8f4;color:#8b5a18}
.notification-page-list{display:grid;gap:7px}.notification-page-item{display:grid;grid-template-columns:8px minmax(0,1fr) 8px;gap:10px;align-items:center;padding:12px;border:1px solid #e7ebee;border-radius:10px;background:#fff;color:#344054}.notification-page-item.unread{border-color:#d6e7dc;background:#fbfefc}.notification-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.notification-item-top strong{font-size:11px;color:#182230}.notification-item-top span{color:#98a2b3;font-size:8px}.notification-item-copy p{margin:4px 0 0;color:#667085;font-size:10px;line-height:1.55}.notification-empty{padding:35px;text-align:center;color:#667085}.notification-empty strong,.notification-empty span{display:block}.notification-empty span{margin-top:5px;color:#98a2b3;font-size:10px}

.sidebar-nav-badge{margin-right:auto;min-width:20px;height:20px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:#b42318;font-size:8px;font-weight:900}
body.sidebar-collapsed .sidebar-nav-badge{position:absolute;top:1px;left:1px;min-width:16px;height:16px;font-size:7px}.sidebar-nav-link{position:relative}

/* Chat center */
.chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:#fff}.chat-toolbar strong{display:block;font-size:12px}.chat-toolbar span{display:block;margin-top:3px;color:#667085;font-size:9px}.chat-toolbar-actions{display:flex;gap:7px}
.chat-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:12px;min-height:610px}.chat-conversation-list,.chat-room{margin:0;padding:0;overflow:hidden}.chat-list-head{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-bottom:1px solid #edf0f3}.chat-list-head strong{font-size:11px}.chat-list-head span{min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:#f2f4f7;font-size:9px}.chat-list-scroll{max-height:570px;overflow:auto;padding:7px}.chat-conversation-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid transparent;border-radius:10px;color:#344054}.chat-conversation-card:hover{background:#f8fafb}.chat-conversation-card.active{border-color:#cfe2d6;background:#f2f9f5}.chat-avatar{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#eaf3ee;color:#8b5a18;font-weight:900}.chat-card-copy{min-width:0}.chat-card-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px}.chat-card-copy small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#98a2b3;font-size:8.5px}.chat-unread-badge{min-width:21px;height:21px;padding:0 5px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#b47a22;color:#fff;font-size:8px}.chat-list-empty{padding:28px 12px;text-align:center;color:#98a2b3;font-size:9px;line-height:1.7}
.chat-room{display:flex;flex-direction:column}.chat-room-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #edf0f3}.chat-room-head strong{display:block;font-size:12px}.chat-room-head span{display:block;margin-top:2px;color:#98a2b3;font-size:8.5px}.chat-messages{flex:1;min-height:450px;max-height:570px;overflow:auto;padding:16px;background:#f7f9fb}.chat-message-row{display:flex;margin-bottom:9px}.chat-message-row.mine{justify-content:flex-start}.chat-message-row.other{justify-content:flex-end}.chat-message-bubble{max-width:min(620px,78%);padding:9px 11px;border:1px solid #e0e5e9;border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(16,24,40,.025)}.chat-message-row.mine .chat-message-bubble{border-color:#cfe2d6;background:#fff7e8}.chat-message-bubble strong{display:block;font-size:8px;color:#667085}.chat-message-bubble p{margin:4px 0;color:#253241;font-size:11px;line-height:1.65;white-space:normal}.chat-message-bubble time{display:block;color:#98a2b3;font-size:7.5px}.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border-top:1px solid #edf0f3;background:#fff}.chat-compose textarea{min-height:48px;max-height:100px;resize:vertical}.chat-welcome{margin:auto;text-align:center;color:#667085}.chat-welcome-icon{font-size:42px}.chat-welcome h2{margin:9px 0 4px;color:#344054}.chat-welcome p{margin:0;font-size:10px}.chat-create-card{max-width:760px}.chat-members-field ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;list-style:none;padding:0}.chat-members-field li label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #e5e9ed;border-radius:8px;background:#fbfcfd}.chat-members-field input{width:auto}

/* Attendance */
.attendance-clock-card{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:16px;align-items:center}.attendance-clock-copy>span{display:block;color:#98a2b3;font-size:8.5px}.attendance-clock-copy strong{display:block;margin-top:3px;font-size:15px}.attendance-clock-copy small{display:block;margin-top:4px;color:#667085;font-size:9px}.attendance-clock-state{text-align:center}.attendance-clock-state small{display:block;margin-top:5px;color:#667085;font-size:8px}.attendance-state-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:9.5px;font-weight:800;background:#f2f4f7;color:#667085}.attendance-state-pill.working{background:#e8f5ed;color:#8b5a18}.attendance-state-pill.done{background:#eef5ff;color:#175cd3}.attendance-state-pill.absent{background:#feeceb;color:#b42318}.attendance-state-pill.leave{background:#fff3d6;color:#9a6700}.attendance-clock-actions{display:flex;align-items:center;gap:7px}.attendance-check-form{display:flex;align-items:center;gap:7px}.attendance-check-form select{width:120px;min-height:38px}
.attendance-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:9px;margin-bottom:14px}.attendance-stat{margin:0;padding:13px}.attendance-stat span{display:block;color:#667085;font-size:8.5px}.attendance-stat strong{display:block;margin-top:5px;font-size:20px}.attendance-stat.working strong{color:#8b5a18}.attendance-stat.done strong{color:#175cd3}.attendance-stat.idle strong{color:#667085}.attendance-stat.absent strong{color:#b42318}.attendance-stat.leave strong{color:#9a6700}.attendance-row-status{display:inline-flex;padding:5px 8px;border-radius:8px;background:#eef5ff;color:#175cd3;font-size:8.5px;font-weight:800}.attendance-row-status.idle{background:#f2f4f7;color:#667085}.attendance-month-form input{width:170px}.attendance-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:9px;align-items:end}.attendance-filter-panel{padding:13px}.attendance-record-form{max-width:900px}

@media(max-width:1100px){.chat-layout{grid-template-columns:260px minmax(0,1fr)}.attendance-summary-grid{grid-template-columns:repeat(3,1fr)}.attendance-clock-card{grid-template-columns:1fr auto}.attendance-clock-actions{grid-column:1/-1}.attendance-filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{position:relative}.topbar-actions{width:100%;justify-content:space-between}.notification-dropdown{left:auto;right:0}.chat-layout{grid-template-columns:1fr}.chat-conversation-list{max-height:260px}.chat-list-scroll{max-height:205px}.chat-room{min-height:520px}.chat-members-field ul{grid-template-columns:1fr}.attendance-summary-grid{grid-template-columns:repeat(2,1fr)}.attendance-clock-card{grid-template-columns:1fr}.attendance-clock-state{text-align:right}.attendance-filters{grid-template-columns:1fr}.notification-page-tabs,.attendance-tabs{justify-content:flex-start}}


/* V0.10.1 — full-height sidebar scrolling & collapsed form expansion ===== */

/*
   Keep the sidebar itself fixed to the viewport height.
   Only the navigation area scrolls, so the logo and logout action remain visible.
*/
.sidebar{
    height:100vh;
    height:100dvh;
    min-height:100vh;
    min-height:100dvh;
    box-sizing:border-box;
    overflow:hidden;
}

.sidebar-nav-shell{
    flex:1 1 auto;
    min-height:0;
    width:100%;
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    gap:5px;
}

.sidebar-nav-v3{
    min-height:0;
    overflow-y:auto!important;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scroll-behavior:smooth;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.24) transparent;
    padding:1px 3px 3px 1px;
}

.sidebar-nav-v3::-webkit-scrollbar{
    width:6px;
}

.sidebar-nav-v3::-webkit-scrollbar-track{
    background:transparent;
}

.sidebar-nav-v3::-webkit-scrollbar-thumb{
    border-radius:999px;
    background:rgba(255,255,255,.20);
}

.sidebar-nav-v3::-webkit-scrollbar-thumb:hover{
    background:rgba(255,255,255,.32);
}

.sidebar-scroll-button{
    width:100%;
    min-height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:3px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:8px;
    background:rgba(255,255,255,.055);
    color:rgba(255,255,255,.78);
    cursor:pointer;
    transition:
        background .14s ease,
        color .14s ease,
        opacity .14s ease,
        border-color .14s ease;
}

.sidebar-scroll-button:hover{
    background:rgba(255,255,255,.11);
    border-color:rgba(255,255,255,.18);
    color:#fff;
}

.sidebar-scroll-button svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.sidebar-scroll-button[hidden]{
    display:none!important;
}

.sidebar-logout-box{
    flex:0 0 auto;
    margin-top:0!important;
}

/* Current section is easier to recognize while scrolling a long sidebar. */
.sidebar-nav-link.is-current{
    background:rgba(255,255,255,.10);
    color:#fff!important;
}

/*
   In compact mode keep the icon rail scrollable as well.
   The arrows stay visible above/below the icon rail.
*/
body.sidebar-collapsed .sidebar{
    height:100vh;
    height:100dvh;
    min-height:100vh;
    min-height:100dvh;
    overflow:hidden;
}

body.sidebar-collapsed .sidebar-nav-shell{
    width:100%;
    min-height:0;
    align-items:stretch;
}

body.sidebar-collapsed .sidebar-nav-v3{
    width:100%;
    min-height:0;
    overflow-y:auto!important;
    overflow-x:hidden;
    align-items:center;
    padding:1px 0 3px;
}

body.sidebar-collapsed .sidebar-scroll-button{
    width:44px;
    min-height:27px;
    justify-self:center;
    padding:2px;
    border-radius:8px;
}

body.sidebar-collapsed .sidebar-scroll-button svg{
    width:17px;
    height:17px;
}

/*
   The following forms previously had fixed max-width values.
   When the sidebar is collapsed they now use all of the released workspace,
   matching the behavior of consultation and booking pages.
*/
body.sidebar-collapsed .patient-form-panel,
body.sidebar-collapsed .direct-exam-form,
body.sidebar-collapsed .treatment-form-panel,
body.sidebar-collapsed .medication-form-panel{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box;
}

/* Also allow their immediate forms/grids to consume the full container. */
body.sidebar-collapsed .patient-form-panel > form,
body.sidebar-collapsed .direct-exam-form > form,
body.sidebar-collapsed .treatment-form-panel > form,
body.sidebar-collapsed .medication-form-panel > form{
    width:100%;
    max-width:none;
}

@media(max-width:680px){
    /*
       Existing mobile behavior changes the sidebar to a normal block.
       Disable the internal desktop scroll controls there.
    */
    .sidebar{
        height:auto;
        min-height:0;
        overflow:visible;
    }

    .sidebar-nav-shell{
        display:block;
    }

    .sidebar-nav-v3{
        overflow:visible!important;
        max-height:none;
    }

    .sidebar-scroll-button{
        display:none!important;
    }

    body.sidebar-collapsed .sidebar{
        height:auto;
        min-height:0;
    }
}

/* V0.10.2 — granular employee access editor ==================== */
.access-editor{
    display:grid;
    gap:14px;
}
.access-summary-panel{
    border-top:3px solid var(--theme-accent,#b47a22);
}
.access-toggle-field{
    align-self:end;
}
.access-switch{
    display:flex!important;
    align-items:center;
    gap:9px;
    min-height:42px;
    padding:9px 11px;
    border:1px solid #dfe5ea;
    border-radius:9px;
    background:#fbfcfd;
    cursor:pointer;
}
.access-switch input{
    width:17px;
    height:17px;
    margin:0;
}
.access-preset-note{
    margin-top:10px;
    padding:9px 11px;
    border-radius:9px;
    background:#fff8e8;
    color:#7a5b00;
    font-size:10px;
    line-height:1.7;
}
.access-company-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-top:12px;
}
.access-check-card,
.access-special-grid>label{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:11px;
    border:1px solid #e1e6eb;
    border-radius:10px;
    background:#fbfcfd;
    cursor:pointer;
}
.access-check-card input,
.access-special-grid input{
    width:16px;
    height:16px;
    margin-top:2px;
}
.access-check-card strong,
.access-special-grid strong{
    display:block;
    color:#253241;
    font-size:10.5px;
}
.access-check-card small,
.access-special-grid small{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:8.5px;
    line-height:1.5;
}
.access-special-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.access-permission-sections{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.access-permission-group{
    margin:0;
}
.access-permission-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
}
.access-permission-item{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:2px 8px;
    align-items:center;
    min-height:44px;
    padding:8px 9px;
    border:1px solid #e5e9ed;
    border-radius:9px;
    background:#fff;
    cursor:pointer;
}
.access-permission-item input{
    grid-row:1/3;
    width:15px;
    height:15px;
    margin:0;
}
.access-permission-item span{
    color:#344054;
    font-size:9.5px;
    font-weight:700;
}
.access-permission-item small{
    color:#98a2b3;
    font-size:7.5px;
    direction:ltr;
    text-align:left;
}
.access-editor-footer{
    position:sticky;
    bottom:8px;
    z-index:20;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding:10px;
    border:1px solid #dfe5ea;
    border-radius:11px;
    background:rgba(255,255,255,.96);
    box-shadow:0 8px 24px rgba(16,24,40,.08);
    backdrop-filter:blur(8px);
}
.booking-fixed-status{
    min-height:40px;
    display:flex;
    align-items:center;
    padding:8px 10px;
    border:1px solid #efd9ad;
    border-radius:8px;
    background:#fff8e8;
    color:#946200;
    font-weight:800;
}
@media(max-width:1000px){
    .access-permission-sections{grid-template-columns:1fr;}
}
@media(max-width:700px){
    .access-company-grid,
    .access-special-grid,
    .access-permission-grid{grid-template-columns:1fr;}
}

/* V0.10.3 — owner-only employee account management ===================== */

.account-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:14px;
}

.account-summary-card{
    margin:0;
}

.account-summary-card span{
    display:block;
    color:var(--muted);
    font-size:10px;
}

.account-summary-card strong{
    display:block;
    margin-top:6px;
    font-size:22px;
    color:#344054;
}

.account-summary-card.linked strong{color:#175cd3}
.account-summary-card.active strong{color:#8b5a18}
.account-summary-card.pending strong{color:#9a6700}

.account-filter-grid{
    display:grid;
    grid-template-columns:minmax(280px,2fr) minmax(150px,1fr) minmax(170px,1fr) auto;
    gap:10px;
    align-items:end;
}

.account-filter-search{min-width:0}

.account-management-table{
    min-width:1180px;
}

.account-management-table th,
.account-management-table td{
    vertical-align:middle;
}

.account-username{
    font-weight:800;
    color:#344054;
}

.account-muted{color:#98a2b3}

.account-state-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:70px;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
}

.account-state-badge.active{
    background:#eaf7ef;
    color:#8b5a18;
}

.account-state-badge.inactive{
    background:#fff4e8;
    color:#9a6700;
}

.account-state-badge.none{
    background:#f2f4f7;
    color:#667085;
}

.account-row-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}

.account-row-actions .mini-btn.emphasis{
    background:#fff8ea;
    color:#8b5a18;
    border-color:#ead8b7;
}

.account-doctor-note{
    color:#98a2b3;
    font-size:9px;
}

.account-workflow-steps{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-bottom:14px;
}

.account-workflow-step{
    display:flex;
    align-items:center;
    gap:7px;
    color:#98a2b3;
    font-size:10px;
    font-weight:700;
}

.account-workflow-step b{
    display:flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:50%;
    background:#eef1f4;
    color:#667085;
    font-size:10px;
}

.account-workflow-step.done,
.account-workflow-step.active{
    color:#8b5a18;
}

.account-workflow-step.done b,
.account-workflow-step.active b{
    background:#fff2dc;
    color:#8b5a18;
}

.account-workflow-step.active b{
    box-shadow:0 0 0 4px rgba(23,107,70,.08);
}

.account-workflow-line{
    width:68px;
    height:1px;
    background:#dfe4e8;
}

.account-form-layout{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:14px;
    align-items:start;
}

.account-employee-card{
    text-align:center;
    position:sticky;
    top:66px;
}

.account-employee-card h2{
    margin:0;
    font-size:17px;
}

.account-employee-meta{
    margin-top:14px;
    border-top:1px solid #edf0f3;
    text-align:right;
}

.account-employee-meta>div{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:9px 0;
    border-bottom:1px solid #edf0f3;
}

.account-employee-meta span{
    color:#98a2b3;
    font-size:9px;
}

.account-employee-meta strong{
    max-width:60%;
    color:#344054;
    font-size:10px;
    text-align:left;
}

.account-create-panel{
    max-width:none;
}

.account-security-banner{
    display:flex;
    align-items:flex-start;
    gap:11px;
    margin-bottom:18px;
    padding:12px 13px;
    border:1px solid #eadcc4;
    border-radius:11px;
    background:#fffaf0;
}

.account-security-banner.neutral{
    border-color:#dfe5ea;
    background:#f8fafb;
}

.account-security-icon{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:10px;
    background:#fff;
    font-size:18px;
}

.account-security-banner strong{
    display:block;
    margin-bottom:3px;
    color:#253241;
    font-size:11px;
}

.account-security-banner p{
    margin:0;
    color:#667085;
    font-size:9.5px;
    line-height:1.7;
}

.account-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.password-field-wrap{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
}

.password-field-wrap input{
    min-width:0;
}

.password-field-wrap button{
    min-width:58px;
    border:1px solid #dfe4e8;
    border-radius:8px;
    background:#f8fafb;
    color:#475467;
    font:inherit;
    font-size:9px;
    cursor:pointer;
}

.password-field-wrap button:hover{
    background:#f8f0e2;
    color:#8b5a18;
}

.account-current-state{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:14px;
    padding:10px 12px;
    border:1px solid #e3e8ec;
    border-radius:9px;
    background:#fbfcfd;
    color:#667085;
    font-size:9.5px;
}

.account-current-state strong.active{color:#8b5a18}
.account-current-state strong.inactive{color:#9a6700}
.account-current-state a{
    margin-right:auto;
    color:#175cd3;
    text-decoration:none;
    font-weight:700;
}

.account-form-footer{
    margin-top:18px;
}

@media(max-width:1000px){
    .account-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .account-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .account-form-layout{grid-template-columns:1fr}
    .account-employee-card{position:static}
}

@media(max-width:650px){
    .account-summary-grid,
    .account-filter-grid,
    .account-form-grid{grid-template-columns:1fr}
    .account-workflow-line{width:28px}
    .account-workflow-step span{display:none}
}

/* V0.10.4 — contacts, social links and sidebar cleanup =================== */

/* Sidebar remains independently scrollable, but navigation arrows are no longer used. */
.sidebar-nav-shell{
    grid-template-rows:minmax(0,1fr)!important;
}
.sidebar-scroll-button{
    display:none!important;
}

/* Phone editor ---------------------------------------------------------- */
.phone-contact-field{
    margin-top:2px;
}

.contact-phone-row{
    display:grid;
    grid-template-columns:minmax(145px,.8fr) minmax(220px,1.7fr) minmax(150px,.8fr) auto;
    gap:8px;
    align-items:center;
    width:100%;
}

.primary-phone-row{
    grid-template-columns:minmax(145px,.8fr) minmax(220px,1.7fr) minmax(150px,.8fr);
}

.contact-phone-row select,
.contact-phone-row input{
    width:100%;
    min-width:0;
}

.contact-phone-number input{
    direction:ltr;
    text-align:left;
}

.contact-extra-block{
    margin-top:14px;
    padding:14px;
    border:1px solid #ebe2d6;
    border-radius:13px;
    background:#fbfcfc;
}

.contact-extra-head,
.social-links-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}

.contact-extra-head>div,
.social-links-head>div{
    display:grid;
    gap:3px;
}

.contact-extra-head strong,
.social-links-head strong{
    color:#23312c;
    font-size:12px;
}

.contact-extra-head span,
.social-links-head span{
    color:#7a8681;
    font-size:9px;
}

.contact-add-btn{
    flex:0 0 auto;
}

.contact-formset-list,
.social-formset-list{
    display:grid;
    gap:8px;
}

.contact-repeat-row,
.social-link-row{
    padding:9px;
    border:1px solid #e0e6e3;
    border-radius:10px;
    background:#fff;
}

.contact-remove-cell{
    display:flex;
    align-items:center;
    justify-content:center;
}

.contact-delete-input{
    display:none;
}

.contact-remove-btn{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ebc9c5;
    border-radius:50%;
    background:#fff8f7;
    color:#b42318;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}

.contact-remove-btn:hover{
    background:#fff0ee;
    border-color:#dea8a2;
}

/* Social links ---------------------------------------------------------- */
.social-links-editor{
    margin-top:15px;
    padding-top:14px;
    border-top:1px solid #e7ece9;
}

.social-platform-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:11px;
}

.social-platform-buttons button{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:39px;
    padding:7px 12px;
    border:1px solid #dce5e0;
    border-radius:999px;
    background:#f4faf7;
    color:#194f3a;
    font:inherit;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
    transition:.14s ease;
}

.social-platform-buttons button:hover{
    border-color:#9ec8b3;
    background:#edf8f2;
    transform:translateY(-1px);
}

.social-platform-buttons b{
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    background:#fff;
    color:#8b5a18;
    font-size:12px;
    box-shadow:0 1px 4px rgba(16,24,40,.06);
}

.social-link-row{
    display:grid;
    grid-template-columns:minmax(130px,.75fr) minmax(260px,1.8fr) minmax(150px,.9fr) auto;
    gap:8px;
    align-items:center;
}

.social-link-row input,
.social-link-row select{
    width:100%;
    min-width:0;
}

.social-url-input input{
    direction:ltr;
    text-align:left;
}

/* Detail pages ---------------------------------------------------------- */
.contact-detail-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:14px;
}

.contact-detail-card{
    padding:12px;
    border:1px solid #e3e9e6;
    border-radius:11px;
    background:#fbfcfc;
}

.contact-detail-title{
    margin-bottom:8px;
    color:#34463f;
    font-size:10px;
}

.contact-detail-list{
    display:grid;
    gap:6px;
}

.contact-detail-list>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:7px 8px;
    border-radius:8px;
    background:#fff;
}

.contact-detail-list span{
    color:#6f7c77;
    font-size:9px;
}

.contact-detail-list strong{
    color:#27332f;
    font-size:10px;
}

.contact-social-chips{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.contact-social-chips a{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 9px;
    border:1px solid #d9e7df;
    border-radius:999px;
    background:#f1f9f4;
    color:#8b5a18;
    text-decoration:none;
    font-size:9px;
    font-weight:800;
}

.contact-social-chips a:hover{
    background:#e8f6ee;
}

.booking-table-readonly{
    display:inline-flex;
    align-items:center;
    min-height:27px;
    padding:4px 7px;
    border-radius:7px;
    background:#f3f5f6;
    color:#78827f;
    font-size:8.5px;
    font-weight:700;
    white-space:nowrap;
}

@media(max-width:900px){
    .contact-phone-row,
    .primary-phone-row,
    .social-link-row{
        grid-template-columns:1fr 1.5fr;
    }

    .contact-phone-type,
    .social-label-input{
        grid-column:auto;
    }

    .contact-remove-cell{
        justify-content:flex-end;
    }
}

@media(max-width:620px){
    .contact-phone-row,
    .primary-phone-row,
    .social-link-row,
    .contact-detail-columns{
        grid-template-columns:1fr;
    }

    .contact-extra-head,
    .social-links-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .contact-add-btn{
        width:100%;
    }

    .contact-remove-cell{
        justify-content:flex-start;
    }

    .social-platform-buttons{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .social-platform-buttons button{
        justify-content:flex-start;
    }
}

/* V0.10.5 — granular access editor */
.access-editor-v2{display:grid;gap:16px}.access-module-list{display:grid;gap:16px}.access-module-card{overflow:hidden}.access-module-head{align-items:flex-start}.access-module-code{direction:ltr;font-size:9px;letter-spacing:.08em;color:#98a2b3;background:#f7f9fb;border:1px solid #e4e7ec;border-radius:999px;padding:5px 8px}.access-subsection{padding:16px 0;border-top:1px solid #edf0f2}.access-subsection:first-of-type{border-top:0;padding-top:4px}.access-subsection h3{margin:0 0 12px;font-size:12px;color:#344054}.access-scope-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.access-selected-users{margin-top:12px;padding:12px;border:1px dashed #d7dee4;border-radius:12px;background:#fbfcfd}.access-selected-users>strong{display:block;font-size:11px;margin-bottom:2px}.access-selected-users>small{display:block;color:#98a2b3;font-size:9px;margin-bottom:10px}.access-user-chip-grid{display:flex;flex-wrap:wrap;gap:7px}.access-user-chip-grid label{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #e0e5e9;border-radius:999px;background:#fff;font-size:10px;cursor:pointer}.access-user-chip-grid input{accent-color:#b47a22}.access-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.access-action-grid label{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #e1e6ea;border-radius:10px;background:#fff;font-size:10px;font-weight:700}.access-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-field-grid label{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #e1e6ea;border-radius:10px;background:#fff}.access-field-grid span{display:flex;flex-direction:column;gap:2px}.access-field-grid strong{font-size:10px}.access-field-grid small{font-size:8.5px;color:#98a2b3}.access-technical-group+ .access-technical-group{margin-top:18px;padding-top:16px;border-top:1px solid #edf0f2}.access-technical-group h3{font-size:12px;margin:0 0 10px}.masked-value{color:#98a2b3;font-style:italic}.access-readonly-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8.5px;font-weight:700}
@media(max-width:1100px){.access-scope-grid,.access-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.access-scope-grid,.access-field-grid,.access-action-grid{grid-template-columns:1fr}.access-module-code{display:none}}

/* V0.10.6 — Permissions editor V3 ======================================== */
.access-v3{display:grid;gap:16px;padding-bottom:86px}.access-v3 .panel{border-radius:16px}.access-v3-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px}.access-v3-person{display:flex;align-items:center;gap:13px}.access-v3-avatar{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--theme-page,#eff8f3);border:1px solid #d8e9df;color:var(--theme-dark,#8b5a18);font-size:20px;font-weight:900}.access-v3-eyebrow{font-size:9px;font-weight:800;color:#667085;margin-bottom:3px}.access-v3-person h2{margin:0;font-size:18px;color:#172033}.access-v3-person p{margin:3px 0 0;color:#667085;font-size:10px}.access-v3-statuses{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.access-v3-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:9px;font-weight:800;border:1px solid #e1e6ea;background:#f8fafb;color:#475467}.access-v3-pill.is-on{background:#edf8f2;border-color:#cce8d8;color:#14734b}.access-v3-pill.is-off{background:#fff1f0;border-color:#f2d0cc;color:#b42318}.access-v3-pill.is-custom{background:#f5f7ff;border-color:#dfe3f5;color:#46536c}
.access-v3-guide{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:12px;padding:13px 18px}.access-v3-guide-item{display:flex;align-items:center;gap:10px;min-width:0}.access-v3-guide-item>b{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#eef7f2;color:#14734b;font-size:12px}.access-v3-guide-item span{display:flex;flex-direction:column;gap:2px}.access-v3-guide-item strong{font-size:10px;color:#344054}.access-v3-guide-item small{font-size:8.5px;color:#98a2b3}.access-v3-guide-arrow{color:#c8d0d7;font-size:16px}
.access-v3-presets{padding:18px}.access-v3-preset-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.access-v3-preset-card{display:flex;flex-direction:column;justify-content:space-between;gap:11px;padding:12px;border:1px solid #e3e8ec;border-radius:12px;background:#fbfcfd}.access-v3-preset-card>div{display:flex;flex-direction:column;gap:4px}.access-v3-preset-card strong{font-size:10px;color:#344054}.access-v3-preset-card small{font-size:8.5px;line-height:1.55;color:#7b8794}.access-v3-preset-card .btn{align-self:flex-start}.access-v3-important-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fffaf0;border:1px solid #f1e0b9;color:#7a5b17;font-size:9.5px;line-height:1.7}
.access-v3-editor{display:grid;gap:16px}.access-v3-account-card{padding:18px}.access-v3-account-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px}.access-v3-master-switch,.access-v3-company-block{min-height:92px;padding:14px;border:1px solid #e1e6ea;border-radius:12px;background:#fbfcfd}.access-v3-master-switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.access-v3-master-switch input{margin-top:3px;accent-color:#b47a22}.access-v3-master-switch span,.access-v3-company-block{display:flex;flex-direction:column;gap:4px}.access-v3-master-switch strong,.access-v3-company-block>strong{font-size:10.5px;color:#344054}.access-v3-master-switch small,.access-v3-company-block>small{font-size:8.5px;color:#7b8794;line-height:1.55}.access-v3-company-grid{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.access-v3-company-grid label{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #dfe5e9;border-radius:999px;background:#fff;font-size:9.5px;font-weight:800;cursor:pointer}.access-v3-company-grid input{accent-color:#b47a22}.access-v3-general-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #edf0f2}.access-v3-general-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-v3-general-actions label{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #e1e6ea;border-radius:10px;background:#fff;cursor:pointer}.access-v3-general-actions span{display:flex;flex-direction:column;gap:2px}.access-v3-general-actions strong{font-size:9.5px}.access-v3-general-actions small{font-size:8px;color:#98a2b3;line-height:1.45}.access-v3-general-actions input{margin-top:2px;accent-color:#b47a22}
.access-v3-section-title{padding:7px 3px 0}.access-v3-section-title span{display:inline-block;font-size:8.5px;font-weight:900;letter-spacing:.04em;color:#b47a22}.access-v3-section-title h2{font-size:18px;margin:3px 0;color:#172033}.access-v3-section-title p{margin:0;color:#667085;font-size:9.5px}.access-v3-modules{display:grid;gap:12px}.access-v3-module{padding:0!important;overflow:hidden}.access-v3-module>summary{list-style:none}.access-v3-module>summary::-webkit-details-marker{display:none}.access-v3-module-summary{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.5fr) auto;align-items:center;gap:14px;padding:15px 18px;cursor:pointer;background:#fff}.access-v3-module[open]>.access-v3-module-summary{border-bottom:1px solid #edf0f2}.access-v3-module-title{display:flex;align-items:center;gap:10px;min-width:0}.access-v3-module-dot{width:9px;height:9px;border-radius:999px;flex:0 0 auto;background:#b47a22;box-shadow:0 0 0 4px rgba(31,122,82,.08)}.access-v3-module.is-disabled .access-v3-module-dot{background:#c7cdd4;box-shadow:none}.access-v3-module-title>div{display:flex;flex-direction:column;gap:2px;min-width:0}.access-v3-module-title strong{font-size:12px;color:#253241}.access-v3-module-title small{font-size:8.5px;color:#98a2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-v3-module-summary-scopes{display:flex;gap:6px;flex-wrap:wrap}.access-v3-module-summary-scopes span{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:999px;background:#f7f9fb;border:1px solid #e7eaee;color:#667085;font-size:8.5px}.access-v3-module-summary-scopes .is-denied{background:#fff1f0;border-color:#f2d0cc;color:#b42318}.access-v3-chevron{color:#98a2b3;font-size:16px;transition:transform .14s ease}.access-v3-module[open] .access-v3-chevron{transform:rotate(180deg)}.access-v3-module-body{padding:16px 18px 18px}.access-v3-module-master{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #eadcc6;border-radius:11px;background:#fff9ed;cursor:pointer}.access-v3-module-master input{margin-top:3px;accent-color:#b47a22}.access-v3-module-master span{display:flex;flex-direction:column;gap:2px}.access-v3-module-master strong{font-size:10.5px;color:#8b5a18}.access-v3-module-master small{font-size:8.5px;color:#7d6a50}.access-v3-module.is-disabled .access-v3-module-master{background:#f8f9fa;border-color:#e5e8eb}.access-v3-module.is-disabled .access-v3-module-master strong{color:#667085}.access-v3-module.is-disabled [data-module-content]{opacity:.45}.access-v3-subsection{padding-top:16px;margin-top:16px;border-top:1px solid #edf0f2}.access-v3-subhead{display:flex;align-items:flex-start;gap:9px;margin-bottom:11px}.access-v3-subhead>b{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#fff5e3;color:#b47a22;font-size:10px;flex:0 0 auto}.access-v3-subhead h3{font-size:11.5px;margin:0;color:#344054}.access-v3-subhead p{font-size:8.5px;margin:2px 0 0;color:#98a2b3}.access-v3-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.access-v3-scope-card{display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid #e1e6ea;border-radius:12px;background:#fbfcfd}.access-v3-scope-type{font-size:8px;font-weight:900;color:#b47a22}.access-v3-scope-card strong{font-size:9.5px;color:#344054}.access-v3-scope-card select{width:100%;min-height:39px;background:#fff}.access-v3-scope-card small{font-size:8px;color:#98a2b3;line-height:1.45}.access-v3-selected-users{margin-top:10px;padding:12px;border:1px dashed #cdd8e0;border-radius:12px;background:#fbfcfd}.access-v3-selected-users[hidden]{display:none!important}.access-v3-selected-users>div:first-child{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.access-v3-selected-users strong{font-size:9.5px}.access-v3-selected-users small{font-size:8px;color:#98a2b3}.access-v3-user-grid{display:flex;gap:7px;flex-wrap:wrap}.access-v3-user-grid label{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #dfe5e9;border-radius:999px;background:#fff;font-size:9px;font-weight:700;cursor:pointer}.access-v3-user-grid input{accent-color:#b47a22}
.access-v3-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-v3-check-card{display:flex;align-items:flex-start;gap:9px;min-height:67px;padding:11px;border:1px solid #e1e6ea;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.access-v3-check-card:hover{border-color:#dfd2c0;background:#fbfdfc}.access-v3-check-card:has(input:checked){border-color:#e5c998;background:#fff9ed;box-shadow:0 1px 5px rgba(31,122,82,.04)}.access-v3-check-card input{margin-top:3px;accent-color:#b47a22}.access-v3-check-card span{display:flex;flex-direction:column;gap:3px}.access-v3-check-card strong{font-size:9.5px;color:#344054}.access-v3-check-card small{font-size:8px;color:#98a2b3;line-height:1.5}.access-v3-fields .access-v3-check-card:has(input:not(:checked)){background:#fafafa}.access-v3-sensitive{padding:0!important;overflow:hidden}.access-v3-sensitive>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer}.access-v3-sensitive>summary::-webkit-details-marker{display:none}.access-v3-sensitive>summary div{display:flex;flex-direction:column;gap:2px}.access-v3-sensitive>summary strong{font-size:11px;color:#7a2e2e}.access-v3-sensitive>summary small{font-size:8.5px;color:#98a2b3}.access-v3-sensitive-body{padding:0 18px 18px;border-top:1px solid #edf0f2}.access-v3-sensitive-body section{padding-top:14px}.access-v3-sensitive-body h3{font-size:10.5px}.access-v3-technical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.access-v3-technical-grid label{display:flex;align-items:flex-start;gap:8px;padding:9px;border:1px solid #e3e7ea;border-radius:9px;background:#fff}.access-v3-technical-grid span{display:flex;flex-direction:column;gap:2px}.access-v3-technical-grid strong{font-size:8.8px}.access-v3-technical-grid small{font-size:7.5px;color:#98a2b3;direction:ltr}.access-v3-technical-grid input{accent-color:#b47a22}.access-v3-savebar{position:sticky;bottom:10px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #e7dccd;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 10px 35px rgba(16,24,40,.13);backdrop-filter:blur(10px)}.access-v3-savebar>div:first-child{display:flex;flex-direction:column;gap:2px}.access-v3-savebar strong{font-size:10.5px}.access-v3-savebar small{font-size:8.5px;color:#7b8794}.access-v3-save-actions{display:flex;align-items:center;gap:8px}
@media(max-width:1200px){.access-v3-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.access-v3-checkbox-grid,.access-v3-technical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-v3-module-summary{grid-template-columns:1fr}.access-v3-chevron{position:absolute;left:18px}.access-v3-module-summary{position:relative}}
@media(max-width:850px){.access-v3-guide{grid-template-columns:1fr;gap:7px}.access-v3-guide-arrow{display:none}.access-v3-account-grid,.access-v3-general-row{grid-template-columns:1fr}.access-v3-general-actions,.access-v3-scope-grid{grid-template-columns:1fr}.access-v3-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-v3-module-summary-scopes{padding-left:24px}}
@media(max-width:600px){.access-v3-hero{align-items:flex-start;flex-direction:column}.access-v3-preset-grid,.access-v3-checkbox-grid,.access-v3-technical-grid{grid-template-columns:1fr}.access-v3-savebar{bottom:5px;align-items:stretch;flex-direction:column}.access-v3-save-actions{width:100%}.access-v3-save-actions .btn{flex:1}.access-v3-module-body,.access-v3-module-summary{padding-left:12px;padding-right:12px}.access-v3-person h2{font-size:15px}}

/* V0.10.7 — Accounting polish, lively chat & periodic reports ============ */

/* Accounting: compact navigation + proper KPI grid */
.accounting-tabs-v2{
    width:max-content;
    max-width:100%;
    margin:0 auto 18px;
    padding:6px;
    gap:6px;
    border:1px solid #e4e9ed;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(16,24,40,.035);
    scrollbar-width:thin;
}
.accounting-tabs-v2 a{
    min-height:42px;
    padding:9px 16px;
    border-color:transparent;
    border-radius:9px;
    background:transparent;
    font-size:10.5px;
    color:#596579;
}
.accounting-tabs-v2 a:hover{
    background:#f7f9fa;
    color:#253241;
}
.accounting-tabs-v2 a.active{
    border-color:#dfc48f;
    background:#fff7e8;
    color:#8b5a18;
    box-shadow:0 2px 7px rgba(31,122,82,.07);
}
.accounting-summary-cards.accounting-summary-v2{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.accounting-summary-v2 .summary-card{
    margin:0;
    min-height:104px;
    padding:16px 18px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    border-radius:14px;
    position:relative;
    overflow:hidden;
}
.accounting-summary-v2 .summary-card::before{
    content:"";
    position:absolute;
    top:15px;
    left:15px;
    width:9px;
    height:9px;
    border-radius:999px;
    background:#98a2b3;
    box-shadow:0 0 0 5px rgba(152,162,179,.10);
}
.accounting-summary-v2 .summary-card.income::before{background:#1f8a5b;box-shadow:0 0 0 5px rgba(31,138,91,.10)}
.accounting-summary-v2 .summary-card.expense::before{background:#c0392b;box-shadow:0 0 0 5px rgba(192,57,43,.10)}
.accounting-summary-v2 .summary-card.net::before{background:#2f6fed;box-shadow:0 0 0 5px rgba(47,111,237,.10)}
.accounting-summary-v2 .summary-card.outstanding::before{background:#d98b16;box-shadow:0 0 0 5px rgba(217,139,22,.10)}
.accounting-summary-v2 .summary-card.transfer::before{background:#7a5af8;box-shadow:0 0 0 5px rgba(122,90,248,.10)}
.accounting-summary-v2 .summary-card.balance::before{background:#175cd3;box-shadow:0 0 0 5px rgba(23,92,211,.10)}
.accounting-summary-v2 .summary-card span{
    color:#667085;
    font-size:10px;
    font-weight:800;
}
.accounting-summary-v2 .summary-card strong{
    direction:ltr;
    unicode-bidi:isolate;
    margin-top:8px;
    font-size:22px;
    line-height:1.1;
    letter-spacing:.1px;
}
.accounting-overview-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
    margin-bottom:14px;
}
.accounting-overview-grid>.panel{margin:0}

/* Chat V2 */
.chat-toolbar-v2{
    border-radius:14px;
    box-shadow:0 4px 14px rgba(16,24,40,.035);
}
.chat-layout-v2{
    min-height:650px;
}
.chat-list-head>div strong{display:block}
.chat-list-head>div small{display:block;margin-top:3px;color:#98a2b3;font-size:8px}
.chat-conversation-card-shell{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) 34px;
    gap:3px;
    align-items:center;
    margin-bottom:5px;
    border:1px solid transparent;
    border-radius:12px;
    background:#fff;
    transition:.14s ease;
}
.chat-conversation-card-shell:hover{background:#f8fafb}
.chat-conversation-card-shell.active{border-color:#c8dfd1;background:#f1f9f4}
.chat-conversation-card-shell.pinned{box-shadow:inset -3px 0 #d8b04c}
.chat-conversation-card-shell .chat-conversation-card{
    padding:9px 8px;
    border:0;
    border-radius:11px;
    background:transparent!important;
}
.chat-avatar.group{
    background:#f0ebff;
    color:#6941c6;
    font-size:17px;
}
.chat-card-name-line{display:flex;align-items:center;gap:5px;min-width:0}
.chat-card-name-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-pinned-mark{font-style:normal;font-size:9px}
.chat-card-copy em{
    display:block;
    margin-top:4px;
    color:#98a2b3;
    font-style:normal;
    font-size:7.5px;
}
.chat-pin-form{display:flex;align-items:center;justify-content:center;margin:0}
.chat-pin-form button{
    width:29px;height:29px;padding:0;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:13px;opacity:.55
}
.chat-pin-form button:hover{background:#eef3f1;opacity:1}
.chat-room-head-v2{padding:11px 13px}
.chat-room-identity{display:flex;align-items:center;gap:9px}
.chat-room-avatar{
    width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#eaf3ee;color:#8b5a18;font-weight:900;font-size:14px
}
.chat-room-head-actions{display:flex;align-items:center;gap:6px}
.chat-room-head-actions form{margin:0}
.chat-messages-v2{
    background:
        radial-gradient(circle at 15% 25%,rgba(31,122,82,.035),transparent 28%),
        radial-gradient(circle at 85% 75%,rgba(105,65,198,.03),transparent 26%),
        #f7f9fb;
}
.chat-message-row{align-items:flex-end;gap:6px}
.chat-message-avatar{
    flex:0 0 27px;width:27px;height:27px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#fff;border:1px solid #e3e8ec;color:#667085;font-size:8px;font-weight:900
}
.chat-message-row.mine .chat-message-avatar{background:#eaf6ef;color:#8b5a18;border-color:#d3e5da}
.chat-message-bubble{border-radius:14px;box-shadow:0 2px 8px rgba(16,24,40,.03)}
.chat-message-row.mine .chat-message-bubble{background:#eaf7ef}
.chat-room-empty{margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#98a2b3;gap:5px}
.chat-room-empty>span{font-size:34px}.chat-room-empty strong{font-size:11px;color:#667085}.chat-room-empty small{font-size:8.5px}
.chat-compose-shell{position:relative;border-top:1px solid #edf0f3;background:#fff}
.chat-compose-shell .chat-compose{border-top:0}
.chat-compose{grid-template-columns:38px minmax(0,1fr) auto;align-items:end}
.chat-emoji-toggle{
    width:38px;height:38px;border:1px solid #e0e5e9;border-radius:10px;background:#fff;cursor:pointer;font-size:18px
}
.chat-emoji-toggle:hover{background:#fffaf1;border-color:#cfe0d5}
.chat-emoji-panel{
    position:absolute;
    right:10px;
    bottom:68px;
    z-index:30;
    width:290px;
    padding:9px;
    border:1px solid #dfe5e9;
    border-radius:13px;
    background:#fff;
    box-shadow:0 16px 38px rgba(16,24,40,.16);
}
.chat-emoji-panel[hidden]{display:none!important}
.chat-emoji-panel-head{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 8px}
.chat-emoji-panel-head strong{font-size:9px;color:#475467}
.chat-emoji-panel-head button{border:0;background:transparent;color:#98a2b3;font-size:18px;cursor:pointer}
.chat-emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.chat-emoji-grid button{height:36px;border:0;border-radius:8px;background:#f8fafb;cursor:pointer;font-size:18px}
.chat-emoji-grid button:hover{background:#eef6f1;transform:scale(1.06)}
.chat-welcome-emoji{margin-top:14px;font-size:18px;letter-spacing:4px}

/* Periodic reports */
.periodic-report-filter{margin-bottom:14px;padding:13px 14px}
.periodic-filter-form{
    display:grid;
    grid-template-columns:180px repeat(2,minmax(150px,1fr)) auto;
    gap:9px;
    align-items:end;
}
.periodic-control[hidden]{display:none!important}
.periodic-filter-actions{display:flex;align-items:center;gap:7px;padding-bottom:1px}
.periodic-filter-caption{
    margin-top:10px;
    padding-top:9px;
    border-top:1px solid #edf0f3;
    display:flex;
    align-items:center;
    gap:8px;
    color:#667085;
    font-size:9px;
}
.periodic-filter-caption strong{color:#253241;font-size:10px}
.periodic-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}
.periodic-kpi{margin:0;min-height:96px;padding:14px 15px;position:relative;overflow:hidden}
.periodic-kpi::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#98a2b3}
.periodic-kpi span{display:block;color:#667085;font-size:9.5px;font-weight:800}
.periodic-kpi strong{display:block;margin-top:7px;font-size:24px;color:#253241}
.periodic-kpi small{display:block;margin-top:4px;color:#98a2b3;font-size:7.8px}
.periodic-kpi.patients::before{background:#b47a22}.periodic-kpi.consultations::before{background:#175cd3}.periodic-kpi.exams::before{background:#0e9384}.periodic-kpi.bookings::before{background:#d98b16}.periodic-kpi.treatments::before{background:#6941c6}.periodic-kpi.sessions::before{background:#7f56d9}.periodic-kpi.packages::before{background:#c11574}.periodic-kpi.updates::before{background:#475467}
.periodic-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 2px 10px}
.periodic-section-head.compact{margin-top:18px}
.periodic-section-head h2{margin:0;color:#172033;font-size:15px}
.periodic-section-head p{margin:4px 0 0;color:#667085;font-size:9px}
.periodic-team-meta{display:flex;gap:7px;flex-wrap:wrap}
.periodic-team-meta span{padding:7px 9px;border:1px solid #e3e8ec;border-radius:9px;background:#fff;color:#667085;font-size:8.5px}.periodic-team-meta b{color:#253241}
.periodic-employee-table-panel{margin:0;padding:0}
.periodic-employee-table{min-width:1180px}
.periodic-employee-link{display:flex;align-items:center;gap:8px;color:#253241;text-decoration:none}
.periodic-employee-link:hover strong{color:#8b5a18}
.periodic-employee-link>span:last-child{display:flex;flex-direction:column;gap:2px}
.periodic-employee-link small{color:#98a2b3;font-size:7.5px}
.periodic-employee-avatar{width:33px;height:33px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#eaf4ee;color:#8b5a18;font-weight:900;flex:0 0 33px}
.periodic-employee-avatar.large{width:52px;height:52px;flex-basis:52px;border-radius:14px;font-size:17px}
.periodic-total-badge{display:inline-flex;min-width:31px;height:26px;padding:0 8px;align-items:center;justify-content:center;border-radius:999px;background:#eef6f1;color:#8b5a18;font-weight:900}
.periodic-activity-panel{margin:0;padding:0;overflow:hidden}
.periodic-activity-list{display:flex;flex-direction:column}
.periodic-activity-row{
    display:grid;
    grid-template-columns:12px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:11px 14px;
    border-bottom:1px solid #edf0f3;
}
.periodic-activity-row:last-child{border-bottom:0}
.periodic-action-dot{width:9px;height:9px;border-radius:999px;background:#98a2b3}.periodic-action-dot.create{background:#1f8a5b}.periodic-action-dot.update{background:#175cd3}.periodic-action-dot.delete{background:#b42318}.periodic-action-dot.export{background:#7a5af8}.periodic-action-dot.login{background:#d98b16}
.periodic-activity-copy{min-width:0}.periodic-activity-copy>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.periodic-activity-copy strong{font-size:9.5px}.periodic-activity-copy p{margin:4px 0 0;color:#667085;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.periodic-module-chip,.periodic-action-chip{display:inline-flex;align-items:center;min-height:21px;padding:2px 7px;border-radius:999px;font-size:7.5px;font-style:normal}.periodic-module-chip{background:#f2f4f7;color:#475467}.periodic-action-chip{background:#f2f4f7;color:#475467}.periodic-action-chip.create{background:#eaf7ef;color:#8b5a18}.periodic-action-chip.update{background:#eef4ff;color:#175cd3}.periodic-action-chip.delete{background:#fff0ee;color:#b42318}.periodic-action-chip.export{background:#f4f0ff;color:#6941c6}.periodic-action-chip.login{background:#fff7e8;color:#9a6700}
.periodic-activity-row time{color:#98a2b3;font-size:8px;white-space:nowrap}
.periodic-employee-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;margin-bottom:12px}.periodic-employee-hero h2{margin:2px 0;font-size:16px}.periodic-employee-hero p,.periodic-employee-hero span{margin:0;color:#667085;font-size:8.5px}.periodic-employee-hero-actions{display:flex;gap:7px}
.periodic-report-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:12px;margin-bottom:14px}.periodic-report-columns>.panel{margin:0}
.periodic-breakdown-list{display:flex;flex-direction:column}.periodic-breakdown-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto 45px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0f3}.periodic-breakdown-list>div:last-child{border-bottom:0}.periodic-breakdown-list>div>span:first-child{font-size:9px;color:#475467}.periodic-breakdown-list strong{text-align:left}
.periodic-employee-summary-card dl{margin:0;display:flex;flex-direction:column}.periodic-employee-summary-card dl>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f3}.periodic-employee-summary-card dl>div:last-child{border-bottom:0}.periodic-employee-summary-card dt{color:#667085;font-size:8.5px}.periodic-employee-summary-card dd{margin:0;color:#253241;font-size:9px;font-weight:800}
.periodic-pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-top:1px solid #edf0f3}.periodic-pagination span{color:#667085;font-size:8.5px}

@media(max-width:1150px){
    .accounting-summary-cards.accounting-summary-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
    .periodic-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .periodic-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
    .periodic-filter-actions{grid-column:1/-1}
    .periodic-report-columns{grid-template-columns:1fr}
}
@media(max-width:760px){
    .accounting-tabs-v2{width:100%;justify-content:flex-start;border-radius:12px}
    .accounting-summary-cards.accounting-summary-v2,.accounting-overview-grid{grid-template-columns:1fr!important}
    .chat-room-head-v2{align-items:flex-start}.chat-room-head-actions{flex-wrap:wrap;justify-content:flex-end}.chat-emoji-panel{right:8px;left:8px;width:auto}.chat-emoji-grid{grid-template-columns:repeat(6,1fr)}
    .periodic-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.periodic-filter-form{grid-template-columns:1fr}.periodic-filter-actions{grid-column:auto}.periodic-section-head{align-items:flex-start;flex-direction:column}.periodic-employee-hero{grid-template-columns:auto 1fr}.periodic-employee-hero-actions{grid-column:1/-1}.periodic-activity-row{grid-template-columns:10px minmax(0,1fr)}.periodic-activity-row time{grid-column:2}.periodic-report-columns{grid-template-columns:1fr}
}
@media(max-width:480px){.periodic-kpi-grid{grid-template-columns:1fr}.chat-compose{grid-template-columns:34px minmax(0,1fr) auto}.chat-emoji-toggle{width:34px}}
.accounting-summary-v2 .summary-card.income strong{color:#8b5a18}
.accounting-summary-v2 .summary-card.expense strong{color:#b42318}
.accounting-summary-v2 .summary-card.net strong{color:#175cd3}
.accounting-summary-v2 .summary-card.outstanding strong{color:#9a6700}
.accounting-summary-v2 .summary-card.transfer strong{color:#6941c6}
.accounting-summary-v2 .summary-card.balance strong{color:#175cd3}
\n\n/* Shams Care Hub V1.0 — warm black + gold identity ===================== */\n:root{\n  --bg:#f7f4ef; --panel:#ffffff; --text:#1e2230; --muted:#7c8190;\n  --border:#ebe4da; --accent:#b47a22; --accent-dark:#7b4d12; --sidebar:#1d1710;\n  --shams-gold:#d6a44a; --shams-gold-soft:#fff4dd; --shams-ink:#1d1710;\n}\nbody{background:radial-gradient(circle at 22% 0%,rgba(214,164,74,.06),transparent 28rem),var(--bg)}\n.sidebar{background:radial-gradient(circle at 30% 8%,rgba(214,164,74,.12),transparent 18rem),linear-gradient(180deg,#17120d 0%,#21180f 54%,#18130e 100%);border-left:1px solid rgba(214,164,74,.18);box-shadow:-10px 0 30px rgba(41,28,12,.08)}\n.brand{gap:13px;padding:3px 2px 13px;border-bottom:1px solid rgba(214,164,74,.16)}\n.brand-copy strong{display:block;color:#fffaf0;font-size:15px;letter-spacing:.1px}.brand-copy small,.brand small{color:#cbb995}\n.brand-mark.shams-brand-mark{width:46px;height:46px;padding:6px;overflow:hidden;border:1px solid rgba(214,164,74,.42);background:linear-gradient(145deg,#fff0c7,#d59d3b);box-shadow:0 7px 18px rgba(179,117,29,.18)}\n.shams-brand-mark img{display:block;width:100%;height:100%}\n.sidebar-nav-link{transition:background .14s ease,color .14s ease,transform .14s ease}\n.sidebar nav a:hover,.sidebar-nav-link:hover{background:rgba(214,164,74,.10)!important;color:#fff7e8!important}\n.sidebar-nav-link:hover .sidebar-nav-icon,.sidebar-nav-link:hover .sidebar-nav-icon svg{color:#f3c56d!important;stroke:#f3c56d!important}\n.sidebar-nav-link.active,.sidebar-nav-link[aria-current="page"]{background:linear-gradient(135deg,rgba(193,131,37,.82),rgba(124,77,18,.88))!important;color:#fff!important;border-color:rgba(238,196,112,.42)!important;box-shadow:inset 0 1px rgba(255,255,255,.11),0 8px 18px rgba(63,39,10,.16)}\n.sidebar-nav-icon{color:#e2b45d}.sidebar-nav-icon svg{stroke:currentColor}.sidebar-section-title{color:#99896f!important}\n.sidebar-profile-link{border:1px solid rgba(214,164,74,.14)!important;background:rgba(255,255,255,.025)!important}.sidebar-profile-avatar{background:linear-gradient(145deg,#fff3d2,#d39a34)!important;color:#2b1b09!important}.link-button{color:#ead7b0}.link-button:hover{color:#fff3cf}\n.companies span{background:#fff2d9;color:#7b4d12;border:1px solid #f2dfba}.notification-center-button{border-color:#eadcc7!important}.notification-center-button:hover{border-color:#d9b36c!important;background:#fffaf1!important}.notification-bell{color:#b47a22!important}\n.btn.primary,.primary.btn,button.primary,input[type="submit"].primary{border-color:#a86f1d!important;background:linear-gradient(135deg,#c28a31,#8e5b16)!important;color:#fff!important;box-shadow:0 6px 16px rgba(149,94,20,.12)}\n.btn.primary:hover,.primary.btn:hover{background:linear-gradient(135deg,#ad7524,#75460f)!important}\ninput:focus,select:focus,textarea:focus{border-color:#d5ad63!important;box-shadow:0 0 0 3px rgba(180,122,34,.10)!important}\na{color:#996316}.patient-link{color:#7a4b12}.step-number{background:#fff1d5!important;color:#8b5a18!important}.finance-summary{background:#fffaf1!important;border-color:#e2c58f!important}.finance-summary strong{color:#8b5a18!important}\n.tabs .active,.booking-tab.active{background:#fff1d6!important;color:#7b4d12!important;border-color:#e4c489!important}.status-confirmed,.status-completed,.deposit-paid,.quick-status.status-confirmed,.quick-status.status-completed{background:#fff0cf!important;color:#855412!important}.company-pill{background:#fff3db!important;color:#7b4d12!important}.edit-notice{background:#fff7e8!important;border-color:#ead5ae!important;color:#7b4d12!important}\n.stat-card,.panel{border-color:#ece5db;box-shadow:0 4px 18px rgba(53,38,20,.045)}.stat-card:hover{border-color:#e4d2b4}.topbar h1{color:#202331}.topbar p{color:#828797}\n.login-page{position:relative;overflow:hidden;background:radial-gradient(circle at 78% 20%,rgba(213,164,74,.20),transparent 26rem),radial-gradient(circle at 15% 80%,rgba(120,77,18,.10),transparent 24rem),linear-gradient(135deg,#f7f3ed,#efe7dc)}\n.login-page::before{content:"";position:fixed;inset:0 auto 0 0;width:min(38vw,520px);background:radial-gradient(circle at 35% 20%,rgba(214,164,74,.17),transparent 18rem),linear-gradient(180deg,#17120d,#251a10);z-index:0}\n.login-card{position:relative;z-index:1;width:min(450px,92vw);border:1px solid #e9dfd2;border-radius:22px;padding:34px;box-shadow:0 28px 70px rgba(57,38,16,.16)}.login-card .brand{border:0;padding:0 0 18px}.login-card .brand-copy strong{color:#231b13;font-size:18px}.login-card .brand-copy small{color:#8d8174}.login-card .shams-brand-mark{width:52px;height:52px}.login-card h2{color:#231f1b;font-size:24px}\nbody.sidebar-collapsed .brand{padding-bottom:12px}body.sidebar-collapsed .brand-mark.shams-brand-mark{width:42px!important;height:42px!important;padding:5px!important}.sidebar-nav-v3::-webkit-scrollbar-thumb{background:rgba(214,164,74,.24)!important}.sidebar-nav-v3::-webkit-scrollbar-thumb:hover{background:rgba(214,164,74,.38)!important}\n@media(max-width:680px){.login-page::before{display:none}}\n

/* Shams Care Hub V1.0.1 — identity polish ================================= */
:root{
  --sidebar:#272018;
  --shams-sidebar-top:#2a2219;
  --shams-sidebar-mid:#211a13;
  --shams-sidebar-bottom:#18130f;
  --shams-gold:#d8a64b;
  --shams-gold-bright:#efc56f;
  --shams-gold-deep:#8b5817;
}

/* Slightly warmer/lighter sidebar so gold has more contrast without becoming black. */
.sidebar{
  background:
    radial-gradient(circle at 24% 7%,rgba(224,176,84,.15),transparent 18rem),
    linear-gradient(180deg,var(--shams-sidebar-top) 0%,var(--shams-sidebar-mid) 54%,var(--shams-sidebar-bottom) 100%)!important;
}
.sidebar-nav-icon,
.sidebar-nav-icon svg{
  color:var(--shams-gold-bright)!important;
  stroke:currentColor!important;
}
.sidebar-nav-link.is-current,
.sidebar-nav-link.active,
.sidebar-nav-link[aria-current="page"]{
  background:linear-gradient(135deg,#bb8128 0%,#855216 100%)!important;
  color:#fffdf8!important;
  border-color:rgba(244,205,127,.45)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.12),0 8px 18px rgba(50,31,9,.20)!important;
}
.sidebar-nav-link.is-current .sidebar-nav-icon,
.sidebar-nav-link.is-current .sidebar-nav-icon svg,
.sidebar-nav-link.active .sidebar-nav-icon,
.sidebar-nav-link.active .sidebar-nav-icon svg,
.sidebar-nav-link[aria-current="page"] .sidebar-nav-icon,
.sidebar-nav-link[aria-current="page"] .sidebar-nav-icon svg{
  color:#fff2ce!important;
  stroke:currentColor!important;
}
.sidebar-section-title{color:#b49b72!important}

/* Login experience */
.login-page{
  display:block!important;
  min-height:100vh;
  background:#f7f3ec!important;
  overflow:auto!important;
}
.login-page::before,
.login-page::after{display:none!important}
.login-shell-v2{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(360px,42%) minmax(420px,58%);
  direction:ltr;
}
.login-brand-panel{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:56px;
  color:#fffaf0;
  background:
    radial-gradient(circle at 18% 18%,rgba(239,197,111,.20),transparent 20rem),
    radial-gradient(circle at 78% 75%,rgba(190,129,37,.13),transparent 22rem),
    linear-gradient(145deg,#2d241a 0%,#211912 48%,#17120e 100%);
}
.login-brand-panel::after{
  content:"";
  position:absolute;
  width:360px;height:360px;
  border:1px solid rgba(239,197,111,.13);
  border-radius:50%;
  left:-115px;bottom:-120px;
  box-shadow:0 0 0 56px rgba(239,197,111,.025),0 0 0 112px rgba(239,197,111,.018);
}
.login-brand-panel-inner{position:relative;z-index:1;max-width:440px;direction:rtl;text-align:right}
.login-brand-emblem{
  width:94px;height:94px;
  display:grid;place-items:center;
  padding:15px;
  margin-bottom:30px;
  border-radius:26px;
  background:linear-gradient(145deg,#fff2ca,#d59a35);
  border:1px solid rgba(255,238,193,.70);
  box-shadow:0 18px 46px rgba(106,65,11,.25);
}
.login-brand-emblem img{width:100%;height:100%;display:block}
.login-brand-kicker{display:block;color:#e8bd69;font:800 12px/1.2 Arial,sans-serif;letter-spacing:2.2px;margin-bottom:14px;direction:ltr;text-align:left}
.login-brand-panel h1{margin:0 0 14px;font-size:34px;line-height:1.35;color:#fffdf9}
.login-brand-panel p{margin:0;color:#cdbfae;font-size:15px;line-height:1.9;max-width:390px}

.login-card.login-card-v2{
  align-self:center;
  justify-self:center;
  width:min(470px,calc(100% - 48px));
  margin:42px auto;
  direction:rtl;
  padding:42px;
  border:1px solid #e9dfd2;
  border-radius:26px;
  background:rgba(255,255,255,.96);
  box-shadow:0 30px 80px rgba(68,45,18,.12);
}
.login-mobile-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}
.login-mobile-brand .shams-brand-mark{width:72px!important;height:72px!important;padding:10px!important;border-radius:20px!important}
.login-mobile-brand .brand-copy strong{color:#241b12!important;font-size:21px!important;line-height:1.25}
.login-mobile-brand .brand-copy small{display:block;margin-top:5px;color:#a27636!important;font:700 10px/1.2 Arial,sans-serif;letter-spacing:.5px;direction:ltr;text-align:right}
.login-heading{margin-bottom:24px}
.login-eyebrow{display:inline-flex;padding:5px 10px;border-radius:999px;background:#fff2d9;color:#8c5a18;font-size:11px;font-weight:800;margin-bottom:11px}
.login-card-v2 .login-heading h2{margin:0;color:#211d18;font-size:28px;line-height:1.25}
.login-card-v2 .login-heading p{margin:9px 0 0;color:#8a8177;font-size:13px;line-height:1.7}
.login-card-v2 form p{margin:0 0 17px}
.login-card-v2 form label{margin-bottom:7px;color:#4c443b;font-size:12px}
.login-card-v2 input{min-height:46px;border-radius:12px;background:#fffdf9;border-color:#ded5c9;padding:11px 13px}
.login-card-v2 input:focus{border-color:#d4a555!important;box-shadow:0 0 0 4px rgba(180,122,34,.10)!important}
.login-submit{width:100%;min-height:48px;margin-top:5px;border-radius:12px!important;font-weight:900;font-size:14px}
.login-card-v2 ul.errorlist{margin:0 0 12px;padding:10px 14px;list-style:none;border:1px solid #f2d0c8;border-radius:10px;background:#fff5f2;color:#b42318;font-size:11px}

@media(max-width:900px){
  .login-shell-v2{grid-template-columns:1fr;min-height:100vh}
  .login-brand-panel{display:none}
  .login-card.login-card-v2{width:min(500px,calc(100% - 32px));margin:auto;padding:34px}
}
@media(max-width:520px){
  .login-card.login-card-v2{width:calc(100% - 24px);padding:26px 22px;border-radius:20px}
  .login-mobile-brand .shams-brand-mark{width:62px!important;height:62px!important}
  .login-mobile-brand .brand-copy strong{font-size:18px!important}
  .login-card-v2 .login-heading h2{font-size:24px}
}

/* Shams Care Hub V1.0.2 — sidebar visibility hotfix ======================== */
html body .app-shell > .sidebar{
  background-color:#211a13!important;
  background-image:
    radial-gradient(circle at 24% 7%,rgba(224,176,84,.15),transparent 18rem),
    linear-gradient(180deg,#2a2219 0%,#211a13 54%,#18130f 100%)!important;
  color:#f8f1e7!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
}
html body .app-shell > .sidebar .brand-copy strong,
html body .app-shell > .sidebar .sidebar-profile-copy strong{
  color:#fffaf0!important;
}
html body .app-shell > .sidebar .brand-copy small,
html body .app-shell > .sidebar .sidebar-profile-copy small{
  color:#cbb995!important;
}
html body .app-shell > .sidebar .sidebar-nav-link{
  color:#f3eee5!important;
}
html body .app-shell > .sidebar .sidebar-nav-link .sidebar-nav-label{
  color:inherit!important;
}
html body .app-shell > .sidebar .sidebar-nav-icon,
html body .app-shell > .sidebar .sidebar-nav-icon svg{
  color:#efc56f!important;
  stroke:#efc56f!important;
}
html body .app-shell > .sidebar .sidebar-section-title{
  color:#b49b72!important;
}
html body .app-shell > .sidebar .sidebar-profile-link{
  background:rgba(255,255,255,.035)!important;
  border-color:rgba(214,164,74,.16)!important;
}
html body .app-shell > .sidebar .sidebar-nav-link.is-current,
html body .app-shell > .sidebar .sidebar-nav-link.active,
html body .app-shell > .sidebar .sidebar-nav-link[aria-current="page"]{
  background:linear-gradient(135deg,#bb8128 0%,#855216 100%)!important;
  color:#fffdf8!important;
}
html body .app-shell > .sidebar .link-button{
  color:#e8c47e!important;
}
body.sidebar-collapsed .app-shell > .sidebar{
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
}
.sidebar-visibility-toggle{
  background:#211a13!important;
  border-color:rgba(239,197,111,.25)!important;
}
.sidebar-visibility-toggle:hover{background:#332719!important}
