/* ==========================================================================
   AIYU — DarshMed Health Care
   Design system
   ========================================================================== */
:root{
  --navy:#032852; --navy-2:#0B3A6B; --navy-3:#12508C;
  --blue:#0B5CA4; --blue-soft:#EAF2FA;
  --green:#3F9B45; --green-2:#5CB247; --green-soft:#EFF7EE;
  --gold:#E9B44C; --gold-soft:#FDF6E8;
  --red:#B3261E; --red-soft:#FDF1F0;
  --amber:#B26B00; --amber-soft:#FFF8EA;
  --ink:#16202E; --ink-2:#334155; --muted:#64748B; --faint:#94A3B8;
  --line:#E4EAF0; --line-2:#EEF2F7; --bg:#F4F7FA; --paper:#fff;
  --r-sm:6px; --r:9px; --r-lg:13px;
  --sh-1:0 1px 2px rgba(3,40,82,.06);
  --sh-2:0 4px 14px rgba(3,40,82,.09);
  --sh-3:0 14px 40px rgba(3,40,82,.18);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{background:var(--bg);color:var(--ink);
  font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:14px;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
img{max-width:100%;display:block}
a{color:var(--blue)}
::selection{background:#CFE3F5}

/* scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:20px;border:3px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}

/* ── layout ───────────────────────────────────────────── */
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
.wrap-md{max-width:1020px;margin:0 auto;padding:0 20px}
.wrap-sm{max-width:760px;margin:0 auto;padding:0 20px}
.page{padding:22px 0 46px}
.stack{display:flex;flex-direction:column;gap:15px}
.stack-sm{display:flex;flex-direction:column;gap:9px}
.grid{display:grid;gap:15px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.split{display:grid;grid-template-columns:3fr 5fr 4fr;gap:16px;align-items:start}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.side{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}
.row{display:flex;align-items:center;gap:11px}
.row-t{display:flex;align-items:flex-start;gap:11px}
.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wrapf{flex-wrap:wrap}
.push{margin-left:auto}
.gap-sm{gap:7px}
@media(max-width:1080px){.split{grid-template-columns:1fr}.side{grid-template-columns:1fr}}
@media(max-width:860px){.g4,.g5{grid-template-columns:repeat(2,1fr)}.split-2{grid-template-columns:1fr}}
@media(max-width:620px){.g2,.g3{grid-template-columns:1fr}.hide-sm{display:none!important}}

/* ── surfaces ─────────────────────────────────────────── */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:17px;box-shadow:var(--sh-1)}
.card.tight{padding:13px}
.card.flush{padding:0;overflow:hidden}
.card.raise{box-shadow:var(--sh-2)}
.hair{height:1px;background:var(--line-2);margin:14px 0}
.note{background:var(--blue-soft);border-radius:var(--r);padding:13px;font-size:12.5px;line-height:1.65}
.note.gold{background:var(--gold-soft)}
.note.green{background:var(--green-soft)}
.note.red{background:var(--red-soft)}
.callout{border-left:3px solid var(--green);background:var(--green-soft);
  border-radius:0 var(--r) var(--r) 0;padding:13px 15px}
.callout.blue{border-color:var(--blue);background:var(--blue-soft)}
.callout.gold{border-color:var(--gold);background:var(--gold-soft)}
.callout.red{border-color:var(--red);background:var(--red-soft)}

/* ── type ─────────────────────────────────────────────── */
h1,h2,h3{margin:0}
.h1{font-size:21px;font-weight:700;letter-spacing:-.01em}
.h2{font-size:16px;font-weight:700;color:var(--navy)}
.h3{font-size:13.5px;font-weight:600;color:var(--navy)}
.eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.1em;color:var(--muted);
  text-transform:uppercase;margin-bottom:11px}
.sub{font-size:12px;color:var(--muted);line-height:1.55}
.tiny{font-size:10.5px;color:var(--muted);line-height:1.6}
.lead{font-size:14.5px;line-height:1.7;color:var(--ink-2)}
.mono{font-variant-numeric:tabular-nums}
.tr{text-align:right}.tc{text-align:center}

/* ── buttons ──────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:0;border-radius:var(--r);font-weight:600;font-size:13.5px;padding:11px 18px;
  background:var(--navy);color:#fff;cursor:pointer;transition:.15s;white-space:nowrap}
.btn:hover{background:var(--navy-2)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.42;cursor:not-allowed;transform:none}
.btn.green{background:var(--green)}.btn.green:hover{background:#357F3A}
.btn.blue{background:var(--blue)}.btn.blue:hover{background:#0A4E8C}
.btn.red{background:var(--red)}
.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink-2)}
.btn.ghost:hover{background:#F8FAFC;border-color:#C6D2E0}
.btn.link{background:none;color:var(--blue);padding:0;font-weight:500}
.btn.link:hover{background:none;text-decoration:underline}
.btn.sm{font-size:11.5px;padding:6px 12px;border-radius:var(--r-sm)}
.btn.lg{font-size:15px;padding:13px 24px}
.btn.full{width:100%}
.iconbtn{background:none;border:0;cursor:pointer;padding:6px;border-radius:var(--r-sm);
  color:var(--muted);line-height:0}
.iconbtn:hover{background:#F1F5F9;color:var(--ink)}

/* ── chips & flags ────────────────────────────────────── */
.chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:500;
  padding:3px 10px;border-radius:20px;background:#EEF2F7;color:var(--ink-2);white-space:nowrap}
.chip.red{background:var(--red-soft);color:var(--red)}
.chip.amber{background:var(--amber-soft);color:var(--amber)}
.chip.green{background:var(--green-soft);color:#2C6B31}
.chip.blue{background:var(--blue-soft);color:#0A4E8C}
.chip.navy{background:var(--navy);color:#fff}
.chip.gold{background:var(--gold-soft);color:#8A6318}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.pill-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:20px;background:var(--red);color:#fff;font-size:10px;font-weight:700}

/* ── forms ────────────────────────────────────────────── */
.field{margin-bottom:13px}
.field label{display:block;font-size:11.5px;font-weight:500;color:var(--muted);margin-bottom:5px}
.field .hint{font-size:10.5px;color:var(--faint);margin-top:4px}
.input,select.input,textarea.input{width:100%;border:1.5px solid var(--line);border-radius:var(--r);
  padding:11px 13px;background:#fff;transition:.15s}
.input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,92,164,.11)}
.input.err{border-color:var(--red)}
.input.sm{padding:7px 10px;font-size:12.5px;border-radius:var(--r-sm)}
textarea.input{min-height:78px;resize:vertical}
.err-msg{font-size:10.5px;color:var(--red);margin-top:4px}
.checkline{display:flex;align-items:flex-start;gap:9px;cursor:pointer;padding:4px 0}
.box{width:17px;height:17px;border-radius:5px;border:1.5px solid #CBD5E1;background:#fff;
  display:grid;place-items:center;font-size:10px;color:#fff;flex:none;margin-top:1px;transition:.12s}
.box.on{background:var(--green);border-color:var(--green)}
.seg{display:inline-flex;background:#EEF2F7;border-radius:var(--r);padding:3px;gap:2px}
.seg button{background:none;border:0;padding:6px 13px;border-radius:var(--r-sm);
  font-size:12px;font-weight:500;color:var(--muted);cursor:pointer}
.seg button.on{background:#fff;color:var(--navy);box-shadow:var(--sh-1)}

/* ── tables ───────────────────────────────────────────── */
table.t{width:100%;border-collapse:collapse;font-size:12.5px}
table.t th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);padding:0 10px 9px;border-bottom:1px solid var(--line)}
table.t td{padding:10px;border-bottom:1px solid var(--line-2);vertical-align:middle}
table.t tbody tr:last-child td{border-bottom:0}
table.t tbody tr.click{cursor:pointer}
table.t tbody tr.click:hover{background:#F8FAFC}
table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums}

/* ── bits ─────────────────────────────────────────────── */
.stat{text-align:center;padding:4px}
.stat b{display:block;font-size:24px;font-weight:700;color:var(--navy);line-height:1.25}
.stat span{font-size:11px;color:var(--muted)}
.vital{border:1px solid var(--line);border-radius:var(--r);padding:11px 5px;text-align:center;background:#fff}
.vital b{display:block;font-size:14.5px}
.vital span{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.listitem{display:block;width:100%;text-align:left;background:#fff;border:1.5px solid var(--line);
  border-radius:var(--r);padding:12px;cursor:pointer;transition:.15s}
.listitem:hover{border-color:#BCCEE0}
.listitem.on{border-color:var(--blue);background:#F7FBFE}
.pick{display:block;width:100%;text-align:left;background:#fff;border:1.5px solid var(--line);
  border-radius:var(--r);padding:13px;cursor:pointer;transition:.15s}
.pick:hover{background:#FAFCFE;border-color:#C6D2E0}
.pick.on{background:var(--green-soft);border-color:var(--green)}
.slot{border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:9px 12px;
  font-size:12px;cursor:pointer;transition:.12s}
.slot:hover{border-color:#BCCEE0}
.slot.on{background:var(--navy);border-color:var(--navy);color:#fff}
.slot:disabled{opacity:.4;cursor:not-allowed}

/* kanban */
.board{background:#E9EEF4;border-radius:var(--r-lg);padding:11px;min-height:120px}
.bcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px;
  margin-bottom:9px;box-shadow:var(--sh-1)}

/* panel */
.panelbox{border:1.5px solid var(--navy);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.panelhead{background:var(--navy);color:#fff;padding:15px 17px}
.drug{border:1px solid var(--line);border-radius:var(--r);padding:12px;background:#fff}
.drug.out{opacity:.36}
.why{font-size:11px;color:var(--muted);margin:7px 0 0;line-height:1.6}

/* timeline */
.tl{display:flex}
.tl-step{flex:1;text-align:center;position:relative}
.tl-step .bead{width:15px;height:15px;border-radius:50%;background:#fff;
  border:3px solid var(--line);margin:0 auto 9px;position:relative;z-index:2}
.tl-step.done .bead{border-color:var(--green);background:var(--green)}
.tl-step.now .bead{border-color:var(--gold);background:var(--gold);
  box-shadow:0 0 0 4px rgba(233,180,76,.25)}
.tl-step:not(:last-child):before{content:"";position:absolute;top:6px;left:50%;width:100%;
  height:3px;background:var(--line)}
.tl-step.done:not(:last-child):before{background:var(--green)}

/* ── login ────────────────────────────────────────────── */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
@media(max-width:920px){.login{grid-template-columns:1fr}.login .art{display:none}}
.login .art{position:relative;background:var(--navy);overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;padding:46px}
.login .art .hero{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.login .art .veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(3,40,82,.5),rgba(3,40,82,.94) 74%)}
.login .art .in{position:relative}
.login .art h2{font-size:32px;line-height:1.26;font-weight:700;color:#fff;margin:0 0 15px}
.login .art p{color:#A9BFD9;font-size:14px;line-height:1.7;margin:0;max-width:420px}
.login .form{display:flex;align-items:center;justify-content:center;padding:44px 30px;
  background:#fff url('assets/bg-wave.jpg') bottom/cover no-repeat}
.formbox{max-width:390px;width:100%}
.rolegrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0 20px}
.rolebtn{text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:var(--r);
  padding:12px;cursor:pointer;transition:.15s}
.rolebtn:hover{border-color:#BCCEE0}
.rolebtn.on{border-color:var(--blue);background:#F2F8FD;box-shadow:0 0 0 3px rgba(11,92,164,.09)}
.rolebtn b{display:block;font-size:12.5px}
.rolebtn span{font-size:10.5px;color:var(--muted)}

/* ── chrome ───────────────────────────────────────────── */
header.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:var(--sh-2)}
.topbar{display:flex;align-items:center;gap:14px;padding:10px 0;flex-wrap:wrap}
.brandrow{display:flex;align-items:center;gap:12px}
.brandrow .aiyu{height:30px;width:auto}
.brandrow .dm{height:20px;width:auto;opacity:.92}
.vline{width:1px;height:24px;background:rgba(255,255,255,.18)}
.tagline{font-size:11px;color:var(--gold)}
.searchbox{position:relative;flex:1;max-width:330px}
.searchbox input{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  border-radius:20px;padding:8px 14px 8px 34px;color:#fff;font-size:12.5px}
.searchbox input::placeholder{color:rgba(255,255,255,.45)}
.searchbox input:focus{outline:none;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3)}
.searchbox .ic{position:absolute;left:12px;top:8px;opacity:.5}
.searchres{position:absolute;top:40px;left:0;right:0;background:#fff;border-radius:var(--r);
  box-shadow:var(--sh-3);overflow:hidden;z-index:60}
.searchres button{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 14px;
  cursor:pointer;border-bottom:1px solid var(--line-2)}
.searchres button:hover{background:#F4F8FC}
.userchip{display:flex;align-items:center;gap:10px;font-size:11.5px;color:rgba(255,255,255,.75)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--blue);display:grid;place-items:center;
  font-size:11.5px;font-weight:600;color:#fff;flex:none}
.logout{background:none;border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.82);
  font-size:11px;padding:6px 11px;border-radius:var(--r-sm);cursor:pointer}
.logout:hover{background:rgba(255,255,255,.1)}
nav.sub{background:var(--navy-2)}
.subnav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav button{background:none;border:0;color:rgba(255,255,255,.6);font-size:12.5px;font-weight:500;
  padding:12px 16px;border-bottom:2.5px solid transparent;white-space:nowrap;cursor:pointer}
.subnav button:hover{color:#fff}
.subnav button.on{color:#fff;border-bottom-color:var(--gold)}
@media(max-width:760px){.tagline,.brandrow .dm,.vline,.searchbox{display:none}}

/* notifications */
.bell{position:relative}
.bell .pill-count{position:absolute;top:-2px;right:-2px}
.drop{position:absolute;right:0;top:42px;width:330px;background:#fff;border-radius:var(--r-lg);
  box-shadow:var(--sh-3);overflow:hidden;z-index:60}
.drop .hd{padding:13px 15px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--navy)}
.drop .it{padding:12px 15px;border-bottom:1px solid var(--line-2)}
.drop .it:last-child{border-bottom:0}

/* hero strip */
.herostrip{background:var(--navy);border-radius:var(--r-lg);overflow:hidden;position:relative;color:#fff}
.herostrip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.26}
.herostrip .veil{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(3,40,82,.95),rgba(3,40,82,.55))}
.herostrip .in{position:relative;padding:24px}

/* modal + toast */
.modal{position:fixed;inset:0;background:rgba(3,40,82,.52);display:grid;place-items:center;
  padding:20px;z-index:90;overflow:auto}
.modal .box{background:#fff;border-radius:var(--r-lg);max-width:520px;width:100%;
  padding:24px;box-shadow:var(--sh-3);max-height:92vh;overflow:auto}
.modal .box.wide{max-width:760px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--navy);
  color:#fff;font-size:12.5px;padding:13px 22px;border-radius:var(--r);z-index:95;
  box-shadow:var(--sh-3);max-width:88vw}
.toast.err{background:var(--red)}

footer.foot{font-size:11px;color:var(--faint);padding:22px 0 36px;line-height:1.7;
  border-top:1px solid var(--line);margin-top:30px}

/* sidebar nav */
.sidenav{position:sticky;top:100px}
.sidenav button{display:block;width:100%;text-align:left;background:none;border:0;
  padding:9px 12px;border-radius:var(--r-sm);font-size:12.5px;color:var(--muted);cursor:pointer}
.sidenav button:hover{background:#EDF2F7;color:var(--ink)}
.sidenav button.on{background:var(--navy);color:#fff;font-weight:500}
.print-only{display:none}
@media print{
  header.top,nav.sub,footer.foot,.no-print{display:none!important}
  body{background:#fff}.card{box-shadow:none;border-color:#ddd}
  .print-only{display:block}
}


/* ── tokens, queues, display board ─────────────────────────── */
.tok{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}
.tokbig{font-size:44px;line-height:1}
.tokchip{display:inline-grid;place-items:center;min-width:52px;height:34px;padding:0 10px;
  border-radius:8px;background:var(--navy);color:#fff;font-weight:700;font-size:17px;
  font-variant-numeric:tabular-nums}
.tokchip.sm{min-width:42px;height:27px;font-size:14px;border-radius:6px}
.tokchip.ghost{background:#EEF2F7;color:var(--navy)}

.qrow{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);
  border-radius:var(--r);background:#fff;margin-bottom:8px}
.qrow.now{border-color:var(--gold);background:#FFFCF4;box-shadow:0 0 0 3px rgba(233,180,76,.16)}
.qrow.called{border-color:var(--blue);background:#F5FAFE}
.qrow.done{opacity:.5}
.qrow.skipped{opacity:.6;border-style:dashed}

.deptcard{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;overflow:hidden}
.deptcard .hd{padding:11px 14px;color:#fff;display:flex;align-items:center;gap:9px}
.deptcard .hd b{font-size:13px}
.deptcard .bd{padding:12px}

/* public display board */
.boardwrap{background:var(--navy);min-height:100vh;padding:26px}
.boardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.bcell{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-lg);padding:18px;color:#fff}
.bcell .dept{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#9FB6D4;margin-bottom:8px}
.bcell .now{font-size:52px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.bcell .lbl{font-size:11px;color:#7E9AB8;margin-top:6px}
.bcell .next{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);
  font-size:13px;color:#C7D6E8;font-variant-numeric:tabular-nums}
.boardhead{display:flex;align-items:center;gap:16px;margin-bottom:22px;color:#fff}
.boardhead .clock{margin-left:auto;font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.blink{animation:bl 1.4s ease-in-out infinite}
@keyframes bl{0%,100%{opacity:1}50%{opacity:.45}}

/* the printable token slip */
.slip{width:300px;border:1px dashed #94A3B8;border-radius:10px;padding:18px;text-align:center;background:#fff}
.slip .n{font-size:56px;font-weight:700;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums}
@media print{
  body *{visibility:hidden}
  .slip, .slip *{visibility:visible}
  .slip{position:absolute;left:0;top:0;border:0}
}
