/* ═══ dranwarzai design system (Praetorix language) ═══
   Zdieľané tokeny a komponenty pre VŠETKY rozhrania systému:
   web · pacientsky portál/PWA · konzola manažéra · signage panel.
   Zdroj pravdy dizajnu = dranwarzai.sk (index.html). */
:root{
  --orange:#FA582D;
  --orange-wash:#fff1ec;
  --ink:#0c0e12;
  --ink-2:#4b5262;
  --bg:#ffffff;
  --bg-2:#f6f7f9;
  --line:#e5e7eb;
  --dark:#0b0d11;
  --dark-line:#232733;
  --dark-ink:#f4f5f7;
  --dark-ink-2:#9aa1af;
  --lava:linear-gradient(100deg,#FA582D 0%,#FF3D7F 52%,#8B37F0 100%);
  --lava-soft:linear-gradient(120deg,#fa582d33,#ff3d7f22 55%,#8b37f022);
  --good:#1d9f6e; --good-wash:#e7f6ef;
  --warn:#d9a400; --warn-wash:#fff6df;
  --crit:#d64545; --crit-wash:#fdf1f1;
  --r:10px; --r-sm:7px; --r-lg:18px;
  --maxw:1200px;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,monospace;
  --shadow:0 1px 2px rgba(12,14,18,.04),0 12px 32px -14px rgba(12,14,18,.14);
  --shadow-lg:0 40px 90px -30px rgba(12,14,18,.35);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:#393c41;font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:#ffd9cd}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}

h1{font-size:clamp(30px,5vw,52px);line-height:1.06;letter-spacing:-.035em;font-weight:800;color:var(--ink)}
h2{font-size:clamp(24px,3.5vw,36px);letter-spacing:-.03em;line-height:1.08;font-weight:800;color:var(--ink)}
h3{font-size:17px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.kicker{display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700;color:var(--orange)}
.kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(250,88,45,.22)}
.grad{background:var(--lava);-webkit-background-clip:text;background-clip:text;color:transparent}
.dark-sec{background:var(--dark);color:var(--dark-ink)}
.dark-sec h1,.dark-sec h2,.dark-sec h3{color:#fff}
.muted{color:var(--ink-2)}
.mono{font-family:var(--mono)}

/* Tlačidlá */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;border-radius:9px;border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:-.01em;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--orange);color:#fff;border-color:var(--orange);box-shadow:0 10px 26px -10px rgba(250,88,45,.55)}
.btn-primary:hover{background:#e84a20}
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.btn-ghost-light:hover{border-color:#fff}
.btn-sm{padding:8px 14px;font-size:13.5px}
.btn-lg{padding:16px 30px;font-size:16.5px}

/* Karty a panely */
.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;transition:.2s}
.card.hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.panel{background:var(--bg-2);border-radius:var(--r-lg);padding:30px 28px}
.dark-card{background:rgba(255,255,255,.03);border:1px solid var(--dark-line);border-radius:var(--r-lg);padding:30px 28px}

/* Odznaky a stavy (stavový automat termínu) */
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);background:var(--orange-wash);border-radius:999px;padding:.35em .9em}
.badge{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:.3em .85em}
.badge-objednany{background:var(--bg-2);color:var(--ink-2)}
.badge-potvrdeny{background:#e8f0fd;color:#2b5d9b}
.badge-v_cakarni{background:var(--warn-wash);color:#8a6a00}
.badge-vyvolany{background:var(--orange-wash);color:var(--orange)}
.badge-vybaveny{background:var(--good-wash);color:var(--good)}
.badge-nedostavil_sa{background:var(--crit-wash);color:var(--crit)}
.badge-zruseny{background:var(--bg-2);color:#9ca3af;text-decoration:line-through}
.badge-akutne{background:var(--crit-wash);color:var(--crit)}
.badge-bezne{background:var(--bg-2);color:var(--ink-2)}
.badge-ziadost{background:#e8f0fd;color:#2b5d9b}

/* Formuláre */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);transition:border-color .15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);outline:none}
.field .hint{font-size:12.5px;color:#9ca3af}
.field.err input{border-color:var(--crit)}
.field .err-msg{font-size:12.5px;color:var(--crit)}

/* Tabuľky */
table.ds{width:100%;border-collapse:collapse;font-size:15px}
table.ds th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;padding:10px 8px;border-bottom:2px solid var(--line)}
table.ds td{padding:12px 8px;border-bottom:1px solid var(--line)}
table.ds tr:hover td{background:var(--bg-2)}

/* Upozornenia */
.alert{border-radius:var(--r);padding:14px 16px;font-size:14.5px;border:1px solid}
.alert-ok{background:var(--good-wash);border-color:#cfe6cf;color:#2c5e2c}
.alert-warn{background:var(--warn-wash);border-color:#f1e2b0;color:#8a6a00}
.alert-crit{background:var(--crit-wash);border-color:#f1c9c9;color:#8a2a2a}

/* Chat */
.chat-msg{max-width:72%;border-radius:14px;padding:12px 16px;margin-bottom:10px;font-size:15px}
.chat-msg.from-patient{background:var(--bg-2);color:var(--ink);margin-right:auto;border-bottom-left-radius:4px}
.chat-msg.from-clinic{background:var(--ink);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.chat-msg .meta{font-size:11.5px;opacity:.65;margin-top:5px}
.chat-msg img{border-radius:8px;margin-top:8px;max-height:260px}

/* Signage (TV panel — veľké kontrasty, čierny podklad) */
.signage{background:var(--dark);color:#fff;font-size:2vw}
.signage .now{font-size:11vw;font-weight:800;letter-spacing:-.03em;line-height:1}
.signage .now .room{font-size:3.2vw;color:var(--dark-ink-2)}
.signage .next{font-family:var(--mono);font-size:3.4vw;color:var(--dark-ink-2)}
.signage .accent{background:var(--lava);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Modal */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal .backdrop{position:absolute;inset:0;background:rgba(11,13,17,.6);backdrop-filter:blur(4px)}
.modal .box{position:relative;background:#fff;border-radius:var(--r-lg);max-width:640px;width:100%;max-height:88svh;overflow:auto;padding:42px 38px;box-shadow:var(--shadow-lg)}
.modal .close{position:absolute;top:14px;right:14px;border:0;background:rgba(12,14,18,.06);width:38px;height:38px;border-radius:50%;font-size:16px;cursor:pointer}

@media (max-width:760px){
  .wrap{padding:0 18px}
  .chat-msg{max-width:88%}
}
