/* css/layout.css — page chrome: topbar, banner, tab content, day-sheet layout
 * Loaded after tokens.css. Owns the three-column shell and top-of-page UI.
 */
html,body{height:100%;font-family:var(--font);font-size:13px;color:var(--text);background:var(--bg);overflow:hidden;}
.app{display:flex;flex-direction:column;height:100vh;}

/* ── TOPBAR ── */
.topbar{flex-shrink:0;background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,0.05);position:relative;}
.topbar-strip{height:72px;display:flex;align-items:center;padding:0 14px;gap:0;}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-right:12px;}
.logo-icon{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;color:#fff;}
.logo-icon svg{width:25px;height:25px;}
.logo-name{font-size:21px;font-weight:700;color:#fff;letter-spacing:-0.01em;}
.logo-name em{color:rgba(255,255,255,0.38);font-style:normal;}
.tb-div{width:1px;height:16px;background:rgba(255,255,255,0.1);flex-shrink:0;margin:0 8px;}
.legacy-tab-bridge{display:none!important;}

/* Tab buttons */
.tab-btn{font-family:var(--font);font-size:11.5px;font-weight:500;padding:0 16px;height:72px;border:none;background:transparent;color:rgba(255,255,255,0.45);cursor:pointer;transition:all 0.13s;white-space:nowrap;border-bottom:2px solid transparent;letter-spacing:0.01em;}
.tab-btn:hover{color:rgba(255,255,255,0.75);}
.tab-btn.active{color:#fff;border-bottom-color:#7ab8e8;background:rgba(255,255,255,0.05);}

.tb-spacer{flex:1;}
.tb-actions{display:flex;gap:6px;flex-shrink:0;}
.tbtn{font-family:var(--font);font-size:11.5px;font-weight:500;padding:5px 13px;border-radius:var(--radius);cursor:pointer;border:1px solid rgba(255,255,255,0.17);background:transparent;color:rgba(255,255,255,0.62);transition:all 0.13s;white-space:nowrap;}
.tbtn:hover{background:rgba(255,255,255,0.09);color:#fff;}
.tbtn-note{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.22);color:#fff;font-weight:600;}
.tbtn-note:hover{background:rgba(255,255,255,0.18);}

/* ── BANNER (pinned, always visible) ── */
.banner{flex-shrink:0;}
.banner-top{display:none;}
.banner-center{display:flex;align-items:center;gap:11px;}
.banner-right{justify-self:end;}
.banner-profile-card{position:relative;display:flex;align-items:center;gap:14px;padding:10px 36px 10px 14px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.18);border-radius:12px;}
.topbar-pt{display:none;align-items:center;gap:12px;padding:0;background:transparent;border:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;}
.topbar-pt.visible{display:flex;}
.topbar-pt .banner-identity{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;max-width:min(640px,48vw);text-align:center;}
.topbar-pt .banner-name{font-size:18px;font-weight:700;line-height:1.15;margin:0;letter-spacing:0.01em;color:#fff;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.topbar-pt .banner-name.empty{font-size:13px;font-weight:400;color:rgba(255,255,255,0.45);}
.topbar-pt .banner-sub{font-size:12px;line-height:1.2;color:rgba(255,255,255,0.68);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.topbar-pt .bchip-appt{font-size:10.5px;line-height:1;padding:4px 10px;}
.banner-avatar{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,0.1);border:2px solid rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;font-weight:600;color:rgba(255,255,255,0.5);user-select:none;}
.banner-avatar.has-pt{color:rgba(255,255,255,0.95);background:rgba(255,255,255,0.16);}
.banner-identity{flex:1;min-width:0;}
.banner-name{font-size:15px;font-weight:600;color:#fff;line-height:1.2;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.banner-name.empty{font-size:12px;font-weight:400;color:rgba(255,255,255,0.26);font-style:italic;}
.banner-sub{font-size:11px;color:rgba(255,255,255,0.42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.banner-right{display:flex;align-items:center;gap:5px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;max-width:460px;}
.bchip{font-size:10px;font-weight:600;letter-spacing:0.02em;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.bchip-appt{background:rgba(36,114,184,0.3);color:#a8d0f5;border:1px solid rgba(36,114,184,0.45);}
.bchip-edit{background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.45);border:1px dashed rgba(255,255,255,0.2);cursor:pointer;}
.bchip-edit:hover{background:rgba(255,255,255,0.14);color:rgba(255,255,255,0.8);}
.pt-edit-panel{display:none;padding:10px 14px 12px;background:var(--navy-mid);border-bottom:2px solid rgba(0,0,0,0.25);flex-wrap:wrap;gap:8px;}
.pt-ef{display:flex;flex-direction:column;gap:3px;}
.pt-ef label{font-size:9px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.3);}
.pt-ef input,.pt-ef select{font-family:var(--font);font-size:12px;color:#1a1a18;background:#fff;border:1px solid rgba(0,0,0,0.18);border-radius:5px;padding:4px 8px;outline:none;min-width:120px;appearance:none;-webkit-appearance:none;}
.pt-ef input::placeholder{color:rgba(0,0,0,0.35);}
.pt-ef input:focus,.pt-ef select:focus{border-color:rgba(36,114,184,0.6);background:#fff;}
.pt-seg{display:flex;border:1px solid rgba(255,255,255,0.14);border-radius:5px;overflow:hidden;background:rgba(255,255,255,0.06);}
.pt-seg-btn{font-family:var(--font);font-size:11px;font-weight:500;padding:4px 10px;border:none;cursor:pointer;background:transparent;color:rgba(255,255,255,0.45);transition:all 0.11s;border-right:1px solid rgba(255,255,255,0.1);}
.pt-seg-btn:last-child{border-right:none;}
.pt-seg-btn.active{background:var(--blue);color:#fff;}
.pt-edit-done{font-family:var(--font);font-size:10.5px;font-weight:600;padding:5px 14px;border-radius:var(--radius);border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);cursor:pointer;transition:all 0.13s;align-self:flex-end;margin-top:4px;}
.pt-edit-done:hover{background:rgba(255,255,255,0.18);color:#fff;}

/* ── TAB CONTENT AREAS ── */
.tab-content{display:none;flex:1;overflow:hidden;min-height:0;}
.tab-content.active{display:flex;}

/* ── PRIMARY MODES + WORKSPACE TABS ── */
.topbar-mode-tabs{height:72px;display:flex;align-items:stretch;padding:0;gap:0;background:transparent;border:none;}
.tab-btn-mode{height:72px;padding:0 18px;font-size:12px;font-weight:650;}
.topbar-encounter-mode{
  display:none;
  height:72px;
  align-items:center;
  padding:0 18px;
  color:#fff;
  background:rgba(255,255,255,0.05);
  border-bottom:2px solid var(--blue,#d97757);
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
}
.workspace-tabs-row{height:40px;display:flex;align-items:stretch;padding:0 14px;background:rgba(0,0,0,0.08);border-top:1px solid rgba(0,0,0,0.14);box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);}
.encounter-tabs-row{height:40px;display:none;align-items:stretch;padding:0 14px;background:rgba(0,0,0,0.08);border-top:1px solid rgba(0,0,0,0.14);box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);}
.topbar-tabs-v2{height:40px;display:flex;align-items:stretch;padding:0;gap:0;background:transparent;border:none;}
.encounter-tabs-v2{height:40px;display:flex;align-items:stretch;padding:0;gap:0;background:transparent;border:none;}
body.encounter-active .topbar-mode-tabs{display:flex;}
body.encounter-active .topbar-encounter-mode{display:none!important;}
body.encounter-active .topbar-tabs-v2,
body.encounter-active .workspace-tabs-row{display:none;}
body.encounter-active .encounter-tabs-row{display:flex;}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card,
body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card,
body.encounter-active[data-encounter-tab="imaging-viewer"] .general-consult-grid > .card,
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card,
body.encounter-active[data-encounter-tab="trends-analysis"] .general-consult-grid > .card{display:none!important;}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="hpi"],
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="ocular-history"],
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="medical-history"],
body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="anterior-posterior-segment"],
body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="other-examination"],
body.encounter-active[data-encounter-tab="imaging-viewer"] .general-consult-grid > .card[data-widget-card="investigations"],
body.encounter-active[data-encounter-tab="imaging-viewer"] .general-consult-grid > .card[data-widget-card="diagnostic-viewer"],
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card="assessment-plan"],
body.encounter-active[data-encounter-tab="trends-analysis"] .general-consult-grid > .card[data-widget-card="trends"]{display:flex!important;}
body.encounter-active .general-consult-grid > .encounter-patient-card-slot{display:none!important;}
body.encounter-active:not([data-encounter-tab="assessment-plan"]) #legacy-assessment-region{display:none!important;}
.subtab-nav-arrow{
  position:fixed!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:80!important;
  width:34px!important;
  min-width:34px!important;
  height:48px!important;
  min-height:48px!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
  background:var(--ink-link,var(--blue,#d97757))!important;
  border-color:var(--ink-link,var(--blue,#d97757))!important;
  color:var(--os-component-content-bg,var(--surface,#faf9f5))!important;
  font-size:28px!important;
  line-height:1!important;
  border-radius:10px!important;
}
.subtab-nav-arrow-prev{left:calc((var(--os-arrow-lane,62px) - 34px) / 2)!important;}
.subtab-nav-arrow-next{right:calc((var(--os-arrow-lane,62px) - 34px) / 2)!important;}
body.encounter-active .app-subtab-arrow,
body:not(.encounter-active) .encounter-widget-arrow{
  display:none!important;
}
body:not(.encounter-active) .app-subtab-arrow,
body.encounter-active .encounter-widget-arrow{
  display:inline-flex!important;
}
body[data-workspace-mode="migrate"] #app-subtab-prev,
body[data-workspace-mode="migrate"] #app-subtab-next{
  display:inline-flex!important;
}
body:not([data-workspace-mode]) .app-subtab-arrow{
  display:inline-flex!important;
}
#content-appt{position:relative;}
body.encounter-active[data-encounter-tab="history"] .exam-grid.general-consult-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:minmax(560px,1fr)!important;
}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="hpi"],
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="ocular-history"],
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="medical-history"]{
  grid-row:1!important;
  min-height:560px!important;
}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="hpi"]{
  grid-column:1!important;
}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="ocular-history"]{
  grid-column:2!important;
}
body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="medical-history"]{
  grid-column:3!important;
}
body.encounter-active[data-encounter-tab="physical-examination"] .exam-grid.general-consult-grid{
  grid-template-columns:minmax(280px,1fr) repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(360px,1fr))!important;
}
body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="other-examination"]{
  grid-column:1!important;
  grid-row:1 / 3!important;
}
body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="anterior-posterior-segment"]{
  grid-column:2 / 4!important;
  grid-row:1 / 3!important;
}
body.encounter-active[data-encounter-tab="imaging-viewer"] .exam-grid.general-consult-grid{
  grid-template-columns:minmax(320px,1fr) minmax(0,2fr)!important;
  grid-template-rows:minmax(560px,1fr)!important;
}
body.encounter-active[data-encounter-tab="imaging-viewer"] .general-consult-grid > .card[data-widget-card="investigations"]{
  grid-column:1!important;
  grid-row:1!important;
}
body.encounter-active[data-encounter-tab="imaging-viewer"] .general-consult-grid > .card[data-widget-card="diagnostic-viewer"]{
  grid-column:2!important;
  grid-row:1!important;
  min-height:560px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .exam-grid.general-consult-grid{
  /* [Problem List reframe] Single full-width column: the A&P card is the ONLY card on
     this tab (the right-column Booking card was retired with the Bx-controller run, so
     the old minmax(0,2fr) minmax(280px,1fr) template left a dead 1/3 column). The card
     now expands across — and is centered in — the grid, which also gives the header row
     room for the Problem List / Rx / Sx / Bx controls + search + N/A cluster. */
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(560px,1fr)!important;
}
body.encounter-active[data-encounter-tab="trends-analysis"] .exam-grid.general-consult-grid{
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(560px,1fr)!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card="assessment-plan"]{
  grid-column:1!important;
  grid-row:1!important;
  min-height:560px!important;
}
/* [Dx-controller spec, Step 4] Keep the A&P card title sized to its content so the
   compact Problem List control sits right beside it; the search shell still floats right
   (margin-left:auto below). Overrides the inline flex:1 WidgetChrome stamps on the title.
   The second selector exists ONLY to outrank ophthoscribe-encounter.css's generic
   `flex:1 1 0%!important` card-title rule (body.os-encounter-mode… > .card-hdr:first-child
   > .card-title), which otherwise beats the first selector on specificity and lets the
   title ellipsize while the shrinkable search shell keeps its full basis. */
body.encounter-active[data-encounter-tab="assessment-plan"]
  .general-consult-grid > .card[data-widget-card="assessment-plan"] > .card-hdr > .card-title,
body.os-encounter-mode.encounter-active[data-encounter-tab="assessment-plan"]
  .exam-grid.general-consult-grid > .card[data-widget-card="assessment-plan"] > .card-hdr:first-child > .card-title{
  flex:0 0 auto!important;
}
/* [Phase D, spec §3] The A&P popout openers live in the per-section heading
   bars (.ap-section-hdr — see below). Every opener carries the registered
   .widget-action-btn family + .ap-control-btn, so its LOOK comes from the
   canonical widget-header action-button template (ophthoscribe-encounter.css /
   encounter-paper.css .ap-section-hdr-scoped variants); this block owns only
   the button-local deltas. */
.ap-control-btn{
  cursor:pointer;
  flex:0 0 auto;
}
/* [Dx-controller spec, Step 10; Phase D] Anchored popout panel for every A&P
   domain controller (diagnosis controllers + the planning surfaces via
   .assessment-planning-popout + the Pre-Existing popout) — one shared shell
   treatment. Each ensurePopout() appends its panel into the control's
   container (a position:relative .ap-section-hdr heading bar since Phase D),
   so the panel drops from its own section heading and scrolls with the card
   content. Visibility is the `hidden` attribute (open()/close() set
   popout.hidden). Tokenized — legibility and clinician scan-speed over
   flourish. */
.assessment-ocular-conditions-popout,
.assessment-encounter-diagnosis-popout,
.assessment-pre-existing-popout,
.assessment-planning-popout{
  position:absolute;
  top:calc(100% + 6px);
  left:8px;
  z-index:60;
  width:min(360px,calc(100% - 16px));
  max-height:min(60vh,420px);
  display:flex;
  flex-direction:column;
  background:var(--surface,#faf4e8);
  border:1px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius-lg,11px);
  box-shadow:var(--shadow-soft,0 6px 18px -8px rgba(15,29,48,0.18));
  color:var(--ink,#1f1b16);
  overflow:hidden;
}
.assessment-ocular-conditions-popout[hidden],
.assessment-encounter-diagnosis-popout[hidden],
.assessment-pre-existing-popout[hidden],
.assessment-planning-popout[hidden]{ display:none; }
/* [Phase D, spec §3] Five-section card vocabulary: the heading bar hosts the
   per-section openers AND anchors their popouts (position:relative); section
   bodies render the universal plain-line aesthetic (no bullets/ordinals;
   click a line to reopen its owning popout pre-filled). */
.ap-section-hdr{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
}
.ap-section-hdr > span:first-child{ flex:0 0 auto; }
.ap-section-controls{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.ap-section-lines{ margin:2px 0 6px; }
.ap-section-lines:empty{ display:none; }
.ap-line{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:2px 0;
  font-size:12.5px;
  line-height:1.45;
  color:var(--ink,#1f1b16);
}
.ap-lane-line,
.ap-dx-line{ cursor:pointer; }
.ap-lane-line{
  width:100%;
  border:0;
  background:transparent;
  font-family:inherit;
  text-align:left;
}
.ap-lane-line:focus-visible,
.ap-dx-line:focus-visible,
.ap-dx-add-line:focus-visible{
  outline:2px solid var(--blue,#c2553a);
  outline-offset:2px;
}
.ap-lane-line:hover .ap-line-text,
.ap-dx-line:hover .ap-line-text{ text-decoration:underline; }
.ap-line-text{ flex:1 1 auto; min-width:0; }
.ap-dx-line-text{ font-weight:600; }
.ap-line-ghost{
  color:var(--ink-faint,var(--text-faint,#a89782));
  cursor:text;
}
.ap-dx-inline-input{
  flex:1 1 auto;
  min-width:0;
  height:24px;
  font-family:inherit;
  font-size:12.5px;
  padding:2px 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
.ap-dx-inline-input:focus{ outline:none; border-color:var(--blue,#c2553a); }
/* The inline promote prompt rides the line, right-aligned, same type scale. */
.ap-line-prompt{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-line-prompt .ap-line-prompt-btn{ cursor:pointer; }
/* §4.3: the "Other:" free-text row beneath the structured Plan lines. */
.ap-section-other{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:4px;
}
.ap-section-other .ap-plan-field-lead{ padding-top:4px; }
.ap-section-other textarea{ flex:1 1 auto; min-width:0; }
.ap-dx-popout-inner{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.ap-dx-popout-header{
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:var(--surface,#faf4e8);
  border-bottom:1px solid var(--border,#e6dcc7);
}
.ap-dx-popout-title{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:var(--ink,#1f1b16);
}
/* [Problem List reframe] Outline edit-mode toggle in the pop-out header (replaces
   the retired red .ap-dx-popout-subtitle "Dx" badge). The registered
   .widget-action-btn treatment (ophthoscribe-encounter.css) reaches this button —
   the pop-out lives inside the A&P .card-hdr — so this block only positions it and
   defines the PRESSED state by overriding the registered tokens (the !important
   registered rules read these custom properties at the element). */
.ap-dx-edit-toggle{ margin-left:auto; }
.ap-dx-edit-toggle.active,
.ap-dx-edit-toggle[aria-pressed="true"]{
  --widget-action-btn-bg: var(--ink,#1f1b16);
  --widget-action-btn-bg-hover: var(--ink,#1f1b16);
  --widget-action-btn-color: var(--paper,#fff);
  --widget-action-btn-border: var(--ink,#1f1b16);
  --widget-action-btn-border-hover: var(--ink,#1f1b16);
}
.ap-dx-toolbar{
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  background:#fff;
  border-bottom:1px solid var(--border,#e6dcc7);
}
.ap-dx-add-input{
  flex:1 1 auto;
  min-width:0;
  height:24px;
  font-family:inherit;
  font-size:12px;
  padding:2px 8px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
.ap-dx-add-input::placeholder{ color:var(--ink-faint,var(--text-faint,#a89782)); }
.ap-dx-add-input:focus{ outline:none; border-color:var(--blue,#c2553a); }
/* [Controls-row reframe, Bx split] Planning popouts (Follow-up / Ocular Testing /
   Systemic Testing / Billing) reuse the ap-dx-* shell vocabulary wholesale —
   rows carry .ap-dx-problem-row and the free-text add carries .ap-dx-add-input.
   Only the plan-specific deltas live here. */
.ap-plan-row-label{
  flex:1 1 auto;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
}
.ap-plan-followup-row,
.ap-plan-field-row{
  display:flex;
  align-items:center;
  gap:6px;
}
.ap-plan-field-row + .ap-plan-field-row{ margin-top:6px; }
.ap-plan-followup-lead,
.ap-plan-field-lead{
  flex:0 0 auto;
  font-size:12px;
  color:var(--ink,#1f1b16);
}
.ap-plan-followup-number,
.ap-plan-followup-unit{
  height:24px;
  font-family:inherit;
  font-size:12px;
  padding:2px 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
/* [Stage 5] Follow-up booking-mode toggle + calendar-date fields (Date / Date range). */
.ap-plan-followup-mode-toggle{
  display:inline-flex;
  gap:2px;
  padding:2px;
  margin:0 0 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:var(--surface,#faf4e8);
}
.ap-plan-followup-mode-option{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  cursor:pointer;
}
.ap-plan-followup-mode-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.ap-plan-followup-mode-option span{
  display:inline-flex;
  align-items:center;
  height:22px;
  padding:0 8px;
  border-radius:var(--radius-sm,5px);
  font-size:11px;
  font-weight:700;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-plan-followup-mode-option input:checked + span{
  background:#fff;
  color:var(--ink,#1f1b16);
  box-shadow:0 1px 3px rgba(31,27,22,0.10);
}
.ap-plan-followup-date,
.ap-plan-followup-start-date,
.ap-plan-followup-end-date{
  height:24px;
  font-family:inherit;
  font-size:12px;
  padding:2px 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
.ap-plan-followup-range-separator{
  font-size:11px;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
/* [§4.4, B2] Shared provider-search field (Follow-up "With", Referral "To") —
   the wrapper anchors the shared widget-directory-results dropdown under its
   input (the base card rule pins it to the popout top otherwise); option
   buttons ride the registered .widget-directory-result treatment. */
.ap-plan-provider-search{
  position:relative;
  display:flex;
  flex:1 1 auto;
  min-width:0;
}
body.encounter-active .card .ap-plan-provider-search .widget-directory-results{
  top:calc(100% + 2px);
}
.ap-plan-followup-provider-input,
.ap-plan-referral-target-input,
.ap-plan-referral-reason-input{
  flex:1 1 auto;
  width:100%;
  min-width:0;
  height:24px;
  font-family:inherit;
  font-size:12px;
  padding:2px 8px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
.ap-plan-followup-provider-input::placeholder,
.ap-plan-referral-target-input::placeholder,
.ap-plan-referral-reason-input::placeholder{
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-plan-followup-provider-input:focus,
.ap-plan-referral-target-input:focus,
.ap-plan-referral-reason-input:focus{
  outline:none;
  border-color:var(--blue,#c2553a);
}
.ap-plan-referral-commit{ justify-content:flex-end; }
/* [§4.5, B3] Staff-note textarea — the OFFICE doctor→secretary message
   (never enters the clinical note). */
.ap-plan-staff-note-add{ display:flex; flex:1 1 auto; min-width:0; }
.ap-plan-staff-note-input{
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:56px;
  resize:vertical;
  font-family:inherit;
  font-size:12px;
  line-height:1.4;
  padding:6px 8px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
}
.ap-plan-staff-note-input::placeholder{ color:var(--ink-faint,var(--text-faint,#a89782)); }
.ap-plan-staff-note-input:focus{ outline:none; border-color:var(--blue,#c2553a); }
/* [Problem List reframe] Add + Done carry the PURE registered .widget-action-btn
   look (operator decision: every pop-out button matches the History pencil /
   card-header N/A family) — no per-button token deltas. Only the deliberately
   subtle inline Yes/No (below) and the edit-toggle pressed state override tokens. */
.ap-dx-popout-section{ padding:8px 12px 10px; }
.ap-dx-popout-section + .ap-dx-popout-section{ border-top:1px solid var(--border,#e6dcc7); }
.ap-dx-section-title{
  margin:2px 0 7px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-dx-problem-row,
.ap-dx-suggestion-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:6px 7px;
  border:0.5px solid var(--border,#e6dcc7);
  border-radius:var(--radius,7px);
  background:#fff;
}
.ap-dx-problem-row + .ap-dx-problem-row,
.ap-dx-suggestion-row + .ap-dx-suggestion-row{ margin-top:6px; }
.ap-dx-condition-name,
.ap-dx-suggestion-text{
  flex:1 1 auto;
  min-width:120px;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  color:var(--ink,#1f1b16);
}
.ap-dx-condition-site{
  flex:0 0 auto;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-dx-source-badge{
  flex:0 0 auto;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:2px 6px;
  border-radius:999px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  background:var(--surface,#faf4e8);
  color:var(--ink-faint,var(--text-faint,#a89782));
}
/* [Problem List reframe] Read-only row: the clinical status renders as quiet text
   (the inline status <select> is retired — status edits live in the rich editor). */
.ap-dx-condition-status{
  flex:0 0 auto;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.03em;
  text-transform:capitalize;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
/* [§4.1, B4] Pre-Existing popout: selectable condition rows (label wraps the
   checkbox — click anywhere toggles), a stage chip beside the site chip, an
   inert "Added" marker on already-applied rows, and the Apply gate button. */
.ap-pre-existing-row{ cursor:pointer; }
.ap-pre-existing-row .ap-pre-existing-check{ flex:0 0 auto; margin:0; }
.ap-dx-condition-stage{
  flex:0 0 auto;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.03em;
  text-transform:capitalize;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-pre-existing-applied{
  flex:0 0 auto;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:2px 6px;
  border-radius:999px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  background:var(--surface,#faf4e8);
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-pre-existing-apply[disabled]{
  opacity:0.5;
  cursor:default;
}
/* In edit mode (data-editing on the pop-out root) a problem row is click-to-edit:
   advertise it. Read-only rows keep the default cursor and are inert. */
.assessment-ocular-conditions-popout[data-editing="true"] .ap-dx-problem-row{
  cursor:pointer;
}
.assessment-ocular-conditions-popout[data-editing="true"] .ap-dx-problem-row:hover{
  border-color:var(--blue,#c2553a);
  background:var(--blue-soft,#f1ded4);
}
.assessment-ocular-conditions-popout .widget-action-btn{
  cursor:pointer;
}
.ap-dx-suggestion-prompt{
  flex:0 0 auto;
  font-size:10.5px;
  font-weight:600;
  line-height:1.2;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
/* A promoted encounter dx stays listed under Today's encounter diagnoses (promotion
   copies it to the problem list — it never stops being an encounter diagnosis); this
   quiet marker replaces the Yes/No prompt on resolved rows. */
.ap-dx-suggestion-onlist{
  flex:0 0 auto;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:2px 6px;
  border-radius:999px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  background:var(--surface,#faf4e8);
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-dx-inline-yes,
.ap-dx-inline-no{
  --widget-action-btn-h: 20px;
  --widget-action-btn-min-w: 24px;
  --widget-action-btn-pad-x: 6px;
  --widget-action-btn-bg: rgba(255,255,255,0.32);
  --widget-action-btn-bg-hover: rgba(255,255,255,0.68);
  --widget-action-btn-border: color-mix(in srgb,var(--ink-faint,var(--text-faint,#a89782)) 52%,transparent);
  --widget-action-btn-border-hover: var(--ink-faint,var(--text-faint,#a89782));
  --widget-action-btn-color: var(--ink-mute,var(--text-muted,#7a6d5c));
  --widget-action-btn-size: 10.5px;
  --widget-action-btn-weight: 600;
}
.ap-dx-empty{
  padding:8px 7px;
  font-size:11px;
  font-style:italic;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-dx-popout-footer{
  position:sticky;
  bottom:0;
  z-index:1;
  display:flex;
  justify-content:flex-end;
  padding:8px 12px;
  background:var(--surface,#faf4e8);
  border-top:1px solid var(--border,#e6dcc7);
}
.ap-dx-done{
  --widget-action-btn-pad-x: 14px;
}
/* [Rx-controller spec, A-S9] Anchored popout panel for the A&P medication-list "Rx"
   control. Copied from the `Dx` popout (#assessment-ocular-conditions-popout / .ap-dx-*
   above) and adapted to the `ap-rx-*` scheme so Dx · Rx read as one control family.
   ensurePopout() appends #assessment-medication-popout into the same A&P card header,
   which already gets `position:relative` from the Dx popout rule above, so this panel
   drops down over the card body the same way. Visibility = the `hidden` attribute.
   Rx authors from the Plan section (Locked Decision 6), so there is NO toolbar/add row
   and NO promote bridge — only list reconciliation + the Done footer. Tokenized,
   PowerChart-embedded — legibility and clinician scan-speed over flourish. */
.assessment-medication-popout{
  position:absolute;
  top:calc(100% + 6px);
  left:8px;
  z-index:60;
  width:min(360px,calc(100% - 16px));
  max-height:min(60vh,420px);
  display:flex;
  flex-direction:column;
  background:var(--surface,#faf4e8);
  border:1px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius-lg,11px);
  box-shadow:var(--shadow-soft,0 6px 18px -8px rgba(15,29,48,0.18));
  color:var(--ink,#1f1b16);
  overflow:hidden;
}
.assessment-medication-popout[hidden]{ display:none; }
.ap-rx-popout-inner{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.ap-rx-popout-header{
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:var(--surface,#faf4e8);
  border-bottom:1px solid var(--border,#e6dcc7);
}
.ap-rx-popout-title{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:var(--ink,#1f1b16);
}
.ap-rx-popout-section{ padding:8px 12px 10px; }
.ap-rx-popout-section + .ap-rx-popout-section{ border-top:1px solid var(--border,#e6dcc7); }
.ap-rx-section-title{
  margin:2px 0 7px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-rx-med-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:6px 7px;
  border:0.5px solid var(--border,#e6dcc7);
  border-radius:var(--radius,7px);
  background:#fff;
}
.ap-rx-med-row + .ap-rx-med-row{ margin-top:6px; }
.ap-rx-med-name{
  flex:1 1 auto;
  min-width:120px;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  color:var(--ink,#1f1b16);
}
.ap-rx-med-route{
  flex:0 0 auto;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-rx-source-badge{
  flex:0 0 auto;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:2px 6px;
  border-radius:999px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  background:var(--surface,#faf4e8);
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-rx-status-select{
  flex:0 0 auto;
  height:24px;
  max-width:108px;
  font-family:inherit;
  font-size:11px;
  padding:2px 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
  cursor:pointer;
}
/* [Controls-row reframe, D9] Rx pop-out buttons (pencil / Add / Edit / Remove /
   Done) carry the PURE registered .widget-action-btn look — the bespoke pill
   variants were deleted with the red `Rx` subtitle vocabulary. Read-only rows
   show status as static text (mirrors .ap-sx-status-text). */
.ap-rx-status-text{
  flex:0 0 auto;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-rx-empty{
  padding:8px 7px;
  font-size:11px;
  font-style:italic;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-rx-popout-footer{
  position:sticky;
  bottom:0;
  z-index:1;
  display:flex;
  justify-content:flex-end;
  padding:8px 12px;
  background:var(--surface,#faf4e8);
  border-top:1px solid var(--border,#e6dcc7);
}
/* [Sx-controller spec, B-S13] Anchored popout panel for the A&P procedures "Sx"
   control. Copied from the Rx popout family and adapted to the `ap-sx-*` scheme so
   Dx · Rx · Sx read as one control family. */
.assessment-procedure-popout{
  position:absolute;
  top:calc(100% + 6px);
  left:8px;
  z-index:60;
  width:min(390px,calc(100% - 16px));
  max-height:min(60vh,420px);
  display:flex;
  flex-direction:column;
  background:var(--surface,#faf4e8);
  border:1px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius-lg,11px);
  box-shadow:var(--shadow-soft,0 6px 18px -8px rgba(15,29,48,0.18));
  color:var(--ink,#1f1b16);
  overflow:hidden;
}
.assessment-procedure-popout[hidden]{ display:none; }
.ap-sx-popout-inner{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.ap-sx-popout-header{
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:var(--surface,#faf4e8);
  border-bottom:1px solid var(--border,#e6dcc7);
}
.ap-sx-popout-title{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:var(--ink,#1f1b16);
}
/* Stage 4: the popout-local Planned/Performed VIEW toggle (segmented-radio
   treatment — the same token family as the follow-up mode toggle). */
.ap-sx-view-toggle{
  display:inline-flex;
  gap:2px;
  padding:2px;
  margin:0 12px 8px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:var(--surface,#faf4e8);
}
.ap-sx-view-toggle-option{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  cursor:pointer;
}
.ap-sx-view-toggle-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.ap-sx-view-toggle-option span{
  display:inline-flex;
  align-items:center;
  height:22px;
  padding:0 8px;
  border-radius:var(--radius-sm,5px);
  font-size:11px;
  font-weight:700;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-sx-view-toggle-option input:checked + span{
  background:#fff;
  color:var(--ink,#1f1b16);
  box-shadow:0 1px 3px rgba(31,27,22,0.10);
}
.ap-sx-popout-section{ padding:8px 12px 10px; }
.ap-sx-popout-section + .ap-sx-popout-section{ border-top:1px solid var(--border,#e6dcc7); }
.ap-sx-section-title{
  margin:2px 0 7px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-sx-history-row,
.ap-sx-planned-row,
.ap-sx-performed-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:6px 7px;
  border:0.5px solid var(--border,#e6dcc7);
  border-radius:var(--radius,7px);
  background:#fff;
}
.ap-sx-history-row + .ap-sx-history-row,
.ap-sx-planned-row + .ap-sx-planned-row,
.ap-sx-performed-row + .ap-sx-performed-row{ margin-top:6px; }
.ap-sx-procedure-name{
  flex:1 1 auto;
  min-width:120px;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  color:var(--ink,#1f1b16);
}
.ap-sx-source-badge,
.ap-sx-create-only{
  flex:0 0 auto;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:2px 6px;
  border-radius:999px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  background:var(--surface,#faf4e8);
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-sx-status-text{
  flex:0 0 auto;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink-mute,var(--text-muted,#7a6d5c));
}
.ap-sx-status-select{
  flex:0 0 auto;
  height:24px;
  max-width:118px;
  font-family:inherit;
  font-size:11px;
  padding:2px 6px;
  border:0.5px solid var(--border-md,var(--border,#e6dcc7));
  border-radius:var(--radius,7px);
  background:#fff;
  color:var(--ink,#1f1b16);
  cursor:pointer;
}
/* [Controls-row reframe, D9] Sx pop-out buttons carry the PURE registered
   .widget-action-btn look — bespoke pill variants deleted with the red `Sx`
   subtitle vocabulary. The registered family has no :disabled treatment, so the
   imported create-only rows' disabled Edit/Remove keep this scoped rule. */
.assessment-procedure-popout .widget-action-btn:disabled{
  cursor:not-allowed;
  opacity:0.58;
}
.ap-sx-empty{
  padding:8px 7px;
  font-size:11px;
  font-style:italic;
  color:var(--ink-faint,var(--text-faint,#a89782));
}
.ap-sx-popout-footer{
  position:sticky;
  bottom:0;
  z-index:1;
  display:flex;
  justify-content:flex-end;
  padding:8px 12px;
  background:var(--surface,#faf4e8);
  border-top:1px solid var(--border,#e6dcc7);
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card] > .card-hdr:first-child .assessment-header-search{
  flex:0 1 min(280px,38%)!important;
  min-width:150px!important;
  margin-left:auto!important;
  margin-right:8px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card] > .card-hdr:first-child .assessment-header-search .widget-directory{
  width:100%!important;
  height:auto!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card] > .card-hdr:first-child .assessment-header-search .widget-directory::before{
  display:none!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card] > .card-hdr:first-child .assessment-header-search .widget-directory-input{
  box-sizing:border-box!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  padding:4px 10px!important;
  border-radius:8px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card[data-widget-card] > .card-footer > .assessment-finalize-row:only-child{
  width:100%!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .general-consult-grid > .card.assessment-side-card > .card-scroll{
  overflow:hidden!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-split{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-pane{
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-pane-history{
  padding:8px 10px!important;
  border-right:1px solid var(--hairline-faint,rgba(26,34,48,0.12))!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-pane-workspace{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:10px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-items:center!important;
  gap:8px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action-panel{
  min-height:0!important;
  width:100%!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action{
  min-height:30px!important;
  padding:6px 10px!important;
  border:1px solid color-mix(in srgb,var(--ink,#1A2230) 16%,transparent)!important;
  border-radius:8px!important;
  background:var(--surface,#fff)!important;
  color:var(--ink,#1A2230)!important;
  font-family:var(--font)!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-align:left!important;
  white-space:normal!important;
  box-shadow:0 1px 2px rgba(31,27,22,0.04)!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action-icon{
  flex:0 0 32px!important;
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action-glyph{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:currentColor!important;
  font-family:var(--font)!important;
  font-size:18px!important;
  font-weight:800!important;
  line-height:1!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action-svg{
  width:17px!important;
  height:17px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action:hover,
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action:focus-visible,
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action.active{
  border-color:var(--ink-link,var(--blue,#d97757))!important;
  color:var(--ink-link,var(--blue,#d97757))!important;
  outline:none!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-search-placeholder{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-search-placeholder span,
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-action-hint{
  color:var(--ink-mute,var(--text-muted,#7a7567))!important;
  font-family:var(--mono)!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:0.08em!important;
  text-transform:uppercase!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-search-placeholder input{
  width:100%!important;
  min-height:30px!important;
  border-radius:8px!important;
  text-align:left!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-remove-entry{
  flex:0 0 auto!important;
  width:22px!important;
  height:22px!important;
  margin-left:auto!important;
  padding:0!important;
  border:1px solid color-mix(in srgb,var(--ink-link,var(--blue,#d97757)) 44%,transparent)!important;
  border-radius:999px!important;
  background:var(--surface,#fff)!important;
  color:var(--ink-link,var(--blue,#d97757))!important;
  font-family:var(--font)!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .sb-item span[contenteditable="true"]{
  cursor:text!important;
  border-radius:6px!important;
  padding:2px 4px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .sb-item span[contenteditable="true"]:focus{
  background:var(--surface,#fff)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--ink-link,var(--blue,#d97757)) 24%,transparent)!important;
  outline:none!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone{
  margin:0!important;
  padding:0!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .history-domain-hdr{
  padding-top:0!important;
  margin-bottom:6px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .history-domain-body,
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone [id$="-display"]{
  min-height:0!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .history-list-grid{
  grid-auto-flow:row!important;
  grid-template-columns:1fr!important;
  grid-template-rows:none!important;
  gap:4px!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .sb-item{
  cursor:default!important;
}
body.encounter-active[data-encounter-tab="assessment-plan"] .assessment-side-history-clone .sb-item-remove{
  display:none!important;
}
body.encounter-active[data-encounter-tab="trends-analysis"] .general-consult-grid > .card[data-widget-card="trends"]{
  grid-column:1!important;
  grid-row:1!important;
  min-height:560px!important;
}
@media (max-width:900px){
  body.encounter-active[data-encounter-tab="history"] .exam-grid.general-consult-grid{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
  }
  body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="hpi"],
  body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="ocular-history"],
  body.encounter-active[data-encounter-tab="history"] .general-consult-grid > .card[data-widget-card="medical-history"]{
    grid-column:1!important;
    grid-row:auto!important;
    min-height:420px!important;
  }
  body.encounter-active[data-encounter-tab="physical-examination"] .exam-grid.general-consult-grid{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
  }
  body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="ocular-vitals"],
  body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="other-examination"],
  body.encounter-active[data-encounter-tab="physical-examination"] .general-consult-grid > .card[data-widget-card="anterior-posterior-segment"]{
    grid-column:1!important;
    grid-row:auto!important;
  }
}
.tab-btn-v2{height:40px;padding:0 13px;font-size:11px;}
#tabs-v2-region{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.tab-pane{display:none;padding:14px 20px;font-size:12px;color:rgba(40,50,60,0.55);background:rgba(247,249,251,0.6);border-top:1px solid rgba(0,0,0,0.06);font-style:italic;text-align:center;}
.tab-pane.active{display:block;flex:1 1 auto;min-height:0;}
/* T35a bridge: suppress v2 region during legacy encounter (content-appt) and
 * legacy Patient Files (content-files) modes. Surveys intentionally excluded
 * — Surveys exists in both chromes; suppressing v2 during legacy surveys would
 * create a UX dead-end (no way back to new tabs without bouncing through Dashboard). */
#content-appt.active ~ #tabs-v2-region,
#content-files.active ~ #tabs-v2-region{display:none;}
/* Stub-shell layout for workspace panes that are not built out yet. */
.tab-stub{max-width:560px;margin:24px auto;padding:24px 28px;background:var(--surface,#fff);border:1px solid rgba(0,0,0,0.08);border-radius:8px;text-align:left;font-style:normal;color:var(--text,#1a1a18);}
.tab-stub-title{margin:0 0 10px;font-size:18px;font-weight:600;letter-spacing:-0.01em;color:var(--text,#1a1a18);}
.tab-stub-body{margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--text-muted,rgba(40,50,60,0.7));font-style:normal;}
.tab-stub-action{font-family:var(--font);font-size:12px;font-weight:600;padding:7px 16px;border-radius:var(--radius,6px);border:1px solid rgba(36,114,184,0.4);background:rgba(36,114,184,0.08);color:#2456a0;cursor:pointer;transition:all 0.13s;}
.tab-stub-action:hover{background:rgba(36,114,184,0.16);}

/* ── MIGRATION ── */
#tab-content-migrate{padding:0;background:var(--bg,#f5f7fa);font-style:normal;text-align:left;color:var(--text,#1f2933);overflow:auto;}
.migrate-panel{max-width:1180px;margin:0 auto;padding:22px;}
.migrate-header{margin-bottom:14px;}
.migrate-header h2{margin:0 0 7px;font-size:25px;line-height:1.15;color:var(--text,#1f2933);}
.migrate-header p{margin:0;max-width:760px;font-size:13px;line-height:1.45;color:var(--text-muted,#64707d);}
.migrate-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.migrate-options article,.migrate-export{background:#fff;border:1px solid rgba(32,44,58,0.12);border-radius:8px;box-shadow:0 1px 2px rgba(32,44,58,0.04);}
.migrate-options article{padding:14px;}
.migrate-options h3,.migrate-export h3{margin:0 0 6px;font-size:15px;color:var(--text,#1f2933);}
.migrate-options p,.migrate-export p{margin:0;font-size:12px;line-height:1.45;color:var(--text-muted,#64707d);}
.migrate-subpane{display:none;}
.migrate-subpane.active{display:block;}
.migrate-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:20px;}
.migrate-target-card{
  min-height:260px;
  padding:30px 26px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--os-component-content-bg,var(--surface,#faf9f5));
  border:1px solid var(--os-component-border,var(--hairline-mid,#d9d3c4));
  border-radius:10px;
  box-shadow:var(--shadow-paper,0 1px 0 rgba(0,0,0,0.02),0 10px 22px -16px rgba(0,0,0,0.10));
  color:var(--text,#1f2933);
}
.migrate-target-card h3{margin:0 0 10px;font-size:19px;font-weight:600;color:var(--text,#1f2933);}
.migrate-target-card p{max-width:290px;margin:0;font-size:15px;line-height:1.55;color:var(--text-muted,#64707d);}
.migrate-export{display:grid;grid-template-columns:minmax(260px,0.45fr) minmax(0,1fr);gap:12px;padding:14px;}
.migrate-export pre{margin:0;max-height:420px;overflow:auto;padding:12px;border-radius:6px;background:#f6f8fa;border:1px solid rgba(32,44,58,0.1);font-family:var(--mono,monospace);font-size:11px;line-height:1.45;color:#26313d;}

/* ── BUILDER INSPECTOR ── */
#tab-content-customize{padding:0;background:var(--bg,#eceae6);font-style:normal;text-align:left;color:var(--text,#1a1a18);overflow:auto;}
.builder-inspector-root{width:100%;min-height:100%;background:var(--bg,#eceae6);}
.builder-inspector{max-width:1280px;margin:0 auto;padding:18px 22px 32px;}
.builder-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:18px;align-items:start;margin-bottom:14px;}
.builder-eyebrow{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--blue,#2472b8);}
.builder-header h2{margin:0 0 6px;font-size:24px;line-height:1.15;color:var(--text,#1f2933);}
.builder-sub{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted,#64707d);}
.builder-summary,.builder-card,.builder-slot{background:#fff;border:1px solid rgba(32,44,58,0.12);border-radius:8px;box-shadow:0 1px 2px rgba(32,44,58,0.04);}
.builder-summary{display:grid;gap:8px;padding:12px;}
.builder-fixed-row{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px;}
.builder-agent-layer{margin:0 0 16px;padding:14px;background:#fff;border:1px solid rgba(32,44,58,0.12);border-radius:8px;box-shadow:0 1px 2px rgba(32,44,58,0.04);}
.builder-agent-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;}
.builder-agent-head h3{margin:0 0 5px;font-size:17px;line-height:1.25;color:var(--text,#1f2933);}
.builder-agent-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px;}
.builder-agent-card{min-width:0;padding:11px;border:1px solid rgba(32,44,58,0.1);border-radius:8px;background:rgba(247,249,251,0.72);}
.builder-agent-card.primary{background:rgba(36,114,184,0.08);border-color:rgba(36,114,184,0.26);}
.builder-agent-step{margin-bottom:6px;font-size:9px;font-weight:900;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-faint,#8c98a4);}
.builder-agent-card h4{margin:0 0 5px;font-size:13px;line-height:1.2;color:var(--text,#1f2933);}
.builder-agent-card p{margin:0 0 8px;font-size:11px;line-height:1.4;color:var(--text-muted,#64707d);}
.builder-agent-boundary,.builder-preference-schema,.builder-registered-surfaces,.builder-note-style{border-top:1px solid rgba(32,44,58,0.09);padding-top:12px;margin-top:12px;}
.builder-agent-boundary{display:grid;grid-template-columns:minmax(0,0.72fr) minmax(0,1.28fr);gap:12px;align-items:start;}
.builder-agent-boundary h4{margin:0 0 5px;font-size:14px;color:var(--text,#1f2933);}
.builder-agent-boundary p{margin:0;font-size:12px;line-height:1.45;color:var(--text-muted,#64707d);}
.builder-boundary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.builder-boundary-label{display:block;margin-bottom:5px;font-size:9px;font-weight:900;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint,#8c98a4);}
.builder-surface-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;}
.builder-surface{padding:9px;border:1px solid rgba(32,44,58,0.1);border-radius:8px;background:rgba(247,249,251,0.72);}
.builder-surface-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;}
.builder-surface-title strong{font-size:12px;color:var(--text,#1f2933);}
.builder-surface-current{display:grid;grid-template-columns:1fr;gap:5px;margin-top:7px;}
.builder-surface-current .builder-kv{padding:5px 6px;background:#fff;}
.builder-preference-options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;margin-top:10px;}
.builder-pref-options{border:1px solid rgba(32,44,58,0.1);border-radius:8px;background:rgba(247,249,251,0.72);padding:9px;}
.builder-pref-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;}
.builder-pref-title strong{font-size:12px;color:var(--text,#1f2933);}
.builder-pref-option{padding:7px;border:1px solid rgba(32,44,58,0.08);border-radius:6px;background:#fff;margin-top:5px;}
.builder-pref-option.selected{border-color:rgba(36,114,184,0.34);background:rgba(36,114,184,0.06);}
.builder-pref-option span{display:block;font-size:11px;font-weight:800;color:var(--text,#1f2933);}
.builder-pref-option p{margin:2px 0 0;font-size:10.5px;line-height:1.35;color:var(--text-muted,#64707d);}
.builder-layout-starter{margin:12px 0;padding:12px;border:1px solid rgba(36,114,184,0.16);border-radius:8px;background:rgba(36,114,184,0.045);}
.builder-layout-starter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.builder-pref-reset{font-family:var(--font);font-size:11px;font-weight:800;padding:6px 10px;border-radius:6px;border:1px solid rgba(32,44,58,0.14);background:#fff;color:var(--text-muted,#64707d);cursor:pointer;white-space:nowrap;}
.builder-pref-reset:hover{border-color:rgba(36,114,184,0.3);color:#2456a0;background:rgba(255,255,255,0.86);}
.builder-layout-starter-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,410px);gap:12px;align-items:start;}
.builder-layout-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
.builder-pref-picker{min-width:0;margin:0;padding:8px;border:1px solid rgba(32,44,58,0.1);border-radius:8px;background:#fff;}
.builder-pref-picker legend{padding:0 4px;font-size:10px;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint,#8c98a4);}
.builder-pref-pick{display:block;width:100%;margin:5px 0 0;padding:7px 8px;border:1px solid rgba(32,44,58,0.1);border-radius:6px;background:rgba(247,249,251,0.75);font-family:var(--font);text-align:left;cursor:pointer;color:var(--text,#1f2933);}
.builder-pref-pick:hover{border-color:rgba(36,114,184,0.28);background:rgba(36,114,184,0.045);}
.builder-pref-pick.selected{border-color:rgba(36,114,184,0.45);background:rgba(36,114,184,0.1);}
.builder-pref-pick span{display:block;font-size:11px;font-weight:850;line-height:1.2;}
.builder-pref-pick small{display:block;margin-top:2px;font-size:10px;line-height:1.35;color:var(--text-muted,#64707d);}
.builder-layout-preview{overflow:hidden;border:1px solid rgba(32,44,58,0.14);border-radius:8px;background:#fff;color:#1f2933;box-shadow:0 1px 3px rgba(32,44,58,0.05);}
.builder-layout-preview[data-layout-color-scheme="high-contrast"]{background:#fff;color:#0d141c;border-color:#0d141c;}
.builder-layout-preview[data-layout-color-scheme="soft-slate"]{background:#f4f6f8;color:#26313d;border-color:rgba(38,49,61,0.18);}
.builder-layout-preview[data-layout-typography="reader"]{font-family:Georgia,"Times New Roman",serif;font-size:14px;}
.builder-layout-preview[data-layout-typography="dense-dashboard"]{font-size:12px;}
.builder-preview-topbar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#26313d;color:#fff;}
.builder-layout-preview[data-layout-color-scheme="high-contrast"] .builder-preview-topbar{background:#0d141c;}
.builder-layout-preview[data-layout-color-scheme="soft-slate"] .builder-preview-topbar{background:#455260;}
.builder-preview-logo{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.14);font-size:11px;font-weight:900;}
.builder-preview-banner{display:flex;flex-direction:column;min-width:0;line-height:1.2;}
.builder-preview-banner strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.builder-preview-banner span{font-size:10.5px;color:rgba(255,255,255,0.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.builder-layout-preview[data-layout-header-formatting="compact-banner"] .builder-preview-topbar{padding-top:6px;padding-bottom:6px;}
.builder-layout-preview[data-layout-header-formatting="sectioned-header"] .builder-preview-banner{padding-left:10px;border-left:1px solid rgba(255,255,255,0.24);}
.builder-preview-tabs{display:flex;gap:0;border-bottom:1px solid rgba(32,44,58,0.1);background:#f7f9fb;}
.builder-preview-tabs span{flex:1;padding:7px 6px;text-align:center;font-size:10px;font-weight:800;color:#64707d;border-right:1px solid rgba(32,44,58,0.08);}
.builder-preview-tabs span:last-child{border-right:none;}
.builder-preview-tabs .active{color:#2456a0;background:#fff;border-bottom:2px solid #2472b8;}
.builder-layout-preview[data-layout-density="compact"] .builder-preview-tabs span{padding-top:4px;padding-bottom:4px;}
.builder-layout-preview[data-layout-density="relaxed"] .builder-preview-tabs span{padding-top:10px;padding-bottom:10px;}
.builder-preview-body{display:grid;grid-template-columns:1fr;gap:9px;padding:10px;background:#f7f9fb;}
.builder-layout-preview[data-layout-density="compact"] .builder-preview-body{gap:6px;padding:7px;}
.builder-layout-preview[data-layout-density="relaxed"] .builder-preview-body{gap:12px;padding:14px;}
.builder-preview-widget,.builder-preview-note{background:#fff;border:1px solid rgba(32,44,58,0.13);border-radius:7px;overflow:hidden;}
.builder-layout-preview[data-layout-surface-chrome="flat-clinical"] .builder-preview-widget{box-shadow:none;border-color:rgba(32,44,58,0.08);}
.builder-layout-preview[data-layout-surface-chrome="soft-panels"] .builder-preview-widget{border-color:rgba(36,114,184,0.22);box-shadow:0 3px 10px rgba(32,44,58,0.06);}
.builder-preview-widget header{display:flex;align-items:center;gap:6px;padding:7px 9px;background:#f5f3ee;border-bottom:1px solid rgba(32,44,58,0.1);}
.builder-layout-preview[data-layout-surface-chrome="flat-clinical"] .builder-preview-widget header{background:#fff;}
.builder-layout-preview[data-layout-surface-chrome="soft-panels"] .builder-preview-widget header{background:rgba(36,114,184,0.07);border-bottom-color:rgba(36,114,184,0.18);}
.builder-preview-widget header span{width:7px;height:7px;border-radius:50%;background:#7ab8e8;flex-shrink:0;}
.builder-preview-widget header strong{font-size:11px;}
.builder-preview-widget-content{display:grid;gap:5px;padding:9px;}
.builder-preview-widget-content div{display:flex;justify-content:space-between;gap:8px;font-size:11px;}
.builder-preview-widget-content b{color:#2456a0;}
.builder-preview-widget-content span{color:#64707d;text-align:right;}
.builder-preview-widget footer{height:12px;background:#f5f3ee;border-top:1px solid rgba(32,44,58,0.1);}
.builder-layout-preview[data-layout-surface-chrome="flat-clinical"] .builder-preview-widget footer{background:#fff;}
.builder-layout-preview[data-layout-surface-chrome="soft-panels"] .builder-preview-widget footer{background:rgba(36,114,184,0.04);border-top-color:rgba(36,114,184,0.14);}
.builder-preview-note{padding:9px 10px;}
.builder-preview-note header{font-size:10px;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:#8c98a4;margin-bottom:6px;}
.builder-preview-note p{margin:5px 0;font-size:11px;line-height:1.35;color:#384654;}
.builder-layout-preview[data-layout-note-style="lettered"] .builder-preview-note p{font-style:normal;}
.builder-layout-preview[data-layout-note-style="sectioned"] .builder-preview-note{border-left:3px solid #2472b8;}
.builder-layout-preview[data-layout-note-style="hybrid"] .builder-preview-note header::after{content:" + structured blocks";font-weight:700;color:#2456a0;}
.builder-preview-current{display:flex;flex-wrap:wrap;gap:5px;padding:8px 10px;border-top:1px solid rgba(32,44,58,0.1);background:#fff;}
.builder-preview-current span{font-size:10px;font-weight:800;color:#2456a0;background:rgba(36,114,184,0.08);border:1px solid rgba(36,114,184,0.18);border-radius:999px;padding:3px 6px;}
.builder-note-style-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;}
.builder-note-style-head span{font-size:10px;font-weight:900;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint,#8c98a4);}
.builder-note-style-head strong{font-size:15px;color:var(--text,#1f2933);}
.builder-note-style-copy{margin:-4px 0 10px;font-size:12px;line-height:1.4;color:var(--text-muted,#64707d);}
.builder-note-style-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.builder-note-style-options article{min-width:0;padding:12px;border:1px solid rgba(32,44,58,0.12);border-radius:8px;background:#fff;text-align:center;}
.builder-note-style-options h4{margin:8px 0 4px;font-size:15px;color:var(--text,#1f2933);}
.builder-note-style-options p{margin:0 auto;max-width:190px;font-size:12px;line-height:1.35;color:var(--text-muted,#64707d);}
.builder-note-icon{width:70px;height:82px;margin:0 auto;border:1px solid rgba(32,44,58,0.24);border-radius:7px;background:#fff;position:relative;}
.builder-note-icon::before,.builder-note-icon::after{content:"";position:absolute;left:14px;right:14px;height:2px;background:rgba(32,44,58,0.35);box-shadow:0 8px 0 rgba(32,44,58,0.35),0 16px 0 rgba(32,44,58,0.35),0 24px 0 rgba(32,44,58,0.35);}
.builder-note-icon::before{top:22px;}
.builder-note-icon::after{bottom:13px;}
.builder-note-icon.lettered{height:86px;}
.builder-note-icon.lettered::before{top:25px;}
.builder-note-icon.sectioned::before{top:17px;box-shadow:0 11px 0 rgba(32,44,58,0.35),0 34px 0 rgba(32,44,58,0.35),0 45px 0 rgba(32,44,58,0.35);}
.builder-note-icon.sectioned::after{display:none;}
.builder-note-icon.hybrid::before{top:22px;box-shadow:0 8px 0 rgba(32,44,58,0.35);}
.builder-note-icon.hybrid::after{bottom:16px;box-shadow:0 -28px 0 15px rgba(245,247,250,0.95),0 -28px 0 16px rgba(32,44,58,0.1),0 8px 0 rgba(32,44,58,0.35);}
.builder-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px;align-items:start;}
.builder-card{padding:12px;min-width:0;}
.builder-card-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px;}
.builder-card h3{margin:0 0 3px;font-size:14px;line-height:1.25;color:var(--text,#1f2933);}
.builder-card-id{font-size:10px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-faint,#9aa7b3);}
.builder-card-pills,.builder-mini-list{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.builder-grid,.builder-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0;}
.builder-kv{min-width:0;padding:7px 8px;background:rgba(247,249,251,0.8);border:1px solid rgba(32,44,58,0.08);border-radius:6px;}
.builder-kv span{display:block;margin-bottom:2px;font-size:9px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint,#8c98a4);}
.builder-kv strong{display:block;min-width:0;font-size:11px;font-weight:700;line-height:1.25;color:var(--text,#1f2933);overflow-wrap:anywhere;}
.builder-pill{display:inline-flex;align-items:center;min-height:20px;padding:3px 7px;border-radius:999px;border:1px solid rgba(32,44,58,0.14);background:#f6f8fa;color:var(--text-muted,#64707d);font-size:10px;font-weight:800;line-height:1.15;}
.builder-pill.accent{background:rgba(36,114,184,0.09);border-color:rgba(36,114,184,0.26);color:#2456a0;}
.builder-pill.fixed{background:rgba(95,109,122,0.1);border-color:rgba(95,109,122,0.22);color:#4d5965;}
.builder-pill.migration{background:rgba(106,200,154,0.12);border-color:rgba(106,200,154,0.3);color:#2f7a52;}
.builder-pill.basis{background:rgba(240,169,106,0.14);border-color:rgba(240,169,106,0.36);color:#8a5526;}
.builder-pill.muted{background:#fff;color:var(--text-muted,#64707d);}
.builder-slot{margin-top:9px;padding:9px;background:rgba(252,253,254,0.9);}
.builder-slot-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px;}
.builder-slot-head strong{font-size:12px;color:var(--text,#1f2933);}
.builder-section-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.builder-section-list span{font-size:10px;font-weight:800;color:#2456a0;background:rgba(36,114,184,0.08);border:1px solid rgba(36,114,184,0.2);border-radius:6px;padding:4px 6px;}
.builder-empty{padding:24px;color:var(--text-muted,#64707d);}
@media (max-width:760px){
  .builder-header{grid-template-columns:1fr;}
  .builder-agent-boundary,.builder-boundary-grid{grid-template-columns:1fr;}
  .builder-agent-steps,.builder-note-style-options{grid-template-columns:1fr;}
  .builder-grid,.builder-slot-grid,.builder-layout-starter-grid,.builder-layout-controls{grid-template-columns:1fr;}
  .builder-layout-starter-head{display:block;}
  .builder-pref-reset{margin-top:8px;}
  .builder-inspector{padding:14px 12px 24px;}
}

/* Layout Agent preference application: first visible registered surface. */
body[data-layout-surface-chrome="flat-clinical"].encounter-active .exam-grid.general-consult-grid > .card{
  border-color:rgba(32,44,58,0.08);
  box-shadow:none;
  background:#fff;
}
body[data-layout-surface-chrome="flat-clinical"].encounter-active .exam-grid.general-consult-grid > .card > .card-hdr{
  background:#fff;
  border-bottom-color:rgba(32,44,58,0.07);
}
body[data-layout-surface-chrome="soft-panels"].encounter-active .exam-grid.general-consult-grid > .card{
  border-color:rgba(36,114,184,0.18);
  box-shadow:0 2px 8px rgba(32,44,58,0.06);
  background:rgba(252,253,254,0.98);
}
body[data-layout-surface-chrome="soft-panels"].encounter-active .exam-grid.general-consult-grid > .card > .card-hdr{
  background:rgba(36,114,184,0.06);
  border-bottom-color:rgba(36,114,184,0.16);
}

/* T50 Search modal stub-results pane */
.search-results-stub{margin-top:12px;padding:18px 14px;background:rgba(247,249,251,0.7);border:1px dashed rgba(0,0,0,0.12);border-radius:var(--radius,6px);font-size:12px;color:var(--text-muted,rgba(40,50,60,0.6));font-style:italic;text-align:center;}

/* ── TODAY'S APPOINTMENT: main encounter layout ── */
.appt-layout{display:grid;grid-template-columns:1fr;flex:1;overflow:hidden;min-height:0;}
.encounter-subtab-placeholder{flex:1;min-height:0;overflow:auto;padding:24px;}

@media (max-width:900px){
  .migrate-options,.migrate-export,.migrate-card-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .workspace-tabs-row,.encounter-tabs-row{padding-left:8px;overflow:auto;}
  .tab-btn-mode{padding:0 12px;}
}

/* S2.58 Panel View — body class governs viewer mode visibility.
 * view-widget (default): widget exam-grid visible, panel-view-content hidden.
 * view-panel: widget exam-grid hidden, panel-view-content visible.
 * Widget DOM stays mounted in panel mode (just visually hidden) so widget
 * state and edit listeners are preserved across mode toggles.
 * #addon-detail also hides in panel mode because it lives as a #col-mid
 * sibling (not nested inside either exam grid), so it doesn't inherit
 * the grid's hidden state. */
body.view-panel #exam-grid-retina,
body.view-panel #exam-grid-dev,
body.view-panel #addon-detail{display:none;}
body.view-panel #panel-view-content{display:block;}
body:not(.view-panel) #panel-view-content{display:none !important;}

/* [Stage 8, coded note-lock] Note-fragment ownership spans + click-through
   highlight. Locked spans are the coded A&P prose islands inside the editable
   note preview (contenteditable="false" — edits route through the owning
   controller); clicking one opens that controller, which marks the source
   row/field with .ap-note-fragment-highlight (cleared on each popout render). */
.os-note-preview [data-fragment-owner][contenteditable="false"]{
  cursor:pointer;
  border-radius:3px;
}
.os-note-preview [data-fragment-owner][contenteditable="false"]:hover{
  background:rgba(194,85,58,.08);
  box-shadow:0 0 0 1px var(--border,#e6dcc7);
}
.ap-note-fragment-highlight{
  outline:2px solid var(--blue,#c2553a);
  outline-offset:1px;
  border-radius:4px;
}
