@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

:root {
  --brand-green: #4f7137;
  --brand-orange: #e9532b;
  --brand-red: #d9233d;
  --brand-blue: #34468e;
  --navy: var(--brand-blue);
  --navy-soft: #293a78;
  --primary: var(--brand-green);
  --primary-hover: #3d592b;
  --primary-light: #edf3e8;
  --surface: #ffffff;
  --canvas: #f4f7fa;
  --line: #e5eaf0;
  --text: #182230;
  --muted: #667085;
  --danger: var(--brand-red);
  --danger-soft: #fff0f2;
  --success: var(--brand-green);
  --success-soft: #eff5eb;
  --shadow: 0 1px 3px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .05);
  font-family: "Vazirmatn", Tahoma, Arial, sans-serif;
  color: var(--text);
  background: var(--canvas);
  line-height: 1.65;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; background: var(--canvas); }
a { color: var(--primary); text-decoration: none; transition: .18s ease; }
a:hover { color: var(--primary-hover); }

.sidebar {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 40;
  width: 270px;
  display: flex;
  flex-direction: column;
  color: #e6edf4;
  background: linear-gradient(180deg, #34468e 0%, #2b3b7b 58%, #24336a 100%);
  box-shadow: -5px 0 24px rgba(16,42,67,.12);
}
.sidebar-brand { min-height: 88px; padding: 18px 20px; display:flex; align-items:center; gap:12px; border-bottom:1px solid rgba(255,255,255,.09); }
.brand-mark { width:45px; height:45px; flex:0 0 45px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(145deg,#f36a40,#e9532b); color:#fff; font-size:1.35rem; font-weight:900; box-shadow:0 8px 20px rgba(233,83,43,.25); }
.brand-mark img { width:39px; height:39px; display:block; object-fit:contain; }
.sidebar-brand>div { display:flex; min-width:0; flex-direction:column; }
.sidebar-brand strong { color:#fff; font-size:.96rem; white-space:nowrap; }
.sidebar-brand small { color:#9fb6c7; font-size:.72rem; }
.sidebar-wordmark { width:205px; max-height:64px; display:block; object-fit:contain; }
.sidebar-close { display:none; margin-right:auto; width:32px; height:32px; min-height:0; padding:0; background:rgba(255,255,255,.08); box-shadow:none; font-size:1.25rem; }
.sidebar-section-title { padding:24px 23px 9px; color:#7995a9; font-size:.68rem; font-weight:700; letter-spacing:.04em; }
.sidebar-nav { min-height:0; flex:1 1 auto; display:flex; flex-direction:column; gap:5px; padding:0 13px 14px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent; }
.sidebar-nav::-webkit-scrollbar { width:5px; }.sidebar-nav::-webkit-scrollbar-thumb { border-radius:10px; background:rgba(255,255,255,.2); }
.sidebar-nav a { min-height:48px; padding:10px 13px; display:flex; align-items:center; gap:12px; border-radius:10px; color:#c9d7e1; font-size:.9rem; font-weight:600; }
.sidebar-nav a i { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; color:#9fb6c7; font-style:normal; font-size:1.05rem; }
.sidebar-nav a i svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sidebar-nav a:hover { color:#fff; background:rgba(255,255,255,.07); }
.sidebar-nav a.active { color:#fff; background:linear-gradient(90deg,rgba(233,83,43,.3),rgba(233,83,43,.09)); box-shadow:inset -3px 0 #e9532b; }
.sidebar-nav a.active i { color:#fff; background:#e9532b; }
.sidebar-nav a b { margin-right:auto; min-width:21px; height:21px; padding:0 5px; display:grid; place-items:center; border-radius:20px; color:#fff; background:#d9233d; font-size:.65rem; }
.sidebar-subnav { margin:-1px 26px 5px 0; padding:2px 11px 2px 0; display:flex; flex-direction:column; gap:1px; border-right:1px solid rgba(255,255,255,.12); }
.sidebar-subnav a { min-height:29px; padding:4px 9px; color:#8fa9ba; font-size:.7rem; font-weight:500; }
.sidebar-subnav a:hover { color:#fff; background:transparent; }
.sidebar-footer { flex:0 0 auto; padding:14px 16px 16px; border-top:1px solid rgba(255,255,255,.09); background:rgba(23,39,91,.42); box-shadow:0 -8px 20px rgba(16,24,40,.08); }
.sidebar-user { padding:0 3px 15px; display:flex; align-items:center; gap:10px; }
.sidebar-user>span { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:11px; background:rgba(255,255,255,.11); color:#fff; font-weight:800; }
.sidebar-user>div { display:flex; min-width:0; flex-direction:column; }
.sidebar-user strong { color:#fff; font-size:.82rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-user small { color:#90a9bb; font-size:.68rem; }
.sidebar-footer form { margin:0; }
.sidebar-logout { width:100%; min-height:39px; justify-content:flex-start; padding:7px 12px; color:#c9d7e1; background:rgba(255,255,255,.06); box-shadow:none; font-size:.78rem; }
.sidebar-logout:hover { background:rgba(255,255,255,.11); box-shadow:none; }
.sidebar-logout i { font-style:normal; font-size:1rem; }
.sidebar-logout i svg { width:17px; height:17px; display:block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.topbar { height:72px; margin-right:270px; padding:0 28px; position:sticky; top:0; z-index:25; display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.topbar>div { display:flex; flex-direction:column; }
.topbar strong { color:#1d2939; font-size:.96rem; }
.topbar small { color:var(--muted); font-size:.7rem; }
.topbar-scope { padding:7px 12px; border:1px solid #cce9e5; border-radius:20px; color:var(--primary); background:var(--primary-light); font-size:.76rem; font-weight:600; }
.notification-bell { position:relative; width:40px; height:40px; margin-right:auto; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; color:#344054; background:#fff; font-size:1.25rem; }
.notification-bell>svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.notification-bell:hover { color:var(--primary); background:var(--primary-light); }
.notification-bell b { position:absolute; top:-6px; left:-6px; min-width:20px; height:20px; padding:0 4px; display:grid; place-items:center; border:2px solid #fff; border-radius:20px; color:#fff; background:#d9233d; font-size:.6rem; }
.menu-toggle { display:none; width:40px; height:40px; min-height:0; padding:0; color:#344054; background:#fff; border-color:#d0d5dd; box-shadow:none; font-size:1.2rem; }
.sidebar-overlay { display:none; }

body > main:not(.login) { width:calc(100% - 270px); max-width:1440px; margin:0 270px 0 0; padding:34px 28px 50px; }
.title { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.title h1 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 800; letter-spacing: -.02em; }
.title p { color: var(--muted); margin: 4px 0 0; font-size: .9rem; }

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 22px;
  box-shadow: var(--shadow);
}

button, .button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: var(--primary);
  color: #fff;
  padding: 8px 18px;
  cursor: pointer;
  font: 600 .92rem "Vazirmatn", Tahoma, sans-serif;
  box-shadow: 0 1px 2px rgba(16,24,40,.08);
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
button:hover, .button:hover { background: var(--primary-hover); color: #fff; box-shadow: 0 4px 10px rgba(15,118,110,.18); }
button:active, .button:active { transform: translateY(1px); }
.secondary { background: #fff; color: #344054; border-color: #d0d5dd; }
.secondary:hover { background: #f8fafc; color: #182230; box-shadow: none; }
.link { min-height: auto; padding: 0; border: 0; background: none; box-shadow: none; }
.link:hover { background: none; box-shadow: none; }
.danger { color: var(--danger) !important; }

label { color: #344054; font-size: .88rem; font-weight: 600; }
input, select, textarea {
  width: 100%;
  min-width: 0;
  height: 44px;
  margin-top: 6px;
  border: 1px solid #d0d5dd;
  border-radius: 9px;
  background: #fff;
  color: var(--text);
  padding: 8px 12px;
  outline: none;
  font: 400 .92rem "Vazirmatn", Tahoma, sans-serif;
  transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { min-height:120px; resize:vertical; }
input::placeholder { color: #98a2b3; }
input:focus, select:focus, textarea:focus { border-color: #2aa198; box-shadow: 0 0 0 3px rgba(42,161,152,.12); }
input[readonly] { background: #f2f4f7; color: #667085; cursor: not-allowed; }
.date-input{position:relative}.date-input input{padding-left:48px}.date-trigger{position:absolute;left:4px;bottom:4px;width:36px;height:36px;min-height:0;padding:0;border-radius:7px;background:var(--primary-light);color:var(--primary);box-shadow:none;font-size:1.2rem}.date-trigger:hover{background:#d4f0ed;color:var(--primary-hover);box-shadow:none}.date-picker[hidden]{display:none}.date-picker{position:fixed;z-index:120;width:300px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 18px 50px rgba(16,24,40,.2)}.date-picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.date-picker-head strong{font-size:.95rem}.date-picker-close{width:30px;height:30px;min-height:0;padding:0;background:#f2f4f7;color:#667085;box-shadow:none;font-size:1.25rem}.date-selects{display:grid;grid-template-columns:1.2fr 1.4fr .8fr;gap:7px}.date-selects label{font-size:.72rem}.date-selects select{height:40px;padding:5px;margin-top:4px}.date-picker-actions{display:flex;gap:8px;margin-top:17px}.date-picker-actions button{flex:1;min-height:38px;padding:6px}

.filters {
  margin-bottom: 20px;
  padding: 16px;
  display: grid;
  grid-template-columns: minmax(210px, 1.5fr) repeat(4, minmax(145px, 1fr)) auto auto;
  align-items: end;
  gap: 10px;
}
.filters input, .filters select { margin: 0; }
.filters .button { height: 44px; }
.senior-filters{grid-template-columns:repeat(5,minmax(150px,1fr))}.filter-actions{display:flex;gap:8px;grid-column:span 2}.filter-actions>*{flex:1;white-space:nowrap}

.table-wrap { padding: 0; overflow: auto; }
table { width: 100%; border-collapse: separate; border-spacing: 0; white-space: nowrap; }
th, td { padding: 14px 16px; text-align: right; border-bottom: 1px solid #edf0f3; }
th { background: #f8fafb; color: #475467; font-size: .78rem; font-weight: 700; }
td { color: #344054; font-size: .88rem; }
tbody tr { transition: background .12s ease; }
tbody tr:hover { background: #f8fcfb; }
tbody tr:last-child td { border-bottom: 0; }
.actions { display: flex; align-items: center; gap: 16px; }
.actions a, .actions button { font-size: .84rem; font-weight: 600; }
.actions form { margin: 0; }
.actions .issue-card-link { padding:3px 8px; border:1px solid #c7d7fe; border-radius:7px; color:#36499e; background:#eef2ff; }
.actions .issue-card-link:hover { border-color:#a5b4fc; color:#293878; background:#e0e7ff; }
.patient-name { color:#1d2939; font-weight:700; }.patient-name:hover{color:var(--primary)}
.patient-name-cell { display:flex; align-items:center; gap:8px; }
.correction-badge { display:inline-flex; align-items:center; padding:3px 8px; border:1px solid #fed7aa; border-radius:999px; background:#fff7ed; color:#c2410c; font-size:.68rem; font-weight:700; line-height:1.4; }
.needs-correction td:first-child { box-shadow:inset -3px 0 #f97316; }
.correction-notice { margin:0 0 20px; padding:17px 19px; display:flex; align-items:flex-start; gap:13px; border:1px solid #fed7aa; border-radius:12px; background:#fff7ed; color:#9a3412; }
.correction-notice-icon { width:30px; height:30px; flex:0 0 30px; display:grid; place-items:center; border-radius:50%; background:#f97316; color:#fff; font-weight:900; }
.correction-notice h2 { margin:0 0 3px; color:#9a3412; font-size:1rem; }
.correction-notice p { margin:0; font-size:.82rem; }
.correction-notice ul { margin:8px 0 0; padding-right:19px; font-size:.84rem; font-weight:600; }
.title-actions { display:flex; gap:9px; }
.patient-profile { padding:0; overflow:hidden; }
.profile-head { padding:24px 28px; display:flex; align-items:center; gap:15px; color:#fff; background:linear-gradient(115deg,#173f5f,#205777); }
.profile-avatar { width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:16px;background:#2dd4bf;color:#14334c;font-size:1.55rem;font-weight:800; }
.profile-head>div:nth-child(2){display:flex;flex-direction:column}.profile-head>div:nth-child(2) strong{font-size:1.12rem}.profile-head>div:nth-child(2) span{font-size:.82rem;color:#d9e8f1}.profile-badge{margin-right:auto;padding:7px 12px;border:1px solid rgba(255,255,255,.25);border-radius:20px;background:rgba(255,255,255,.1);font-size:.78rem;}
.detail-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr)); }
.detail-item { min-height:93px;padding:19px 22px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px; }
.detail-item:nth-child(4n){border-left:0}.detail-item span{color:var(--muted);font-size:.76rem;font-weight:600}.detail-item strong{color:#1d2939;font-size:.9rem;font-weight:600;overflow-wrap:anywhere}.detail-item em{color:#b0b7c3;font-style:normal;font-weight:400}
.modal-open{overflow:hidden}.modal-backdrop[hidden]{display:none}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(12,25,43,.66);backdrop-filter:blur(3px);display:grid;place-items:center;padding:22px}.patient-modal{position:relative;width:min(1050px,100%);max-height:92vh;background:#fff;border-radius:17px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.28);animation:modal-rise .2s ease}.modal-close{position:absolute;z-index:2;left:17px;top:15px;width:36px;height:36px;min-height:0;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.12);font:400 1.55rem Arial;color:#fff;box-shadow:none}.modal-close:hover{background:rgba(255,255,255,.22);box-shadow:none}.modal-loading{padding:90px 30px;text-align:center;color:var(--muted)}.modal-scroll{max-height:calc(92vh - 183px);overflow:auto}.patient-modal footer{padding:15px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.patient-modal .profile-head{padding-left:70px}.patient-modal .detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@keyframes modal-rise{from{opacity:0;transform:translateY(12px) scale(.985)}}
.pagination { display:flex; align-items:center; justify-content:center; gap:6px; margin:22px 0 0; direction:rtl; }
.pagination a,.pagination span { min-width:38px; height:38px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #d0d5dd; border-radius:8px; background:#fff; color:#475467; font-size:.82rem; font-weight:600; }
.pagination a:hover { border-color:#80cbc4; background:var(--primary-light); color:var(--primary); }
.pagination .active { border-color:var(--primary); background:var(--primary); color:#fff; }
.pagination .active:hover { background:var(--primary-hover); color:#fff; }
.pagination .disabled { color:#b0b7c3; background:#f8fafb; cursor:not-allowed; }
.pagination .ellipsis { min-width:25px; padding:0; border:0; background:transparent; }
.pagination .page-arrow { min-width:85px; }

.issued-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.issued-card-item { display:grid; grid-template-columns:72px 1fr; align-items:center; gap:14px; padding:16px; }
.issued-card-item img { width:72px; height:92px; grid-row:span 2; object-fit:cover; border:1px solid var(--line); border-radius:10px; background:#f2f4f7; }
.issued-card-item h2 { margin:0; color:#1d2939; font-size:.95rem; }
.issued-card-item p { margin:3px 0 0; color:var(--muted); font-size:.75rem; }
.issued-card-item small { color:#98a2b3; font-size:.7rem; }
.issued-card-item .button { min-height:35px; grid-column:2; padding:5px 12px; font-size:.76rem; }
.empty-cards { padding:55px 20px; text-align:center; }
.empty-cards>span { width:58px; height:58px; margin:auto; display:grid; place-items:center; border-radius:16px; color:var(--primary); background:var(--primary-light); font-size:1.6rem; }
.empty-cards h2 { margin:13px 0 2px; font-size:1.1rem; }
.empty-cards p { margin:0 0 17px; color:var(--muted); font-size:.84rem; }

.grid-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.grid-form label, .user-form label { display: flex; flex-direction: column; }
.field-help { margin-top: 6px; color: var(--muted); font-size: .78rem; }
.grid-form input:invalid:not(:focus):not(:placeholder-shown) { border-color: var(--danger); }
.grid-form .full { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 20px; }
.grid-form .full button { min-width: 150px; }

.user-form { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)) auto auto; align-items: end; gap: 14px; margin-bottom: 20px; }
.account-form { width:min(520px,100%); padding:26px; display:flex; flex-direction:column; gap:18px; }
.account-form .alert { margin:0; }
.account-form button { align-self:flex-start; min-width:190px; }

/* Tickets */
.ticket-form { width:min(760px,100%); display:flex; flex-direction:column; gap:18px; }
.ticket-form label,.ticket-reply label { display:flex; flex-direction:column; }
.ticket-form button,.ticket-reply button { align-self:flex-start; }
.ticket-list { display:flex; flex-direction:column; gap:10px; }
.ticket-row { padding:17px 19px; display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:14px; color:inherit; }
.ticket-row:hover { color:inherit; border-color:#a7d9d4; transform:translateY(-1px); }
.ticket-row.unread { border-color:#80cbc4; background:#f5fffd; }
.ticket-dot { width:8px; height:8px; border-radius:50%; background:#d0d5dd; }
.ticket-row.unread .ticket-dot { background:#e5484d; box-shadow:0 0 0 4px #fee4e2; }
.ticket-row>div:nth-child(2) { min-width:0; }
.ticket-row strong { color:#1d2939; }
.ticket-row p { margin:3px 0; overflow:hidden; color:var(--muted); font-size:.8rem; white-space:nowrap; text-overflow:ellipsis; }
.ticket-row small { color:#98a2b3; font-size:.7rem; }
.ticket-row>div:last-child { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.ticket-status { display:inline-flex; width:max-content; padding:3px 9px; border-radius:20px; font-size:.7rem; font-weight:700; }
.ticket-status.open { color:#087443; background:#ecfdf3; }.ticket-status.closed { color:#667085; background:#f2f4f7; }
.ticket-page { --ticket-width:960px; }
.ticket-hero { width:min(var(--ticket-width),100%); margin:0 auto 18px; padding:21px 24px; border:1px solid #dce5eb; border-radius:16px; background:linear-gradient(135deg,#fff 55%,#f0fbfa); box-shadow:var(--shadow); }
.ticket-back { display:inline-flex; margin-bottom:16px; color:#667085; font-size:.76rem; font-weight:600; }
.ticket-back:hover { color:var(--primary); }
.ticket-hero-main { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ticket-hero h1 { margin:7px 0 3px; color:#172554; font-size:clamp(1.3rem,2vw,1.7rem); }
.ticket-hero p { margin:0; color:#667085; font-size:.8rem; }
.ticket-meta { display:flex; align-items:center; gap:9px; color:#98a2b3; font-size:.7rem; }
.ticket-hero-icon { width:52px; height:52px; flex:0 0 52px; display:grid; place-items:center; border-radius:15px; color:var(--primary); background:#dff6f3; font-size:1.45rem; }
.ticket-conversation { width:min(var(--ticket-width),100%); margin:auto; overflow:hidden; border:1px solid #dfe5eb; border-radius:17px; background:#fff; box-shadow:0 10px 30px rgba(16,42,67,.06); }
.ticket-thread { min-height:270px; padding:30px 28px 34px; display:flex; flex-direction:column; gap:21px; background:linear-gradient(rgba(248,250,252,.88),rgba(245,248,250,.95)),radial-gradient(circle at 1px 1px,#d8e2e9 1px,transparent 0); background-size:auto,22px 22px; }
.ticket-message-wrap { width:min(72%,650px); display:flex; align-items:flex-end; gap:10px; align-self:flex-start; direction:ltr; }
.ticket-message-wrap.mine { align-self:flex-end; flex-direction:row-reverse; }
.message-avatar { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:11px; color:#fff; background:#64748b; font-size:.8rem; font-weight:800; box-shadow:0 3px 8px rgba(16,24,40,.14); }
.ticket-message-wrap.mine .message-avatar { color:#0c4f4a; background:#5eead4; }
.ticket-message { min-width:190px; padding:13px 16px; border:1px solid #e0e6eb; border-radius:15px 15px 15px 4px; background:#fff; box-shadow:0 4px 14px rgba(16,24,40,.06); direction:rtl; }
.ticket-message-wrap.mine .ticket-message { border-color:#a9ded8; border-radius:15px 15px 4px 15px; background:linear-gradient(145deg,#e7f8f6,#f1fcfa); }
.ticket-message header { display:flex; align-items:center; gap:7px; padding-bottom:8px; border-bottom:1px solid rgba(102,112,133,.1); }
.ticket-message header strong { color:#1d2939; font-size:.76rem; }
.ticket-message header span { padding:2px 6px; border-radius:10px; color:#667085; background:#f2f4f7; font-size:.58rem; }
.ticket-message header time { margin-right:auto; color:#98a2b3; font-size:.59rem; direction:ltr; }
.ticket-message p { margin:10px 0 1px; color:#344054; font-size:.88rem; line-height:1.85; overflow-wrap:anywhere; }
.ticket-reply { padding:22px 24px; display:flex; flex-direction:column; gap:13px; border-top:1px solid #dfe5eb; background:#fff; }
.reply-heading { display:flex; align-items:center; justify-content:space-between; }
.reply-heading>div { display:flex; flex-direction:column; }.reply-heading strong{font-size:.9rem}.reply-heading small{color:#98a2b3;font-size:.67rem}.reply-heading>span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--primary);background:var(--primary-light)}
.ticket-reply textarea { margin:0; min-height:125px; padding:14px 16px; border-color:#d5dde4; background:#fbfcfd; line-height:1.8; }
.ticket-reply textarea:focus { background:#fff; }
.reply-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.reply-actions>small { color:#98a2b3; font-size:.68rem; }.reply-actions button{min-width:135px}.reply-actions button span{font-size:1.05rem}
.ticket-status-form { width:min(var(--ticket-width),100%); margin:12px auto 0; }.ticket-closed-note { margin:20px; color:#475467; background:#f8fafb; border:1px solid var(--line); }
.check { height: 44px; flex-direction: row !important; align-items: center; gap: 8px; white-space: nowrap; }
.check input { width: 18px; height: 18px; margin: 0; accent-color: var(--primary); }

.login {
  width: 100%;
  min-height: 100vh;
  padding: 28px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 15% 20%, rgba(45,212,191,.15), transparent 27%),
    radial-gradient(circle at 85% 80%, rgba(23,63,95,.12), transparent 30%),
    #f3f7f9;
}
.login > .card, .login > form {
  width: min(440px, 100%);
  padding: 36px;
  border: 0;
  box-shadow: 0 20px 55px rgba(23, 43, 77, .12);
}
.login h1 { margin: 0 0 8px; color: var(--navy); font-size: 1.55rem; text-align: center; }
.login-logo { width:min(310px,100%); height:104px; margin:0 auto 18px; display:grid; place-items:center; }
.login-logo img { width:100%; height:100%; object-fit:contain; }
.login form { display: flex; flex-direction: column; gap: 16px; }
.login form button { width: 100%; margin-top: 4px; }

.alert { margin: 14px 0; padding: 12px 14px; border-radius: 9px; font-size: .88rem; }
.alert.error, .error { background: var(--danger-soft); color: var(--danger); border: 1px solid #ffd6cc; }
.toast {
  position: fixed;
  top: 88px;
  left: 24px;
  z-index: 50;
  max-width: 360px;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--success-soft);
  color: var(--success);
  border: 1px solid #abefc6;
  box-shadow: 0 10px 28px rgba(16,24,40,.12);
  font-size: .9rem;
  animation: slide-in .25s ease-out;
}
.toast.error { background: var(--danger-soft); color: var(--danger); border-color: #ffd6cc; }
@keyframes slide-in { from { opacity: 0; transform: translateX(-12px); } }

/* Dashboard */
.dashboard-title { margin-bottom: 24px; }
.command-dashboard { scroll-behavior:smooth; }
.eyebrow { display:block; margin-bottom:3px; color:var(--primary); font-size:.72rem; font-weight:800; }
.dashboard-jumps { margin:-8px 0 22px; display:flex; gap:7px; overflow:auto; }
.dashboard-jumps a { padding:7px 12px; border:1px solid var(--line); border-radius:20px; color:#475467; background:#fff; font-size:.75rem; font-weight:600; white-space:nowrap; }
.dashboard-jumps a:hover { border-color:#80cbc4; color:var(--primary); background:var(--primary-light); }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-bottom: 18px; }
.executive-stats { grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:34px; }
.stat-card { display: flex; align-items: center; gap: 16px; padding: 20px; }
.stat-card > div:last-child { display: flex; min-width: 0; flex-direction: column; }
.stat-card span { color: var(--muted); font-size: .83rem; font-weight: 600; }
.stat-card strong { color: var(--navy); font-size: 1.7rem; line-height: 1.35; font-weight: 800; }
.stat-card small { color: #98a2b3; font-size: .75rem; }
.stat-icon { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; border-radius: 13px; font-size: 1.35rem; font-weight: 800; }
.stat-icon.patients { color:#0f766e; background:#e7f7f5; }.stat-icon.women{color:#c11574;background:#fdf2fa}.stat-icon.men{color:#175cd3;background:#eff8ff}.stat-icon.leader{color:#b54708;background:#fffaeb}.stat-icon.heart { color:#c4320a; background:#fff1ed; }.stat-icon.shield { color:#175cd3; background:#eff8ff; }.stat-icon.home { color:#7f56d9; background:#f4f3ff; }
.dashboard-section { margin:0 0 38px; scroll-margin-top:90px; }
.section-heading { margin:0 0 16px; display:flex; align-items:end; justify-content:space-between; gap:16px; }
.section-heading>div>span { color:var(--primary); font-size:.72rem; font-weight:800; }
.section-heading h2 { margin:2px 0 0; color:#1d2939; font-size:1.15rem; }
.section-heading small { color:var(--muted); font-size:.75rem; }
.section-heading>a { font-size:.78rem; font-weight:700; }
.chart-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.chart-card,.progress-card,.region-chart { min-height: 340px; }
.card-heading { display:flex; justify-content:space-between; align-items:start; margin-bottom:24px; }
.card-heading h2 { margin:0; font-size:1rem; color:#1d2939; }.card-heading p { margin:3px 0 0; color:var(--muted); font-size:.78rem; }
.donut-layout { min-height:235px; display:flex; align-items:center; justify-content:space-evenly; gap:30px; }
.donut { --value:50; width:190px; height:190px; flex:0 0 190px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--primary) calc(var(--value)*1%), var(--navy-soft) 0 98%, #dbe2e8 0); position:relative; }
.donut::after { content:""; position:absolute; inset:27px; background:#fff; border-radius:50%; box-shadow:inset 0 0 0 1px #edf0f3; }
.donut > div { z-index:1; display:flex; flex-direction:column; text-align:center; }.donut strong { font-size:1.65rem;color:var(--navy); }.donut span { color:var(--muted);font-size:.8rem; }
.legend { min-width:150px; display:flex; flex-direction:column; gap:14px; }.legend > div { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:8px;font-size:.82rem; }.legend i { width:9px;height:9px;border-radius:50%; }.legend .teal{background:var(--primary)}.legend .navy{background:var(--navy-soft)}.legend .gray{background:#dbe2e8}.legend strong{color:#344054}
.vertical-bars { height:245px; display:flex; align-items:stretch; justify-content:space-around; gap:9px; padding-top:8px; }
.v-item { min-width:0; flex:1; display:grid; grid-template-rows:22px 1fr 34px; text-align:center; }.v-item>strong { font-size:.68rem;color:#667085; }.v-item>div { height:100%; display:flex;align-items:end;justify-content:center;border-bottom:1px solid #dfe4ea;background:repeating-linear-gradient(to top,#f1f3f5 0,#f1f3f5 1px,transparent 1px,transparent 25%); }.v-item i { width:min(32px,65%);display:block;background:linear-gradient(#2aa198,#0f766e);border-radius:6px 6px 0 0;min-height:4px; }.v-item span { overflow:hidden;text-overflow:ellipsis;font-size:.67rem;color:#667085;padding-top:7px; }
.progress-card { display:flex; flex-direction:column; }.progress-row { margin:13px 0; }.progress-row>div:first-child{display:flex;justify-content:space-between;font-size:.84rem;margin-bottom:8px}.progress-row strong{color:#344054}.track{height:9px;border-radius:20px;background:#edf1f4;overflow:hidden}.track i{display:block;height:100%;border-radius:20px;background:var(--primary)}.track i.warn{background:#f79009}.track i.blue{background:#2e90fa}
.region-chart { grid-column:1/-1; min-height:0; }.h-bars { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 35px}.h-row{display:grid;grid-template-columns:70px 1fr 50px;align-items:center;gap:10px;font-size:.76rem}.h-row>span{overflow:hidden;text-overflow:ellipsis}.h-row>div{height:10px;background:#edf1f4;border-radius:10px;overflow:hidden}.h-row i{height:100%;display:block;background:linear-gradient(90deg,#0f766e,#2dd4bf);border-radius:10px}.h-row strong{text-align:left;color:#475467}
.region-gender-card { min-height:0; }
.region-activity-card { margin-bottom:20px; min-height:0; }
.mini-legend { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.7rem; }
.mini-legend span { display:flex; align-items:center; gap:5px; }
.mini-legend i { width:8px; height:8px; border-radius:50%; }
.mini-legend .female,.region-track .female { background:#2dd4bf; }
.mini-legend .male,.region-track .male { background:#2e90fa; }
.region-gender-bars { max-height:455px; padding-left:5px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 24px; overflow:auto; }
.region-gender-row { display:grid; grid-template-columns:63px 1fr 38px; align-items:center; gap:8px; font-size:.7rem; }
.region-gender-row>span { color:#667085; white-space:nowrap; }
.region-gender-row>strong { color:#344054; text-align:left; }
.region-track { height:9px; display:flex; overflow:hidden; border-radius:10px; background:#edf1f4; }
.region-track i { display:block; height:100%; }
.leaderboard-card ol { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:4px; }
.leaderboard-card li { min-height:61px; padding:9px 8px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:10px; border-bottom:1px solid #edf0f3; }
.leaderboard-card li:last-child { border-bottom:0; }
.leaderboard-card li>span { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; color:var(--primary); background:var(--primary-light); font-size:.75rem; font-weight:800; }
.leaderboard-card li>div { display:flex; flex-direction:column; }
.leaderboard-card li strong { color:#344054; font-size:.84rem; }
.leaderboard-card li small { color:#98a2b3; font-size:.65rem; }
.leaderboard-card li b { color:#475467; font-size:.76rem; }
.demographic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.distribution-card { min-height:350px; }
.distribution-list { display:flex; flex-direction:column; gap:14px; }
.distribution-list>div>div:first-child { display:flex; justify-content:space-between; color:#475467; font-size:.76rem; }
.distribution-list small { display:block; margin-top:3px; color:#98a2b3; font-size:.65rem; }
.distribution-list .track { height:7px; margin-top:5px; }
.distribution-list .track i { background:linear-gradient(90deg,#0f766e,#2dd4bf); }
.operations-table td:first-child { min-width:160px; }

/* Jahandidegan identity palette: green, orange, red and blue */
button,.button{box-shadow:0 2px 5px rgba(79,113,55,.18)}button:hover,.button:hover{box-shadow:0 5px 14px rgba(79,113,55,.22)}
input:focus,select:focus,textarea:focus{border-color:#78955e;box-shadow:0 0 0 3px rgba(79,113,55,.14)}
.topbar{border-top:3px solid var(--brand-orange)}.topbar-scope{color:var(--brand-blue);border-color:#cbd2eb;background:#f0f2fa}.notification-bell:hover{color:var(--brand-orange);border-color:#f0b09d;background:#fff4f0}.sidebar-user>span{background:var(--brand-orange)}
.actions .issue-card-link{color:var(--brand-blue);border-color:#cbd2eb;background:#f0f2fa}.actions .issue-card-link:hover{color:#293a78;border-color:#9eabd5;background:#e6e9f6}
.profile-head{background:linear-gradient(115deg,var(--brand-blue),#293a78)}.profile-avatar{color:#fff;background:var(--brand-orange)}
.pagination a:hover{border-color:#9db487;background:var(--primary-light);color:var(--brand-green)}
.correction-badge,.correction-notice{color:#a63a1e;border-color:#f5b29d;background:#fff4f0}.correction-notice-icon{background:var(--brand-orange)}.correction-notice h2{color:#a63a1e}.needs-correction td:first-child{box-shadow:inset -3px 0 var(--brand-orange)}
.stat-icon.patients{color:var(--brand-green);background:#edf3e8}.stat-icon.women{color:var(--brand-red);background:#fff0f2}.stat-icon.men,.stat-icon.shield{color:var(--brand-blue);background:#f0f2fa}.stat-icon.leader{color:#b43b1d;background:#fff1ec}.stat-icon.heart{color:var(--brand-red);background:#fff0f2}.stat-icon.home{color:var(--brand-orange);background:#fff1ec}
.mini-legend .female,.region-track .female{background:var(--brand-red)}.mini-legend .male,.region-track .male{background:var(--brand-blue)}
.h-row i,.distribution-list .track i,.v-item i{background:linear-gradient(90deg,var(--brand-green),#769558)}.track i.warn{background:var(--brand-orange)}.track i.blue{background:var(--brand-blue)}
.donut{background:conic-gradient(var(--brand-red) calc(var(--value)*1%),var(--brand-blue) 0 98%,#dbe2e8 0)}.legend .teal{background:var(--brand-red)}.legend .navy{background:var(--brand-blue)}
.ticket-row.unread{border-color:#a8ba97;background:#f7faf4}.ticket-row.unread .ticket-dot{background:var(--brand-red);box-shadow:0 0 0 4px #fee4e8}.ticket-hero{background:linear-gradient(135deg,#fff 55%,#f1f4eb)}.ticket-hero-icon{color:#fff;background:var(--brand-orange)}
.message-avatar{background:var(--brand-blue)}.ticket-message-wrap.mine .message-avatar{color:#fff;background:var(--brand-green)}.ticket-message-wrap.mine .ticket-message{border-color:#becdad;background:linear-gradient(145deg,#edf3e8,#f8faf6)}.reply-heading>span{color:var(--brand-orange);background:#fff1ec}
.ticket-status.open{color:var(--brand-green);background:#edf3e8}.ticket-status.closed{color:#687299;background:#f0f2fa}.toast{color:var(--brand-green);border-color:#b9cbaa;background:#eff5eb}.toast.error{color:var(--brand-red);border-color:#f2aab5;background:#fff0f2}

@media (max-width: 1150px) {
  .filters { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .senior-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}
  .grid-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .user-form { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .demographic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .issued-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.detail-item:nth-child(4n){border-left:1px solid var(--line)}.detail-item:nth-child(3n){border-left:0}
}

@media (max-width: 900px) {
  .sidebar { width:min(290px,86vw); transform:translateX(105%); transition:transform .22s ease; box-shadow:-16px 0 45px rgba(12,25,43,.3); }
  .sidebar-open .sidebar { transform:translateX(0); }
  .sidebar-close { display:inline-flex; }
  .sidebar-overlay { position:fixed; inset:0; z-index:35; display:block; background:rgba(12,25,43,.55); opacity:0; visibility:hidden; transition:.22s ease; }
  .sidebar-open .sidebar-overlay { opacity:1; visibility:visible; }
  .sidebar-open { overflow:hidden; }
  .topbar { height:64px; margin-right:0; padding:0 14px; }
  .topbar>div strong { font-size:.83rem; }
  .topbar>div small { display:none; }
  .topbar-scope { max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; }
  .notification-bell { margin-right:auto; }
  .menu-toggle { display:inline-flex; }
  body > main:not(.login) { width:100%; margin:0; padding:24px 14px 40px; }
  .title { align-items: flex-start; }
  .title .button { white-space: nowrap; }
  .filters, .grid-form, .user-form { grid-template-columns: 1fr; }
  .senior-filters{grid-template-columns:1fr}.filter-actions{grid-column:auto}
  .grid-form { gap: 14px; }
  .card { border-radius: 11px; padding: 16px; }
  .issued-card-grid { grid-template-columns:1fr; }
  .table-wrap { padding: 0; border-radius: 11px; }
  th, td { padding: 12px; }
  .login { padding: 14px; }
  .login > .card, .login > form { padding: 26px 20px; }
  .stat-grid,.chart-grid,.demographic-grid { grid-template-columns:1fr; }.stat-card{padding:16px}.donut-layout{flex-direction:column;gap:20px}.legend{width:100%}.h-bars,.region-gender-bars{grid-template-columns:1fr}.dashboard-title{align-items:center}.section-heading{align-items:flex-start;flex-direction:column}.dashboard-jumps{margin-top:0}
  .patient-title{flex-direction:column}.title-actions{width:100%}.title-actions .button{flex:1}.profile-head{padding:19px 16px;flex-wrap:wrap}.profile-badge{width:100%;margin:0;text-align:center}.detail-grid{grid-template-columns:1fr 1fr}.detail-item:nth-child(3n){border-left:1px solid var(--line)}.detail-item:nth-child(2n){border-left:0}
  .modal-backdrop{padding:8px}.patient-modal{max-height:96vh;border-radius:13px}.patient-modal .profile-head{padding:17px 15px 17px 58px}.patient-modal .profile-badge{display:none}.patient-modal .detail-grid{grid-template-columns:1fr 1fr}.modal-scroll{max-height:calc(96vh - 174px)}.patient-modal footer .button{flex:1}.modal-close{left:12px;top:13px}
  .ticket-row{grid-template-columns:8px minmax(0,1fr)}.ticket-row>div:last-child{grid-column:2;flex-direction:row;align-items:center}.ticket-hero{padding:17px}.ticket-hero-icon{display:none}.ticket-thread{padding:22px 13px;gap:18px}.ticket-message-wrap{width:94%;gap:7px}.message-avatar{width:30px;height:30px;flex-basis:30px;border-radius:9px}.ticket-message{min-width:0;padding:11px 13px}.ticket-message header{flex-wrap:wrap}.ticket-message header time{width:100%;margin:0}.ticket-reply{padding:17px 14px}.reply-actions>small{display:none}.reply-actions button{width:100%}
}
