/* ═══════════════════════════════════════════════════════════════════
   Rezidentu dežūru grafiks — v14 vizuālais stils
   Klīniska "petrolejas" palete: dziļi zili-zaļa galvene, indigo akcents
   (nesakrīt ar struktūru krāsām), silti izceltā šodienas kolonna.
   ═══════════════════════════════════════════════════════════════════ */
:root{
  --bg:#f0f4f8; --panel:#ffffff; --ink:#182430; --muted:#5f7186; --line:#dbe4ee;
  --head1:#123441; --head2:#0a2029;            /* galvenes gradients */
  --head-line:#2f6b7d;                          /* akcenta līnija zem galvenes */
  --accent:#3d5ad0; --accent-d:#2e46ab;         /* indigo — pogas, izcēlumi */
  --ring:rgba(61,90,208,.35);
  --weekend:#f5efe0; --weekend-head:#efe7d2;
  --today:#fff3cf; --today-line:#e0b53a;        /* šodienas kolonna */
  --total-bg:#e9eefc; --danger:#c23b2e; --ok:#2e7a4e;
  --radius:12px;
  --shadow-1:0 1px 2px rgba(14,30,50,.07), 0 4px 14px rgba(14,30,50,.08);
  --shadow-2:0 8px 24px rgba(10,25,45,.18), 0 20px 48px rgba(10,25,45,.16);
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0}
body{font:15px/1.45 system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);
  font-feature-settings:"tnum";
  display:flex; flex-direction:column; height:100vh; overflow:hidden;
}
button,input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none;border-color:var(--accent) !important;box-shadow:0 0 0 3px var(--ring)}
.sep{width:1px;height:22px;background:rgba(255,255,255,.16);margin:0 4px}

@keyframes slideIn{from{transform:translateX(16px);opacity:0}to{transform:none;opacity:1}}
@keyframes pop{from{transform:scale(.97);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes riseUp{from{transform:translate(-50%,8px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
}

/* ── Topbar ─────────────────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;
  padding:9px 16px;background:linear-gradient(180deg,var(--head1),var(--head2));color:#fff;
  border-bottom:2px solid var(--head-line);
  box-shadow:0 2px 12px rgba(4,16,24,.25);flex-wrap:wrap}
.brand{font-weight:500;letter-spacing:.2px;font-size:12px;color:#9fc2cd;margin-right:auto}
.top-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.whoami{font-size:13px;color:#b9cfda;white-space:nowrap}
.month-sel{background:#0b1a22;color:#fff;border:1px solid #2c5462;border-radius:9px;
  padding:7px 10px;transition:border-color .15s}
.month-sel:hover{border-color:#4a8496}

.btn{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:7px 13px;
  cursor:pointer;font-size:14px;white-space:nowrap;
  transition:background .15s, transform .06s, box-shadow .15s}
.btn:hover{background:var(--accent-d)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent)}
.btn.primary:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;border:1px solid #35606f;color:#d9e8ee;text-decoration:none}
.btn.ghost:hover{background:rgba(255,255,255,.09);border-color:#4d8194}
.btn.small{padding:5px 9px;font-size:13px}
.btn.danger{background:var(--danger)}
.btn.danger:hover{background:#a52f24}
.btn .lbl{display:none}
@media (min-width:1000px){ .top-controls .btn .lbl{display:inline} }
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff5b5b;
  vertical-align:middle;box-shadow:0 0 0 3px rgba(255,91,91,.25)}

/* ── Legend ─────────────────────────────────────────────────────── */
.legend{display:flex;gap:8px;flex-wrap:wrap;padding:10px 16px;
  background:linear-gradient(180deg,#e9eef5,#e3e9f2);
  border-bottom:1px solid var(--line);position:sticky;top:52px;z-index:30}
.legend .chip{cursor:default;border-radius:7px;padding:3px 8px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12), 0 1px 2px rgba(14,30,50,.10)}
.legend .meta{color:var(--muted);font-size:12px;align-self:center;margin-left:auto}
.active-filter{outline:2px solid var(--accent);outline-offset:2px}

/* ── Chips ──────────────────────────────────────────────────────── */
.chip{display:inline-flex;flex-direction:column;align-items:stretch;border-radius:5px;
  padding:1px 3px;line-height:1.1;white-space:nowrap;text-align:center;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.10)}
.chip .c-hrs{font-size:12.5px;font-weight:700}
.chip .c-code{font-size:10px;font-weight:500;opacity:.95;letter-spacing:.2px}
.chip.staziera{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0.15), rgba(255,255,255,0.15) 4px, transparent 4px, transparent 8px);
  outline:none}
.chip.absence{background:transparent;color:var(--ink);opacity:.9;white-space:nowrap;
  text-align:left;position:relative;z-index:10;font-weight:500}
td.abs-atv{background:#ffedcc !important}
td.abs-dnl{background:#ffd6d6 !important}
td.abs-komandejums{background:#d6f0ff !important}
.chip.absence[data-code="nelikt"]{color:var(--danger);font-size:18px;font-weight:700;line-height:0.8;}
td.abs-nav{background:#e2e6ea !important}

/* ── Grid ───────────────────────────────────────────────────────── */
.grid-wrap{flex:1;overflow:auto}
.loading{padding:40px;color:var(--muted)}
table.grid{border-collapse:separate;border-spacing:0;background:var(--panel)}
.grid th,.grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}
.grid thead th{position:sticky;top:0;z-index:20;background:#f6f9fc;color:var(--muted);
  font-size:12px;font-weight:600;height:36px;text-align:center;
  border-bottom:2px solid #c9d5e3;transition:background .12s,color .12s}
.grid thead th.weekend{background:var(--weekend-head)}
.grid thead th.today{background:var(--today);color:#6d5410;
  box-shadow:inset 0 -3px 0 var(--today-line)}
.grid thead th.hl{background:#e5eaff;color:var(--accent-d)}
.grid th.col-name,.grid td.col-name{position:sticky;left:0;z-index:15;background:var(--panel);
  min-width:230px;max-width:230px;text-align:left;padding:6px 10px;
  border-right:2px solid #c9d5e3;transition:background .12s}
.grid thead th.col-name{z-index:25;background:#f6f9fc}
.grid td.col-name.hl{background:#eaeffe !important}
.grid tbody tr:hover td.col-name{background:#f0f4fe}
.grid th.col-total,.grid td.col-total{position:sticky;right:0;z-index:15;background:var(--total-bg);
  min-width:66px;max-width:66px;text-align:center;font-variant-numeric:tabular-nums;
  border-left:2px solid #c9d5e3}
.grid thead th.col-total{z-index:25}
.r-name{font-weight:600}
.r-meta{color:var(--muted);font-size:11.5px;margin-top:1px;white-space:normal}
.r-rec{color:#44639a;font-size:11px;margin-top:1px}
.day-cell{min-width:46px;max-width:46px;height:42px;vertical-align:top;text-align:center;
  cursor:pointer;position:relative;padding:0}
.day-cell:hover{outline:2px solid var(--accent);outline-offset:-2px;z-index:5}
.day-cell.weekend{background:var(--weekend)}
.day-cell.today{background:var(--today)}
.day-cell.today.weekend{background:#fdf0c4}
.day-cell .stack{display:flex;flex-direction:column;gap:1px;padding:0;
  align-items:stretch;height:100%;background:rgba(0,0,0,.05)}
.day-cell .stack .chip{border-radius:0;box-shadow:none;flex:1;justify-content:center;
  padding:1px;font-size:11.5px}
.day-cell .stack .chip.absence{background:transparent;position:absolute;z-index:10;
  height:100%;width:max-content;justify-content:center;padding-left:4px;font-size:12px}
.total-h{font-weight:700}
.total-h.warn{color:var(--danger)}

/* Slēgts mēnesis — vizuāli tikai lasāms */
.locked-month .day-cell{cursor:default}
.locked-month .day-cell:hover{outline:none}
.locked-month .grid-wrap{opacity:.96}

/* Year group band */
.yearband td{position:sticky;left:0;background:linear-gradient(90deg,var(--head1),#1a4453);
  color:#fff;font-weight:700;font-size:13px;letter-spacing:.4px;padding:6px 12px;z-index:16;
  cursor:pointer}
.yearband.collapsed td{background:var(--head2);opacity:.85}
.locked-flag{font-size:11px;color:#ffd27a;margin-left:8px;font-weight:500}

/* Ārsti · Sāpju k. band & separator (Option 1) */
.docband td{position:sticky;left:0;background:linear-gradient(90deg,#e8f4ff,#d4e8ff);
  color:#004085;font-weight:700;font-size:13px;letter-spacing:.3px;padding:7px 12px;z-index:16;
  border-left:4px solid #0052cc;border-top:1px solid #b3d7ff;border-bottom:1px solid #b3d7ff}
tr.doctor-row td.col-name,
tr.doctor-row td.doctor-name{background:rgba(77,166,255,.12)}
tr.doctor-row:hover td.col-name{background:rgba(77,166,255,.22)}
tr.doctor-row.doc-last td{border-bottom:3px double #0052cc !important}

/* Year Color Coding (subtle) */
tr[data-yr="1"] td.col-name{background:rgba(255,255,255,.9)}
tr[data-yr="2"] td.col-name{background:rgba(240,248,255,.9)}
tr[data-yr="3"] td.col-name{background:rgba(255,248,240,.9)}
tr[data-yr="4"] td.col-name{background:rgba(240,255,244,.9)}
tr[data-yr="5"] td.col-name{background:rgba(255,240,250,.9)}
tr[data-yr="6"] td.col-name{background:rgba(255,253,240,.9)}
tr[data-yr="7"] td.col-name{background:rgba(245,240,255,.9)}

/* ── Panels (drawers) ───────────────────────────────────────────── */
.panel{position:fixed;top:0;right:0;height:100vh;width:380px;max-width:92vw;
  background:var(--panel);box-shadow:var(--shadow-2);z-index:60;
  display:flex;flex-direction:column;border-left:1px solid var(--line);
  animation:slideIn .18s ease-out}
.panel.wide{width:560px}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  background:linear-gradient(180deg,var(--head1),var(--head2));color:#fff;font-weight:600;
  border-bottom:2px solid var(--head-line)}
.panel-body{padding:12px 16px}
.panel-foot{padding:10px 16px;border-top:1px solid var(--line)}
.x{background:none;border:0;color:#fff;font-size:26px;cursor:pointer;line-height:1;
  padding:6px 10px;margin:-6px -8px -6px 0;border-radius:8px;transition:background .12s}
.x:hover{background:rgba(255,255,255,.12)}

/* Chat */
.chat-log{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.chat-msg{background:#f1f4f9;border-radius:12px;border-bottom-left-radius:4px;
  padding:7px 11px;max-width:90%;word-break:break-word;white-space:pre-wrap;
  box-shadow:0 1px 2px rgba(14,30,50,.06)}
.chat-msg .who{font-size:12px;color:var(--accent-d);font-weight:700}
.chat-msg .when{font-size:11px;color:var(--muted);margin-left:6px}
.chat-msg.mine{background:#e2e9fd;align-self:flex-end;
  border-bottom-left-radius:12px;border-bottom-right-radius:4px}
.chat-input{display:flex;flex-direction:column;padding:12px 16px;border-top:1px solid var(--line)}
.chat-emojis{display:flex;gap:10px;margin-bottom:6px;font-size:17px;cursor:pointer;user-select:none}
.chat-emojis span{transition:transform .1s;display:inline-block}
.chat-emojis span:hover{transform:scale(1.3)}
.chat-input textarea{width:100%;min-height:50px;max-height:150px;resize:vertical;
  background:var(--bg);border:1px solid var(--line);color:var(--ink);
  padding:8px 12px;border-radius:9px;font:inherit;margin-bottom:8px;transition:border-color .15s}
.chat-input .btn{align-self:flex-end}

/* Audit */
.audit-log{flex:1;overflow:auto;padding:8px 12px;font-size:13px}
.audit-row{padding:8px 6px;border-bottom:1px solid var(--line)}
.audit-row .a-top{display:flex;gap:8px;color:var(--muted);font-size:12px;align-items:center}
.audit-row .a-act{display:inline-block;font-weight:700;color:#fff;background:var(--accent);
  border-radius:6px;padding:1px 7px;font-size:11px;letter-spacing:.2px}
.audit-row.a-add .a-act{background:#238b43}
.audit-row.a-upd .a-act{background:#e5a90f;color:#3a2d02}
.audit-row.a-del .a-act{background:#c8362a}
.audit-row .a-detail{margin-top:2px}

/* Admin & resident lists */
.admin-list,.res-list{flex:1;overflow:auto;padding:8px 14px}
.row-item{display:flex;align-items:center;gap:10px;padding:9px 4px;
  border-bottom:1px solid var(--line)}
.row-item .grow{flex:1;min-width:0}
.row-item .role-tag{font-size:11px;color:var(--muted)}
.field{display:block;margin:8px 0}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.field input,.field select{width:100%;padding:8px 10px;border:1px solid var(--line);
  border-radius:9px;background:#fff;transition:border-color .15s}
.two{display:flex;gap:8px}.two>*{flex:1}

/* ── Modal ──────────────────────────────────────────────────────── */
.modal{position:fixed;inset:0;background:rgba(10,22,34,.55);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:70;padding:16px;
  animation:fade .15s ease-out}
.modal-card{background:var(--panel);border-radius:16px;width:420px;max-width:96vw;
  box-shadow:var(--shadow-2);overflow:hidden;animation:pop .15s ease-out}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;
  background:linear-gradient(180deg,var(--head1),var(--head2));color:#fff;
  border-bottom:2px solid var(--head-line)}
.cell-entries{padding:10px 14px;display:flex;flex-direction:column;gap:8px;
  max-height:50vh;overflow:auto}
.entry-row{display:flex;gap:6px;align-items:center;background:#f4f7fb;
  border:1px solid var(--line);border-radius:10px;padding:6px;
  transition:border-color .15s, box-shadow .15s}
.entry-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}
.entry-row select,.entry-row input{padding:6px 8px;border:1px solid var(--line);
  border-radius:8px;min-width:0;background:#fff}
.entry-row .loc{flex:2}.entry-row .hrs{width:64px}.entry-row .nt{flex:2}
.entry-row .del{background:none;border:0;color:var(--danger);cursor:pointer;font-size:18px;
  border-radius:6px;padding:2px 6px;transition:background .12s}
.entry-row .del:hover{background:rgba(194,59,46,.10)}
.cell-add{display:flex;gap:8px;padding:0 14px 6px}
.modal-foot{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.doc-hint{font-size:11px;color:var(--muted);padding-left:2px}

/* ── Auth pages ─────────────────────────────────────────────────── */
.auth-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(1100px 500px at 80% -10%, rgba(64,140,160,.25), transparent 60%),
    linear-gradient(160deg,#143743,#0a1c25)}
.auth-card{background:var(--panel);border-radius:18px;padding:28px;width:360px;max-width:92vw;
  box-shadow:var(--shadow-2);border-top:3px solid var(--accent);animation:pop .2s ease-out}
.auth-brand{font-weight:700;color:var(--accent-d);margin-bottom:6px;letter-spacing:.2px}
.auth-card h1{font-size:20px;margin:0 0 16px}
.auth-card label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}
.auth-card input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  transition:border-color .15s}
.auth-card button{width:100%;margin-top:18px;padding:11px;background:var(--accent);color:#fff;
  border:0;border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s}
.auth-card button:hover{background:var(--accent-d)}
.auth-err{background:#fbe6e6;color:#a02626;border:1px solid #f0bcbc;padding:9px 12px;
  border-radius:9px;font-size:14px}
.auth-ok{background:#e3f5ea;color:#1f6b3f;border:1px solid #b6e3c7;padding:9px 12px;
  border-radius:9px;font-size:14px}
.auth-note{background:#fff6e0;color:#8a6116;border:1px solid #f0dca2;padding:9px 12px;
  border-radius:9px;font-size:13px;margin-bottom:6px}
.auth-link{display:block;text-align:center;margin-top:12px;color:var(--accent-d)}

/* ── Toast ──────────────────────────────────────────────────────── */
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);
  background:var(--head1);color:#fff;padding:10px 16px;border-radius:11px;z-index:90;
  box-shadow:var(--shadow-2);font-size:14px;animation:riseUp .18s ease-out}
.toast.err{background:var(--danger)}

@media (max-width:640px){
  .brand{font-size:13px;width:100%;margin:0 0 4px}
  .grid th.col-name,.grid td.col-name{min-width:150px;max-width:150px}
}

/* ── Zoom mode ──────────────────────────────────────────────────── */
body[data-zoom="2"]{font-size:13px}
body[data-zoom="2"] .day-cell{height:32px;min-width:34px;max-width:34px}
body[data-zoom="2"] .grid th.col-name,body[data-zoom="2"] .grid td.col-name{min-width:180px;max-width:180px}
body[data-zoom="2"] .chip .c-hrs{font-size:11px}
body[data-zoom="2"] .chip .c-code{font-size:9px}
body[data-zoom="2"] .r-meta{font-size:10.5px}

body[data-zoom="1"]{font-size:11.5px}
body[data-zoom="1"] .day-cell{height:28px;min-width:28px;max-width:28px;padding:0}
body[data-zoom="1"] .grid th.col-name,body[data-zoom="1"] .grid td.col-name{min-width:140px;max-width:140px}
body[data-zoom="1"] .day-cell .stack .chip{padding:1px 0;display:flex;flex-direction:column;overflow:hidden}
body[data-zoom="1"] .chip .c-hrs{font-size:10px;line-height:1}
body[data-zoom="1"] .chip .c-code{font-size:8px;line-height:1;opacity:.85}
body[data-zoom="1"] .r-meta,body[data-zoom="1"] .r-rec{display:none}
body[data-zoom="1"] .stack{gap:1px}
body[data-zoom="1"] .grid th{font-size:10.5px;padding:2px}

/* ── Print title (redzams tikai drukā) ──────────────────────────── */
.print-title{display:none}

/* ── Print ──────────────────────────────────────────────────────── */
@media print{
  @page{size:landscape;margin:10mm}
  body{background:#fff !important; height:auto !important; overflow:visible !important; display:block !important;}
  .topbar,.legend,.modal,.panel,.toast,.cell-add{display:none !important}
  .print-title{display:block;font-size:16px;font-weight:700;padding:0 0 8px;color:#000}
  .grid-wrap{max-height:none !important;overflow:visible !important}
  table.grid{border-collapse:collapse}
  .grid th,.grid td{border:1px solid #999}
  .grid thead th.today{box-shadow:none}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
