
:root {
  color-scheme:dark;
  --navy-950:#08080a;
  --navy-900:#0d0d10;
  --navy-800:#17171b;
  --teal-700:#2563eb;
  --teal-600:#2f6fed;
  --teal-500:#4f83ff;
  --teal-100:#172a55;
  --teal-50:#111c35;
  --blue-600:#2f6fed;
  --blue-50:#12244a;
  --green-600:#32c875;
  --green-50:#102b1c;
  --amber-700:#f4b942;
  --amber-500:#f5a524;
  --amber-50:#2c220e;
  --red-700:#ff6b6b;
  --red-500:#ef4444;
  --red-50:#321719;
  --slate-950:#ffffff;
  --slate-900:#f5f5f6;
  --slate-800:#e7e7ea;
  --slate-700:#d1d1d6;
  --slate-600:#b5b5bd;
  --slate-500:#9898a2;
  --slate-400:#767680;
  --slate-300:#4a4a51;
  --slate-200:#333338;
  --slate-100:#242428;
  --slate-50:#1b1b1f;
  --surface:#141416;
  --surface-soft:#19191c;
  --canvas:#0b0b0d;
  --text:#f6f6f7;
  --muted:#a8a8b1;
  --border:#2d2d33;
  --border-strong:#46464f;
  --shadow-xs:0 1px 2px rgba(0,0,0,.28);
  --shadow-sm:0 8px 24px rgba(0,0,0,.34);
  --shadow-md:0 20px 54px rgba(0,0,0,.46);
  --shadow-lg:0 34px 90px rgba(0,0,0,.62);
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:17px;
  --radius-xl:22px;
  --sidebar:280px;
  --topbar:76px;
  --assistant:408px;
  --transition:180ms cubic-bezier(.2,.8,.2,1);
  --font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[data-theme="dark"] { color-scheme:dark; }
html[data-theme="light"] {
  color-scheme:light;
  --navy-950:#111114;
  --navy-900:#17171b;
  --navy-800:#222228;
  --surface:#ffffff;
  --surface-soft:#f7f7f9;
  --canvas:#f1f1f4;
  --text:#18181b;
  --muted:#666670;
  --border:#dedee4;
  --border-strong:#c7c7d0;
  --slate-50:#f7f7f9;
  --slate-100:#ededf1;
  --slate-200:#dedee4;
  --slate-300:#c7c7d0;
  --slate-400:#9a9aa4;
  --slate-500:#71717a;
  --slate-600:#52525b;
  --slate-700:#3f3f46;
  --slate-800:#27272a;
  --slate-900:#18181b;
  --slate-950:#09090b;
  --teal-50:#eff4ff;
  --teal-100:#dce7ff;
  --blue-50:#eff4ff;
  --green-50:#effcf4;
  --amber-50:#fff8e8;
  --red-50:#fff1f2;
  --shadow-xs:0 1px 2px rgba(24,24,27,.05);
  --shadow-sm:0 8px 24px rgba(24,24,27,.09);
  --shadow-md:0 20px 54px rgba(24,24,27,.13);
}

* { box-sizing:border-box; }
html { min-height:100%; scroll-behavior:smooth; }
body { margin:0; min-height:100vh; font-family:var(--font); background:var(--canvas); color:var(--text); -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
svg { display:block; }
img { max-width:100%; }
::selection { background:rgba(20,184,166,.24); }
:focus-visible { outline:3px solid rgba(20,184,166,.28); outline-offset:2px; }
.hidden { display:none!important; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.muted { color:var(--muted); }
.nowrap { white-space:nowrap; }
.text-danger { color:var(--red-700); }
.text-warning { color:var(--amber-700); }
.text-success { color:var(--green-600); }
.text-teal { color:var(--teal-700); }
.mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }

/* Login */
.login-page { min-height:100vh; display:grid; grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr); background:var(--surface); }
.login-visual { position:relative; overflow:hidden; padding:64px clamp(36px,6vw,96px); background:linear-gradient(145deg,#071d2b 0%,#0b3445 54%,#0f766e 135%); color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.login-visual::before,.login-visual::after { content:""; position:absolute; border:1px solid rgba(94,234,212,.16); border-radius:50%; pointer-events:none; }
.login-visual::before { width:520px;height:520px;right:-170px;top:-180px; box-shadow:0 0 0 72px rgba(45,212,191,.035),0 0 0 144px rgba(45,212,191,.025); }
.login-visual::after { width:280px;height:280px;left:-145px;bottom:-120px; box-shadow:0 0 0 54px rgba(255,255,255,.025); }
.login-brand { position:relative; z-index:1; display:flex; align-items:center; gap:14px; font-size:23px; font-weight:800; letter-spacing:-.03em; }
.brand-mark { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg,#2dd4bf,#0d9488); color:white; box-shadow:0 12px 34px rgba(13,148,136,.32); flex:0 0 auto; }
.brand-mark svg { width:26px;height:26px; }
.brand-mark.small { width:39px;height:39px;border-radius:12px; }
.brand-mark.small svg { width:22px;height:22px; }
.login-message { position:relative; z-index:1; max-width:620px; padding:80px 0; }
.login-eyebrow { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#5eead4; }
.login-message h1 { margin:18px 0 18px; max-width:650px; font-size:clamp(38px,5vw,64px); line-height:1.02; letter-spacing:-.05em; }
.login-message p { margin:0; max-width:570px; color:#c7d8df; line-height:1.75; font-size:17px; }
.network-strip { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:10px; }
.network-chip { display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055);backdrop-filter:blur(8px);border-radius:999px;font-size:12px;color:#d7e9ee; }
.network-chip svg { width:16px;height:16px;color:#5eead4; }
.login-form-side { display:flex; align-items:center; justify-content:center; padding:48px clamp(28px,6vw,92px); background:var(--surface); }
.login-card { width:min(100%,470px); }
.login-card .mobile-brand { display:none; margin-bottom:36px; }
.login-card h2 { margin:0 0 8px;font-size:32px;letter-spacing:-.035em; }
.login-card > p { margin:0 0 34px;color:var(--muted);line-height:1.6; }
.login-footer-note { margin-top:26px!important; padding-top:22px; border-top:1px solid var(--border); font-size:12px; color:var(--muted); display:flex;gap:9px;align-items:flex-start; }
.login-footer-note svg { width:18px;height:18px;flex:0 0 auto;color:var(--teal-700); }

/* Forms and buttons */
.form-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; }
.field { grid-column:span 12; display:flex; flex-direction:column; gap:7px; min-width:0; }
.field.span-2 { grid-column:span 2; }.field.span-3 { grid-column:span 3; }.field.span-4 { grid-column:span 4; }.field.span-5 { grid-column:span 5; }.field.span-6 { grid-column:span 6; }.field.span-7 { grid-column:span 7; }.field.span-8 { grid-column:span 8; }.field.span-9 { grid-column:span 9; }
.field label,.field-label { color:var(--slate-700); font-size:12px; font-weight:750; letter-spacing:.015em; }
.field-hint { color:var(--muted); font-size:11px; line-height:1.45; }
.input,.select,.textarea { width:100%; border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:10px; padding:11px 13px; min-height:43px; transition:border-color var(--transition),box-shadow var(--transition),background var(--transition); }
.textarea { min-height:98px; resize:vertical; line-height:1.55; }
.input:hover,.select:hover,.textarea:hover { border-color:var(--border-strong); }
.input:focus,.select:focus,.textarea:focus { outline:none;border-color:var(--teal-600);box-shadow:0 0 0 3px rgba(13,148,136,.13); }
.input[disabled],.select[disabled],.textarea[disabled] { opacity:.65;cursor:not-allowed;background:var(--slate-50); }
.input-wrap { position:relative; }
.input-wrap .input { padding-left:42px; }
.input-wrap .leading-icon { position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none; }
.input-wrap .leading-icon svg { width:19px;height:19px; }
.input-wrap .trailing-button { position:absolute;right:6px;top:50%;transform:translateY(-50%); }
.check-row { display:flex;align-items:center;gap:9px;font-size:13px;color:var(--slate-700); }
.check-row input { width:17px;height:17px;accent-color:var(--teal-700); }
.form-actions { display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px; }
.btn { appearance:none;border:1px solid transparent;border-radius:10px;min-height:40px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:750;line-height:1.2;transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition);white-space:nowrap; }
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn svg { width:17px;height:17px; }
.btn-primary { color:#fff;background:linear-gradient(135deg,var(--teal-700),var(--teal-600));box-shadow:0 7px 16px rgba(13,148,136,.19); }
.btn-primary:hover { box-shadow:0 9px 20px rgba(13,148,136,.28); }
.btn-blue { color:#fff;background:var(--blue-600);box-shadow:0 7px 16px rgba(37,99,235,.18); }
.btn-secondary { color:var(--slate-700);background:var(--surface);border-color:var(--border); }
.btn-secondary:hover { border-color:var(--teal-600);color:var(--teal-700); }
.btn-soft { color:var(--teal-700);background:var(--teal-50);border-color:rgba(13,148,136,.14); }
.btn-danger { color:#fff;background:var(--red-700); }
.btn-danger-soft { color:var(--red-700);background:var(--red-50);border-color:rgba(185,28,28,.12); }
.btn-warning-soft { color:var(--amber-700);background:var(--amber-50);border-color:rgba(180,83,9,.13); }
.btn-ghost { color:var(--slate-600);background:transparent;border-color:transparent; }
.btn-ghost:hover { background:var(--slate-100);color:var(--text); }
.btn-icon { width:40px;padding:0;border-radius:10px; }
.btn-sm { min-height:33px;padding:7px 11px;font-size:12px;border-radius:8px; }
.btn-lg { min-height:49px;padding:12px 18px;font-size:14px; }
.btn-block { width:100%; }
.btn[disabled] { opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important; }

/* App shell */
.app-shell { min-height:100vh; }
.sidebar { position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:70;background:var(--navy-950);color:#c9d9df;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.065);transition:transform var(--transition); }
.sidebar-head { min-height:var(--topbar);padding:13px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-brand-title { color:#fff;font-weight:800;letter-spacing:-.02em;font-size:17px; }
.sidebar-brand-sub { color:#7995a2;font-size:10px;margin-top:2px; }
.sidebar-scroll { overflow-y:auto;overscroll-behavior:contain;padding:18px 13px 22px;scrollbar-width:thin;scrollbar-color:#214151 transparent; }
.nav-section { margin-bottom:20px; }
.nav-section-label { padding:0 11px 8px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#62808d; }
.nav-link { position:relative;display:flex;align-items:center;gap:12px;min-height:42px;padding:9px 11px;border-radius:10px;color:#b5c8d0;font-size:13px;font-weight:620;transition:background var(--transition),color var(--transition),transform var(--transition);margin:2px 0; }
.nav-link svg { width:19px;height:19px;flex:0 0 auto;color:#71909c; }
.nav-link:hover { background:rgba(255,255,255,.055);color:#fff;transform:translateX(2px); }
.nav-link.active { background:linear-gradient(90deg,rgba(20,184,166,.2),rgba(20,184,166,.08));color:#fff;box-shadow:inset 3px 0 0 #2dd4bf; }
.nav-link.active svg { color:#5eead4; }
.nav-count { margin-left:auto;min-width:21px;height:20px;padding:0 6px;border-radius:10px;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:10px; }
.sidebar-foot { margin-top:auto;padding:14px 16px 17px;border-top:1px solid rgba(255,255,255,.08); }
.sidebar-user { display:flex;gap:10px;align-items:center;min-width:0; }
.avatar { width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#1d5e69,#0d9488);color:white;display:grid;place-items:center;font-size:12px;font-weight:850;flex:0 0 auto; }
.avatar.lg { width:48px;height:48px;border-radius:15px;font-size:15px; }
.sidebar-user-meta { min-width:0; }
.sidebar-user-name { color:white;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.sidebar-user-role { color:#7895a1;font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }

.topbar { position:fixed;z-index:60;top:0;left:var(--sidebar);right:0;height:var(--topbar);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:16px;transition:right var(--transition),left var(--transition); }
.app-shell.ai-open .topbar { right:var(--assistant); }
.mobile-menu { display:none; }
.global-search { position:relative;flex:1 1 690px;max-width:690px;min-width:240px; }
.global-search-input { width:100%;height:44px;padding:0 104px 0 44px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);color:var(--text);font-size:13px;font-weight:560;transition:all var(--transition); }
.global-search-input:focus { outline:none;border-color:var(--teal-600);background:var(--surface);box-shadow:0 0 0 3px rgba(13,148,136,.11); }
.global-search-icon { position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--teal-700); }
.global-search-icon svg { width:19px;height:19px; }
.search-shortcut { position:absolute;right:8px;top:50%;transform:translateY(-50%);border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:4px 7px;font-size:10px;color:var(--muted); }
.search-results { position:absolute;z-index:120;top:51px;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;max-height:440px;overflow-y:auto; }
.search-result-head { padding:11px 14px;background:var(--surface-soft);border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted); }
.search-result { width:100%;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border-bottom:1px solid var(--border); }
.search-result:last-child { border-bottom:0; }
.search-result:hover { background:var(--teal-50); }
.search-result-code { font-size:10px;color:var(--teal-700);font-weight:750;margin-top:3px; }
.search-result-meta { margin-left:auto;text-align:right;color:var(--muted);font-size:10px; }
.topbar-spacer { flex:0 1 40px;min-width:8px; }
.topbar-actions { display:flex;align-items:center;gap:7px; }
.top-icon-btn { position:relative;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--slate-600);display:grid;place-items:center;transition:background var(--transition),color var(--transition); }
.top-icon-btn:hover { background:var(--slate-100);color:var(--text); }
.top-icon-btn svg { width:19px;height:19px; }
.notification-dot { position:absolute;right:4px;top:3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red-500);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;border:2px solid var(--surface); }
.org-chip { display:flex;align-items:center;gap:9px;padding:6px 9px 6px 6px;border:1px solid var(--border);border-radius:11px;background:var(--surface);max-width:220px; }
.org-symbol { width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);font-size:10px;font-weight:850; }
.org-chip-text { min-width:0; }
.org-chip-name { font-size:11px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.org-chip-role { font-size:9px;color:var(--muted);margin-top:1px; }

.workspace { min-height:100vh;margin-left:var(--sidebar);padding-top:var(--topbar);transition:margin-right var(--transition),margin-left var(--transition); }
.app-shell.ai-open .workspace { margin-right:var(--assistant); }
.page { padding:28px clamp(20px,3vw,42px) 52px;max-width:1680px;margin:0 auto; }
.page-head { display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px; }
.page-kicker { display:flex;align-items:center;gap:7px;color:var(--teal-700);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px; }
.page-kicker svg { width:15px;height:15px; }
.page-title { margin:0;font-size:clamp(25px,2.6vw,34px);line-height:1.15;letter-spacing:-.035em; }
.page-subtitle { margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.55;max-width:760px; }
.page-actions { display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end; }
.breadcrumb { display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin-bottom:9px; }
.breadcrumb a:hover { color:var(--teal-700); }

/* Cards, grids, data */
.metrics-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px; }
.metric-card { position:relative;overflow:hidden;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg);padding:19px;box-shadow:var(--shadow-xs);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition); }
.metric-card.clickable:hover { transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--border-strong); }
.metric-card::after { content:"";position:absolute;width:78px;height:78px;border-radius:50%;right:-31px;top:-31px;background:var(--metric-accent,rgba(13,148,136,.09)); }
.metric-top { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.metric-icon { width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700); }
.metric-icon svg { width:19px;height:19px; }
.metric-label { font-size:11px;color:var(--muted);font-weight:700; }
.metric-value { margin-top:15px;font-size:27px;line-height:1;font-weight:850;letter-spacing:-.035em; }
.metric-detail { margin-top:8px;color:var(--muted);font-size:10px;line-height:1.4; }
.metric-card.tone-warning .metric-icon { background:var(--amber-50);color:var(--amber-700); }.metric-card.tone-warning { --metric-accent:rgba(245,158,11,.1); }
.metric-card.tone-danger .metric-icon { background:var(--red-50);color:var(--red-700); }.metric-card.tone-danger { --metric-accent:rgba(239,68,68,.09); }
.metric-card.tone-success .metric-icon { background:var(--green-50);color:var(--green-600); }.metric-card.tone-success { --metric-accent:rgba(22,163,74,.08); }
.metric-card.tone-primary .metric-icon { background:var(--blue-50);color:var(--blue-600); }.metric-card.tone-primary { --metric-accent:rgba(37,99,235,.08); }

.grid-2 { display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:18px; }
.grid-equal { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.grid-3 { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);min-width:0; }
.card-head { min-height:60px;padding:15px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px; }
.card-title-wrap { min-width:0; }
.card-title { margin:0;font-size:14px;font-weight:800;letter-spacing:-.01em; }
.card-subtitle { color:var(--muted);font-size:10px;margin-top:4px;line-height:1.45; }
.card-body { padding:18px; }
.card-body.flush { padding:0; }
.card-foot { padding:12px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px; }
.section-title { margin:27px 0 13px;font-size:16px;font-weight:820;letter-spacing:-.015em; }
.section-title:first-child { margin-top:0; }
.empty-state { min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted); }
.empty-icon { width:54px;height:54px;border-radius:17px;background:var(--slate-100);display:grid;place-items:center;color:var(--slate-500);margin-bottom:14px; }
.empty-icon svg { width:25px;height:25px; }
.empty-state h3 { margin:0 0 6px;color:var(--text);font-size:15px; }
.empty-state p { margin:0;max-width:400px;font-size:12px;line-height:1.6; }

.table-wrap { width:100%;overflow:auto;scrollbar-width:thin; }
.data-table { width:100%;border-collapse:separate;border-spacing:0;min-width:760px; }
.data-table th { position:sticky;top:0;z-index:1;text-align:left;background:var(--surface-soft);color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap; }
.data-table td { padding:12px 14px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:middle; }
.data-table tbody tr:last-child td { border-bottom:0; }
.data-table tbody tr:hover td { background:color-mix(in srgb,var(--teal-50) 55%,transparent); }
.table-primary { font-weight:750;color:var(--text); }
.table-secondary { color:var(--muted);font-size:10px;margin-top:3px; }
.table-actions { display:flex;align-items:center;justify-content:flex-end;gap:6px; }
.status { display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 8px;border-radius:999px;background:var(--slate-100);color:var(--slate-600);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap; }
.status::before { content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.65; }
.status.success,.status.active,.status.completed,.status.paid,.status.approved,.status.dispensed,.status.available { background:var(--green-50);color:var(--green-600); }
.status.warning,.status.pending,.status.ordered,.status.partially_received,.status.waiting_clinician,.status.waiting_triage,.status.waiting_billing,.status.waiting_pharmacy,.status.sent_to_pharmacy,.status.partially_dispensed { background:var(--amber-50);color:var(--amber-700); }
.status.danger,.status.rejected,.status.cancelled,.status.expired,.status.out { background:var(--red-50);color:var(--red-700); }
.status.info,.status.issued,.status.draft,.status.in_progress { background:var(--blue-50);color:var(--blue-600); }
.priority { display:inline-flex;align-items:center;padding:4px 8px;border-radius:7px;font-size:9px;font-weight:850;text-transform:uppercase; }
.priority.routine { color:var(--teal-700);background:var(--teal-50); }.priority.urgent { color:var(--amber-700);background:var(--amber-50); }.priority.emergency { color:var(--red-700);background:var(--red-50); }
.badge { display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:5px 8px;background:var(--surface);font-size:10px;color:var(--slate-600); }
.badge svg { width:13px;height:13px; }
.badge.warning { background:var(--amber-50);border-color:rgba(180,83,9,.15);color:var(--amber-700); }.badge.danger { background:var(--red-50);border-color:rgba(185,28,28,.15);color:var(--red-700); }.badge.success { background:var(--green-50);border-color:rgba(22,163,74,.15);color:var(--green-600); }.badge.teal { background:var(--teal-50);border-color:rgba(15,118,110,.15);color:var(--teal-700); }

/* Dashboard */
.welcome-panel { position:relative;overflow:hidden;background:linear-gradient(128deg,var(--navy-950),#0d3f4c 72%,#0f766e);color:white;border-radius:var(--radius-xl);padding:26px 29px;margin-bottom:18px;box-shadow:var(--shadow-sm); }
.welcome-panel::before { content:"";position:absolute;width:270px;height:270px;border:1px solid rgba(94,234,212,.14);border-radius:50%;right:-80px;top:-145px;box-shadow:0 0 0 45px rgba(94,234,212,.035),0 0 0 90px rgba(94,234,212,.025); }
.welcome-content { position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px; }
.welcome-copy h1 { margin:4px 0 7px;font-size:28px;letter-spacing:-.035em; }
.welcome-copy p { margin:0;color:#bad1d9;font-size:12px;line-height:1.6; }
.welcome-meta { display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end; }
.live-pill { display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11);font-size:10px;color:#d8eaef; }
.live-pill::before { content:"";width:7px;height:7px;background:#34d399;border-radius:50%;box-shadow:0 0 0 4px rgba(52,211,153,.13); }
.quick-actions { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
.quick-action { min-height:80px;padding:13px;border:1px solid var(--border);background:var(--surface);border-radius:13px;display:flex;align-items:center;gap:12px;transition:all var(--transition); }
.quick-action:hover { border-color:var(--teal-600);box-shadow:var(--shadow-sm);transform:translateY(-1px); }
.quick-action-icon { width:37px;height:37px;border-radius:11px;background:var(--teal-50);color:var(--teal-700);display:grid;place-items:center;flex:0 0 auto; }
.quick-action-icon svg { width:19px;height:19px; }
.quick-action-label { font-size:11px;font-weight:760;line-height:1.4; }
.activity-list { display:flex;flex-direction:column; }
.activity-item { display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:11px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border); }
.activity-item:last-child { border-bottom:0; }
.activity-icon { width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:var(--slate-100);color:var(--slate-600); }
.activity-icon svg { width:17px;height:17px; }
.activity-main { min-width:0; }
.activity-title { font-size:11px;font-weight:750;line-height:1.4; }
.activity-detail { font-size:10px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.activity-time { color:var(--muted);font-size:9px;white-space:nowrap; }

/* Patient pages */
.patient-hero { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:22px;margin-bottom:18px;box-shadow:var(--shadow-xs); }
.patient-identity { display:flex;align-items:center;gap:16px;min-width:0; }
.patient-avatar { width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,var(--teal-100),var(--teal-50));color:var(--teal-700);display:grid;place-items:center;font-size:17px;font-weight:850;flex:0 0 auto; }
.patient-name { font-size:22px;font-weight:850;letter-spacing:-.025em; }
.patient-code { margin-top:5px;color:var(--teal-700);font-size:11px;font-weight:750;font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.patient-tags { display:flex;gap:7px;flex-wrap:wrap;margin-top:11px; }
.patient-actions { display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end; }
.tabs { display:flex;gap:3px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;margin-bottom:18px; }
.tabs::-webkit-scrollbar { display:none; }
.tab { position:relative;border:0;background:transparent;color:var(--muted);padding:11px 14px;font-size:11px;font-weight:760;white-space:nowrap; }
.tab:hover { color:var(--text); }
.tab.active { color:var(--teal-700); }
.tab.active::after { content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--teal-600);border-radius:2px 2px 0 0; }
.info-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px; }
.info-row { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--border); }
.info-label { color:var(--muted);font-size:10px; }
.info-value { font-size:11px;font-weight:690;text-align:right;word-break:break-word; }
.timeline { position:relative;padding-left:28px; }
.timeline::before { content:"";position:absolute;left:7px;top:9px;bottom:9px;width:1px;background:var(--border); }
.timeline-item { position:relative;padding:0 0 20px; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-dot { position:absolute;left:-28px;top:4px;width:15px;height:15px;border-radius:50%;background:var(--surface);border:4px solid var(--teal-600);box-shadow:0 0 0 3px var(--teal-50); }
.timeline-head { display:flex;align-items:flex-start;justify-content:space-between;gap:12px; }
.timeline-title { font-size:12px;font-weight:800; }
.timeline-time { color:var(--muted);font-size:9px;white-space:nowrap; }
.timeline-body { margin-top:7px;padding:12px;background:var(--surface-soft);border:1px solid var(--border);border-radius:11px;font-size:11px;line-height:1.55;color:var(--slate-700); }
.allergy-banner { display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid rgba(185,28,28,.15);background:var(--red-50);border-radius:12px;color:var(--red-700); }
.allergy-banner svg { width:19px;height:19px;flex:0 0 auto; }

/* Queue and workflow */
.queue-board { display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:13px;overflow-x:auto;padding-bottom:4px; }
.queue-column { min-width:220px;border:1px solid var(--border);background:var(--surface-soft);border-radius:15px;padding:12px; }
.queue-column-head { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 3px 11px;font-size:11px;font-weight:800; }
.queue-count { display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:10px; }
.queue-card { padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:9px;box-shadow:var(--shadow-xs); }
.queue-card:last-child { margin-bottom:0; }
.queue-card-title { font-size:11px;font-weight:800; }
.queue-card-code { margin-top:3px;color:var(--teal-700);font-size:9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.queue-card-meta { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px; }

/* Clinical workspace */
.clinical-layout { display:grid;grid-template-columns:minmax(300px,.73fr) minmax(0,1.35fr);gap:18px; }
.patient-selector { position:sticky;top:94px;align-self:start; }
.clinical-record-summary { padding:15px;border-radius:13px;background:linear-gradient(145deg,var(--navy-950),#124251);color:#fff;margin-bottom:15px; }
.clinical-record-summary .muted { color:#9bb8c3; }
.vitals-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px; }
.vital-box { padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft); }
.vital-label { font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:750; }
.vital-value { margin-top:5px;font-size:15px;font-weight:820; }
.rx-builder { display:flex;flex-direction:column;gap:9px; }
.rx-line { display:grid;grid-template-columns:minmax(160px,1.3fr) 90px minmax(190px,1.6fr) 36px;gap:8px;align-items:start;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft); }
.rx-line .input,.rx-line .select { min-height:38px;padding:8px 10px;font-size:11px; }

/* Inventory */
.stock-level { min-width:110px; }
.stock-level-top { display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-bottom:5px; }
.progress { height:6px;background:var(--slate-100);border-radius:999px;overflow:hidden; }
.progress-bar { height:100%;background:var(--teal-600);border-radius:inherit; }
.progress-bar.low { background:var(--amber-500); }.progress-bar.out { background:var(--red-500); }
.stock-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.stock-card { border:1px solid var(--border);background:var(--surface);border-radius:15px;padding:15px; }
.stock-card-head { display:flex;align-items:flex-start;justify-content:space-between;gap:10px; }
.stock-name { font-size:12px;font-weight:800; }
.stock-sku { margin-top:3px;color:var(--muted);font-size:9px; }
.stock-number { margin-top:17px;font-size:26px;font-weight:850;letter-spacing:-.03em; }
.stock-unit { color:var(--muted);font-size:10px;margin-left:4px;font-weight:600; }
.stock-card-foot { margin-top:13px;padding-top:11px;border-top:1px solid var(--border);display:flex;justify-content:space-between;color:var(--muted);font-size:9px; }

/* Alerts */
.alert { display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border-radius:11px;border:1px solid var(--border);background:var(--surface-soft);font-size:11px;line-height:1.5; }
.alert + .alert { margin-top:8px; }
.alert svg { width:18px;height:18px;flex:0 0 auto;margin-top:1px; }
.alert.info { background:var(--blue-50);border-color:rgba(37,99,235,.13);color:var(--blue-600); }.alert.warning { background:var(--amber-50);border-color:rgba(180,83,9,.13);color:var(--amber-700); }.alert.critical,.alert.danger { background:var(--red-50);border-color:rgba(185,28,28,.14);color:var(--red-700); }.alert.success { background:var(--green-50);border-color:rgba(22,163,74,.14);color:var(--green-600); }
.alert-title { font-weight:800;color:inherit; }
.alert-detail { margin-top:2px;color:inherit;opacity:.9; }

/* AI drawer */
.ai-drawer { position:fixed;z-index:65;top:0;right:0;bottom:0;width:var(--assistant);background:var(--surface);border-left:1px solid var(--border);box-shadow:-10px 0 34px rgba(15,23,42,.06);display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--transition); }
.app-shell.ai-open .ai-drawer { transform:translateX(0); }
.ai-head { min-height:var(--topbar);padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;background:linear-gradient(180deg,var(--surface),var(--surface-soft)); }
.ai-symbol { width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue-600),var(--teal-600));color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.2); }
.ai-symbol svg { width:21px;height:21px; }
.ai-head-copy { min-width:0;flex:1; }
.ai-head-title { font-size:13px;font-weight:850; }
.ai-head-sub { color:var(--muted);font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ai-body { flex:1;overflow-y:auto;overscroll-behavior:contain;padding:15px;scrollbar-width:thin; }
.ai-context { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px; }
.ai-context-chip { display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:var(--teal-50);color:var(--teal-700);font-size:9px;font-weight:750; }
.ai-context-chip svg { width:12px;height:12px; }
.ai-welcome { border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,var(--surface-soft),var(--surface));padding:15px;margin-bottom:14px; }
.ai-welcome-title { font-size:12px;font-weight:800; }
.ai-welcome-copy { margin-top:6px;color:var(--muted);font-size:10px;line-height:1.6; }
.ai-prompt { min-height:92px; }
.ai-shortcuts { display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 13px; }
.ai-shortcut { border:1px solid var(--border);background:var(--surface-soft);color:var(--slate-600);border-radius:999px;padding:7px 10px;font-size:9px;font-weight:720; }
.ai-shortcut:hover { border-color:var(--teal-600);color:var(--teal-700);background:var(--teal-50); }
.ai-output { margin-top:17px;padding-top:16px;border-top:1px solid var(--border); }
.ai-output-title { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:12px;font-weight:850; }
.ai-mode { font-size:8px;letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:6px;background:var(--green-50);color:var(--green-600); }
.ai-summary { font-size:11px;line-height:1.65;color:var(--slate-700);min-height:18px; }
.ai-section { margin-top:15px; }
.ai-section-title { display:flex;align-items:center;gap:6px;margin-bottom:7px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--muted); }
.ai-section-title svg { width:14px;height:14px; }
.ai-list { margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px; }
.ai-list li { position:relative;padding:9px 10px 9px 25px;border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;font-size:10px;line-height:1.5;color:var(--slate-700); }
.ai-list li::before { content:"";position:absolute;left:11px;top:14px;width:5px;height:5px;border-radius:50%;background:var(--teal-600); }
.ai-suggestion { border:1px solid var(--border);border-radius:12px;padding:11px;margin-top:8px;background:var(--surface); }
.ai-suggestion-top { display:flex;align-items:flex-start;justify-content:space-between;gap:9px; }
.ai-suggestion-name { font-size:11px;font-weight:850; }
.ai-suggestion-meta { color:var(--muted);font-size:9px;margin-top:3px; }
.ai-suggestion-reason { font-size:9px;color:var(--slate-600);line-height:1.5;margin-top:8px; }
.ai-suggestion-warnings { margin-top:8px;color:var(--amber-700);font-size:9px;line-height:1.45; }
.ai-disclaimer { margin-top:15px;padding:11px;border-radius:11px;background:var(--blue-50);color:var(--blue-600);font-size:9px;line-height:1.55; }
.ai-loading { display:flex;align-items:center;gap:9px;color:var(--muted);font-size:10px;padding:12px 0; }
.typing-dots { display:flex;gap:3px; }
.typing-dots span { width:5px;height:5px;border-radius:50%;background:var(--teal-600);animation:typing 1s infinite ease-in-out; }
.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}
@keyframes typing { 0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:1} }
.ai-fab { position:fixed;z-index:64;right:22px;bottom:22px;width:54px;height:54px;border:0;border-radius:17px;background:linear-gradient(135deg,var(--blue-600),var(--teal-600));color:#fff;display:grid;place-items:center;box-shadow:0 14px 28px rgba(37,99,235,.28);transition:transform var(--transition); }
.ai-fab:hover { transform:translateY(-2px) scale(1.02); }
.ai-fab svg { width:24px;height:24px; }
.app-shell.ai-open .ai-fab { display:none; }

/* Drawers and menus */
.popover { position:fixed;z-index:140;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden; }
.notification-panel { top:62px;right:18px;width:min(390px,calc(100vw - 28px));max-height:560px;display:flex;flex-direction:column; }
.popover-head { padding:13px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px; }
.popover-title { font-size:12px;font-weight:850; }
.notification-list { overflow-y:auto; }
.notification-item { width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;text-align:left;border:0;border-bottom:1px solid var(--border);background:var(--surface);padding:12px 14px;color:var(--text); }
.notification-item:hover { background:var(--surface-soft); }
.notification-item.unread { background:var(--teal-50); }
.notification-icon { width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--slate-100);color:var(--slate-600); }
.notification-icon.warning { background:var(--amber-50);color:var(--amber-700); }.notification-icon.critical { background:var(--red-50);color:var(--red-700); }.notification-icon.info { background:var(--blue-50);color:var(--blue-600); }
.notification-icon svg { width:17px;height:17px; }
.notification-title { font-size:10px;font-weight:800; }
.notification-detail { margin-top:3px;color:var(--muted);font-size:9px;line-height:1.45; }
.notification-time { margin-top:5px;color:var(--muted);font-size:8px; }
.account-menu { top:62px;right:18px;width:260px;padding:7px; }
.account-card { padding:11px;border-bottom:1px solid var(--border);margin-bottom:5px; }
.account-name { font-size:12px;font-weight:850; }.account-role { color:var(--muted);font-size:9px;margin-top:3px; }
.menu-item { width:100%;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:10px;border-radius:9px;padding:10px;font-size:11px;text-align:left; }
.menu-item:hover { background:var(--slate-100); }.menu-item svg { width:17px;height:17px;color:var(--muted); }

/* Modal */
.modal-backdrop { position:fixed;z-index:200;inset:0;background:rgba(2,13,20,.62);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px;animation:fadein 120ms ease-out; }
.modal { width:min(700px,100%);max-height:min(90vh,900px);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:modalin 160ms ease-out; }
.modal.modal-lg { width:min(980px,100%); }.modal.modal-sm { width:min(480px,100%); }
.modal-head { padding:17px 19px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px; }
.modal-title { font-size:16px;font-weight:850;letter-spacing:-.015em; }
.modal-subtitle { color:var(--muted);font-size:10px;margin-top:3px; }
.modal-body { padding:20px;overflow:auto; }
.modal-foot { padding:13px 19px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:9px; }
@keyframes fadein { from{opacity:0}to{opacity:1} } @keyframes modalin { from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none} }

/* Toast */
.toast-root { position:fixed;z-index:300;right:20px;bottom:20px;display:flex;flex-direction:column;gap:9px;width:min(390px,calc(100vw - 40px));pointer-events:none; }
.toast { pointer-events:auto;display:grid;grid-template-columns:34px minmax(0,1fr) 28px;gap:10px;align-items:start;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--shadow-lg);animation:toastin 180ms ease-out; }
.toast-icon { width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700); }
.toast-icon.error { background:var(--red-50);color:var(--red-700); }.toast-icon.warning { background:var(--amber-50);color:var(--amber-700); }
.toast-icon svg { width:18px;height:18px; }
.toast-title { font-size:11px;font-weight:830; }.toast-message { color:var(--muted);font-size:9px;line-height:1.5;margin-top:3px; }
.toast-close { width:28px;height:28px;border:0;background:transparent;color:var(--muted);border-radius:8px;display:grid;place-items:center; }
.toast-close:hover { background:var(--slate-100); }
.toast-close svg { width:14px;height:14px; }
@keyframes toastin { from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none} }

/* Loading */
.page-loader { min-height:calc(100vh - var(--topbar) - 80px);display:grid;place-items:center; }
.loader-card { display:flex;flex-direction:column;align-items:center;gap:13px;color:var(--muted);font-size:11px; }
.spinner { width:34px;height:34px;border-radius:50%;border:3px solid var(--slate-200);border-top-color:var(--teal-600);animation:spin .75s linear infinite; }
.spinner.sm { width:17px;height:17px;border-width:2px; }
@keyframes spin { to{transform:rotate(360deg)} }
.skeleton { background:linear-gradient(90deg,var(--slate-100),var(--slate-50),var(--slate-100));background-size:200% 100%;animation:skeleton 1.4s infinite; }
@keyframes skeleton { to{background-position:-200% 0} }

/* Print */
.print-sheet { background:#fff;color:#111;width:210mm;min-height:297mm;margin:0 auto;padding:14mm 15mm;font-family:Arial,sans-serif; }
.print-letterhead { display:grid;grid-template-columns:1fr auto;gap:20px;padding-bottom:12px;border-bottom:2px solid #0f766e; }
.print-org-name { font-size:18px;font-weight:800;color:#073042; }.print-org-details { margin-top:5px;font-size:9px;line-height:1.5;color:#444; }
.print-doc-label { text-align:right; }.print-doc-title { font-size:18px;font-weight:850;color:#0f766e; }.print-doc-number { margin-top:5px;font-size:10px;color:#555; }
.print-section { margin-top:15px; }.print-section-title { padding:5px 8px;background:#e6f6f4;color:#0f5e58;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em; }
.print-details-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:6px 20px;margin-top:9px;font-size:10px; }.print-detail { display:flex;gap:7px;padding-bottom:5px;border-bottom:1px dotted #aaa; }.print-detail-label { color:#666;min-width:90px; }.print-detail-value { font-weight:650; }
.print-table { width:100%;border-collapse:collapse;margin-top:10px;font-size:9px; }.print-table th,.print-table td { border:1px solid #777;padding:7px;text-align:left;vertical-align:top; }.print-table th { background:#f0f5f5;font-weight:800; }
.print-totals { width:48%;margin:14px 0 0 auto;font-size:10px; }.print-total-row { display:flex;justify-content:space-between;padding:6px;border-bottom:1px solid #aaa; }.print-total-row.grand { font-size:12px;font-weight:850;background:#e6f6f4;color:#0f5e58; }
.print-signatures { display:grid;grid-template-columns:repeat(2,1fr);gap:50px;margin-top:55px;font-size:9px; }.signature-line { border-top:1px solid #333;padding-top:6px; }
.print-footer { margin-top:40px;padding-top:9px;border-top:1px solid #aaa;display:flex;justify-content:space-between;color:#666;font-size:8px; }

/* Responsive */
@media (max-width:1320px) {
  .metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-3,.stock-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vitals-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1180px) {
  .app-shell.ai-open .workspace { margin-right:0; }
  .app-shell.ai-open .topbar { right:0; }
  .ai-drawer { box-shadow:-18px 0 55px rgba(2,13,20,.24); }
  .app-shell.ai-open::after { content:"";position:fixed;z-index:63;inset:0;background:rgba(2,13,20,.35); }
  .ai-drawer { z-index:66; }
}
@media (max-width:1020px) {
  .grid-2,.clinical-layout { grid-template-columns:1fr; }
  .patient-selector { position:static; }
  .org-chip { display:none; }
  .quick-actions { grid-template-columns:1fr; }
}
@media (max-width:920px) {
  :root { --sidebar:268px; }
  .sidebar { transform:translateX(-100%);box-shadow:18px 0 45px rgba(2,13,20,.25); }
  .app-shell.sidebar-open .sidebar { transform:translateX(0); }
  .app-shell.sidebar-open::before { content:"";position:fixed;z-index:68;inset:0;background:rgba(2,13,20,.45); }
  .sidebar { z-index:70; }
  .topbar { left:0;padding:0 14px; }
  .workspace { margin-left:0; }
  .mobile-menu { display:grid; }
  .global-search { max-width:none; }
}
@media (max-width:720px) {
  .login-page { grid-template-columns:1fr; }
  .login-visual { display:none; }
  .login-form-side { padding:28px 22px; }
  .login-card .mobile-brand { display:flex;align-items:center;gap:12px; }
  .metrics-grid,.grid-equal,.grid-3,.stock-card-grid { grid-template-columns:1fr; }
  .page { padding:20px 14px 38px; }
  .page-head { flex-direction:column;align-items:stretch; }
  .page-actions { justify-content:flex-start; }
  .welcome-content { flex-direction:column;align-items:flex-start; }
  .welcome-meta { justify-content:flex-start; }
  .patient-hero { grid-template-columns:1fr; }
  .patient-actions { justify-content:flex-start; }
  .form-grid { gap:14px; }
  .field.span-2,.field.span-3,.field.span-4,.field.span-5,.field.span-6,.field.span-7,.field.span-8,.field.span-9 { grid-column:span 12; }
  .info-list { grid-template-columns:1fr; }
  .rx-line { grid-template-columns:1fr 84px 36px; }
  .rx-line .rx-instructions { grid-column:1 / -1;grid-row:2; }
  .topbar-actions .lang-btn { display:none; }
  .search-shortcut { display:none; }
  .global-search-input { padding-right:14px; }
  .ai-drawer { width:100%; }
  .vitals-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .modal-backdrop { padding:0;align-items:end; }
  .modal,.modal.modal-lg,.modal.modal-sm { width:100%;max-height:94vh;border-radius:20px 20px 0 0; }
}
@media (max-width:480px) {
  .metrics-grid { gap:11px; }
  .metric-card { padding:15px; }
  .global-search-input::placeholder { color:transparent; }
  .topbar { gap:8px; }
  .topbar-actions { gap:2px; }
  .vitals-grid { grid-template-columns:1fr 1fr; }
  .patient-identity { align-items:flex-start; }
  .patient-avatar { width:48px;height:48px;border-radius:14px; }
}
@media print {
  @page { size:A4;margin:0; }
  body { background:#fff; }
  body > * { visibility:hidden!important; }
  #overlay-root,#overlay-root * { visibility:visible!important; }
  #overlay-root { position:absolute!important;inset:0!important;background:#fff!important; }
  .modal-backdrop { position:absolute!important;inset:0!important;padding:0!important;background:#fff!important;display:block!important; }
  .modal.print-modal { width:auto!important;max-height:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;display:block!important; }
  .print-modal .modal-head,.print-modal .modal-foot { display:none!important; }
  .print-modal .modal-body { padding:0!important;overflow:visible!important; }
  .print-sheet { width:210mm!important;min-height:297mm!important; }
}

/* v6 operational controls */
.btn-warning { color:#fff;background:linear-gradient(135deg,#b45309,#d97706);box-shadow:0 7px 16px rgba(180,83,9,.18); }
.consent-row { display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft);color:var(--slate-700);font-size:11px;line-height:1.5; }
.consent-row input { width:17px;height:17px;flex:0 0 auto;margin-top:1px;accent-color:var(--teal-700); }
.clinical-banner { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,var(--teal-50),var(--surface)); }
.clinical-banner-main { display:flex;align-items:center;gap:11px;min-width:0; }
.clinical-banner-title { font-size:14px;font-weight:850;letter-spacing:-.015em; }
.clinical-banner-meta { margin-top:4px;color:var(--muted);font-size:10px; }
@media (max-width:720px) {
  .clinical-banner { align-items:flex-start;flex-direction:column; }
  [data-po-row].rx-line { grid-template-columns:1fr 88px 110px 36px!important; }
}
@media (max-width:520px) {
  [data-po-row].rx-line { grid-template-columns:1fr 78px 36px!important; }
  [data-po-row].rx-line input[name="unitCost"] { grid-column:1 / 3; }
}
.sidebar-user-meta,.org-chip-text { display:flex;flex-direction:column;min-width:0; }
.sidebar-user-name,.sidebar-user-role,.org-chip-name,.org-chip-role { display:block; }
.global-search { min-width:240px; }
@media (max-width:1650px) and (min-width:1181px) {
  .app-shell.ai-open .org-chip { display:none; }
}


/* v6 desktop workspace refinements */
.app-shell.ai-open .quick-actions { grid-template-columns:1fr; }
.app-shell.ai-open .quick-action { min-height:58px;padding:11px 13px; }
.app-shell.ai-open .quick-action-label { font-size:11px; }
@media (max-width:720px) { .global-search { min-width:0; } }

/* MedicalKode v6 visual system: high-contrast charcoal, blue clinical accent, larger readable type */
body { font-size:15px; line-height:1.45; }
::selection { background:rgba(47,111,237,.34); }
:focus-visible { outline-color:rgba(47,111,237,.42); }
.brand-mark,.auth-brand-mark { background:linear-gradient(145deg,#3b82f6,#2563eb);box-shadow:0 14px 34px rgba(37,99,235,.28); }
.btn-primary,.btn-blue { background:linear-gradient(145deg,#3978f6,#2563eb);box-shadow:0 8px 20px rgba(37,99,235,.24); }
.btn-primary:hover,.btn-blue:hover { box-shadow:0 12px 26px rgba(37,99,235,.34); }
.input:focus,.select:focus,.textarea:focus,.global-search-input:focus { border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.16); }

/* Public access and patient registration */
.auth-page { min-height:100vh;background:#111113;color:#f8f8fa;display:grid;place-items:center;padding:28px 18px;position:relative;overflow:auto; }
.auth-page::before { content:"";position:fixed;inset:0;background:radial-gradient(circle at 50% -15%,rgba(37,99,235,.16),transparent 36%),linear-gradient(180deg,#111113,#0d0d0f);pointer-events:none; }
.auth-shell { position:relative;z-index:1;width:min(100%,650px);display:flex;flex-direction:column;align-items:center; }
.auth-brand { display:flex;align-items:center;gap:14px;margin-bottom:28px;text-align:left; }
.auth-brand-mark { width:60px;height:60px;border-radius:20px;color:#fff;display:grid;place-items:center; }
.auth-brand-mark svg { width:32px;height:32px; }
.auth-brand-name { font-size:29px;font-weight:900;letter-spacing:-.04em;line-height:1; }
.auth-brand-sub { margin-top:7px;color:#b5b5bd;font-size:14px; }
.auth-card { width:100%;background:#171719;border:1px solid #303036;border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.48); }
.auth-tabs { display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;background:#0f0f11;border:1px solid #2a2a2f;border-radius:14px;margin-bottom:25px; }
.auth-tab { min-height:45px;border:0;border-radius:10px;background:transparent;color:#9d9da6;font-size:14px;font-weight:800; }
.auth-tab.active { background:#29292e;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.25); }
.auth-intro { margin-bottom:24px; }
.auth-kicker { display:flex;align-items:center;gap:8px;color:#77a2ff;font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase; }
.auth-kicker svg { width:17px;height:17px; }
.auth-intro h1,.recovery-card h1 { margin:10px 0 8px;font-size:30px;line-height:1.14;letter-spacing:-.035em; }
.auth-intro p,.recovery-card p { margin:0;color:#b5b5bd;font-size:14px;line-height:1.65; }
.auth-message { margin-bottom:20px; }
.auth-card .field label { color:#e6e6e9;font-size:13px; }
.auth-card .input,.auth-card .select { background:#111113;border-color:#3b3b42;min-height:50px;font-size:15px;border-radius:12px; }
.auth-card .input::placeholder { color:#707079; }
.auth-card .btn-lg { min-height:52px;font-size:15px; }
.auth-language { margin-top:23px;padding-top:18px;border-top:1px solid #303036;display:flex;align-items:center;justify-content:center;gap:8px;color:#91919a;font-size:12px; }
.language-choice { border:1px solid #38383e;background:transparent;color:#aaaab2;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:750; }
.language-choice.active { border-color:#356fe0;background:#16254a;color:#91b4ff; }
.auth-footer { margin-top:20px;color:#8e8e97;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center; }
.auth-footer svg { width:16px;height:16px;color:#5f8ff2; }
.compact-grid { gap:15px; }
.optional { color:#7e7e87;font-weight:500; }
.consent-row { margin:18px 0;background:#111113;border-color:#34343a;color:#c7c7ce;font-size:12px; }
.consent-row input { accent-color:#2f6fed; }
.recovery-card { text-align:center; }
.recovery-icon { width:62px;height:62px;border-radius:20px;margin:0 auto 18px;background:#12244a;color:#75a0ff;display:grid;place-items:center; }
.recovery-icon svg { width:29px;height:29px; }
.recovery-card .btn { margin-top:24px; }
.registration-success { text-align:center; }
.registration-success-icon { width:66px;height:66px;border-radius:21px;background:var(--green-50);color:var(--green-600);display:grid;place-items:center;margin:0 auto 15px; }
.registration-success-icon svg { width:32px;height:32px; }
.registration-success-name { font-size:21px;font-weight:850; }
.registration-code { display:inline-flex;margin:14px auto 20px;padding:12px 16px;border-radius:12px;background:var(--blue-50);border:1px solid rgba(79,131,255,.3);color:#8ab1ff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px;font-weight:850;letter-spacing:.025em; }
.registration-login-grid { max-width:560px;margin:0 auto 18px;text-align:left; }

/* Readability and workspace sizing */
.sidebar { background:#0a0a0c;color:#d2d2d7;border-right-color:#29292e; }
.sidebar-head { border-bottom-color:#29292e; }
.sidebar-scroll { scrollbar-color:#3b3b43 transparent; }
.sidebar-brand-title { font-size:18px; }
.sidebar-brand-sub { font-size:11px;color:#9b9ba5; }
.nav-section-label { color:#767681;font-size:10px;letter-spacing:.13em; }
.nav-link { min-height:47px;padding:11px 13px;font-size:14px;color:#c1c1c8; }
.nav-link svg { width:20px;height:20px;color:#8d8d98; }
.nav-link.active { background:linear-gradient(90deg,rgba(47,111,237,.28),rgba(47,111,237,.08));box-shadow:inset 3px 0 0 #4f83ff; }
.nav-link.active svg { color:#80a7ff; }
.sidebar-foot { border-top-color:#29292e; }
.sidebar-user-name { font-size:13px; }
.sidebar-user-role { font-size:10px; }
.topbar { background:rgba(16,16,18,.94);border-bottom-color:#2a2a2f; }
.global-search-input { height:48px;background:#151518;border-color:#333339;font-size:14px; }
.search-shortcut { font-size:10px; }
.org-chip { background:#151518;border-color:#303036; }
.org-chip-name { font-size:12px; }
.org-chip-role { font-size:9px; }
.top-icon-btn { color:#c7c7cf; }
.workspace { background:var(--canvas); }
.page { max-width:1680px;padding:30px 30px 54px; }
.page-title { font-size:clamp(29px,2.7vw,38px); }
.page-subtitle { font-size:14px;max-width:900px; }
.page-kicker { font-size:11px;color:#78a2ff; }
.card-title { font-size:16px; }
.card-subtitle { font-size:12px; }
.card-head { min-height:66px;padding:17px 20px; }
.card-body { padding:20px; }
.metric-label { font-size:12px; }
.metric-value { font-size:30px; }
.metric-detail { font-size:11px; }
.field label,.field-label { font-size:13px; }
.field-hint { font-size:12px; }
.input,.select,.textarea { min-height:47px;font-size:14px;padding:12px 14px; }
.textarea { min-height:108px; }
.btn { min-height:42px;font-size:14px; }
.btn-sm { min-height:36px;font-size:12.5px; }
.btn-lg { min-height:52px;font-size:15px; }
.data-table th { font-size:10px;padding:13px 15px; }
.data-table td { font-size:13px;padding:14px 15px; }
.table-secondary { font-size:11px; }
.status,.priority { font-size:10px; }
.badge { font-size:11px;padding:6px 9px; }
.empty-state h3 { font-size:17px; }
.empty-state p { font-size:13px; }
.quick-action-label { font-size:13px; }
.activity-title { font-size:13px; }
.activity-detail { font-size:11px; }
.timeline-title { font-size:13px; }
.timeline-body { font-size:12px; }
.info-label,.info-value { font-size:12px; }
.modal-title { font-size:18px; }
.modal-subtitle { font-size:12px; }
.toast-title { font-size:13px; }
.toast-message { font-size:11px; }
.notification-title { font-size:12px; }
.notification-detail { font-size:11px; }
.account-name { font-size:14px; }
.account-role { font-size:11px; }
.menu-item { font-size:13px; }

/* Connection resilience indicator */
.connection-status { min-height:30px;display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap; }
.connection-dot { width:7px;height:7px;border-radius:50%;background:#32c875;box-shadow:0 0 0 4px rgba(50,200,117,.11); }
.connection-status.connecting .connection-dot { background:#f5a524;box-shadow:0 0 0 4px rgba(245,165,36,.12);animation:connectionpulse 1s infinite; }
.connection-status.offline .connection-dot { background:#ff6b6b;box-shadow:0 0 0 4px rgba(255,107,107,.12); }
@keyframes connectionpulse { 50%{opacity:.45;transform:scale(.75)} }

/* Patient portal */
.portal-verification { margin-bottom:18px; }
.portal-hero { border-color:#34343a;background:linear-gradient(145deg,#171719,#141416); }
.portal-summary-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px; }
.portal-summary-card { min-height:86px;padding:15px;border:1px solid var(--border);border-radius:15px;background:var(--surface);display:flex;align-items:center;gap:13px;transition:all var(--transition);min-width:0; }
a.portal-summary-card:hover { border-color:#4779df;transform:translateY(-1px);box-shadow:var(--shadow-sm); }
.portal-summary-icon { width:42px;height:42px;border-radius:13px;background:var(--blue-50);color:#78a2ff;display:grid;place-items:center;flex:0 0 auto; }
.portal-summary-icon svg { width:21px;height:21px; }
.portal-summary-card strong { display:block;font-size:16px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.portal-summary-card small { display:block;margin-top:4px;color:var(--muted);font-size:11px; }

/* Neutralize old teal-heavy surfaces */
.welcome-panel { background:linear-gradient(135deg,#151518,#111827 68%,#172554); }
.welcome-copy p { color:#c2c2ca; }
.metric-icon,.quick-action-icon { color:#78a2ff;background:var(--blue-50); }
.quick-action:hover { border-color:#4779df; }
.ai-drawer { background:#111113;border-left-color:#2d2d33; }
.ai-head { background:#141416;border-bottom-color:#2d2d33; }
.ai-head-title { font-size:15px; }
.ai-head-sub { font-size:10px; }
.ai-welcome-title { font-size:14px; }
.ai-welcome-copy { font-size:12px; }
.ai-prompt { font-size:14px; }
.ai-output-title { font-size:13px; }
.ai-summary { font-size:13px;line-height:1.65; }
.ai-section-title { font-size:11px; }
.ai-list { font-size:12px; }
.ai-disclaimer { font-size:11px; }

@media (max-width:1180px) {
  .connection-label { display:none; }
  .connection-status { width:30px;padding:0;justify-content:center;border:0;background:transparent; }
}
@media (max-width:860px) {
  .portal-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .auth-card { padding:23px; }
}
@media (max-width:720px) {
  .auth-page { place-items:start center;padding:24px 14px; }
  .auth-brand { margin-bottom:20px; }
  .auth-brand-mark { width:52px;height:52px;border-radius:17px; }
  .auth-brand-name { font-size:25px; }
  .auth-intro h1,.recovery-card h1 { font-size:26px; }
  .auth-card { border-radius:18px;padding:20px; }
  .compact-grid { gap:13px; }
  .page { padding:22px 15px 42px; }
  .page-title { font-size:29px; }
  .topbar { height:70px; }
  .portal-summary-grid { grid-template-columns:1fr; }
  .portal-summary-card { min-height:75px; }
}
@media (max-width:480px) {
  .auth-tabs { grid-template-columns:1fr; }
  .auth-language { flex-wrap:wrap; }
  .auth-footer { font-size:10px; }
  .patient-actions { width:100%; }
  .patient-actions .btn { flex:1 1 auto; }
}
