/* NephroZayan Calculator
   Clinical UI · light + dark
   Aligned with NephroZayan brand palette
   Type: Georgia for headings; Calibri/system body
*/

:root {
  /* NephroZayan brand colours (aligned with main site) */
  --navy:      #0E2A5E;   /* primary — "Nephro" wordmark */
  --navy-2:    #163D7A;
  --navy-3:    #1F4D92;
  --blue:      #1F7B8E;   /* brand teal — "Zayan" wordmark */
  --blue-soft: #E6F1F4;
  --teal:      #1F7B8E;
  --green:     #3A8B5F;   /* growth/eco */
  --gold:      #C89B5B;   /* warm accent */
  --ink:       #0e1726;
  --ink-2:     #243149;
  --muted:     #5b6678;
  --muted-2:   #8794a8;
  --line:      #d8dde6;
  --line-2:    #e8ecf2;
  --bg:        #FAF7F2;   /* warm cream, matches main site */
  --paper:     #ffffff;
  --paper-2:   #fbfcfd;
  --shadow-1:  0 1px 2px rgba(14, 42, 94, .06), 0 1px 3px rgba(14, 42, 94, .04);
  --shadow-2:  0 4px 14px rgba(14, 42, 94, .10);

  --ok:    #1f7a3f;
  --ok-bg: #e6f4ec;
  --warn:  #b07206;
  --warn-bg:#fdf2dc;
  --bad:   #b3261e;
  --bad-bg:#fbe7e6;
  --info:  #1F7B8E;
  --info-bg:#E6F1F4;

  /* KDIGO bands — unchanged, internationally recognised */
  --kd-g1: #2e7d32;  --kd-g2: #66bb6a;  --kd-g3a: #fbc02d;
  --kd-g3b:#fb8c00;  --kd-g4: #e53935;  --kd-g5: #5e2c8a;

  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;

  --font-head: Georgia, "Times New Roman", serif;
  --font-body: Calibri, "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --bar-h: 56px;
  --bot-h: 60px;
}

@media (prefers-color-scheme: dark) {
  :root[data-theme="auto"] {
    --navy:      #6aa3ff;
    --navy-2:    #82b3ff;
    --navy-3:    #99c2ff;
    --blue:      #6aa3ff;
    --blue-soft: #142037;
    --teal:      #4cc9c9;
    --ink:       #e7ecf3;
    --ink-2:     #c4ccd9;
    --muted:     #93a1b8;
    --muted-2:   #6e7c93;
    --line:      #283248;
    --line-2:    #1c2538;
    --bg:        #0c121f;
    --paper:     #131a2a;
    --paper-2:   #181f32;
    --ok-bg: #143a23; --warn-bg: #3a2b0a; --bad-bg: #3a1716; --info-bg: #142037;
  }
}
:root[data-theme="dark"] {
  --navy: #6aa3ff; --navy-2:#82b3ff; --navy-3:#99c2ff; --blue:#6aa3ff;
  --blue-soft:#142037; --teal:#4cc9c9;
  --ink:#e7ecf3; --ink-2:#c4ccd9; --muted:#93a1b8; --muted-2:#6e7c93;
  --line:#283248; --line-2:#1c2538;
  --bg:#0c121f; --paper:#131a2a; --paper-2:#181f32;
  --ok-bg:#143a23; --warn-bg:#3a2b0a; --bad-bg:#3a1716; --info-bg:#142037;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  padding-top: var(--bar-h);
  padding-bottom: calc(var(--bot-h) + env(safe-area-inset-bottom, 0));
  min-height: 100vh;
}

h1, h2, h3, h4 { font-family: var(--font-head); color: var(--navy); margin: 0 0 .4em; font-weight: 700; letter-spacing: -.005em; }
h1 { font-size: 1.55rem; }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.05rem; }
h4 { font-size: .95rem; color: var(--ink-2); }
p { margin: .4em 0; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
small { color: var(--muted); }
hr { border: 0; border-top: 1px solid var(--line); margin: 1em 0; }
code, .mono { font-family: var(--font-mono); font-size: .88em; }

/* Top bar */
.topbar {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--bar-h);
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color: #fff;
  display: flex; align-items: center; gap: 10px;
  padding: 0 12px;
  z-index: 50;
  box-shadow: var(--shadow-1);
  padding-top: env(safe-area-inset-top, 0);
  height: calc(var(--bar-h) + env(safe-area-inset-top, 0));
}
.brand { display:flex; align-items:center; gap:8px; font-family: var(--font-head); flex: 1; min-width: 0; }
.brand-mark { font-size: 1.3rem; color: #cfe1ff; }
.brand-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand-text strong { font-weight: 700; }
.brand-sub { opacity: .85; font-size: .95em; }
.topbar-actions { display:flex; align-items:center; gap: 8px; }
.icon-btn {
  background: transparent; color: inherit; border: 0; padding: 6px;
  border-radius: var(--r-sm); cursor: pointer; display:inline-flex;
  align-items:center; justify-content:center; transition: background .15s;
}
.icon-btn:hover, .icon-btn:focus-visible { background: rgba(255,255,255,.12); outline: none; }
.pill-btn {
  background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.2);
  padding: 4px 10px; border-radius: 999px; font-family: var(--font-mono);
  font-size: .82rem; cursor: pointer; transition: background .15s;
}
.pill-btn:hover { background: rgba(255,255,255,.22); }
.net-badge { font-size: 1.1rem; color: #6fdc8c; }
.net-badge.off { color: #ffb86b; }

/* Drawer */
.drawer {
  position: fixed; top: var(--bar-h); left: 0; bottom: 0; width: 280px;
  background: var(--paper); border-right: 1px solid var(--line);
  transform: translateX(-100%); transition: transform .2s ease-out;
  z-index: 40; display: flex; flex-direction: column;
}
.drawer.open { transform: translateX(0); }
.drawer-scrim {
  position: fixed; inset: var(--bar-h) 0 0 0; background: rgba(14,23,38,.42);
  z-index: 39;
}
.drawer-head, .drawer-foot { padding: 10px 14px; border-bottom: 1px solid var(--line); display:flex; align-items:center; justify-content:space-between; font-family: var(--font-head); color: var(--navy); font-weight: 700; }
.drawer-foot { border-top: 1px solid var(--line); border-bottom: 0; color: var(--muted); font-family: var(--font-body); font-weight: 400; }
.drawer-nav { flex: 1; overflow-y: auto; padding: 8px 0; }
.drawer-nav a {
  display:flex; align-items:center; gap: 10px; padding: 10px 16px;
  color: var(--ink-2); border-left: 3px solid transparent;
  font-size: .92rem;
}
.drawer-nav a:hover { background: var(--paper-2); text-decoration: none; }
.drawer-nav a.active { color: var(--navy); border-left-color: var(--blue); background: var(--blue-soft); font-weight: 600; }
.drawer-nav .count { color: var(--muted-2); font-size: .78rem; font-family: var(--font-mono); }

/* Main */
.main { max-width: 980px; margin: 0 auto; padding: 12px 14px 24px; }
.main:focus { outline: none; }

/* Bottom nav */
.bottombar {
  position: fixed; left: 0; right: 0; bottom: 0;
  height: var(--bot-h); background: var(--paper);
  border-top: 1px solid var(--line);
  display: grid; grid-template-columns: repeat(5, 1fr);
  z-index: 45; padding-bottom: env(safe-area-inset-bottom, 0);
}
.bb-item {
  display:flex; flex-direction: column; align-items:center; justify-content:center;
  gap: 2px; font-size: .72rem; color: var(--muted); text-decoration: none;
  padding: 4px 0;
}
.bb-item .bb-ico { font-size: 1.1rem; line-height: 1; }
.bb-item.active { color: var(--blue); }
.bb-item:hover { color: var(--navy); text-decoration: none; }

/* Cards */
.card {
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 14px 16px; margin: 0 0 12px;
  box-shadow: var(--shadow-1);
}
.card.tight { padding: 10px 12px; }
.card-head { display:flex; align-items:center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.card-head h2, .card-head h3 { margin: 0; }
.card-sub { color: var(--muted); font-size: .85rem; margin-top: -2px; }

.session-card { background: linear-gradient(180deg, var(--blue-soft), var(--paper) 70%); border-color: #c3d6ee; }
.session-card[data-theme="dark"], :root[data-theme="dark"] .session-card { background: linear-gradient(180deg, var(--blue-soft), var(--paper) 70%); border-color: var(--line); }

/* Grids */
.grid { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.grid-2 { display:grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.grid-3 { display:grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* Domain tiles */
.tile {
  display:flex; flex-direction: column; gap: 4px;
  padding: 12px 12px; border: 1px solid var(--line);
  background: var(--paper); border-radius: var(--r-md);
  color: var(--ink); cursor: pointer; transition: transform .12s, box-shadow .12s, border-color .12s;
  text-decoration: none; min-height: 78px;
}
.tile:hover { border-color: var(--blue); box-shadow: var(--shadow-2); text-decoration: none; transform: translateY(-1px); }
.tile-title { font-family: var(--font-head); color: var(--navy); font-weight: 700; font-size: 1rem; }
.tile-meta { color: var(--muted); font-size: .8rem; font-family: var(--font-mono); }
.tile-sub { color: var(--ink-2); font-size: .85rem; }

/* Calc list rows */
.calc-row {
  display:flex; gap: 10px; align-items: baseline;
  padding: 9px 10px; border-radius: var(--r-sm);
  border: 1px solid transparent; cursor: pointer;
  color: var(--ink); text-decoration: none;
}
.calc-row:hover { background: var(--blue-soft); border-color: #c3d6ee; text-decoration:none; }
.calc-row .name { font-weight: 600; color: var(--navy); }
.calc-row .desc { color: var(--muted); font-size: .85rem; flex: 1; }
.calc-row .tier { font-family: var(--font-mono); font-size: .72rem; color: var(--muted-2); }

/* Forms */
.form-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.field { display:flex; flex-direction: column; gap: 4px; }
.field label { font-size: .82rem; color: var(--ink-2); font-weight: 600; }
.field .hint { color: var(--muted); font-size: .76rem; font-style: italic; }
.field input, .field select, .field textarea {
  width: 100%; padding: 8px 10px; border: 1px solid var(--line);
  border-radius: var(--r-sm); background: var(--paper); color: var(--ink);
  font: inherit; font-size: .95rem;
  transition: border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--blue);
  box-shadow: 0 0 0 3px var(--blue-soft);
}
.field.autofilled input, .field.autofilled select {
  background: var(--blue-soft); border-color: #b8d0ec;
}
.field input[type="checkbox"] { width: auto; }
.field-inline { display:flex; gap: 8px; align-items: center; }
.field-inline input[type="checkbox"] { width: auto; margin: 0; }
.field-row { display:flex; gap: 6px; }
.field-row > * { flex: 1; }

.btn {
  display:inline-flex; align-items:center; gap:6px;
  background: var(--navy); color: #fff; border: 0;
  padding: 9px 16px; border-radius: var(--r-sm);
  font: inherit; font-weight: 600; cursor: pointer;
  transition: background .15s;
}
.btn:hover { background: var(--navy-2); }
.btn.ghost { background: transparent; color: var(--navy); border: 1px solid var(--line); }
.btn.ghost:hover { background: var(--blue-soft); border-color: var(--blue); }
.btn.danger { background: var(--bad); }
.btn.danger:hover { background: #d03832; }
.btn.sm { padding: 5px 10px; font-size: .85rem; }

.actions { display:flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }

/* Result */
.result {
  margin-top: 12px; padding: 12px 14px;
  background: var(--paper-2); border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: var(--r-sm);
}
.result.ok    { border-left-color: var(--ok);   background: var(--ok-bg); }
.result.warn  { border-left-color: var(--warn); background: var(--warn-bg); }
.result.bad   { border-left-color: var(--bad);  background: var(--bad-bg); }
.result.info  { border-left-color: var(--info); background: var(--info-bg); }
.result h3 { margin: 0 0 4px; font-family: var(--font-body); color: var(--ink); font-size: 1rem; }
.result .primary {
  font-family: var(--font-head); font-size: 1.6rem; font-weight: 700;
  color: var(--navy); margin: 4px 0;
}
.result .secondary { color: var(--ink-2); font-size: .92rem; }
.result .stamp {
  margin-top: 8px; font-family: var(--font-mono); font-size: .72rem;
  color: var(--muted); border-top: 1px dashed var(--line); padding-top: 6px;
}
.result .interp { margin: 6px 0; }
.result ul { margin: 4px 0; padding-left: 20px; }
.result .actions { margin-top: 8px; }

.badge {
  display:inline-block; padding: 1px 8px;
  border-radius: 999px; font-size: .72rem; font-weight: 600;
  background: var(--line-2); color: var(--ink-2);
}
.badge.ok   { background: var(--ok-bg);   color: var(--ok); }
.badge.warn { background: var(--warn-bg); color: var(--warn); }
.badge.bad  { background: var(--bad-bg);  color: var(--bad); }
.badge.info { background: var(--info-bg); color: var(--info); }
.tag { display:inline-block; padding: 1px 6px; border-radius: var(--r-sm); background: var(--line-2); color: var(--muted); font-size: .72rem; margin-right: 3px; }

/* KDIGO heatmap */
.heat-table { border-collapse: collapse; width: 100%; font-size: .82rem; margin: 6px 0; }
.heat-table th, .heat-table td { border: 1px solid var(--paper); padding: 8px 6px; text-align: center; color: #fff; font-weight: 600; }
.heat-table th { background: var(--ink-2); color: #fff; font-weight: 600; }
.heat-low  { background: #2e7d32; }
.heat-mod  { background: #f9a825; color: #1b1b1b !important; }
.heat-high { background: #ef6c00; }
.heat-vh   { background: #c62828; }
.heat-active { outline: 3px solid #fff; outline-offset: -3px; box-shadow: 0 0 0 3px var(--navy); }

/* Search */
.search-input {
  width: 100%; padding: 12px 14px; font-size: 1rem;
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--paper);
}
.search-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }

/* Saved/audit log entries */
.log-row {
  display:flex; gap: 10px; align-items: baseline;
  padding: 8px 0; border-bottom: 1px dashed var(--line);
}
.log-row:last-child { border-bottom: 0; }
.log-row .ts { font-family: var(--font-mono); font-size: .75rem; color: var(--muted); white-space: nowrap; }
.log-row .calc { font-weight: 600; color: var(--navy); }
.log-row .val { color: var(--ink-2); }

/* Patient selector */
.patient-bar { display:flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.patient-bar select { padding: 6px 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--paper); color: var(--ink); }

/* Misc */
.muted { color: var(--muted); }
.right { text-align: right; }
.center { text-align: center; }
.nowrap { white-space: nowrap; }
.spacer { height: 8px; }

/* Print */
@media print {
  body { background: #fff; color: #000; padding: 0; font-size: 11pt; }
  .topbar, .bottombar, .drawer, .drawer-scrim, .actions, .btn { display: none !important; }
  .main { max-width: 100%; margin: 0; padding: 8mm; }
  .card { box-shadow: none; border: 1px solid #aaa; page-break-inside: avoid; }
  h1, h2, h3 { color: #000; }
  .result { background: #fff !important; border: 1px solid #888; }
}

/* Narrow viewport */
@media (max-width: 480px) {
  body { font-size: 14px; }
  .main { padding: 10px 10px 24px; }
  .brand-sub { display: none; }
  .grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .result .primary { font-size: 1.35rem; }
}

/* Wide viewport: open drawer permanently */
@media (min-width: 980px) {
  .drawer { transform: translateX(0); }
  .drawer-scrim { display: none !important; }
  .main { margin-left: 280px; max-width: calc(100% - 280px - 40px); padding-right: 20px; padding-left: 20px; }
  #menuBtn { display: none; }
}

/* ============================================================
   NephroZayan brand additions
   ============================================================ */
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
  min-width: 0;
}
.brand:hover { opacity: 0.9; }
.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}
.brand-mark img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}
.brand-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
}
.brand-nephro { color: var(--navy); }
.brand-zayan  { color: var(--blue); }
.brand-sub {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-top: 2px;
}

/* Back-link pill in top bar */
.pill-btn-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  color: var(--navy);
  border: 1px solid var(--line);
  background: var(--paper);
  transition: background 0.15s, border-color 0.15s;
}
.pill-btn-link:hover {
  background: var(--blue-soft);
  border-color: var(--blue);
  color: var(--blue);
}

/* On phones, hide the "Main site" label, keep the chevron */
@media (max-width: 540px) {
  .back-label { display: none; }
  .brand-sub  { display: none; }
  .brand-text { font-size: 0.95rem; }
}

/* Dark mode brand colour adjustments */
@media (prefers-color-scheme: dark) {
  :root[data-theme="auto"] .brand-nephro { color: #82B3FF; }
  :root[data-theme="auto"] .brand-zayan  { color: #4CC9C9; }
  :root[data-theme="auto"] .brand-sub    { color: #93a1b8; }
  :root[data-theme="auto"] .pill-btn-link {
    color: #82B3FF; background: transparent; border-color: #243149;
  }
  :root[data-theme="auto"] .pill-btn-link:hover {
    background: #142037; color: #4CC9C9; border-color: #4CC9C9;
  }
}
:root[data-theme="dark"] .brand-nephro { color: #82B3FF; }
:root[data-theme="dark"] .brand-zayan  { color: #4CC9C9; }
:root[data-theme="dark"] .brand-sub    { color: #93a1b8; }
:root[data-theme="dark"] .pill-btn-link {
  color: #82B3FF; background: transparent; border-color: #243149;
}
:root[data-theme="dark"] .pill-btn-link:hover {
  background: #142037; color: #4CC9C9; border-color: #4CC9C9;
}
