/* Shared MedicDex interface refinements. Loaded after each page's existing styles. */
:root {
  color-scheme: dark;
  --bg: #0a101b;
  --surface: #101a29;
  --surface2: #172336;
  --surface3: #203149;
  --text: #f1f5fb;
  --text2: #b1bfd0;
  --text3: #99abc1;
  --border: rgba(167, 189, 218, .14);
  --border2: rgba(167, 189, 218, .24);
  --accent: #548fff;
  --accent2: #2c64cc;
  --radius: 16px;
}
body { line-height: 1.5; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: rgba(84,143,255,.18); }
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #a9ceff !important;
  outline-offset: 3px;
}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),
select, textarea { font-size: 16px; }
button:disabled, [aria-disabled=true] { cursor: not-allowed; opacity: .6; }
.btn, .ghostBtn, .btn-ghost, .tab, .nav-item { min-height: 44px; }
.topbar { background: rgba(10,16,27,.96); border-bottom-color: var(--border2); }
.brandTitle, .tb-logo, .logo { letter-spacing: -.04em; }
.page-title, .detailTitle { letter-spacing: -.035em; line-height: 1.2; }
.card, .searchCard, .resultCard, .panel { border-color: var(--border2); }
.btn-primary { background: #285fcb; color: #fff; }
.btn-primary:hover { background: #3471e5; }
.nav-item.active { background: #1b3357; color: #d6e7ff; }
.field label, .field > span, .panelTitle { color: var(--text2); }
.field input, .field select, .inp { min-height: 46px; }
textarea { line-height: 1.6; }
input::placeholder, textarea::placeholder { color: #93a6bf; opacity: 1; }
.card-title { line-height: 1.4; }
.resultsMeta, .hintRow { color: var(--text2); }
.tile, .scenario, .quickCard { border-color: var(--border2); }
.tile:focus-visible, .scenario:focus-visible { background: var(--surface3); }
.modalCard, .modal-box, .modal-content { max-height: 88dvh; overflow-y: auto; }
.modalActions { flex-wrap: wrap; }
.pin-key { min-height: 56px; color: var(--text); font-family: inherit; }
.topbar-room { color: var(--text2); }
.bnav-btn { min-height: 56px; }
.step-pills { scrollbar-width: thin; }
.log-row { overflow-wrap: anywhere; }
#adminLog, #reviewItems { font-variant-numeric: tabular-nums; }
#sAdmin, #sSettings { max-width: 1024px; }
#sItems, #sReview, #sContext { max-width: 720px; }
#sAdmin table, #sSettings table { font-variant-numeric: tabular-nums; }
@media (min-width: 900px) {
  .main { max-width: 1240px; padding: 32px 40px; }
  .page-title { font-size: 28px; }
  .page-sub { max-width: 76ch; line-height: 1.6; }
  .sidebar .nav-item { border-radius: 9px; }
  #sAdmin, #sSettings { padding-top: 28px; }
}
@media (max-width: 600px) {
  .topbar { gap: 8px; padding-left: 12px; padding-right: 12px; }
  .tb-right { gap: 6px; min-width: 0; }
  .tb-user { max-width: 100px; overflow: hidden; text-overflow: ellipsis; }
  .dept-bar { flex-wrap: wrap; padding: 10px 12px; }
  .dept-select { max-width: 100%; min-width: 0; flex: 1; }
  .main { padding: 20px 14px; min-width: 0; }
  .page-title { font-size: 24px; }
  .card { border-radius: 14px; }
  .modalActions > button { flex: 1; }
  .topActions .ghostBtn { padding-left: 10px; padding-right: 10px; }
  .field, .formGrid, .toolsGrid > * { min-width: 0; }
  .detailTitle { overflow-wrap: anywhere; }
  #sAdmin .card-body, #sSettings .card-body { overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media print {
  :root { color-scheme: light; --bg:#fff; --text:#111; --text2:#333; --text3:#444; }
  body { background:#fff; color:#111; }
}
#mdx-update-banner { position:fixed;z-index:300;bottom:16px;left:16px;right:16px;max-width:760px;margin:auto;padding:14px 16px;border:1px solid #548fff;border-radius:14px;background:#172336;box-shadow:0 8px 32px #0009;display:flex;align-items:center;gap:16px;font-size:14px; }
#mdx-update-banner button { flex-shrink:0;min-height:44px;border:1px solid #548fff;border-radius:8px;background:#285fcb;color:#fff;padding:8px 12px; }
@media(max-width:500px){#mdx-update-banner{flex-direction:column;align-items:stretch;bottom:calc(12px + env(safe-area-inset-bottom));}}
#concUnit { width: auto; min-width: 130px; flex: 0 1 160px; }
#concValue { min-width: 0; }

/* Faithful protocol content: no inferred numbering, collapsed warnings or clipped cells. */
.protocolContent{display:grid;gap:10px}.protocolBlock{padding:14px 16px;border:1px solid var(--border,#394453);border-radius:10px;background:var(--surface2,#17202c);overflow-wrap:anywhere}
.protocolBlock p,.protocolBlock h3{margin:0;white-space:pre-wrap;line-height:1.65;font-size:17px}.protocolBlock h3{font-size:19px}.protocol-warning,.protocol-source{border-left:4px solid #efb34d}.protocolSource{display:block;margin-top:8px;border:0;background:transparent;color:var(--text2,#c8d2df);font-size:12px;cursor:pointer}.protocolTable{overflow-x:auto}.protocolTable table{width:100%;border-collapse:collapse;min-width:320px}.protocolTable th,.protocolTable td{padding:12px;border:1px solid var(--border,#394453);text-align:left;white-space:pre-wrap;vertical-align:top;font-size:16px}.protocolTable caption{text-align:left;font-weight:700;padding-bottom:10px}.sourceReviewColumns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sourceReviewColumns iframe{width:100%;height:72vh;border:1px solid var(--border,#394453)}.sourceReviewColumns textarea{width:100%;min-height:100px;font-size:16px;padding:10px}.sourceReviewColumns label{display:block;margin:12px 0 4px}@media(max-width:800px){.sourceReviewColumns{grid-template-columns:1fr}.sourceReviewColumns iframe{height:45vh}}
