/* ============================================================================
 * IRIS Admin Console — stylesheet
 * ----------------------------------------------------------------------------
 * Lifted VERBATIM from the standalone console (admin/index.html) so the Blade
 * port is pixel-identical to the tool the back office already knows. Presentation
 * was matched to the original prototype console on purpose (light theme, dark
 * left sidebar, purple accent, the same tabs in the same order); do not restyle
 * it without asking Von.
 *
 * One variable scales everything: --fs. Every size is calc(var(--fs)*n).
 * ==========================================================================*/
  /* One variable scales the whole console (every size is calc(var(--fs)*n)).
     Tuned for a back-office DATA tool read on a desktop monitor — denser than
     the doctor's phone app. Was clamp(15.5px … 21px), which rendered oversized
     on a wide screen. */
  :root{ --fs:clamp(13px,0.42vw + 10px,15.5px); }
  *{box-sizing:border-box}
  html,body{margin:0;height:100%}
  body{background:#F1F5F9;color:#0F172A;display:flex;flex-direction:column;
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-size:var(--fs)}
  .mono{font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace}

  /* header */
  .ac-head{background:#1E293B;color:#fff;padding:13px 16px;flex-shrink:0;display:flex;align-items:center;gap:11px}
  .ac-head .ac-mark{width:30px;height:30px;border-radius:8px;background:#8B5CF6;display:grid;place-items:center;font-size:.9rem;flex-shrink:0}
  .ac-head h2{font-size:calc(var(--fs)*1.15);font-weight:700;line-height:1.1;margin:0}
  .ac-head .ac-sub{font-size:calc(var(--fs)*.72);opacity:.65;margin-top:1px}
  .ac-head .ac-right{margin-left:auto;display:flex;align-items:center;gap:9px}
  .ac-backend{font-size:calc(var(--fs)*.72);opacity:.7}
  .ac-backend b{color:#C4B5FD;font-weight:600}
  .ac-signout{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:8px;padding:7px 11px;font-family:inherit;font-size:calc(var(--fs)*.8);font-weight:600;cursor:pointer}

  /* layout: dark left sidebar + scrolling body */
  .ac-main{flex:1;display:flex;min-height:0}
  .ac-scroll{flex:1;overflow-y:auto;min-width:0}
  .ac-tabs{display:flex;flex-direction:column;gap:3px;background:#0F172A;padding:14px 10px;flex-shrink:0;width:196px;overflow-y:auto}
  .ac-tab{background:none;border:none;color:#94A3B8;padding:10px 13px;font-family:inherit;font-size:calc(var(--fs)*.9);font-weight:600;cursor:pointer;white-space:nowrap;text-align:left;border-radius:8px;border-left:3px solid transparent;display:flex;align-items:center;gap:7px}
  .ac-tab:hover{color:#E2E8F0;background:rgba(255,255,255,.04)}
  .ac-tab.sel{color:#fff;background:rgba(139,92,246,.2);border-left-color:#8B5CF6}
  .ac-tab .tab-ct{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#F43F5E;color:#fff;font-size:calc(var(--fs)*.72);font-weight:800;line-height:18px;text-align:center}
  .ac-tab .lk{margin-left:auto;opacity:.5;font-size:calc(var(--fs)*.8)}
  .ac-body{max-width:1440px;margin:0 auto;padding:22px 28px}

  /* cards + components (mirrors the prototype admin) */
  .ac-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
  .ac-card{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:14px;margin-bottom:13px;overflow-x:auto}
  .ac-card h3{font-size:calc(var(--fs)*1.02);font-weight:700;margin:0 0 4px;display:flex;align-items:center;gap:8px}
  .ac-card h3 .ct{color:#94A3B8;font-weight:600;font-size:calc(var(--fs)*.78)}
  .ac-card .muted{color:#64748B;font-size:calc(var(--fs)*.82);line-height:1.45}
  table.ac-tbl{width:100%;border-collapse:collapse;font-size:calc(var(--fs)*.9);margin-top:8px}
  table.ac-tbl th{text-align:left;color:#64748B;font-size:calc(var(--fs)*.72);text-transform:uppercase;letter-spacing:.4px;padding:5px 8px;border-bottom:1px solid #E2E8F0}
  table.ac-tbl td{padding:6px 8px;border-bottom:1px solid #F1F5F9;vertical-align:middle}
  table.ac-tbl tr:last-child td{border-bottom:none}
  .ac-code{font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace;font-weight:600;font-size:calc(var(--fs)*.8);padding:3px 8px;border-radius:6px;background:#EDE9FE;color:#5B21B6;white-space:nowrap}
  .ac-code.h{background:#CFFAFE;color:#155E75}
  .ac-code.m{background:#FCE7F3;color:#9D174D}
  .ac-add{background:#8B5CF6;color:#fff;border:none;border-radius:8px;padding:8px 13px;font-family:inherit;font-weight:600;font-size:calc(var(--fs)*.85);cursor:pointer;margin-top:11px}
  .ac-cancel{background:none;border:1px solid #CBD5E1;color:#475569;border-radius:8px;padding:8px 13px;font-family:inherit;font-weight:600;font-size:calc(var(--fs)*.85);cursor:pointer;margin-top:11px;margin-left:6px}
  .ac-inp{padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-family:inherit;font-size:calc(var(--fs)*.88)}
  .ac-inp:focus{outline:none;border-color:#8B5CF6}
  .ac-subhead{font-size:calc(var(--fs)*.82);font-weight:700;color:#334155;margin:16px 0 8px}
  .ac-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
  .ac-stat{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:13px 14px}
  .ac-stat .n{font-size:calc(var(--fs)*1.7);font-weight:800;line-height:1;color:#0F172A}
  .ac-stat .l{font-size:calc(var(--fs)*.74);color:#64748B;margin-top:5px;text-transform:uppercase;letter-spacing:.3px}
  .ac-bar{display:flex;align-items:center;gap:10px;margin:9px 0}
  .ac-bar .bl{width:96px;flex-shrink:0;font-size:calc(var(--fs)*.82);color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ac-bar .bt{flex:1;background:#F1F5F9;border-radius:6px;height:16px;overflow:hidden}
  .ac-bar .bf{height:100%;border-radius:6px;background:#8B5CF6;min-width:2px}
  .ac-bar .bf.h{background:#06B6D4}.ac-bar .bf.g{background:#F59E0B}
  .ac-bar .bv{width:44px;flex-shrink:0;text-align:right;font-size:calc(var(--fs)*.83);font-weight:700;color:#0F172A}
  .ac-note{font-size:calc(var(--fs)*.76);color:#94A3B8;margin-top:2px;line-height:1.5}
  .ac-ok{color:#15803D;font-weight:700;font-size:calc(var(--fs)*.82)}
  .ac-src{display:inline-block;border-radius:8px;padding:2px 8px;font-size:calc(var(--fs)*.78);font-weight:700;white-space:nowrap}
  .ac-src-in{background:#E0F2FE;border:1px solid #7DD3FC;color:#075985}
  .ac-src-out{background:#FEF3C7;border:1px solid #FCD34D;color:#92400E}
  .ac-locked{background:#DCFCE7;border:1px solid #86EFAC;color:#15803D;border-radius:10px;padding:12px;font-size:calc(var(--fs)*.9);font-weight:600;margin-top:12px;text-align:center}
  .ac-item{border:1px solid #E2E8F0;border-radius:10px;padding:11px 12px;margin-top:10px;background:#fff}
  .ac-item .it-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}
  .ac-item .it-type{font-weight:700;font-size:calc(var(--fs)*.9)}
  .ac-item .it-detail{font-size:calc(var(--fs)*.86);color:#475569;line-height:1.45}
  .ac-live{display:inline-block;font-size:calc(var(--fs)*.74);font-weight:700;color:#15803D;margin-top:6px}
  .sev{font-size:calc(var(--fs)*.66);font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 7px;border-radius:999px}
  .sev.high{background:#FEE2E2;color:#B91C1C}.sev.med{background:#FEF3C7;color:#B45309}.sev.low{background:#F1F5F9;color:#64748B}
  .ac-tile{flex:1 1 150px;min-width:150px;border:1px solid #E2E8F0;border-radius:12px;padding:12px 14px;background:#fff}
  .ac-tile .tl{font-size:calc(var(--fs)*.74);color:#64748B;text-transform:uppercase;letter-spacing:.03em}
  .ac-tile .tv{font-size:calc(var(--fs)*1.5);font-weight:700;margin-top:4px}
  .ac-tile .ts{font-size:calc(var(--fs)*.76);color:#64748B;margin-top:2px}
  .ac-err{margin:14px 28px;padding:12px 16px;border:1px solid #FCA5A5;border-radius:10px;color:#B91C1C;background:#FEF2F2;font-size:calc(var(--fs)*.86);display:none}

  /* write-back controls (Step 5.6A) */
  .ac-mini{background:#fff;border:1px solid #CBD5E1;border-radius:7px;padding:5px 9px;font-family:inherit;font-size:calc(var(--fs)*.78);font-weight:600;cursor:pointer;color:#334155;margin:0 4px 4px 0}
  .ac-mini:hover{border-color:#8B5CF6}
  .ac-mini.sel{background:#EDE9FE;border-color:#8B5CF6;color:#5B21B6}
  .ac-mini.danger{color:#B91C1C;border-color:#FCA5A5}
  .ac-ref{font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace;font-size:calc(var(--fs)*.78);font-weight:600;color:#5B21B6;text-decoration:none;white-space:nowrap}
  .ac-ref:hover{text-decoration:underline}
  .ac-refmuted{font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace;font-size:calc(var(--fs)*.78);font-weight:600;color:#94A3B8;white-space:nowrap}
  @keyframes acflash{0%{background:#FEF08A}100%{background:transparent}}
  .ac-flash{animation:acflash 1.6s ease-out}
  .rname{color:#9D174D;font-weight:700}
  /* The doctor's own (masked) wording for a stock alert — a quiet quote on its own
     line under the codes, roomy enough to read the tone without crowding the row. */
  .stock-msg{margin-top:7px;color:#475569;font-style:italic;font-size:calc(var(--fs)*.86);line-height:1.5;max-width:52ch;white-space:normal;padding-left:9px;border-left:2px solid #E2E8F0}
  .ac-actrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}

  /* header identity + sign-out (Step 5.6) */
  .ac-who{font-size:calc(var(--fs)*.74);opacity:.85;white-space:nowrap}
  .ac-who .role{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:rgba(139,92,246,.35);color:#EDE9FE;font-weight:700;text-transform:uppercase;letter-spacing:.4px;font-size:calc(var(--fs)*.64)}

  /* sign-in screen (Step 5.6) */
  #loginScreen{position:fixed;inset:0;z-index:500;background:#0F172A;display:flex;align-items:center;justify-content:center;padding:20px}
  .login-card{background:#fff;border-radius:16px;padding:28px 26px;width:100%;max-width:360px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
  .login-card .mark{width:44px;height:44px;border-radius:11px;background:#8B5CF6;display:grid;place-items:center;font-size:1.2rem;margin-bottom:14px}
  .login-card h1{font-size:calc(var(--fs)*1.2);font-weight:700;margin:0 0 3px;color:#0F172A}
  .login-card p{font-size:calc(var(--fs)*.82);color:#64748B;margin:0 0 18px;line-height:1.45}
  .login-card label{display:block;font-size:calc(var(--fs)*.74);font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#475569;margin:0 0 5px}
  .login-card input{width:100%;padding:11px 12px;border:1px solid #CBD5E1;border-radius:9px;font-family:inherit;font-size:calc(var(--fs)*.92);margin-bottom:14px;color:#0F172A}
  .login-card input:focus{outline:none;border-color:#8B5CF6}
  .login-card button{width:100%;background:#8B5CF6;color:#fff;border:none;border-radius:10px;padding:12px;font-family:inherit;font-weight:700;font-size:calc(var(--fs)*.95);cursor:pointer}
  .login-card button:hover{background:#7C3AED}
  .login-err{color:#B91C1C;font-size:calc(var(--fs)*.84);min-height:1.2em;margin-bottom:10px}

  @media(max-width:900px){
    .ac-main{flex-direction:column}
    .ac-tabs{flex-direction:row;width:auto;overflow-x:auto;padding:9px 10px;gap:5px}
    .ac-tab{white-space:nowrap;border-left:none;border-bottom:3px solid transparent;padding:8px 12px;border-radius:8px 8px 0 0}
    .ac-tab.sel{border-left-color:transparent;border-bottom-color:#8B5CF6}
    .ac-tab .lk{margin-left:5px}
    .ac-body{padding:16px 14px}
  }
  @media(pointer:coarse){ .ac-tab{padding:12px 15px} .ac-signout{padding:10px 14px} .ac-inp{padding:11px 12px} }
  /* Roster clean-up modal — opened from the Review queue "Add to roster".
     Same look as the original console's modal so the back office recognises it. */
  .ac-modal{position:fixed;inset:0;z-index:300;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:20px}
  .ac-modal.on{display:flex}
  .ac-modal-card{background:#fff;border-radius:14px;max-width:460px;width:100%;max-height:88%;overflow-y:auto;padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
  .ac-modal-card h3{font-family:'Bricolage Grotesque',sans-serif;font-size:1.18rem;margin-bottom:4px;color:#0F172A}
  .ac-modal-card p.sub{font-size:.88rem;color:#64748B;margin-bottom:16px;line-height:1.5}
  .ac-field{margin-bottom:14px}
  .ac-field label{display:block;font-size:.78rem;letter-spacing:.4px;text-transform:uppercase;font-weight:700;color:#475569;margin-bottom:5px}
  .ac-field .ac-inp{width:100%;flex:none;box-sizing:border-box}
  .ac-hint{font-size:.78rem;color:#94A3B8;margin-top:4px}
  .ac-hosp-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}
  .ac-hosp-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #CBD5E1;border-radius:999px;padding:6px 11px;font-size:.83rem;cursor:pointer;user-select:none}
  .ac-hosp-chip input{margin:0}
  .ac-hosp-chip.sel{background:#EDE9FE;border-color:#8B5CF6;color:#5B21B6;font-weight:600}
  .ac-preview{border:1px dashed #CBD5E1;border-radius:9px;padding:9px 11px;background:#F8FAFC;font-size:.9rem;min-height:20px}
  .ac-seg{display:inline-flex;border:1px solid #CBD5E1;border-radius:999px;overflow:hidden;flex:none}
  .ac-seg button{border:none;background:#fff;padding:6px 15px;font-family:inherit;font-size:calc(var(--fs)*.82);font-weight:600;color:#475569;cursor:pointer}
  .ac-seg button.sel{background:#8B5CF6;color:#fff}
  .ac-seg button+button{border-left:1px solid #CBD5E1}
  .ac-modal-err{color:#B91C1C;font-size:.83rem;min-height:18px;margin-bottom:6px}
  .ac-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}

/* ============================================================================
 * Step 6.5 step 5 — showing real names on screen (DECISIONS #87)
 * ----------------------------------------------------------------------------
 * Names now sit on screen with no hover-to-reveal and no per-session toggle, so
 * two compensating measures come with them: the viewer's own identity
 * watermarked behind the page (so a screenshot carries its origin — the same
 * idea as the doctor app, DECISIONS #26), and idle sign-out.
 * ==========================================================================*/
.ac-watermark{
  position:fixed; inset:0; z-index:0; pointer-events:none; user-select:none;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.ac-watermark span{
  font-size:clamp(28px,6vw,64px); font-weight:800; letter-spacing:.08em;
  color:rgba(15,23,42,.045); transform:rotate(-24deg); white-space:nowrap;
  text-transform:uppercase;
}
/* The console's own chrome has to sit above it. */
.ac-head,.ac-main,.ac-err{position:relative;z-index:1}

/* A quiet standing reminder that this screen is showing real names. */
.ac-names-on{
  display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;
  background:rgba(244,63,94,.18);color:#FECDD3;font-weight:700;
  font-size:calc(var(--fs)*.64);text-transform:uppercase;letter-spacing:.4px;
}
