
:root{
  --bg:#e8dfbd;--bg2:#f5efd8;--app:#fffefb;--card:#ffffff;--line:#eeeae0;
  --ink:#202020;--muted:#9a9386;--gold:#bb8d22;--gold-dark:#996e12;
  --green:#18a56f;--green-soft:#dcf8ec;--red:#d86a67;--red-soft:#ffe1df;
  --shadow-soft:0 12px 30px rgba(44,38,25,.055);--r-page:32px;--r-card:24px
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;padding:44px;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.55),transparent 23%),linear-gradient(135deg,var(--bg2),var(--bg));font-family:'Tajawal',Tahoma,Arial,sans-serif;color:var(--ink)}
button,input,select,textarea{font-family:inherit}
.app-shell{max-width:1510px;margin:auto;min-height:860px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.82);border-radius:var(--r-page);box-shadow:0 38px 110px rgba(86,73,35,.22);display:grid;grid-template-columns:306px minmax(0,1fr);overflow:hidden}
.sidebar{background:linear-gradient(180deg,#fff,#fbfaf7);border-left:1px solid var(--line);padding:26px 22px;display:flex;flex-direction:column;gap:22px;min-height:860px}
.brand{display:flex;align-items:center;gap:14px;padding:4px 2px 22px;border-bottom:1px solid var(--line)}
.brand-mark{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#fffaf0,#f1e4bf);border:1px solid #e3d3a7;box-shadow:0 14px 28px rgba(187,141,34,.15);display:grid;place-items:center;flex:0 0 auto}
.brand-mark svg{width:42px;height:42px}
.brand-title strong{display:block;font-size:23px;letter-spacing:-.5px;font-weight:900;color:#171717;line-height:1.1}
.brand-title span{display:block;margin-top:5px;color:var(--muted);font-size:13px;font-weight:500}
.section-label{font-size:12px;color:#b0a89b;font-weight:800;margin:0 14px -10px}
.nav{display:grid;gap:7px}
.nav-btn{width:100%;border:0;background:transparent;border-radius:18px;color:#4f4a42;font-size:16px;font-weight:700;padding:15px 17px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:.18s;text-align:right;text-decoration:none;position:relative}
.nav-btn:hover{background:#f6f2ea}
.nav-btn.active{background:#f3eddf;color:var(--gold-dark)}
.nav-btn.active:before{content:"";position:absolute;left:-22px;top:12px;width:4px;height:34px;border-radius:6px;background:linear-gradient(180deg,var(--gold),#d7bd6b)}
.nav-icon{margin-right:auto;width:28px;height:28px;border-radius:10px;display:grid;place-items:center;color:#57534c}
.health-status{margin-top:auto;border:1px solid #ebe1cc;background:#fffdfa;border-radius:22px;padding:16px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-soft)}
.shield{width:42px;height:42px;border-radius:16px;background:#f2fbf5;color:var(--green);display:grid;place-items:center}
.health-status strong{display:block;font-size:13px;color:#3b3832}
.health-status span{display:flex;align-items:center;gap:6px;color:var(--green);font-size:12px;margin-top:5px}
.main{min-width:0;background:linear-gradient(180deg,#fffefd,#fbfaf8)}
.topbar{min-height:96px;background:rgba(255,255,255,.92);border-bottom:1px solid #f0ede6;padding:22px 30px;display:grid;grid-template-columns:1fr 330px 280px;align-items:center;gap:20px}
.profile-area{display:flex;align-items:center;gap:14px}.mobile-menu{display:none}
.avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#f2e5c0,#fff);border:1px solid #e9dec5;position:relative}
.avatar:before{content:"";position:absolute;inset:8px;border-radius:50%;background:linear-gradient(135deg,#243225,#6b7650)}
.avatar:after{content:"";position:absolute;bottom:2px;right:2px;width:12px;height:12px;background:var(--green);border:3px solid #fff;border-radius:50%}
.profile-name strong{display:block;font-size:15px;font-weight:900}.profile-name span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.circle-btn{width:44px;height:44px;border-radius:50%;border:1px solid #eeeae2;background:#fff;display:grid;place-items:center;color:#4e4a43;cursor:pointer}
.top-tools{display:flex;align-items:center;gap:12px}.lang{height:42px;border-radius:999px;padding:0 18px;border:1px solid #eeeae2;background:#fff;display:flex;align-items:center;gap:8px;font-weight:700;color:#4c4943}
.org-select{height:48px;border:1px solid #eeeae2;background:#fff;border-radius:999px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;min-width:300px;font-weight:800;color:#2b2824}
.top-brand{justify-self:end;display:flex;align-items:center;gap:14px}.top-brand-text strong{display:block;font-size:18px;font-weight:900}.top-brand-text span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.top-logo{width:64px;height:64px;border-radius:50%;border:2px solid var(--gold);display:grid;place-items:center;background:#fffdf8}.top-logo svg{width:42px;height:42px}
.tabs{height:74px;background:#fff;border-bottom:1px solid #f1eee7;display:flex;align-items:center;justify-content:center;gap:22px;padding:0 30px;overflow:auto}.tab{border:0;background:transparent;padding:12px 18px;border-radius:17px;color:#5b554c;font-size:16px;font-weight:700;white-space:nowrap;cursor:pointer;text-decoration:none}.tab:hover,.tab.active{background:#f2f0eb;color:#211f1b}
.content{padding:28px 30px 30px;background:linear-gradient(180deg,#fbfbfa,#fff);min-height:690px}
.hero-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:24px}
.kpi{background:var(--card);border:1px solid #f4f1eb;border-radius:23px;min-height:154px;padding:24px 26px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.more{position:absolute;top:19px;right:22px;color:#6d675d;font-weight:900;letter-spacing:2px}
.kpi-head{display:flex;align-items:center;gap:12px;justify-content:flex-end;color:#2c2924;font-size:16px;font-weight:800;margin-bottom:18px}
.soft-icon{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#f7f1e2,#fffaf0);display:grid;place-items:center;color:var(--gold-dark);border:1px solid #f2e7ca}
.kpi-number{text-align:left;direction:ltr;font-size:38px;line-height:1;font-weight:900;letter-spacing:-1px}.kpi-meta{display:flex;justify-content:flex-start;align-items:center;gap:7px;direction:ltr;color:#b0a99e;font-size:12px;margin-top:14px}.up{color:var(--green);background:#eafaf2;border-radius:999px;padding:3px 8px;font-weight:900}
.mid-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;gap:22px;margin-bottom:24px}
.card-box{background:var(--card);border:1px solid #f4f1eb;border-radius:23px;padding:24px;box-shadow:var(--shadow-soft);position:relative}
.box-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.box-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:900}
.resource-list{display:grid;gap:17px;margin-top:12px}.resource-row{display:grid;grid-template-columns:34px 1fr 42px;align-items:center;gap:12px}.res-icon{width:34px;height:34px;border-radius:12px;background:#f6f3ed;color:#55504a;display:grid;place-items:center}.resource-row strong{font-size:13px;font-weight:800}.resource-row small{font-weight:800;color:#69635a;direction:ltr}.progress{height:8px;border-radius:999px;background:#eee8da;margin-top:8px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#d4ba69)}
.ghost-btn{height:45px;width:100%;margin-top:22px;border:0;border-radius:17px;background:linear-gradient(180deg,#faf7f0,#f1ede4);color:var(--gold-dark);font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.heat{height:35px;border-radius:7px;background:#f7f3e7}.heat.l1{background:#f0e8c8}.heat.l2{background:#f6dfb3}.heat.l3{background:#d0b056}.heat.l4{background:#aaa775}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:11px;color:#847e74;font-size:12px;text-align:center}
.gauge-card{text-align:center}.gauge-wrap{height:175px;display:grid;place-items:center;position:relative;margin-top:4px}.gauge{width:210px;height:105px;border-radius:210px 210px 0 0;border:19px solid #f1e6c5;border-bottom:0;position:relative}.gauge:before{content:"";position:absolute;inset:-19px;border-radius:210px 210px 0 0;border:19px solid var(--gold);border-bottom:0;clip-path:polygon(0 0,83% 0,83% 100%,0 100%)}.gauge-value{position:absolute;top:78px;left:0;right:0}.gauge-value strong{font-size:34px;display:block}.gauge-value span{color:#999187;font-size:12px}
.table-card{background:#fff;border:1px solid #f4f1eb;border-radius:23px;box-shadow:var(--shadow-soft);overflow:hidden}.table-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #f3f0ea}.table-head h3{margin:0;font-size:16px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:860px}.table th{font-size:12px;color:#a69e92;font-weight:800;text-align:right;padding:14px 16px;background:#fbfaf7}.table td{padding:13px 16px;border-top:1px solid #f2f0eb;color:#46413a;font-weight:600;vertical-align:middle}.status{min-width:86px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}.s-work{background:#fff1d6;color:#a77415}.s-done{background:var(--green-soft);color:var(--green)}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-title h1{font-size:27px;margin:0 0 6px;font-weight:900}.page-title p{margin:0;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:1px solid #d5bd79;background:#fff;color:var(--gold-dark);border-radius:17px;height:40px;padding:0 18px;font-weight:900;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--gold),#c9a246);color:#fff;border:0}.btn.neutral{border-color:var(--line);color:#5f5a52}
.mini-list{display:grid;gap:14px}.mini-card{background:#fff;border:1px solid #f1eee7;border-radius:20px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:var(--shadow-soft)}.patient-mini{display:flex;align-items:center;gap:12px}.patient-avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#f1e8cf;color:var(--gold-dark);font-weight:900}.patient-mini strong{display:block}.patient-mini span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.chip{height:28px;padding:0 12px;border-radius:999px;background:#f7f2e6;color:#8a6718;font-size:12px;font-weight:900;display:flex;align-items:center;white-space:nowrap}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.field label{display:block;font-size:13px;font-weight:800;color:#716a5f;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;height:44px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:0 14px;outline:none;color:#2e2b26;font-weight:700}.field textarea{height:110px;padding-top:12px;resize:vertical}
.portal-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:22px}.qr{width:160px;height:160px;border-radius:24px;background:repeating-linear-gradient(45deg,#28251f 0 8px,#fff 8px 16px);border:12px solid #fff;box-shadow:0 12px 24px rgba(30,25,15,.08);margin:16px auto}
@media(max-width:1280px){body{padding:24px}.app-shell{grid-template-columns:278px 1fr}.topbar{grid-template-columns:1fr;gap:12px;height:auto}.top-brand{justify-self:start}.hero-row{grid-template-columns:repeat(2,1fr)}.mid-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}.portal-grid{grid-template-columns:1fr}}
@media(max-width:920px){body{padding:0}.app-shell{border-radius:0;grid-template-columns:1fr;min-height:100vh}.sidebar{position:fixed;right:-320px;top:0;width:306px;height:100vh;z-index:50;transition:.22s;box-shadow:-20px 0 60px rgba(0,0,0,.16)}.sidebar.open{right:0}.mobile-menu{display:grid}.topbar{padding:16px}.tabs{justify-content:flex-start;padding:0 14px}.content{padding:18px}.hero-row{grid-template-columns:1fr}.page-heading{display:block}.actions{margin-top:12px}}
@media(max-width:640px){.content{padding:14px}.kpi,.card-box,.table-card{border-radius:18px}.form-grid{grid-template-columns:1fr}.mini-card{align-items:flex-start;flex-direction:column}.tabs{height:64px}.tab{font-size:14px;padding:9px 12px}.table{min-width:820px}}


/* ===== V2 Professional Refinements ===== */
.app-shell{
  max-width:1540px;
  grid-template-columns:288px minmax(0,1fr);
}
.sidebar{
  padding:24px 18px;
}
.brand{
  padding-bottom:18px;
}
.brand-mark{
  width:62px;
  height:62px;
}
.brand-title strong{
  font-size:21px;
}
.nav-btn{
  padding:13px 15px;
  font-size:15px;
}
.nav-icon{
  width:31px;
  height:31px;
  background:#f8f5ef;
  color:#7b746a;
  border:1px solid #f0eadf;
}
.nav-btn.active .nav-icon{
  background:#fff7e6;
  color:var(--gold-dark);
  border-color:#ead8aa;
}
.topbar{
  min-height:78px;
  grid-template-columns:minmax(0,1fr) auto auto;
  padding:16px 28px;
}
.top-brand{
  display:none;
}
.profile-area{
  min-width:0;
}
.org-select{
  min-width:260px;
  height:44px;
}
.circle-btn{
  width:40px;
  height:40px;
}
.lang{
  height:40px;
}
.tabs{
  height:62px;
  justify-content:flex-start;
  padding:0 30px;
}
.tab{
  padding:10px 16px;
  font-size:15px;
}
.content{
  padding:24px 28px 32px;
}
.page-heading{
  align-items:center;
}
.page-title h1{
  font-size:30px;
  letter-spacing:-.4px;
}
.page-title p{
  font-size:14px;
}
.hero-row.compact{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.hero-row.compact .kpi{
  min-height:124px;
  padding:20px 22px;
}
.hero-row.compact .kpi-number{
  font-size:32px;
}
.hero-row.compact .soft-icon{
  width:42px;
  height:42px;
}
.filter-panel{
  margin-bottom:18px;
}
.filter-actions{
  display:flex;
  align-items:end;
  gap:10px;
}
.booking-list{
  display:grid;
  gap:13px;
}
.booking-card{
  background:#fff;
  border:1px solid #f0ece3;
  border-radius:22px;
  box-shadow:var(--shadow-soft);
  padding:16px;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) 130px 120px 150px;
  gap:14px;
  align-items:center;
  transition:.16s ease;
}
.booking-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(44,38,25,.08);
  border-color:#e5d7b5;
}
.booking-main{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.booking-main .patient-avatar{
  width:48px;
  height:48px;
  flex:0 0 auto;
}
.booking-title strong{
  display:block;
  font-size:16px;
}
.booking-title span{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:4px;
}
.booking-meta{
  color:#5f584f;
  font-weight:800;
  font-size:13px;
}
.booking-meta small{
  display:block;
  color:var(--muted);
  font-weight:700;
  margin-top:4px;
}
.action-group{
  display:flex;
  gap:8px;
  justify-content:flex-start;
  flex-wrap:wrap;
}
.chip.green{
  background:#eafaf2;
  color:#16845d;
}
.chip.red{
  background:#fff0ef;
  color:#bc514d;
}
.chip.gray{
  background:#f4f1eb;
  color:#625a4e;
}
.btn.icon{
  width:40px;
  padding:0;
  display:inline-grid;
  place-items:center;
}
.empty-space-note{
  margin-top:18px;
  padding:16px 18px;
  border:1px dashed #e1d4b2;
  background:#fffaf0;
  border-radius:18px;
  color:#7a6b4c;
  font-weight:700;
}
@media(max-width:1280px){
  .hero-row.compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .booking-card{
    grid-template-columns:1fr 120px;
  }
}
@media(max-width:920px){
  .app-shell{
    grid-template-columns:1fr;
  }
  .topbar{
    grid-template-columns:1fr;
  }
  .top-tools{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .org-select{
    min-width:100%;
  }
  .booking-card{
    grid-template-columns:1fr;
  }
}
@media(max-width:640px){
  .hero-row.compact{
    grid-template-columns:1fr;
  }
  .booking-card{
    padding:14px;
  }
}

/* ===== Fix bookings KPI cards layout ===== */
.hero-row.compact {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.hero-row.compact .kpi {
  min-height: 138px !important;
}

@media (max-width: 1350px) {
  .hero-row.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .hero-row.compact {
    grid-template-columns: 1fr !important;
  }
}

/* reduce extra vertical space in bookings page */
.page-heading {
  margin-bottom: 18px !important;
}

.filter-panel {
  margin-top: 8px !important;
}

.booking-list {
  margin-top: 16px !important;
}

/* ===== Bookings Page Final Professional Layout ===== */
.bookings-kpi-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:16px !important;
  margin-bottom:24px !important;
}

.bookings-kpi-grid .kpi{
  min-height:132px !important;
  padding:18px 20px !important;
}

.bookings-kpi-grid .kpi-head{
  margin-bottom:12px !important;
}

.bookings-kpi-grid .kpi-number{
  font-size:32px !important;
}

.bookings-kpi-grid .soft-icon{
  width:42px !important;
  height:42px !important;
}

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

@media (max-width: 650px){
  .bookings-kpi-grid{
    grid-template-columns:1fr !important;
  }
}

/* tighter booking page spacing */
.filter-panel{
  margin-top:0 !important;
}

.booking-list{
  margin-top:18px !important;
}

.booking-card{
  min-height:82px !important;
}


/* ===== Final visual polish ===== */
.app-shell{
  grid-template-columns:270px minmax(0,1fr) !important;
}

.sidebar{
  padding-left:16px !important;
  padding-right:16px !important;
}

.content{
  padding:24px 26px 30px !important;
}

.bookings-kpi-grid{
  gap:14px !important;
}

.bookings-kpi-grid .kpi{
  min-height:118px !important;
  padding:16px 18px !important;
}

.bookings-kpi-grid .kpi-head{
  font-size:14px !important;
}

.bookings-kpi-grid .kpi-number{
  font-size:29px !important;
}

.filter-panel{
  border-radius:22px !important;
  padding:20px !important;
}

.booking-card{
  border-radius:20px !important;
  min-height:78px !important;
  background:linear-gradient(180deg,#ffffff,#fffdf8) !important;
}

.booking-card .chip{
  justify-content:center !important;
  min-width:92px !important;
}

.booking-card .btn{
  height:36px !important;
  border-radius:15px !important;
}

.health-status{
  padding:13px !important;
}

@media(max-width:1200px){
  .app-shell{
    grid-template-columns:250px minmax(0,1fr) !important;
  }
}

@media(max-width:920px){
  .app-shell{
    grid-template-columns:1fr !important;
  }
}
