:root{--ink:#20312e;--muted:#687a75;--line:#e0e9e5;--bg:#f4f7f5;--card:#ffffff;--brand:#397565;--brand2:#28594e;--soft:#e7f1ed;--danger:#b23b3b;--warning:#a66a00;--shadow:0 8px 28px rgba(32,49,46,.07);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Heebo,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.loading-screen{min-height:100vh;display:grid;place-content:center;gap:16px;text-align:center;color:var(--muted)}.spinner{width:38px;height:38px;border:4px solid #dce5e7;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f4f8f8,#eef2f3)}.login-card{width:min(430px,100%);background:#fff;border-radius:28px;padding:34px;box-shadow:var(--shadow)}.logo{font-size:28px;font-weight:800;color:var(--brand);letter-spacing:-.4px}.sub{color:var(--muted);margin-top:4px}.field{display:grid;gap:7px;margin:18px 0}.field label{font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,107,114,.1)}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:700}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand2)}.btn-secondary{background:#eef3f4;color:var(--brand2)}.btn-ghost{background:transparent;color:var(--muted)}.btn-danger{background:#fff0f0;color:var(--danger)}.error{color:var(--danger);font-size:14px;margin-top:10px}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--sidebar,#183b34);color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{padding:6px 10px 24px}.brand strong{font-size:24px}.brand span{display:block;color:#b9d5cb;font-size:13px;margin-top:2px}.nav{display:grid;gap:7px}.nav button{border:0;background:transparent;color:#d9e6e7;text-align:right;padding:12px 14px;border-radius:12px;font-weight:600}.nav button.active,.nav button:hover{background:var(--nav-active,#2a5b4e);color:#fff}.sidebar-bottom{position:absolute;bottom:18px;left:16px;right:16px}.main{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:23px}.user-chip{color:var(--muted);font-size:14px}.content{padding:28px;max-width:1500px;margin:auto}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 18px rgba(32,49,46,.045);padding:24px;transition:box-shadow .2s ease,border-color .2s ease}.card:hover{box-shadow:0 8px 26px rgba(32,49,46,.075);border-color:color-mix(in srgb,var(--brand) 18%,var(--line))}.stat-label{color:var(--muted);font-size:14px}.stat-value{font-size:34px;font-weight:800;margin-top:8px;color:var(--brand);letter-spacing:-.5px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 14px}.section-head h2{margin:0;font-size:20px}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;min-width:190px;transition:border-color .2s ease,box-shadow .2s ease}.toolbar input:focus,.toolbar select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--soft)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:15px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.table th{background:var(--soft);font-weight:700}.table tbody tr:nth-child(even){background:#fafcfb}.table th{color:var(--muted);font-size:13px}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#f8fafb}.pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef3f4;color:#38515a;font-size:12px;font-weight:700}.pill.green{background:#e7f5ee;color:#197047}.pill.orange{background:#fff4df;color:#8a5a00}.pill.red{background:#fff0f0;color:#9a3b3b}.empty{padding:40px;text-align:center;color:var(--muted)}.two{grid-template-columns:1.4fr .8fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.profile-name{font-size:28px;font-weight:800}.meta{color:var(--muted);margin-top:5px}.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.kv div{background:#f8fafb;border-radius:12px;padding:12px}.kv small{display:block;color:var(--muted);margin-bottom:3px}.action-row{display:flex;gap:8px;flex-wrap:wrap}.timeline{display:grid;gap:10px}.timeline-item{border-right:3px solid #dcebed;padding:8px 12px}.timeline-item small{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:grid;place-items:center;padding:18px;z-index:1000}.modal{background:#fff;width:min(620px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 20px 60px rgba(20,40,35,.18)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.campaign-card{display:grid;gap:10px}.campaign-message{white-space:pre-wrap;background:#f7f9fa;border:1px solid var(--line);border-radius:14px;padding:14px;line-height:1.7}.small{font-size:13px;color:var(--muted)}.mobile-nav{display:none}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--sidebar,#183b34);padding:7px;z-index:20;gap:4px}.mobile-nav button{flex:1;border:0;background:transparent;color:#d9e6e7;padding:8px 4px;border-radius:10px;font-size:12px}.mobile-nav button.active{background:var(--nav-active,#2a5b4e)}.content{padding:18px 16px 85px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two,.three{grid-template-columns:1fr}.topbar{padding:0 16px}.kv{grid-template-columns:1fr}.profile-head{display:grid}.toolbar input,.toolbar select{min-width:0;flex:1}}

/* Treatment rich text editor */
.treatment-editor{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}

.treatment-editor-toolbar{
  display:flex;
  align-items:center;
  gap:2px;
  flex-wrap:wrap;
  padding:4px 5px;
  background:#f7f9fa;
  border-bottom:1px solid var(--line);
}

.treatment-editor-toolbar button,
.treatment-editor-toolbar select{
  min-width:28px;
  height:28px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  color:var(--ink);
  padding:2px 5px;
  font-weight:600;
  font-size:13px;
}

.treatment-editor-toolbar button:hover,
.treatment-editor-toolbar select:hover{
  border-color:var(--brand);
  background:var(--soft);
}

.treatment-editor-toolbar .editor-separator{
  width:1px;
  height:20px;
  background:var(--line);
  margin:0 2px;
}

.treatment-editor-content{
  min-height:80px;
  padding:12px 14px;
  outline:none;
  line-height:1.7;
  direction:rtl;
  text-align:right;
  white-space:pre-wrap;
}

.treatment-editor-content:focus{
  box-shadow:inset 0 0 0 2px rgba(23,107,114,.12);
}

.treatment-editor-content:empty:before{
  content:attr(data-placeholder);
  color:var(--muted);
  pointer-events:none;
}

@media(max-width:600px){
  .treatment-editor-toolbar{
    gap:3px;
  }

  .treatment-editor-toolbar button,
  .treatment-editor-toolbar select{
    height:30px;
    min-width:30px;
    padding:3px 6px;
  }
}

/* MetupaLOG — readability and visual hierarchy */
.topbar h1 {
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -0.3px;
}

.content {
  padding: 32px;
}

.card {
  padding: 25px;
  box-shadow: 0 5px 20px rgba(32,49,46,.055);
}

.card h2 {
  font-size: 20px;
  line-height: 1.45;
  font-weight: 800;
}

.stat-label {
  font-size: 15px;
  line-height: 1.6;
  font-weight: 600;
}

.stat-value {
  font-size: 36px;
  line-height: 1.25;
  margin-top: 10px;
}

.section-head {
  margin: 30px 0 16px;
}

.section-head h2 {
  font-size: 21px;
  font-weight: 800;
}

.table th {
  font-size: 14px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.table td {
  font-size: 15px;
  line-height: 1.6;
}

.btn {
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.btn-primary:hover {
  box-shadow: 0 4px 12px rgba(32,49,46,.12);
}

.field label {
  font-size: 15px;
}

.field input,
.field select,
.field textarea {
  min-height: 46px;
}

@media(max-width:900px) {
  .content {
    padding: 20px 16px 90px;
  }

  .card {
    padding: 20px;
  }

  .stat-value {
    font-size: 32px;
  }

  .topbar h1 {
    font-size: 21px;
  }
}


/* MetupaLOG dashboard refresh — 2026-10-14 */
.dashboard{display:grid;gap:26px}
.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(115deg,#fff 0%,var(--soft) 100%);overflow:hidden}
.dashboard-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--brand);margin-bottom:9px}
.dashboard-welcome h2{font-size:26px;line-height:1.35;margin:0;font-weight:800;letter-spacing:-.4px}
.dashboard-welcome p{color:var(--muted);margin:8px 0 0;font-size:15px}
.dashboard-welcome-mark{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:20px;background:var(--soft);color:var(--brand);font-size:35px}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dashboard-metric{position:relative;min-width:0;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:19px;padding:21px;box-shadow:0 3px 14px rgba(32,49,46,.035);transition:transform .18s ease,box-shadow .18s ease}
.dashboard-metric:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(32,49,46,.075)}
.dashboard-metric:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:var(--metric-color,var(--brand))}
.dashboard-metric.green{--metric-color:#397565;--metric-soft:#e7f1ed}
.dashboard-metric.blue{--metric-color:#3267a8;--metric-soft:#e8f0fb}
.dashboard-metric.purple{--metric-color:#7055a5;--metric-soft:#f0ebf8}
.dashboard-metric.amber{--metric-color:#b56b45;--metric-soft:#f8eee8}
.dashboard-metric-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dashboard-metric-label{font-size:14px;font-weight:700;color:var(--muted);line-height:1.5}
.dashboard-metric-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:var(--metric-soft);color:var(--metric-color);font-size:20px;font-weight:800}
.dashboard-metric-value{font-size:38px;font-weight:800;line-height:1.2;letter-spacing:-1px;color:var(--ink);margin-top:17px;font-variant-numeric:tabular-nums}
.dashboard-metric-note{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}
.dashboard-section{display:grid;gap:15px}
.dashboard-section-heading h2{font-size:21px;font-weight:800;margin:0}
.dashboard-section-heading p{font-size:13px;color:var(--muted);margin:5px 0 0}
.dashboard-lower-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;align-items:start}
.dashboard-category-card,.dashboard-actions-card{min-width:0;padding:23px}
.dashboard-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.dashboard-card-heading h3{font-size:17px;font-weight:800;margin:0}
.dashboard-card-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}
.dashboard-heading-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:var(--soft);color:var(--brand);font-size:19px}
.dashboard-category-table th{font-size:12px;padding:12px 10px}
.dashboard-category-table td{font-size:14px;padding:13px 10px;white-space:normal;line-height:1.5}
.dashboard-count{display:inline-grid;place-items:center;min-width:30px;padding:3px 8px;border-radius:9px;background:var(--soft);color:var(--brand2);font-weight:800;font-variant-numeric:tabular-nums}
.dashboard-actions{display:grid;gap:9px}
.dashboard-action{display:flex;align-items:center;gap:12px;width:100%;padding:13px 12px;text-align:right;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:border-color .18s ease,background .18s ease}
.dashboard-action:hover{border-color:var(--brand);background:var(--soft)}
.dashboard-action-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:var(--soft);color:var(--brand);font-size:21px;font-weight:700}
.dashboard-action>span:nth-child(2){display:grid;gap:4px;min-width:0;flex:1}
.dashboard-action strong{font-size:14px;font-weight:800}
.dashboard-action small{font-size:12px;color:var(--muted);line-height:1.4}
.dashboard-action-arrow{font-size:18px;color:var(--brand);padding-right:3px}
.dashboard-empty{padding:28px 10px;text-align:center;color:var(--muted);font-size:13px}
.dashboard-data-note{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;border-radius:12px;background:rgba(255,255,255,.7);color:var(--muted);font-size:12px;line-height:1.7}
.dashboard-data-note>span:first-child{color:var(--brand);font-size:15px}
#dashboardAppointments>.card{margin-top:0!important}
#dashboardAppointments>div> .card{border-radius:18px}
#dashboardAppointments h3{font-size:17px;font-weight:800}
@media(max-width:1100px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-lower-grid{grid-template-columns:1fr}}
@media(max-width:600px){.dashboard{gap:19px}.dashboard-welcome{padding:21px 18px;border-radius:18px}.dashboard-welcome h2{font-size:22px}.dashboard-welcome-mark{width:48px;height:48px;flex-basis:48px;border-radius:15px;font-size:27px}.dashboard-metrics{gap:11px}.dashboard-metric{padding:15px;border-radius:15px}.dashboard-metric-label{font-size:12px}.dashboard-metric-icon{width:32px;height:32px;flex-basis:32px;font-size:17px}.dashboard-metric-value{font-size:31px;margin-top:13px}.dashboard-metric-note{font-size:11px}.dashboard-category-card,.dashboard-actions-card{padding:17px}.dashboard-category-table td{font-size:13px;padding:11px 7px}.dashboard-action{padding:11px 9px;gap:9px}}


/* English interface direction */
html[lang="en"] body {
  direction: ltr;
  text-align: left;
}
html[lang="en"] .nav button,
html[lang="en"] .table th,
html[lang="en"] .table td,
html[lang="en"] .dashboard-action {
  text-align: left;
}
html[lang="en"] .treatment-editor-content {
  direction: ltr;
  text-align: left;
}
html[lang="en"] .timeline-item {
  border-right: 0;
  border-left: 3px solid #dcebed;
}

/* Logic brand tagline */
.login-card .brand-tagline {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.1px;
  margin-top: 3px;
  margin-bottom: 6px;
  color: var(--muted);
}


/* Logic CRM logo on login screen */
.login-logo{display:block;width:100%;max-width:360px;height:auto;margin:0 auto 14px}


/* Logic CRM sidebar branding and subtle content watermark */
.sidebar-logo-wrap {
  background: #fff;
  border-radius: 12px;
  padding: 6px;
  margin-bottom: 10px;
  overflow: hidden;
}
.sidebar-logo {
  display: block;
  width: 100%;
  height: auto;
}
.content {
  position: relative;
  isolation: isolate;
}
.content::before {
  content: "";
  position: fixed;
  inset: 76px 0 0 250px;
  background-image: url("./logic-crm-logo.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: min(34vw, 430px) auto;
  opacity: 0.035;
  pointer-events: none;
  z-index: -1;
}
@media(max-width:900px) {
  .content::before {
    inset: 0 0 65px 0;
    background-size: min(65vw, 360px) auto;
    opacity: 0.025;
  }
}

/* Logic CRM — colorful rounded navigation icons */
.nav button,
.mobile-nav button {
  display: flex;
  align-items: center;
  gap: 11px;
}

.nav-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  transition: background .2s ease, color .2s ease;
}

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

.nav-icon.teal { background: #DDF4EF; color: #147D75; }
.nav-icon.blue { background: #E1EDFC; color: #3269AE; }
.nav-icon.green { background: #E4F3E7; color: #378054; }
.nav-icon.purple { background: #F1E8FC; color: #8158B5; }
.nav-icon.amber { background: #FFF0DB; color: #B77B25; }
.nav-icon.slate { background: #E8ECEF; color: #53646D; }

.nav button.active {
  background: var(--nav-active, #2a5b4e);
  color: #fff;
}

.nav button.active .nav-icon {
  background: rgba(255,255,255,.18);
  color: #fff;
}

.nav-label {
  min-width: 0;
}

.mobile-nav button {
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}

.mobile-nav .nav-icon {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
  border-radius: 9px;
}

.mobile-nav .nav-icon svg {
  width: 18px;
  height: 18px;
}

.mobile-nav button.active {
  background: var(--nav-active, #2a5b4e);
  color: #fff;
  border-radius: 12px;
}

.mobile-nav button.active .nav-icon {
  background: rgba(255,255,255,.18);
  color: #fff;
}

@media(max-width:900px) {
  .mobile-nav button { text-align: center; }
  .mobile-nav .nav-label { font-size: 11px; }
}

/* Multi-clinic additions */
.mobile-only{display:none}
.user-chip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){
  .mobile-only{display:inline-flex}
  .mobile-nav{overflow-x:auto;scrollbar-width:none}
  .mobile-nav::-webkit-scrollbar{display:none}
  .mobile-nav button{min-width:64px;flex:1 0 64px}
  .topbar{height:auto;min-height:64px;padding:10px 16px;gap:8px;flex-wrap:wrap}
  .user-chip{font-size:12px}
}
.grid>.card{min-width:0}
