/* ============================================================
   csys.css — clinical-system-style prescription signing (js/sims/scripts.js)
   Loaded via index.html; scoped to .csys-app so it can't leak elsewhere.
   ============================================================ */
.csys-app { border:1px solid #9fb3c8; border-radius:6px; overflow:hidden; background:#eef3f8; font-size:.82rem; box-shadow:var(--shadow-md); }
.csys-app, .csys-app * { box-sizing:border-box; }

/* tabs strip */
.csys-tabs { display:flex; align-items:center; gap:.4rem; background:linear-gradient(#f4f7fb,#dfe8f2); border-bottom:1px solid #b7c6d6; padding:.25rem .5rem; }
.csys-tab { font-size:.78rem; padding:.15rem .7rem; border:1px solid #b7c6d6; border-bottom:none; border-radius:5px 5px 0 0; background:#e4ecf5; color:#33506e; }
.csys-tab.on { background:#fff; color:#12325c; font-weight:700; }
.csys-tabs-title { margin-left:auto; font-size:.72rem; color:#577; }

/* ribbon */
.csys-ribbon { display:flex; background:linear-gradient(#fbfdff,#e9f0f8); border-bottom:1px solid #b7c6d6; padding:.15rem .2rem; overflow-x:auto; }
.csys-rib-group { border-right:1px solid #cdd9e6; padding:.1rem .4rem .05rem; display:flex; flex-direction:column; min-width:max-content; }
.csys-rib-btns { display:flex; gap:.2rem; flex:1; align-items:center; }
.csys-rib-btn { font-size:.7rem; color:#2b3f57; padding:.12rem .35rem; border:1px solid transparent; border-radius:4px; white-space:nowrap; cursor:default; }
.csys-rib-btn:hover { border-color:#b7c6d6; background:#fff; }
.csys-rib-btn.primary { background:#dff0d8; border-color:#8fc98f; color:#2b6b2b; font-weight:600; }
.csys-rib-label { text-align:center; font-size:.64rem; color:#7089a1; margin-top:.05rem; }

/* refresh bar */
.csys-refbar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; background:#f4f8fc; border-bottom:1px solid #cdd9e6; padding:.25rem .6rem; font-size:.74rem; color:#2f5c86; }
.csys-refbar b { color:#12325c; }
.csys-ref-spacer { flex:1; }
.csys-refbar .muted { color:#7089a1; }

/* body */
.csys-body { display:grid; grid-template-columns:210px 1fr; min-height:520px; background:#fff; }
.csys-tasklist { border-right:1px solid #cdd9e6; background:#fbfdff; overflow:auto; max-height:74vh; }
.csys-tl-head { background:linear-gradient(#eaf1f8,#dbe6f2); border-bottom:1px solid #cdd9e6; padding:.3rem .5rem; font-weight:700; color:#33506e; font-size:.76rem; }
.csys-tl-foot { padding:.3rem .5rem; font-size:.7rem; color:#7089a1; border-top:1px solid #eef; }
.csys-task { display:flex; gap:.4rem; align-items:flex-start; padding:.3rem .5rem; border-bottom:1px solid #eef2f6; text-decoration:none; color:#22384f; cursor:pointer; }
.csys-task:hover { background:#eef5ff; }
.csys-task.on { background:#d7e6fb; }
.csys-task-ico { color:#4a77b5; flex:0 0 auto; font-size:.8rem; }
.csys-task.done .csys-task-ico { color:#2e8b57; }
.csys-task-body { flex:1; min-width:0; display:flex; flex-direction:column; }
.csys-task-name { font-weight:700; font-size:.74rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.csys-task-msg { font-size:.68rem; color:#7089a1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.csys-task-date { font-size:.66rem; color:#8aa; flex:0 0 auto; }

/* main + patient banner */
.csys-main { overflow:auto; max-height:74vh; }
.csys-banner { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; background:linear-gradient(#2b5083,#1c375f); color:#fff; padding:.4rem .7rem; }
.csys-banner-status { background:rgba(255,255,255,.18); padding:.05rem .4rem; border-radius:3px; font-size:.72rem; }
.csys-banner-name { font-weight:800; font-size:.95rem; }
.csys-banner-meta { font-size:.74rem; color:#dce9f7; }
.csys-banner-meta b { color:#fff; }
.csys-banner-badges { margin-left:auto; font-size:.66rem; background:rgba(255,255,255,.16); padding:.1rem .4rem; border-radius:3px; }
.csys-owned { background:#fff6d6; border-bottom:1px solid #ecdca0; color:#7a5c00; padding:.22rem .7rem; font-size:.74rem; }
.csys-subject { padding:.4rem .7rem .1rem; font-weight:700; color:#12325c; }

/* section headers */
.csys-section { background:#e7edf6; border-top:1px solid #c7d5e8; border-bottom:1px solid #c7d5e8; color:#2f4f7a; font-weight:700; padding:.28rem .7rem; margin-top:.3rem; display:flex; align-items:center; gap:.6rem; font-size:.78rem; }
.csys-section.cd { background:#eceef6; border-color:#cdd3e6; color:#454589; }
.csys-section-right { margin-left:auto; font-weight:400; color:#5a6f8c; font-size:.7rem; }
.csys-section.cd .csys-section-right { color:#6a6a9a; }
.csys-signrow { padding:.3rem .7rem; font-size:.76rem; color:#1a4f8a; }

/* drug lines */
.csys-lines { padding:0 .3rem; }
.csys-line { border-bottom:1px solid #eef2f6; padding:.4rem; }
.csys-line-main { display:flex; gap:.5rem; align-items:flex-start; }
.csys-tri { flex:0 0 auto; font-size:.85rem; line-height:1.4; }
.csys-tri.amber { color:#e8a317; }
.csys-tri.red { color:#d64545; }
.csys-line-txt { flex:1; min-width:0; }
.csys-line-1 { line-height:1.35; }
.csys-drug { color:#1666c4; font-weight:700; }
.csys-dose { color:#33506e; font-size:.78rem; }
.csys-cd { background:#5b3fb0; color:#fff; font-size:.6rem; font-weight:800; padding:.02rem .28rem; border-radius:3px; vertical-align:middle; }
.csys-line-2 { font-size:.72rem; color:#6a8199; margin-top:.15rem; display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
.csys-issue { color:#33506e; }
.csys-usage { display:inline-flex; align-items:center; gap:.2rem; border-radius:10px; padding:0 .4rem; font-size:.68rem; font-weight:600; }
.csys-usage.over { background:#fbe3e3; color:#b33; }
.csys-usage.under { background:#fdf0d6; color:#8a6d3b; }
.csys-usage.ok { background:#e3f2e3; color:#2e7d32; }
.csys-line-note { display:block; font-size:.7rem; color:#8a6d3b; margin-top:.15rem; }
.csys-line-note.warn { color:#b8860b; font-weight:600; }

/* per-line decision buttons + verdicts */
.csys-line-decide { flex:0 0 auto; display:flex; gap:.25rem; }
/* WCAG 2.5.8: >=24px target on every device (mis-taps here record an unsafe-issued event
   against the learner's signing record), then a full 44px on touch devices */
.csys-dec { font-size:.76rem; font-family:inherit; border:1px solid #b7c6d6; background:#fff; color:#33506e; border-radius:4px; padding:.35rem .6rem; cursor:pointer; min-height:24px; }
.csys-dec:hover:not(:disabled) { border-color:#1666c4; }
.csys-dec:disabled { opacity:.55; cursor:default; }
.csys-dec-approve.on { background:#2e8b57; border-color:#2e8b57; color:#fff; }
.csys-dec-query.on { background:#e8a317; border-color:#e8a317; color:#fff; }
.csys-dec-reject.on { background:#d64545; border-color:#d64545; color:#fff; }
.csys-line.ok { background:#f2faf2; }
.csys-line.wrong { background:#fff8ec; }
.csys-line.danger { background:#fdecec; }
.csys-line-verdict { display:none; font-size:.74rem; margin:.35rem 0 0 1.4rem; padding:.35rem .5rem; border-radius:5px; line-height:1.4; }
.csys-line-verdict.show { display:block; }
.csys-line-verdict.ok { background:#e3f2e3; color:#256b34; }
.csys-line-verdict.wrong { background:#fdf0d6; color:#7a5c1a; }
.csys-line-verdict.danger { background:#fbe0e0; color:#a12a2a; }

/* action bar + bottom */
.csys-actionbar { display:flex; align-items:center; gap:1rem; padding:.5rem .7rem; border-top:1px solid #dbe6f2; background:#f4f8fc; position:sticky; bottom:0; }
.csys-go { font-family:inherit; font-weight:700; font-size:.82rem; border:1px solid #2b6b2b; background:#dff0d8; color:#2b6b2b; border-radius:5px; padding:.35rem 1rem; cursor:pointer; }
.csys-go:disabled { opacity:.5; cursor:default; }
.csys-bottom { background:#eaf2fb; border-top:1px solid #cdd9e6; padding:.4rem .7rem; font-size:.74rem; color:#33506e; display:flex; flex-direction:column; gap:.2rem; }
.csys-allergy { color:#0a7a2f; font-weight:600; }
.csys-allergy-lbl { color:#7089a1; font-weight:700; margin-right:.3rem; }
.csys-warnings { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem; }
.csys-warn-chip { display:inline-block; background:#fff3cd; border:1px solid #ecdca0; color:#7a5c00; border-radius:10px; padding:0 .45rem; font-size:.68rem; }

@media (max-width:760px){
  .csys-body{ grid-template-columns:1fr; }
  .csys-tasklist{ max-height:none; }
  .csys-line-main{ flex-wrap:wrap; }
  .csys-line-decide{ width:100%; }
}
/* touch devices (incl. iPad portrait at 768px, which the 760px block misses): enlarge the
   safety-critical decision buttons and bulk checkbox to a comfortable finger target */
@media (pointer:coarse){
  .csys-dec{ min-height:44px; padding:.55rem .8rem; }
  .csys-linechk{ width:24px; height:24px; }
  .csys-bulk{ min-height:36px; padding:.4rem .7rem; }
}

/* ---- bulk toolbar, issue history, medication review (added features) ---- */
.csys-toolbar{ display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; padding:.4rem .7rem; background:#eef3f9; border-top:1px solid #d3deeb; border-bottom:1px solid #d3deeb; }
.csys-selall{ font-size:.74rem; color:#33506e; display:flex; align-items:center; gap:.3rem; cursor:pointer; }
.csys-tb-sep{ width:1px; height:16px; background:#c7d5e8; }
.csys-bulk{ font:inherit; font-size:.72rem; border:1px solid #b7c6d6; background:#fff; color:#2f4f7a; border-radius:4px; padding:.2rem .55rem; cursor:pointer; }
.csys-bulk:hover:not(:disabled){ border-color:#2b5083; background:#f5f9ff; }
.csys-bulk:disabled{ opacity:.5; cursor:default; }
.csys-bulk.ghost{ color:#7089a1; }
/* bare <input> checkbox scaled up so the actual tap target clears WCAG 24px on touch */
.csys-linechk{ margin-top:.25rem; flex:0 0 auto; width:20px; height:20px; }
.csys-dec-reauthorise.on{ background:#2b5083; border-color:#2b5083; color:#fff; }
.csys-hist{ margin-top:.3rem; }
.csys-hist summary{ cursor:pointer; font-size:.72rem; color:#1666c4; width:max-content; }
.csys-hist summary:hover{ text-decoration:underline; }
.csys-hist-tbl{ border-collapse:collapse; margin:.3rem 0 .1rem; font-size:.72rem; }
.csys-hist-tbl th, .csys-hist-tbl td{ border:1px solid #d3deeb; padding:.12rem .5rem; text-align:left; }
.csys-hist-tbl th{ background:#eef3f9; color:#33506e; font-weight:600; }
.csys-medrev{ margin:.2rem .3rem .4rem; padding:.6rem .8rem; background:#f2f6fc; border:1px solid #cdd9e6; border-radius:8px; }
.csys-medrev h4{ color:#2f4f7a; }
.csys-mr-grid{ display:flex; gap:.5rem; flex-wrap:wrap; }
.csys-mr-kpi{ background:#fff; border:1px solid #d3deeb; border-radius:7px; padding:.35rem .7rem; text-align:center; min-width:74px; }
.csys-mr-kpi b{ display:block; font-size:1.15rem; color:#2b5083; line-height:1; }
.csys-mr-kpi span{ font-size:.64rem; color:#7089a1; }

/* ---- patient / pharmacy query banners + consequences ("what happened next") ---- */
.csys-query{ margin:.35rem .3rem 0; padding:.4rem .65rem; border-radius:7px; font-size:.8rem; line-height:1.45; }
.csys-query.patient{ background:#fff6e6; border:1px solid #f0d9a8; color:#6b4e12; }
.csys-query.pharmacy{ background:#eaf1fb; border:1px solid #c7d9f0; color:#274b7a; }
.csys-cons-item{ border-left:4px solid #c7d5e8; background:#f4f7fc; border-radius:0 8px 8px 0; padding:.5rem .7rem; margin-bottom:.5rem; font-size:.9rem; line-height:1.5; }
.csys-cons-item.harm{ border-left-color:#d64545; background:#fdecec; }
.csys-cons-item.flag{ border-left-color:#e8a317; background:#fff6e6; }
.csys-cons-item.admin{ border-left-color:#2b5083; background:#eef3fb; }
.csys-cons-item.good{ border-left-color:#2e8b57; background:#eef8ef; }
.csys-cons-t{ font-weight:700; }

/* ---- timed signing sessions: target picker, session bar, stats, reception query ---- */
.rx-targets{ display:flex; gap:.45rem; flex-wrap:wrap; }
.rx-target{ font:inherit; font-weight:700; font-size:1rem; min-width:64px; padding:.5rem .8rem; border:1.5px solid var(--line); border-radius:10px; background:var(--card,#fff); color:var(--navy,#12325c); cursor:pointer; transition:all .1s; }
.rx-target:hover{ border-color:var(--teal,#1f6fc4); transform:translateY(-1px); }
.rx-stats{ display:flex; gap:.5rem; flex-wrap:wrap; }
.rx-stat{ background:var(--card,#fff); border:1px solid var(--line); border-radius:9px; padding:.45rem .8rem; text-align:center; min-width:86px; }
.rx-stat b{ display:block; font-size:1.25rem; color:var(--navy,#12325c); line-height:1.1; font-variant-numeric:tabular-nums; }
.rx-stat span{ font-size:.68rem; color:var(--ink-soft,#7089a1); }
.rx-sessionbar{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:.2rem 0 .6rem; position:sticky; top:64px; z-index:5;
  background:var(--bg,#eef3f8); padding:.35rem 0; }
.rx-sess-chip{ background:var(--card,#fff); border:1px solid var(--line); border-radius:999px; padding:.25rem .7rem; font-size:.82rem; color:var(--ink,#22384f); font-variant-numeric:tabular-nums; }
.rx-sess-chip b{ color:var(--navy,#12325c); }
.rx-sess-spacer{ flex:1; }
.csys-query.reception{ background:#eef7ee; border:1px solid #c9e2c9; color:#2c5e2c; }
