/* Quiet, device-local laboratory lists; styles stay within their own components. */
.lab-lists { width:min(1120px, calc(100% - 48px)); margin:0 auto; padding:58px 0 72px; color:#2d3136}
.lab-lists *, .lab-dialog * { box-sizing:border-box}
.lab-lists [hidden], .lab-dialog [hidden] { display:none!important}
.lab-intro { max-width:760px; margin-block-end:24px}
.lab-intro h1 { margin:0 0 12px; font-size:clamp(32px,4.4vw,56px); font-weight:700; line-height:1.4; color:#2d3136}
.lab-intro p { margin:0; color:#60666b; font-size:17px; line-height:1.9}
.lab-local-note { background:#f0f2f3; color:#535a60; padding:14px 18px; border-radius:var(--r-tool); border:1px solid #dce0e3; font-size:14px; line-height:1.9}
.lab-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin:18px 0}
.lab-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 17px; border:1px solid #cfd4d8; border-radius:var(--r-pill); background:#fff; color:#343a40; font:inherit; font-size:14px; line-height:1.5; text-align:center; text-decoration:none; cursor:pointer}
.lab-button:hover { background:#eef0f2; border-color:#79838b}
.lab-button--primary { background:#353a40; color:#fff; border-color:#353a40}
.lab-button--primary:hover { background:#252a30; color:#fff}
.lab-button:disabled { cursor:not-allowed; opacity:.48}
.lab-link { color:#3b454d; text-underline-offset:4px; font-size:14px}
.lab-cards { display:grid; gap:16px; margin-block-start:28px}
.lab-card { border:1px solid #d8dde0; background:#fff; border-radius:var(--r-card); overflow:hidden}
.lab-card__summary { padding:21px 24px; cursor:pointer; font-size:17px; line-height:1.7; color:#30363c}
.lab-card__summary::marker { color:#656d73}
.lab-card__name { font-weight:400; margin-inline-end:18px; overflow-wrap:anywhere}
.lab-card__summary .lab-muted { white-space:nowrap}
.lab-card[open] .lab-card__summary { border-bottom:1px solid #e4e7e9; background:#f8f9f9}
.lab-card__body { padding:0 24px 24px}
.lab-muted { color:#636a70; font-size:14px; line-height:1.7}
.lab-lines { list-style:none; padding:0; margin:20px 0 0}
.lab-line { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:18px; padding:19px 0; border-top:1px solid #e6e9eb}
.lab-line__picture { display:flex; align-items:center; justify-content:center; width:64px; height:72px; background:#f2f3f4; border:1px solid #e4e7e9; border-radius:var(--r-tool); overflow:hidden}
.lab-line__picture img { width:100%; height:100%; object-fit:contain}
.lab-line__picture span { color:#686e74; font-size:12px; letter-spacing:.05em}
.lab-line__info { min-width:0}
.lab-line__info h3 { margin:0 0 6px; font-size:21px; line-height:1.7; color:#30363c; overflow-wrap:anywhere}
.lab-line__info h3 a { font-size:inherit; font-weight:400; text-decoration:none}
.lab-line__info h3 a:hover { text-decoration:underline}
.lab-line__info p { margin:0; overflow-wrap:anywhere}
.lab-line__controls { display:flex; align-items:end; gap:12px}
.lab-field { display:grid; gap:6px; color:#4b535a; font-size:14px; line-height:1.7}
.lab-field input, .lab-field select { width:100%; min-width:0; min-height:44px; border:1px solid #b8c1c8; border-radius:var(--r-pill); padding:9px 12px; background:#fff; color:#2d3136; font:inherit; font-size:17px}
.lab-line__controls input { width:76px; text-align:center}
.lab-line--missing { border-inline-start:3px solid #a97c46; padding-inline-start:12px}
.lab-empty { border:1px dashed #bdc5cc; border-radius:var(--r-card); padding:42px 28px; text-align:center; background:#fafbfb}
.lab-empty h2 { margin:0 0 10px; font-size:clamp(28px,3vw,40px); color:#30363c; line-height:1.6}
.lab-empty p { max-width:620px; margin:0 auto 22px; color:#616970; font-size:14px; line-height:1.9}
.lab-error, .lab-message--error { color:#734b25; background:#fff6e9; border:1px solid #dcc5a6; padding:12px 16px; border-radius:var(--r-tool); font-size:14px; line-height:1.8}
.lab-message { padding:12px 16px; border-radius:var(--r-tool); background:#edf1ef; color:#364d44; font-size:14px; line-height:1.8}
.lab-message.lab-message--error { color:#734b25; background:#fff6e9}
.lab-dialog { width:min(520px, calc(100vw - 32px)); max-height:calc(100dvh - 40px); overflow:auto; border:1px solid #d4d9dd; border-radius:var(--r-card); background:#fff; color:#2d3136; padding:28px; box-shadow:none; font:inherit}
.lab-dialog::backdrop { background:#151b22a6}
.lab-dialog h2 { margin:0 0 10px; font-size:clamp(28px,3vw,40px); font-weight:700; line-height:1.6; color:#2d3136}
.lab-dialog__form > .lab-field { margin-block:18px}
.lab-dialog .lab-actions { margin-bottom:0}
.lab-toast { position:fixed; z-index:12000; bottom:24px; inset-inline:18px; margin-inline:auto; width:max-content; max-width:min(600px, calc(100vw - 36px)); padding:14px 22px; border-radius:var(--r-tool); background:#2d3339; color:#fff; border:1px solid #65717a; box-shadow:none; font:inherit; font-size:14px; line-height:1.8; text-align:center; pointer-events:none; opacity:0; transition:opacity .15s}
.lab-toast.is-visible { opacity:1}
.lab-toast--error { border-color:#bc975f}
.lab-lists :is(button,input,a,summary):focus-visible, .lab-dialog :is(button,input,select):focus-visible, .lab-button:focus-visible { outline:3px solid #587a8f; outline-offset:3px}
@media (max-width: 640px) {
  .lab-lists { width:calc(100% - 32px); padding:36px 0 50px}
  .lab-card__summary { padding:17px}
  .lab-card__summary .lab-muted { display:block; margin-inline-start:20px}
  .lab-card__body { padding:0 16px 16px}
  .lab-card__body > .lab-actions > .lab-button--primary { flex:1 1 100%}
  .lab-line { grid-template-columns:56px minmax(0,1fr); gap:12px}
  .lab-line__picture { width:56px; height:66px}
  .lab-line__controls { grid-column:2; justify-content:space-between}
  .lab-dialog { padding:22px}
  .lab-dialog h2 { font-size:clamp(28px,3vw,40px)}}
@media (prefers-reduced-motion: reduce) { .lab-toast { transition:none}}