  /* ---------- Prescription ---------- */
  .rx-allergy-bar{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);padding:10px 14px;margin-bottom:14px;
    box-shadow:var(--shadow-1);
  }
  .rx-allergy-bar.has{background:linear-gradient(180deg,var(--crit-soft) 0%,var(--card) 60%);border-color:var(--crit-border)}

  /* ---------- Rx: safety rail ----------
     Token-only colours so the OLED theme needs no per-rule override. */
  .rx-safety{
    display:flex;align-items:stretch;flex-wrap:wrap;
    background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);margin-bottom:14px;overflow:hidden;
    box-shadow:var(--shadow-1);
  }
  .rx-safety.has{border-color:var(--crit-border);box-shadow:inset 3px 0 0 var(--crit),var(--shadow-1)}
  .rx-safety-fact{
    display:flex;flex-direction:column;gap:2px;justify-content:center;
    padding:9px 16px;border-right:1px solid var(--hairline);min-width:0;
  }
  .rx-safety-fact .k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
  .rx-safety-fact .v{font-size:14px;font-weight:650;color:var(--ink)}
  .rx-safety-fact .v small{font-weight:500;color:var(--faint);font-size:12px}
  .rx-safety-fact.alert{background:var(--crit-soft)}
  .rx-safety-fact.alert .k{color:var(--crit)}
  .rx-safety-fact.alert .v{color:var(--crit);font-weight:750}
  .rx-safety-fact.unknown .k,.rx-safety-fact.unknown .v{color:var(--warn)}
  .rx-safety-end{margin-left:auto;border-right:0;display:flex;align-items:center;gap:8px;padding:9px 12px}

  /* ---------- Rx: due now ---------- */
  .rx-duenow{margin-bottom:14px}
  .rx-duenow-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
  .rx-duenow-head .t{font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .rx-duenow-head .hint{margin-left:auto;font-size:12px;color:var(--faint)}
  .rx-duenow-row{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
  .rx-duecard{
    flex:0 0 300px;background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);padding:12px 13px;box-shadow:var(--shadow-1);
    display:flex;flex-direction:column;gap:9px;
  }
  .rx-duecard.late{border-color:var(--crit-border);background:var(--crit-soft)}
  .rx-duecard-top{display:flex;align-items:flex-start;gap:8px}
  .rx-duecard .drug{font-weight:700;font-size:15px;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
  .rx-duecard .dose{font-size:12.5px;color:var(--muted);margin-top:1px}
  .rx-duecard .when{
    margin-left:auto;text-align:right;font-size:11px;font-weight:700;
    letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--warn);
  }
  .rx-duecard .when.late{color:var(--crit)}
  .rx-duecard .when .big{display:block;font-size:15px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
  .rx-duecard .flag{
    font-size:11.5px;font-weight:650;color:var(--warn);background:var(--warn-soft);
    border:1px solid var(--warn-border);border-radius:var(--radius-1);padding:4px 8px;
  }
  .rx-duecard-give{
    width:100%;border:0;border-radius:var(--radius-1);cursor:pointer;font-family:inherit;
    font-size:14px;font-weight:700;padding:10px 12px;color:#fff;background:var(--ok);
    display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;
  }
  .rx-duecard-give.late{background:var(--crit)}
  .rx-duecard-give:hover{filter:brightness(1.06)}
  .rx-later{
    flex:1 1 320px;min-width:260px;background:var(--card-2);
    border:1px dashed var(--border-2);border-radius:var(--radius-2);padding:12px 14px;
  }
  .rx-later .t{font-size:10.5px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
  .rx-later ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
  .rx-later li{display:flex;align-items:baseline;gap:11px;font-size:13px;color:var(--ink-2)}
  .rx-later li time{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);min-width:44px}
  .rx-later .foot{margin-top:9px;padding-top:8px;border-top:1px solid var(--hairline);font-size:11.5px;color:var(--faint)}
  .rx-allclear{
    flex:1 1 100%;display:flex;align-items:center;gap:9px;
    background:var(--ok-soft);border:1px solid var(--ok-border);border-radius:var(--radius-2);
    padding:11px 14px;color:var(--ok);font-weight:650;font-size:13.5px;
  }
  .rx-allclear svg{width:16px;height:16px;flex:0 0 auto}

  /* ---------- Rx: unified chart ---------- */
  .rx-chart{
    background:var(--card);border:1px solid var(--border);border-radius:var(--radius-2);
    box-shadow:var(--shadow-1);overflow-x:auto;
  }
  table.rx-chart-t{width:100%;min-width:880px;border-collapse:collapse;font-size:13px}
  .rx-chart-t th{
    padding:9px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;
    color:var(--faint);font-weight:750;background:var(--surface-header);
    text-align:left;border-bottom:1px solid var(--border);
  }
  .rx-chart-t th.tcol{width:44%}
  .rx-chart-t th.acol{text-align:right;width:160px}
  .rx-chart-t td{padding:11px 14px;border-bottom:1px solid var(--hairline);vertical-align:middle}
  .rx-chart-t tr:last-child td{border-bottom:none}
  .rx-chart-t tr.ord:hover{background:var(--surface-hover)}
  .rx-chart-t tr.ord.late td{background:var(--crit-soft)}
  .rx-chart-t tr.ord.inactive{opacity:.62}
  .rx-grp td{padding:9px 14px 7px;background:var(--card-2);border-top:1px solid var(--hairline)}
  .rx-grp-label{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
  .rx-grp-label .sq{width:7px;height:7px;border-radius:2px;flex:0 0 auto}
  .rx-grp-label .t{font-size:11.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
  .rx-grp-label .c{
    font-size:10.5px;font-weight:700;color:var(--muted);background:var(--card-3);
    border:1px solid var(--border);border-radius:999px;padding:0 7px;
  }
  .rx-grp-label .note{margin-left:auto;font-size:11.5px;color:var(--faint);font-weight:500}
  .rx-dcell{display:flex;flex-direction:column;gap:2px;min-width:190px}
  .rx-dname{font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .rx-dsub{font-size:12.5px;color:var(--muted)}
  .rx-dsub b{color:var(--ink-2);font-weight:650}
  .rx-dmeta{font-size:11.5px;color:var(--faint)}
  .rx-dmeta .reason{color:var(--warn)}

  /* shared 24 h time axis — ruler in the header, ticks repeated per row */
  .rx-ruler{position:relative;height:17px;min-width:320px;margin-top:20px}
  .rx-ruler .hr-lab{top:4px}
  .rx-ruler .hr-tick{top:13px;height:5px;opacity:.9}
  .rx-ruler-now{position:absolute;top:2px;height:15px;width:2px;background:var(--brand);border-radius:2px}
  .rx-ruler-now b{
    position:absolute;top:-15px;left:-1px;font-size:9.5px;font-weight:750;color:var(--brand);
    letter-spacing:.04em;white-space:nowrap;background:var(--surface-header);padding:0 3px;
    font-variant-numeric:tabular-nums;
  }
  .rx-tnote{font-size:11.5px;color:var(--muted);margin-bottom:3px}
  .rx-tnote b{color:var(--ink);font-weight:700}
  .rx-tnote .ok{color:var(--ok);font-weight:700}
  .rx-tnote .bad{color:var(--crit);font-weight:700}
  .rx-track{position:relative;height:38px;min-width:320px}
  .rx-track.short{height:20px}
  .rx-track .hr-lab{display:none}
  .rx-track .hr-tick{top:11px;height:16px}
  .rx-track.short .hr-tick{top:3px;height:14px}
  .rx-track-bg{position:absolute;left:0;right:0;top:13px;height:12px;border-radius:3px;background:var(--surface-disabled);border:1px solid var(--border)}
  .rx-track.short .rx-track-bg{top:4px}
  .rx-track-now{position:absolute;top:2px;bottom:2px;width:2px;background:var(--brand);border-radius:2px;z-index:3}
  .rx-track-now::after{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--brand)}
  .rx-infbar{position:absolute;top:4px;height:12px;border-radius:3px;background:var(--brand-soft);border:1px solid var(--brand);border-right:0;z-index:2}
  .hr-lab{position:absolute;transform:translateX(-50%);font-size:9.5px;color:var(--faint);font-variant-numeric:tabular-nums}
  .hr-tick{position:absolute;width:1px;background:var(--border-2);opacity:.5}
  .rx-mark{
    position:absolute;top:11px;width:16px;height:16px;margin-left:-8px;border-radius:50%;
    border:2px solid var(--card);z-index:4;display:grid;place-items:center;
    font-size:8px;font-weight:800;color:#fff;line-height:1;
  }
  .rx-mark.given{background:var(--ok)}
  .rx-mark.omitted,.rx-mark.refused,.rx-mark.held{background:var(--warn);color:var(--ink)}
  .rx-mark.missed{background:var(--crit);box-shadow:0 0 0 3px var(--crit-soft)}
  .rx-mark.next{background:var(--card);border:2px dashed var(--border-2)}
  /* given, but not against a scheduled slot — haloed so an off-schedule dose
     never reads as a routine one */
  .rx-mark.offslot{box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--ok)}
  .rx-mark.omitted.offslot,.rx-mark.refused.offslot,.rx-mark.held.offslot{
    box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--warn)
  }
  .rx-mark.futr{background:var(--card);border:2px solid var(--border-2)}
  .rx-mark-lab{
    position:absolute;top:28px;transform:translateX(-50%);font-size:10px;color:var(--faint);
    white-space:nowrap;font-variant-numeric:tabular-nums;
  }
  .rx-mark-lab.missed{color:var(--crit);font-weight:750}
  .rx-track-empty{position:absolute;top:11px;left:0;font-size:11.5px;color:var(--faint)}

  /* one primary action per row; everything destructive behind the menu */
  .rx-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;white-space:nowrap}
  .rx-act-give{
    border:0;border-radius:var(--radius-1);background:var(--ok);color:#fff;font-family:inherit;
    font-size:13px;font-weight:700;padding:9px 15px;cursor:pointer;min-height:38px;
  }
  .rx-act-give.late{background:var(--crit)}
  .rx-act-give:hover{filter:brightness(1.06)}
  /* not due yet, or PRN with an unmet indication: available, but it must not
     outshout the dose that is actually overdue. */
  .rx-act-give.quiet{background:var(--card);color:var(--ink-2);border:1px solid var(--border-2);font-weight:650}
  .rx-act-give.quiet:hover{border-color:var(--ok);color:var(--ok);filter:none}
  .rx-act-2nd{
    border:1px solid var(--brand-ring);background:var(--brand-soft);color:var(--brand);
    font-family:inherit;font-size:13px;font-weight:700;padding:8px 13px;
    border-radius:var(--radius-1);cursor:pointer;min-height:38px;
  }
  .rx-act-2nd:hover{border-color:var(--brand)}
  .rx-act-more{
    border:1px solid var(--border);background:var(--card);color:var(--muted);font-family:inherit;
    width:38px;height:38px;border-radius:var(--radius-1);cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
  }
  .rx-act-more svg{width:16px;height:16px}
  .rx-act-more:hover{border-color:var(--border-2);color:var(--ink)}
  .rx-given-mark{display:inline-flex;align-items:center;gap:5px;color:var(--ok);font-weight:700;font-size:13px}
  .rx-given-mark svg{width:14px;height:14px}
  .rx-menu-sheet{display:grid;gap:8px}
  .rx-menu-sheet button{
    display:flex;align-items:center;gap:10px;width:100%;text-align:left;
    padding:12px 14px;border-radius:var(--radius-2);border:1px solid var(--border);
    background:var(--card);color:var(--ink);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;
  }
  .rx-menu-sheet button:hover{background:var(--surface-hover);border-color:var(--border-2)}
  .rx-menu-sheet button.danger{color:var(--crit);border-color:var(--crit-border)}
  .rx-menu-sheet button.danger:hover{background:var(--crit-soft)}
  .rx-menu-sheet .sub{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:1px}
  .rx-legend{display:flex;align-items:center;gap:6px;color:var(--faint);font-size:12px}
  .rx-legend i{width:11px;height:11px;border-radius:50%;display:inline-block;flex:0 0 auto}
  .rx-legend i.given{background:var(--ok)}
  .rx-legend i.missed{background:var(--crit)}
  .rx-legend i.futr{border:2px solid var(--border-2)}
  @media (max-width:760px){
    .rx-duecard{flex:1 1 100%}
    .rx-safety-end{margin-left:0;width:100%;border-top:1px solid var(--hairline)}
  }
  .rx-simple-add{
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
    background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);padding:12px 14px;margin-bottom:14px;
    box-shadow:var(--shadow-1);
  }
  .rx-simple-add-main{display:flex;align-items:center;gap:10px;flex:1;min-width:220px}
  .rx-simple-add-title{font-weight:700;color:var(--ink);font-size:14px}
  .rx-custom-field{margin-top:8px}
  .rx-default-line{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding:9px 11px;background:var(--bg-soft);border:1px solid var(--border);
    border-radius:8px;color:var(--muted);font-size:12px;
  }
  .rx-type-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .rx-type-options .score-opt{justify-content:center;text-align:center;min-height:36px}
  @media (max-width:640px){
    .rx-type-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  }

  /* Validation message pinned to the field it belongs to, instead of a toast
     that names no field and fades before a gloved hand reaches the keyboard. */
  .field-err{display:none;margin-top:6px;font-size:12.5px;font-weight:600;color:var(--crit);line-height:1.4}
  .field-err.on{display:block}
  .field input.invalid,
  .field textarea.invalid,
  .field .sl-combobox-input.invalid{border-color:var(--crit)}
  .field input.invalid:focus,
  .field textarea.invalid:focus,
  .field .sl-combobox-input.invalid:focus{border-color:var(--crit);box-shadow:0 0 0 3px var(--crit-ring)}

  /* Titration bounds: each number keeps a visible label. Placeholders vanish
     the moment you type, which is exactly when you need to know whether the
     box you're in is the minimum or the step. */
  .rx-tit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .rx-tit-cell{min-width:0}
  /* Sentence case keeps the five column labels subordinate to the section
     heading above them, which .field label renders in caps. */
  .field .rx-tit-cell label{
    font-size:11px;text-transform:none;letter-spacing:0;font-weight:600;
  }
  @media (max-width:640px){
    .rx-tit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  }

  /* Quick-add prescription */
  .rx-quickadd{
    background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);padding:14px 16px;margin-bottom:14px;
    box-shadow:var(--shadow-1);
  }
  .rx-quickadd-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .rx-quickadd-input-wrap{
    flex:1;min-width:260px;position:relative;
    display:flex;align-items:center;gap:0;
    background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;
    padding:0 12px 0 14px;
  }
  .rx-quickadd-input-wrap:focus-within{border-color:var(--brand);background:var(--card);box-shadow:0 0 0 3px var(--brand-ring)}
  .rx-quickadd-icon{display:inline-flex;color:var(--muted)}
  .rx-quickadd-icon svg{width:14px;height:14px}
  .rx-quickadd-input-wrap input{
    flex:1;background:transparent;border:none;outline:none;
    padding:11px 8px;font-size:14px;color:var(--ink);
  }
  .rx-quickadd-hint{
    font-size:11.5px;color:var(--brand);font-weight:500;
    white-space:nowrap;padding-left:8px;flex-shrink:0;
  }
  .rx-quickadd-chips{
    display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    margin-top:10px;padding-top:10px;border-top:1px dashed var(--hairline);
  }
  .rx-preset-chip{
    background:var(--bg-soft);border:1px solid var(--border);
    color:var(--ink-2);padding:5px 10px;border-radius:7px;
    font-size:12px;font-weight:500;cursor:pointer;
    transition:all .14s;font-family:inherit;
  }
  .rx-preset-chip:hover{background:var(--brand-soft);border-color:#bfdbfe;color:var(--brand)}
  .rx-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 4px;color:var(--muted)}
  .rx-admin{display:flex;flex-wrap:wrap;gap:4px;max-width:240px}
  .rx-admin-pill{
    display:inline-flex;flex-direction:column;line-height:1.2;
    background:var(--bg-soft);border:1px solid var(--border);
    padding:3px 7px;border-radius:6px;font-size:11px;color:var(--ink-2);
    font-variant-numeric:tabular-nums;
  }
  .rx-admin-pill b{font-weight:700;color:var(--ink)}
  .rx-admin-pill small{font-size:9.5px;color:var(--faint);font-weight:400}
  .rx-admin-pill.new{background:var(--ok-soft);border-color:var(--ok-border);color:var(--ok)}
  .rx-admin-pill.new b{color:var(--ok)}
  .rx-admin-pill.new small{color:#15803d}
  .rx-row-stopped td{opacity:.55;text-decoration:line-through}
  .rx-row-stopped td:last-child{text-decoration:none;opacity:1}
  /* PRE-321: stop/hold reason under the status chip. inline-block escapes the
     stopped row's line-through so the justification stays legible. */
  .rx-status-reason{display:inline-block;font-size:10.5px;font-weight:500;color:var(--muted);margin-top:4px;max-width:200px;white-space:normal;text-decoration:none}
  .rx-status{ font-size:10px; font-weight:700; padding:2px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:.03em; }
  .rx-status.active{ background:var(--ok-soft); color:var(--ok); border:1px solid var(--ok-border); }
  .rx-status.held{ background:var(--warn-soft); color:var(--warn); border:1px solid var(--warn-border); }
  .rx-status.stopped{ background:var(--card-3); color:var(--muted); border:1px solid var(--border); }
  tr.rx-row-held{ opacity:.75; }
  .rx-dar{vertical-align:middle}
  .rx-table small{display:block;font-size:10.5px;color:var(--faint);margin-top:2px;font-weight:400}

  .rx-wrap{display:flex;flex-direction:column;gap:14px}
  .rx-section{
    background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius-2);overflow:hidden;box-shadow:var(--shadow-1);
  }
  .rx-section-head{
    padding:12px 16px;border-bottom:1px solid var(--hairline);
    display:flex;align-items:center;gap:10px;background:var(--bg-soft);
  }
  .rx-section-head .h2{font-size:14px}
  .rx-section-head .count{
    background:var(--card);border:1px solid var(--border);color:var(--muted);
    padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;
  }
  .rx-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.rx-table{width:100%;border-collapse:collapse;font-size:13px}
  .rx-table th{padding:10px 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:var(--bg-soft);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
  .rx-table td{padding:11px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle}
  .rx-table tr:last-child td{border-bottom:none}
  .rx-drug{font-weight:600;color:var(--ink)}
  .rx-drug small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:1px}
  .rx-dose{font-variant-numeric:tabular-nums;color:var(--ink-2)}
  .rx-give{
    padding:6px 12px;border-radius:7px;
    background:var(--ok);color:#fff;font-size:12px;font-weight:600;
    border:1px solid var(--ok);min-height:32px;
    display:inline-flex;align-items:center;gap:5px;
  }
  .rx-give:hover{background:#15803d;border-color:#15803d}
  .rx-given{
    padding:5px 10px;border-radius:7px;
    background:var(--ok-soft);color:var(--ok);font-size:11.5px;font-weight:600;
    border:1px solid var(--ok-border);
    display:inline-flex;align-items:center;gap:5px;
  }
  .rx-due{
    padding:6px 12px;border-radius:7px;
    background:var(--crit-soft);color:var(--crit);font-size:12px;font-weight:600;
    border:1px solid var(--crit-border);
    display:inline-flex;align-items:center;gap:5px;animation:pulse 1.6s infinite;
  }
  .rx-due:hover{background:#fee2e2}

  /* ---------- Pending orders Tray (delightful entry) ---------- */
  .rx-tray{
    background:var(--card);border:1.5px solid var(--warn-border);border-radius:14px;
    box-shadow:0 1px 3px rgba(245,158,11,.10);overflow:hidden;margin-bottom:14px;
  }
  .rx-tray.empty{border-color:var(--border);box-shadow:none}
  .rx-tray-head{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding:10px 14px;background:linear-gradient(180deg,var(--warn-soft) 0%,var(--card) 100%);
    border-bottom:1px solid var(--warn-border);
  }
  .rx-tray.empty .rx-tray-head{background:#fafbfc;border-bottom-color:var(--hairline)}
  .rx-tray-title{font-weight:700;color:#92400e;font-size:13px;display:inline-flex;align-items:center;gap:6px}
  .rx-tray.empty .rx-tray-title{color:var(--muted);font-weight:600}
  .rx-tray-count{
    background:#92400e;color:#fff;border-radius:999px;
    padding:1px 9px;font-size:11px;font-weight:700;
  }
  .rx-tray.empty .rx-tray-count{background:var(--border-2);color:#475569}
  .rx-tray-breakdown{font-size:11.5px;color:#92400e}
  .rx-tray.empty .rx-tray-breakdown{color:var(--faint)}
  .rx-tray-spacer{flex:1}
  .rx-tray-sign{
    background:var(--ok);color:#fff;border:1px solid #15803d;border-radius:9px;
    padding:8px 16px;font-weight:700;font-size:13px;cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;letter-spacing:.01em;
  }
  .rx-tray-sign:hover{background:#15803d}
  .rx-tray-sign:disabled{background:var(--card-3);color:var(--muted);border-color:var(--border);cursor:not-allowed}
  .rx-tray-sign:disabled:hover{background:var(--card-3)}
  .rx-tray-round{
    background:var(--card);color:var(--crit);border:1px solid var(--crit-border);border-radius:9px;
    padding:7px 13px;font-weight:700;font-size:12.5px;cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;
  }
  .rx-tray-round:hover{background:var(--crit-soft)}
  .rx-tray-round.live{background:var(--crit);color:#fff;border-color:var(--crit);animation:rxRoundPulse 1.6s infinite}
  @keyframes rxRoundPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}50%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}
  .rx-tray-round .live-dot{width:7px;height:7px;border-radius:50%;background:var(--card);display:inline-block;animation:rxLiveDot 1.4s infinite}
  @keyframes rxLiveDot{0%,100%{opacity:1}50%{opacity:.4}}

  /* Input row */
  .rx-tray-input-row{
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;
    padding:10px 14px;border-bottom:1px solid var(--hairline);background:#fcfdff;
  }
  .rx-tray-input{
    flex:1;min-width:240px;display:flex;align-items:center;gap:6px;
    background:var(--card);border:1.5px solid var(--border);border-radius:9px;padding:8px 11px;
  }
  .rx-tray-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}
  .rx-tray-input input{flex:1;border:0;outline:0;font-size:13.5px;color:var(--ink);background:transparent}
  .rx-tray-input input::placeholder{color:var(--faint)}
  .rx-tray-input .ico{color:var(--faint);display:inline-flex}
  .rx-tray-input .ico svg{width:14px;height:14px}
  .rx-tok-chips{display:flex;gap:5px;flex-wrap:wrap;padding:6px 14px 0;font-size:11px}
  .rx-tok{padding:2px 8px;border-radius:6px;font-size:10.5px;font-weight:600;border:1px solid;letter-spacing:.01em}
  .rx-tok.drug{background:var(--brand-soft);border-color:#bfdbfe;color:#1d4ed8}
  .rx-tok.dose{background:var(--ok-soft);border-color:var(--ok-border);color:#15803d}
  .rx-tok.route{background:var(--warn-soft);border-color:var(--warn-border);color:#c2410c}
  .rx-tok.freq{background:var(--purple-soft);border-color:var(--purple-border);color:var(--purple)}
  .rx-tok.weak{background:var(--bg-soft);border-color:var(--border);color:var(--faint);font-style:italic}

  .rx-tray-btn{
    background:var(--card);border:1px solid var(--border);border-radius:8px;
    padding:7px 11px;font-size:12px;color:var(--ink-2);cursor:pointer;
    display:inline-flex;align-items:center;gap:5px;font-weight:600;
  }
  .rx-tray-btn:hover{border-color:var(--border-2);background:#fafbfc}
  .rx-tray-btn.bundle{color:#1d4ed8;border-color:#bfdbfe;background:var(--brand-soft)}
  .rx-tray-btn.primary{color:#fff;background:var(--brand);border-color:var(--brand)}
  .rx-tray-btn.primary:hover{background:var(--brand);border-color:var(--brand);filter:brightness(1.06)}
  .rx-tray-btn svg{width:13px;height:13px}

  /* Cards */
  .rx-tray-cards{display:flex;flex-direction:column;gap:8px;padding:10px 14px}
  .rx-tray-empty{padding:18px 14px;text-align:center;color:var(--faint);font-size:12.5px;font-style:italic}
  .o-card{
    background:var(--card);border:1.5px solid var(--border);border-radius:10px;
    padding:11px 13px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
    animation:oCardIn .25s ease;
  }
  @keyframes oCardIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
  .o-card.suggested{border-color:#c4b5fd;background:linear-gradient(180deg,#faf5ff 0%,var(--card) 100%)}
  .o-card.bundle{border-color:#bfdbfe;background:linear-gradient(180deg,var(--brand-soft) 0%,var(--card) 100%)}
  .o-card.heard{border-color:var(--crit-border);background:linear-gradient(180deg,var(--crit-soft) 0%,var(--card) 100%)}
  .o-card.titration{border-color:var(--warn-border);background:linear-gradient(180deg,var(--warn-soft) 0%,var(--card) 100%)}
  .o-card.allergy{border-color:#fca5a5;background:linear-gradient(180deg,var(--crit-soft) 0%,var(--card) 100%);box-shadow:0 0 0 3px rgba(248,113,113,.15)}
  .o-card.signing{animation:oCardOut .55s ease forwards}
  @keyframes oCardOut{
    40%{transform:translateY(2px) scale(.98);opacity:.85}
    100%{transform:translateY(40px) scale(.92);opacity:0;height:0;padding-top:0;padding-bottom:0;margin:0}
  }
  .o-main{display:flex;flex-direction:column;gap:3px;min-width:0}
  .o-line1{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .o-prefix{
    display:inline-block;background:var(--card-3);border:1px solid var(--border-2);
    color:var(--ink-2);padding:1px 6px;border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:.05em;
  }
  .o-drug{font-weight:700;color:var(--ink);font-size:14px}
  .o-line2{color:var(--ink-2);font-size:12.5px;margin-top:1px;font-variant-numeric:tabular-nums}
  .o-freq{
    display:inline-block;font-family:ui-monospace,Menlo,monospace;
    background:var(--bg-soft);border:1px solid var(--border);padding:0 7px;border-radius:5px;font-weight:700;color:var(--ink);
  }
  .o-indication{
    display:inline-block;background:#fef3c7;border:1px solid var(--warn-border);color:#92400e;
    padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;margin-top:3px;
  }
  .o-why{color:#6d28d9;font-size:11.5px;margin-top:3px;font-style:italic;line-height:1.35}
  .o-actions{display:flex;gap:4px;align-items:center}
  .o-edit{
    background:var(--card);border:1px solid var(--border);border-radius:6px;
    padding:5px 9px;font-size:11px;color:var(--ink-2);cursor:pointer;font-weight:600;
  }
  .o-edit:hover{border-color:var(--border-2);background:#fafbfc}
  .o-edit.swap{color:var(--crit);border-color:var(--crit-border);background:var(--crit-soft)}
  .o-edit.swap:hover{background:#fee2e2}
  .o-x{background:transparent;border:0;font-size:18px;color:var(--faint);cursor:pointer;padding:2px 6px;line-height:1}
  .o-x:hover{color:var(--ink-2)}

  .o-pill{
    display:inline-block;padding:1px 7px;border-radius:999px;
    font-size:10.5px;font-weight:600;border:1px solid;letter-spacing:.01em;white-space:nowrap;
  }
  .o-pill.typed{background:var(--card-3);border-color:var(--border-2);color:var(--muted)}
  .o-pill.suggested{background:var(--purple-soft);border-color:var(--purple-border);color:var(--purple)}
  .o-pill.bundle{background:var(--brand-soft);border-color:#bfdbfe;color:#1d4ed8}
  .o-pill.heard{background:var(--crit-soft);border-color:var(--crit-border);color:var(--crit)}
  .o-pill.titration{background:var(--warn-soft);border-color:var(--warn-border);color:#b45309}
  .o-pill.allergy{background:var(--crit-soft);border-color:#fca5a5;color:var(--crit);font-weight:700}
  .o-pill.dar{background:var(--warn-soft);border-color:var(--warn-border);color:#b45309}
  .o-pill.stat{background:var(--crit-soft);border-color:var(--crit-border);color:var(--crit);font-weight:700}
  .o-pill.prn{background:var(--warn-soft);border-color:var(--warn-border);color:#b45309}

  /* Bundle picker modal contents */
  .bp-list{display:flex;flex-direction:column;gap:8px;padding:8px 0}
  .bp-item{
    background:var(--card);border:1.5px solid var(--border);border-radius:10px;
    padding:11px 13px;cursor:pointer;display:flex;align-items:center;gap:10px;
  }
  .bp-item:hover{border-color:#1d4ed8;background:var(--brand-soft)}
  .bp-item .bp-icon{font-size:20px}
  .bp-item .bp-meta{flex:1}
  .bp-item .bp-name{font-weight:700;color:var(--ink);font-size:14px}
  .bp-item .bp-desc{font-size:11.5px;color:var(--muted);margin-top:2px}
  .bp-item .bp-count{
    background:var(--card-3);border:1px solid var(--border);color:var(--muted);
    padding:1px 9px;border-radius:999px;font-size:11px;font-weight:600;
  }

  /* Inline rate stepper for titration */
  .rx-rate-stepper{
    display:inline-flex;align-items:center;gap:0;background:var(--card);
    border:1.5px solid var(--warn-border);border-radius:8px;overflow:hidden;font-size:13px;margin-left:6px;
  }
  .rx-rate-stepper button{
    background:var(--warn-soft);border:0;padding:4px 10px;
    font-size:14px;font-weight:700;color:#92400e;cursor:pointer;
  }
  .rx-rate-stepper button:hover{background:#fef3c7}
  .rx-rate-stepper .val{
    padding:4px 11px;font-weight:700;font-variant-numeric:tabular-nums;
    color:var(--ink);border-left:1px solid var(--warn-border);border-right:1px solid var(--warn-border);min-width:54px;text-align:center;
  }
  .rx-rate-stepper .commit{
    background:var(--ok);color:#fff;padding:4px 10px;font-weight:700;font-size:11.5px;
    border-left:1px solid #15803d;
  }
  .rx-rate-stepper .commit:hover{background:#15803d}
  .rx-rate-tap{cursor:pointer;border-bottom:1px dashed var(--brand-2);transition:background .15s}
  .rx-rate-tap:hover{background:var(--brand-soft)}

  /* Newly-signed row highlight in chart */
  .rx-row-just-signed td{animation:rxJustSigned 1.4s ease}
  @keyframes rxJustSigned{0%{background:#bbf7d0}100%{background:transparent}}

  /* ---------- Plan / Doctor orders (voice-first) ---------- */
  .dictate-panel{
    background:linear-gradient(135deg,#fce7f3 0%,#dbeafe 60%,#e0e7ff 100%);
    border:1px solid #fbcfe8;border-radius:16px;padding:16px 18px;margin-bottom:18px;
    box-shadow:0 6px 20px rgba(236,72,153,.10);
  }
  .dictate-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .dictate-icon{
    width:48px;height:48px;border-radius:14px;flex-shrink:0;
    background:linear-gradient(135deg,#ec4899,#7c3aed);color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 18px rgba(236,72,153,.32);
  }
  .dictate-icon svg{width:20px;height:20px}
  .dictate-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:3px;letter-spacing:-.01em}
  .dictate-hint{font-size:12.5px;color:var(--ink-2);line-height:1.5;opacity:.85}
  .dictate-btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:11px 18px;border-radius:10px;
    background:var(--card);color:var(--pink);
    border:2px solid var(--pink);font-size:14px;font-weight:600;
    cursor:pointer;flex-shrink:0;transition:all .15s;
    box-shadow:0 4px 10px rgba(236,72,153,.18);
  }
  .dictate-btn svg{width:16px;height:16px}
  .dictate-btn:hover{background:#fef0f8}
  .dictate-btn.recording{
    background:var(--pink);color:#fff;border-color:var(--pink);
    animation:dictatePulse 1s infinite;
  }
  @keyframes dictatePulse{
    0%,100%{box-shadow:0 0 0 0 rgba(236,72,153,.5)}
    50%{box-shadow:0 0 0 10px rgba(236,72,153,0)}
  }
  .dictate-transcript-wrap{
    margin-top:14px;
    background:rgba(255,255,255,.9);
    border:1px solid rgba(0,0,0,.06);
    border-radius:12px;padding:12px 14px;
  }
  .dictate-transcript-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
  .dictate-transcript{
    width:100%;background:transparent;border:none;outline:none;
    font-size:13.5px;line-height:1.6;color:var(--ink-2);resize:vertical;
    font-family:inherit;min-height:60px;
  }

  .orders-section{
    background:var(--card);border:1px solid var(--border);
    border-radius:12px;padding:14px;margin-bottom:14px;
  }
  .orders-section-head{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding-bottom:10px;margin-bottom:10px;
    border-bottom:1px dashed var(--hairline);
  }
  .orders-count{
    background:var(--brand-soft);color:var(--brand);
    padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;
    border:1px solid #bfdbfe;
  }
  .orders-empty{
    display:flex;align-items:center;gap:14px;
    padding:18px;background:var(--bg-soft);
    border:1px dashed var(--border-2);border-radius:12px;
  }
  .orders-empty-icon{
    width:40px;height:40px;border-radius:10px;flex-shrink:0;
    background:#fce7f3;color:var(--pink);
    display:flex;align-items:center;justify-content:center;
  }
  .orders-empty-icon svg{width:18px;height:18px}
  .orders-add-row{
    display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    padding-top:10px;margin-top:10px;border-top:1px dashed var(--hairline);
  }

  .order-row-flash{
    animation:orderFlash 1.2s ease-out;
  }
  @keyframes orderFlash{
    0%,30%{background:var(--brand-soft);border-color:var(--brand);transform:translateX(4px)}
    100%{background:var(--bg-soft);border-color:var(--border);transform:translateX(0)}
  }

  .freetext-details{
    background:var(--bg-soft);border:1px solid var(--border);
    border-radius:12px;padding:12px 14px;margin-bottom:6px;
  }
  .freetext-details summary{
    cursor:pointer;font-size:13px;font-weight:700;color:var(--ink);
    list-style:none;display:flex;align-items:center;gap:8px;
  }
  .freetext-details summary::-webkit-details-marker{display:none}
  .freetext-details summary::before{
    content:"▸";color:var(--muted);transition:transform .15s;display:inline-block;
  }
  .freetext-details[open] summary::before{transform:rotate(90deg)}
  .freetext-details[open]{padding-bottom:14px}

  .orders-list{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
  .order-row{
    display:grid;
    grid-template-columns: 130px 1fr 130px 130px 100px 36px 36px;
    gap:8px;align-items:center;
    background:var(--bg-soft);border:1px solid var(--border);
    border-radius:10px;padding:10px;
  }
  .order-row .order-type{
    display:flex;align-items:center;gap:6px;
    font-size:11.5px;font-weight:600;color:var(--ink-2);
    background:var(--card);padding:5px 9px;border-radius:6px;
    border:1px solid var(--border);overflow:hidden;height:38px;
  }
  .order-row .order-type svg{width:14px;height:14px;color:var(--brand);flex-shrink:0}
  .order-row .order-what,
  .order-row .order-by,
  .order-row .order-freq,
  .order-row .order-prio{
    background:var(--card);border:1px solid var(--border);border-radius:7px;
    padding:8px 10px;font-size:13px;outline:none;width:100%;min-width:0;
  }
  .order-row .order-what{height:38px}
  .order-row .order-prio{height:38px}
  .order-row .order-what:focus,
  .order-row .order-by:focus,
  .order-row .order-freq:focus,
  .order-row .order-prio:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}
  .order-row .order-field-pair{display:flex;flex-direction:column;gap:2px;min-width:0}
  .order-row .order-mini-label{
    font-size:9.5px;color:var(--muted);font-weight:600;
    text-transform:uppercase;letter-spacing:.05em;
    display:inline-flex;align-items:center;gap:4px;padding:0 2px;
  }
  .order-row .order-mini-label svg{width:10px;height:10px}
  .order-row .order-by,
  .order-row .order-freq{height:30px;padding:5px 9px;font-size:12.5px}
  .order-row .order-mic{padding:6px 8px;min-width:36px;height:38px;justify-content:center;font-size:0}
  .order-row .order-mic svg{width:14px;height:14px}
  .order-row .order-rm{padding:6px;min-width:36px;height:38px;color:var(--muted)}
  .order-row .order-rm:hover{color:var(--crit);background:var(--crit-soft)}
  @media (max-width:920px){
    .order-row{
      grid-template-columns: 1fr 1fr;
      grid-template-areas:
        "type type"
        "what what"
        "by freq"
        "prio prio"
        "mic rm";
      gap:8px;
    }
    .order-row .order-type{grid-area:type}
    .order-row .order-what{grid-area:what}
    .order-row .order-field-pair:nth-of-type(1){grid-area:by}
    .order-row .order-field-pair:nth-of-type(2){grid-area:freq}
    .order-row .order-prio{grid-area:prio}
    .order-row .order-mic{grid-area:mic}
    .order-row .order-rm{grid-area:rm}
  }
