﻿.admin-link {
  padding: 9px 12px;
  border-left: 1px solid var(--line);
  color: var(--green);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}
.preserve-lines { white-space: pre-line; }
.experience-points { padding: 35px; display: flex; flex-direction: column; border-top: 1px solid var(--ink); background: #fff; }
.experience-points strong { margin-bottom: 20px; color: var(--green); font-family: "Source Serif 4", Georgia, serif; font-size: 19px; }
.experience-points span { padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.cms-shell { min-height: 100vh; display: flex; color: #172238; background: #f3f4f2; }
.cms-sidebar { width: 250px; min-height: 100vh; padding: 22px 15px; display: flex; flex-direction: column; position: fixed; background: #102b4b; color: #fff; }
.cms-brand { padding: 0 7px 22px; display: flex; gap: 11px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); }
.cms-brand > img { width: 39px; height: 39px; display: block; object-fit: contain; }
.cms-brand strong, .cms-brand small { display: block; }.cms-brand strong { font-family: "Source Serif 4", serif; font-size: 15px; }.cms-brand small { margin-top: 3px; color: #96a9bb; font-size: 8px; text-transform: uppercase; }
.cms-sidebar nav { margin-top: 20px; }
.cms-sidebar nav button { width: 100%; padding: 11px 10px; display: flex; justify-content: space-between; border: 0; border-left: 3px solid transparent; color: #b8c5d1; background: transparent; cursor: pointer; text-align: left; font-size: 10px; }
.cms-sidebar nav button:hover, .cms-sidebar nav button.active { border-left-color: #b24b59; color: #fff; background: rgba(255,255,255,.08); }
.cms-sidebar nav i { width: 7px; height: 7px; margin-top: 3px; border-radius: 50%; background: #687d90; }.cms-sidebar nav i.on { background: #75c69a; }
.cms-side-actions { margin-top: auto; padding-top: 18px; display: grid; gap: 8px; border-top: 1px solid rgba(255,255,255,.14); }
.cms-side-actions a { padding: 10px; border: 1px solid rgba(255,255,255,.2); color: #d5dde5; font-size: 9px; text-align: center; text-transform: uppercase; }
.cms-side-actions button { padding: 10px; border: 1px solid rgba(255,255,255,.2); color: #d5dde5; background: transparent; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.cms-main { width: calc(100% - 250px); margin-left: 250px; }
.cms-header { min-height: 105px; padding: 22px 34px; display: flex; align-items: center; justify-content: space-between; gap: 25px; border-bottom: 1px solid #d7d9d7; background: #fff; }
.cms-header p { margin: 0 0 4px; color: #9f2333; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cms-header h1 { margin: 0; font-family: "Source Serif 4", serif; font-size: 25px; }.cms-header small { color: #69727c; font-size: 9px; }
.cms-header-actions { display: flex; gap: 8px; align-items: center; }.cms-header-actions button, .cms-header-actions label { padding: 10px 13px; border: 1px solid #bfc5c9; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }.cms-header-actions input { display: none; }
.cms-primary { border-color: #173d68 !important; color: #fff; background: #173d68; }.cms-secondary { color: #173d68; background: #fff; }.cms-notice { margin-right: 6px; color: #347153; font-size: 9px; }
.cms-workspace { max-width: 1100px; margin: auto; padding: 28px 34px 60px; }
.module-control, .danger-zone { padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #d2d5d3; background: #fff; }
.module-control strong, .danger-zone strong { font-family: "Source Serif 4", serif; font-size: 15px; }.module-control p, .danger-zone p { margin: 4px 0 0; color: #737b83; font-size: 9px; }
.switch input { display: none; }.switch span { width: 42px; height: 22px; display: block; position: relative; border-radius: 12px; background: #bdc3c5; cursor: pointer; }.switch span::after { content: ""; width: 16px; height: 16px; position: absolute; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: .2s; }.switch input:checked + span { background: #347153; }.switch input:checked + span::after { left: 23px; }
.editor-card { margin-top: 18px; padding: 28px; border: 1px solid #d2d5d3; background: #fff; }
.editor-card h2 { margin: 0 0 24px; font-family: "Source Serif 4", serif; font-size: 21px; }
.editor-card h2.subheading { margin-top: 32px; padding-top: 25px; border-top: 1px solid #d8dcda; font-size: 17px; }
.editor-intro { margin: -12px 0 24px; color: #6c7680; font-size: 10px; }
.range-grid, .colour-grid, .case-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 20px; }
.range-control { padding: 14px; border: 1px solid #d5d9d8; background: #f8f8f5; }
.range-control span { display: flex; justify-content: space-between; color: #4c5863; }.range-control b { color: #173d68; }
.range-control input { width: 100%; margin: 14px 0 0 !important; padding: 0 !important; accent-color: #173d68; }
.color-control { padding: 13px; border: 1px solid #d5d9d8; background: #f8f8f5; }
.color-control > span { display: block; margin-bottom: 9px; }.color-control > div { display: grid; grid-template-columns: 45px 1fr; gap: 8px; }
.color-control input[type=color] { width: 45px !important; height: 38px; margin: 0 !important; padding: 2px !important; cursor: pointer; }
.color-control input[type=text] { margin: 0 !important; text-transform: uppercase !important; }
.case-control { padding: 13px; border: 1px solid #d5d9d8; background: #f8f8f5; }
.case-control span { display: block; margin-bottom: 9px; }
.case-control select { width: 100%; padding: 10px; border: 1px solid #cbd0d2; color: #172238; background: #fff; font: 11px "Libre Franklin", sans-serif; }
.theme-preview { padding: 30px; color: var(--preview-text); background: var(--preview-page); border: 1px solid #d2d6d5; }
.theme-preview > div { max-width: 680px; padding: 32px; background: var(--preview-surface); border-top: 5px solid var(--preview-primary); }
.theme-preview span { color: var(--preview-accent); font-weight: 700; letter-spacing: .09em; }.theme-preview h3 { margin: 16px 0 12px; color: var(--preview-heading); font-family: "Source Serif 4", serif; line-height: 1.1; }.theme-preview p { color: var(--preview-muted); font-family: "Source Serif 4", serif; line-height: 1.65; }.theme-preview button { margin-top: 12px; padding: 10px 15px; border: 0; color: #fff; background: var(--preview-primary); text-transform: uppercase; }
.restore-theme { margin-top: 17px; padding: 9px 12px; border: 1px solid #9f2333; color: #9f2333; background: #fff; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.editor-card label { margin-bottom: 18px; display: block; color: #525d67; font-size: 9px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.editor-card input:not([type=checkbox]), .editor-card textarea { width: 100%; margin-top: 7px; padding: 11px 12px; border: 1px solid #cbd0d2; border-radius: 0; outline: none; color: #172238; background: #fbfbfa; font: 12px "Libre Franklin", sans-serif; line-height: 1.5; text-transform: none; }.editor-card input:focus, .editor-card textarea:focus { border-color: #173d68; box-shadow: 0 0 0 2px rgba(23,61,104,.08); }
.editor-card select { width: 100%; margin-top: 7px; padding: 11px 12px; border: 1px solid #cbd0d2; color: #172238; background: #fbfbfa; font: 12px "Libre Franklin", sans-serif; text-transform: none; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.field-grid.three { grid-template-columns: repeat(3, 1fr); }
.item-editor { margin: 22px 0; padding: 20px; border: 1px solid #d7dad8; background: #f7f7f4; }.item-toolbar { margin-bottom: 18px; display: flex; align-items: center; justify-content: space-between; }.item-toolbar strong { color: #173d68; font-family: "Source Serif 4", serif; }.item-toolbar button { padding: 5px 8px; border: 1px solid #c7cccf; color: #47535f; background: #fff; cursor: pointer; font-size: 8px; }.item-toolbar button.danger { color: #9f2333; }
.inline-check { display: flex !important; gap: 8px; align-items: center; }.add-item { padding: 10px 14px; border: 1px dashed #82909d; color: #173d68; background: #fff; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.danger-zone { margin-top: 25px; border-color: #e0c9cc; }.danger-zone button { padding: 9px 12px; border: 1px solid #9f2333; color: #9f2333; background: #fff; cursor: pointer; font-size: 9px; }
.image-editor { margin-bottom: 22px; padding: 16px; display: grid; grid-template-columns: 190px 1fr; gap: 20px; align-items: center; border: 1px solid #d4d8d7; background: #f7f7f4; }
.image-preview { height: 120px; display: grid; place-items: center; overflow: hidden; color: #79828a; background: #e5e9eb; font-size: 9px; }.image-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.image-editor strong { display: block; color: #173d68; font-family: "Source Serif 4", serif; font-size: 15px; }.image-editor p { margin: 5px 0 13px; color: #737c84; font-size: 9px; }
.image-upload, .image-editor button { margin: 0 7px 0 0 !important; padding: 8px 10px; display: inline-block !important; border: 1px solid #98a3ab; color: #173d68 !important; background: #fff; cursor: pointer; font-size: 8px !important; text-transform: uppercase; }.image-upload input { display: none; }
.security-card > p { color: #69737c; font-size: 10px; line-height: 1.6; }.password-button { padding: 10px 14px; border: 0; cursor: pointer; }
.admin-loading, .admin-login { min-height: 100vh; display: grid; place-items: center; background: #edf1f5; }
.admin-loading { color: #617080; font-size: 11px; }
.admin-login-card { width: min(430px, calc(100% - 30px)); padding: 42px; border-top: 5px solid #173d68; background: #fff; box-shadow: 0 20px 65px rgba(16,43,75,.15); }
.admin-login-card > p:first-of-type { margin: 25px 0 5px; color: #9f2333; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.admin-login-card h1 { margin: 0 0 27px; font-family: "Source Serif 4", serif; font-size: 32px; }
.login-brand-icon { width: 52px; height: 52px; display: block; }.login-brand-icon img { width: 100%; height: 100%; display: block; object-fit: contain; }
.admin-login-card label { display: block; color: #4f5b66; font-size: 9px; font-weight: 700; text-transform: uppercase; }.admin-login-card input { width: 100%; margin: 8px 0 18px; padding: 12px; border: 1px solid #c4cbd0; outline: none; }.admin-login-card input:focus { border-color: #173d68; box-shadow: 0 0 0 2px rgba(23,61,104,.08); }
.admin-login-card button { width: 100%; padding: 12px; border: 0; cursor: pointer; }.admin-login-card > a { margin-top: 18px; display: block; color: #66717b; font-size: 9px; text-align: center; }
.login-error { color: #9f2333 !important; font-size: 9px !important; }
.login-help { margin: -15px 0 18px !important; color: #64717e !important; font-size: 11px !important; line-height: 1.6 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; }
.login-demo-note { display: block; margin: 14px 0 0; padding: 10px 12px; border-left: 3px solid #173d68; color: #65717b; background: #eef3f7; font-size: 9px; line-height: 1.5; }
.homepage-selection-note { margin: 28px 0 20px; padding: 17px 19px; position: relative; border-left: 4px solid #173d68; background: #eaf0f5; }.homepage-selection-note strong { color: #173d68; font-family: "Source Serif 4", serif; }.homepage-selection-note span { margin-left: 10px; padding: 3px 7px; color: #fff; background: #173d68; font-size: 8px; }.homepage-selection-note p { margin: 7px 0 0; color: #61707c; font-size: 9px; }
.project-editor label small { color: #899198; font-size: 8px; font-weight: 400; text-transform: none; }.project-editor select { width: 100%; margin-top: 7px; padding: 11px; border: 1px solid #cbd0d2; background: #fff; }.homepage-check { padding: 12px; border: 1px solid #b9c8d4; background: #edf3f7; color: #173d68 !important; }
.pi-photo.has-image { background: #e6e9eb; }.pi-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.lab-placeholder { min-height: 100vh; padding: 30px; display: grid; place-items: center; background: #edf1f5; }.lab-placeholder-card { width: min(760px, 100%); padding: 55px; border-top: 5px solid #173d68; background: #fff; box-shadow: 0 18px 55px rgba(16,43,75,.12); }.lab-placeholder-card > p:first-of-type { margin-top: 30px; color: #9f2333; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.lab-placeholder-card h1 { margin: 12px 0; font-family: "Source Serif 4", serif; font-size: 42px; }.lab-placeholder-card > p { color: #606a74; line-height: 1.7; }.api-contract { margin: 28px 0; padding: 20px; display: grid; gap: 8px; background: #102b4b; color: #fff; }.api-contract strong { margin-bottom: 5px; font-family: "Source Serif 4", serif; }.api-contract code { color: #bdcbd6; font-size: 10px; }.lab-actions { display: flex; gap: 10px; }
@media (max-width: 1000px) { .admin-link { display: none; } .cms-sidebar { width: 190px; }.cms-main { width: calc(100% - 190px); margin-left: 190px; }.cms-header { align-items: flex-start; flex-direction: column; }.field-grid.three { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .cms-sidebar { width: 100%; min-height: auto; padding: 12px; position: static; }.cms-sidebar nav { display: flex; overflow-x: auto; }.cms-sidebar nav button { min-width: 105px; }.cms-side-actions { display: none; }.cms-main { width: 100%; margin: 0; }.cms-shell { display: block; }.cms-header { padding: 18px; }.cms-header-actions { flex-wrap: wrap; }.cms-workspace { padding: 18px; }.field-grid, .range-grid, .colour-grid, .case-grid { grid-template-columns: 1fr; }.image-editor { grid-template-columns: 1fr; }.lab-placeholder-card { padding: 30px 22px; }.lab-placeholder-card h1 { font-size: 32px; } }

/* Instrument booking */
.booking-app { min-height: 100vh; color: #172238; background: #f3f5f6; font-family: "Libre Franklin", Arial, sans-serif; }
.booking-loading { min-height: 100vh; display: grid; place-items: center; color: #64717e; }
.booking-access { min-height: 100vh; padding: 55px max(5vw, calc((100vw - 1280px) / 2)); color: #fff; background: linear-gradient(125deg, rgba(16,43,75,.97), rgba(23,61,104,.92)), url("/assets/images/research-hero.png") center/cover; }
.booking-back { color: #ccd7e1; border-bottom: 1px solid rgba(255,255,255,.45); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.booking-access-intro { max-width: 780px; margin: 90px 0 55px; }
.booking-access-intro > p, .booking-title p, .booking-form-card > div > p, .approval-heading p, .booking-sidebar > p { color: #c5848e; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.booking-access-intro h1 { margin: 10px 0 18px; font: 600 clamp(48px, 7vw, 86px)/1 "Source Serif 4", Georgia, serif; }
.booking-access-intro span { max-width: 650px; display: block; color: #c7d2dc; font: 16px/1.7 "Source Serif 4", Georgia, serif; }
.access-options { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.3); border-left: 1px solid rgba(255,255,255,.2); }
.access-card { min-height: 325px; padding: 30px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); }
.access-card > span { color: #dba9b0; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.access-card h2 { margin: 42px 0 13px; color: #fff; font: 600 27px/1.15 "Source Serif 4", Georgia, serif; }
.access-card p { color: #c4d0da; font-size: 11px; line-height: 1.65; }
.access-card button { margin-top: auto; padding: 12px 14px; border: 1px solid #fff; color: #173d68; background: #fff; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.access-card small { margin-top: 10px; color: #91a6b7; font-size: 8px; line-height: 1.5; }
.booking-header { min-height: 76px; padding: 0 4vw; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d5dade; background: #fff; }
.booking-brand strong, .booking-brand span { display: block; }.booking-brand strong { color: #173d68; font: 600 17px "Source Serif 4", Georgia, serif; }.booking-brand span { margin-top: 3px; color: #9f2333; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.booking-user { display: flex; align-items: center; gap: 18px; color: #5f6b76; font-size: 9px; }.booking-user button, .booking-exit { padding: 8px 11px; border: 1px solid #173d68; color: #173d68; background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.booking-shell { min-height: calc(100vh - 76px); display: grid; grid-template-columns: 255px 1fr; }
.booking-sidebar { padding: 30px 18px; color: #fff; background: #102b4b; }
.booking-sidebar > p { margin: 0 10px 17px; }
.booking-sidebar > button { width: 100%; padding: 14px 12px; display: block; border: 0; border-left: 3px solid transparent; color: #b8c6d2; background: transparent; cursor: pointer; text-align: left; }
.booking-sidebar > button:hover, .booking-sidebar > button.active { border-left-color: #b94b5a; color: #fff; background: rgba(255,255,255,.08); }
.booking-sidebar button b, .booking-sidebar button span { display: block; }.booking-sidebar button b { margin-bottom: 4px; font: 600 14px "Source Serif 4", Georgia, serif; }.booking-sidebar button span { font-size: 8px; line-height: 1.4; }
.instrument-summary { margin: 30px 10px 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.instrument-summary span, .instrument-summary strong { display: block; }.instrument-summary span { margin-top: 15px; color: #8198ab; font-size: 7px; text-transform: uppercase; }.instrument-summary strong { margin-top: 4px; color: #d5dfe7; font-size: 9px; line-height: 1.5; }
.booking-main { min-width: 0; padding: 35px 4vw 80px; }
.booking-title { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.booking-title p { margin: 0; }.booking-title h1 { margin: 7px 0 0; color: #173d68; font: 600 clamp(29px, 4vw, 43px) "Source Serif 4", Georgia, serif; }
.pending-badge { padding: 8px 12px; border: 0; color: #8a5218; background: #f3e4cb; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.booking-message { margin: 20px 0 0; padding: 12px 14px; border-left: 3px solid; font-size: 10px; }.booking-message.success { border-color: #347153; color: #285e47; background: #e2f0e9; }.booking-message.error { border-color: #9f2333; color: #8b2936; background: #f4e2e5; }
.calendar-toolbar { margin-top: 30px; padding: 12px 0; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #bfc6cb; }
.calendar-toolbar strong { color: #173d68; font: 600 15px "Source Serif 4", Georgia, serif; }.calendar-toolbar button { padding: 7px 10px; border: 1px solid #bdc6cc; color: #53616d; background: #fff; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.booking-calendar { display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); overflow-x: auto; border-top: 1px solid #c9cfd3; border-left: 1px solid #c9cfd3; background: #fff; }
.booking-calendar > article { min-height: 215px; padding: 0; border-right: 1px solid #d7dcdf; border-bottom: 1px solid #d7dcdf; cursor: pointer; }
.booking-calendar > article.selected { box-shadow: inset 0 0 0 2px #173d68; }.booking-calendar > article.today header { background: #eaf0f5; }
.booking-calendar header { padding: 12px; border-bottom: 1px solid #e0e3e5; }.booking-calendar header span, .booking-calendar header b { display: block; }.booking-calendar header span { color: #8a939b; font-size: 8px; text-transform: uppercase; }.booking-calendar header b { margin-top: 4px; color: #173d68; font: 600 13px "Source Serif 4", Georgia, serif; }
.calendar-bookings { padding: 8px; }.calendar-bookings > small { color: #9aa2a8; font-size: 8px; }
.calendar-booking { margin-bottom: 7px; padding: 8px; border-left: 3px solid #347153; background: #e5f0ea; }.calendar-booking.pending { border-color: #b17b31; background: #f5ebdc; }.calendar-booking b, .calendar-booking span { display: block; }.calendar-booking b { color: #273d33; font-size: 8px; }.calendar-booking span { margin-top: 3px; color: #5f6d65; font-size: 7px; line-height: 1.4; }
.booking-form-card { margin-top: 28px; display: grid; grid-template-columns: 300px 1fr; border-top: 4px solid #173d68; background: #fff; box-shadow: 0 10px 30px rgba(16,43,75,.06); }
.booking-form-card > div { padding: 30px; color: #fff; background: #173d68; }.booking-form-card > div > p { margin-top: 0; color: #d4a6ad; }.booking-form-card h2 { margin: 13px 0; color: #fff; font: 600 27px "Source Serif 4", Georgia, serif; }.booking-form-card > div > span { color: #bdcbd6; font: 12px/1.7 "Source Serif 4", Georgia, serif; }
.booking-form-card form { padding: 30px; }.booking-form-card label { margin-bottom: 17px; display: block; color: #58646e; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.booking-form-card input, .booking-form-card select, .booking-form-card textarea { width: 100%; margin-top: 7px; padding: 10px; border: 1px solid #c7ced3; color: #172238; background: #fbfcfc; font: 11px "Libre Franklin", Arial, sans-serif; }
.booking-fields { display: grid; gap: 15px; }.booking-fields.two { grid-template-columns: 1fr 1fr; }.booking-fields.three { grid-template-columns: repeat(3, 1fr); }
.booking-primary { padding: 12px 16px; border: 0; color: #fff; background: #173d68; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.approval-panel, .my-bookings { margin-top: 35px; padding-top: 25px; border-top: 1px solid #aeb7be; }
.approval-heading { display: flex; justify-content: space-between; align-items: end; }.approval-heading p { margin: 0; }.approval-heading h2, .my-bookings h2 { margin: 7px 0 0; color: #173d68; font: 600 28px "Source Serif 4", Georgia, serif; }.approval-heading > span { color: #727d86; font-size: 9px; }
.approval-item { padding: 20px; display: grid; grid-template-columns: 1fr 1.2fr auto; gap: 25px; align-items: center; border-bottom: 1px solid #d5dadd; background: #fff; }.approval-item:first-of-type { margin-top: 20px; border-top: 3px solid #173d68; }.approval-item b { color: #9f2333; font-size: 8px; }.approval-item h3 { margin: 5px 0; color: #173d68; font: 600 18px "Source Serif 4", Georgia, serif; }.approval-item p, .approval-item span { color: #69747d; font-size: 9px; line-height: 1.5; }.approval-item strong { display: block; color: #173d68; font-size: 10px; }
.approval-actions { display: flex; gap: 7px; }.approval-actions button { padding: 9px 11px; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }.approval-actions .approve { border: 0; color: #fff; background: #347153; }.approval-actions .reject { border: 1px solid #9f2333; color: #9f2333; background: #fff; }
.approval-empty { padding: 30px; color: #7b858d; background: #fff; text-align: center; }
.my-bookings > div { margin-top: 18px; border-top: 3px solid #173d68; }.my-bookings article { padding: 15px; display: grid; grid-template-columns: 120px 1fr auto; border-bottom: 1px solid #d5dadd; background: #fff; }.my-bookings article b { color: #173d68; }.my-bookings article span { color: #65717b; font-size: 9px; }.my-bookings article strong { color: #347153; font-size: 8px; text-transform: uppercase; }

@media (max-width: 1050px) {
  .access-options { grid-template-columns: 1fr; }
  .access-card { min-height: 245px; }
  .booking-shell { grid-template-columns: 210px 1fr; }
  .booking-form-card { grid-template-columns: 1fr; }
  .approval-item { grid-template-columns: 1fr 1fr; }
  .approval-actions { grid-column: span 2; }
}
@media (max-width: 700px) {
  .booking-access { padding: 30px 20px 50px; }.booking-access-intro { margin: 65px 0 35px; }
  .booking-header { padding: 15px 18px; align-items: flex-start; flex-direction: column; gap: 12px; }
  .booking-user { width: 100%; justify-content: space-between; }
  .booking-shell { display: block; }.booking-sidebar { padding: 16px; overflow-x: auto; white-space: nowrap; }.booking-sidebar > p, .instrument-summary { display: none; }.booking-sidebar > button { width: 145px; display: inline-block; white-space: normal; vertical-align: top; }
  .booking-main { padding: 25px 18px 55px; }.booking-title { align-items: flex-start; flex-direction: column; }
  .booking-calendar { grid-template-columns: repeat(7, 135px); }
  .booking-fields.two, .booking-fields.three { grid-template-columns: 1fr; }
  .booking-form-card form, .booking-form-card > div { padding: 23px; }
  .approval-item { grid-template-columns: 1fr; }.approval-actions { grid-column: auto; }
  .my-bookings article { grid-template-columns: 1fr; gap: 6px; }
}

/* Laboratory platform and booking ownership */
.internal-access-options { grid-template-columns: repeat(2, 1fr); }
.booking-user > a { color: #173d68; border-bottom: 1px solid #173d68; font-weight: 700; }
.my-bookings article { grid-template-columns: 120px 1fr auto auto; gap: 15px; align-items: center; }
.my-bookings article span small { margin-top: 4px; display: block; color: #879098; }
.my-booking-actions { display: flex; gap: 6px; }
.my-booking-actions button, .booking-edit-form button { padding: 7px 9px; border: 1px solid #98a5ae; color: #173d68; background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.my-booking-actions button.delete { color: #9f2333; border-color: #cdaeb3; }
.my-bookings article.editing { display: block; padding: 20px; background: #f8fafb; }
.booking-edit-form { display: grid; grid-template-columns: 100px 140px 110px 110px 1fr auto; gap: 10px; align-items: end; }
.booking-edit-form label { color: #66727c; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.booking-edit-form input, .booking-edit-form select { width: 100%; margin-top: 5px; padding: 8px; border: 1px solid #c5cdd2; background: #fff; font-size: 9px; }
.booking-edit-form > div { display: flex; gap: 5px; }
.booking-edit-form button.save { border-color: #173d68; color: #fff; background: #173d68; }

.lab-platform { min-height: 100vh; color: #172238; background: #f2f4f5; font-family: "Libre Franklin", Arial, sans-serif; }
.lab-sso { min-height: 100vh; padding: 45px 5vw; color: #fff; background: linear-gradient(125deg, rgba(16,43,75,.97), rgba(23,61,104,.9)), url("/assets/images/research-hero.png") center/cover; }
.lab-sso-card { width: min(540px, 100%); margin: 11vh auto 0; padding: 45px; border-top: 5px solid #b64857; color: #172238; background: #fff; box-shadow: 0 25px 70px rgba(0,0,0,.2); }
.lab-sso-card > p:first-child, .platform-welcome > p { margin: 0; color: #9f2333; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lab-sso-card h1 { margin: 12px 0; color: #173d68; font: 600 42px "Source Serif 4", Georgia, serif; }
.lab-sso-card > span { display: block; margin-bottom: 28px; color: #66717b; font: 13px/1.7 "Source Serif 4", Georgia, serif; }
.lab-sso-card > button { width: 100%; margin-top: 9px; padding: 12px; border: 0; color: #fff; background: #173d68; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.lab-sso-card > button.manager-login { color: #173d68; border: 1px solid #173d68; background: #fff; }
.lab-sso-card > small { margin-top: 16px; display: block; color: #87919a; font-size: 8px; line-height: 1.5; }
.lab-sso-card .login-demo-note, .inventory-login .login-demo-note { margin-top: 15px; color: #617181; background: #edf4f8; }
.lab-login-form { display: grid; gap: 13px; margin: 24px 0 12px; }
.lab-login-form label { display: grid; gap: 7px; color: #63717d; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lab-login-form input { width: 100%; padding: 12px 13px; border: 1px solid #cfd9e2; border-radius: 9px; color: #173d68; background: #fff; font: 600 12px "Libre Franklin", Arial, sans-serif; }
.lab-login-form button { width: 100%; padding: 13px; border: 0; border-radius: 9px; color: #fff; background: #173d68; cursor: pointer; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.internal-login form { display: grid; gap: 10px; margin-top: auto; }
.internal-login input { padding: 11px 12px; border: 1px solid rgba(255,255,255,.35); color: #fff; background: rgba(255,255,255,.08); font-size: 10px; }
.internal-login input::placeholder { color: rgba(255,255,255,.66); }
.lab-system-theme .internal-login input { color: var(--lab-primary, #173d68); border-color: #d5e0e9; background: #fff; }
.lab-system-theme .internal-login input::placeholder { color: #8a99a8; }
.platform-header { min-height: 76px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; border-bottom: 3px solid #173d68; background: #fff; }
.platform-main { max-width: 1300px; margin: auto; padding: 65px 4vw 90px; }
.platform-welcome { max-width: 820px; margin-bottom: 45px; }
.platform-welcome h1 { margin: 10px 0 17px; color: #173d68; font: 600 clamp(40px, 5vw, 62px)/1.05 "Source Serif 4", Georgia, serif; }
.platform-welcome > span { color: #66727c; font: 14px/1.7 "Source Serif 4", Georgia, serif; }
.platform-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #bfc6cb; border-left: 1px solid #d0d5d8; }
.platform-module { min-height: 310px; padding: 28px; display: flex; flex-direction: column; position: relative; border-right: 1px solid #d0d5d8; border-bottom: 1px solid #d0d5d8; background: #fff; }
.platform-module > span { color: #8c959d; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.platform-module > b { position: absolute; right: 25px; top: 20px; color: #d8dcdf; font: 500 30px "Source Serif 4", Georgia, serif; }
.platform-module h2 { margin: 55px 0 13px; color: #173d68; font: 600 25px "Source Serif 4", Georgia, serif; }
.platform-module p { color: #6c7680; font-size: 10px; line-height: 1.7; }
.platform-module > strong { margin-top: auto; color: #8e989f; font-size: 8px; text-transform: uppercase; }
.platform-module.active { color: #fff; background: #173d68; }
.platform-module.active > span { color: #d8a9b0; }.platform-module.active > b { color: rgba(255,255,255,.18); }.platform-module.active h2 { color: #fff; }.platform-module.active p { color: #c1ced8; }
.platform-module.active > strong { width: fit-content; color: #fff; border-bottom: 1px solid #fff; }

/* Booking dashboard and instrument management */
.booking-view-tabs { margin-top: 28px; display: flex; border-bottom: 1px solid #bfc7cd; }
.booking-view-tabs button { padding: 12px 20px; border: 0; border-bottom: 3px solid transparent; color: #65717b; background: transparent; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.booking-view-tabs button.active { border-bottom-color: #173d68; color: #173d68; }
.booking-dashboard { margin-top: 25px; }
.booking-metrics { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 3px solid #173d68; border-left: 1px solid #d1d6d9; }
.booking-metrics article { min-height: 125px; padding: 22px; border-right: 1px solid #d1d6d9; border-bottom: 1px solid #d1d6d9; background: #fff; }
.booking-metrics span, .booking-metrics strong { display: block; }.booking-metrics span { color: #7b858d; font-size: 8px; font-weight: 700; text-transform: uppercase; }.booking-metrics strong { margin-top: 25px; color: #173d68; font: 600 35px "Source Serif 4", Georgia, serif; }
.all-bookings-panel { margin-top: 25px; background: #fff; }
.dashboard-section-heading { padding: 22px 25px; display: flex; align-items: end; justify-content: space-between; border-bottom: 1px solid #d5dade; }
.dashboard-section-heading p { margin: 0; color: #9f2333; font-size: 8px; font-weight: 700; text-transform: uppercase; }.dashboard-section-heading h2 { margin: 5px 0 0; color: #173d68; font: 600 24px "Source Serif 4", Georgia, serif; }.dashboard-section-heading > span { color: #7c868e; font-size: 8px; }
.booking-table-wrap { overflow-x: auto; }.booking-table { width: 100%; min-width: 900px; border-collapse: collapse; }.booking-table th { padding: 11px 14px; color: #78838c; background: #f5f6f5; font-size: 7px; text-align: left; text-transform: uppercase; }.booking-table td { padding: 14px; border-top: 1px solid #e1e4e5; color: #5d6973; font-size: 9px; vertical-align: top; }.booking-table td b { color: #173d68; }.booking-table td > span, .booking-table td > small { display: block; }.booking-table td > small { margin-top: 5px; color: #8b949b; line-height: 1.45; }
.table-status { width: fit-content; padding: 4px 6px; font-size: 7px; font-weight: 700; text-transform: uppercase; }.table-status.confirmed { color: #286149; background: #e0eee6; }.table-status.pending { color: #895c1d; background: #f3e6d2; }.table-status.rejected { color: #8e3541; background: #f2e0e3; }.table-empty { padding: 35px !important; text-align: center; }
.sample-requirement { margin-bottom: 18px; padding: 15px; border-left: 3px solid #9f2333; background: #f4eeee; }.sample-requirement strong { color: #173d68; font: 600 14px "Source Serif 4", Georgia, serif; }.sample-requirement p { margin: 6px 0 0; color: #69737c; font-size: 9px; line-height: 1.6; }

.instrument-management { margin-top: 25px; display: grid; grid-template-columns: 390px 1fr; gap: 24px; align-items: start; }
.instrument-form-panel { border-top: 4px solid #173d68; background: #fff; }.instrument-form-panel > div { padding: 24px 25px; color: #fff; background: #173d68; }.instrument-form-panel > div p { margin: 0; color: #d6a7ae; font-size: 8px; font-weight: 700; text-transform: uppercase; }.instrument-form-panel > div h2 { margin: 8px 0 0; color: #fff; font: 600 24px "Source Serif 4", Georgia, serif; }
.instrument-form-panel form { padding: 24px; }.instrument-form-panel label { margin-bottom: 16px; display: block; color: #5f6a74; font-size: 8px; font-weight: 700; text-transform: uppercase; }.instrument-form-panel label small { color: #8a939a; font-weight: 400; text-transform: none; }.instrument-form-panel input:not([type=checkbox]), .instrument-form-panel textarea { width: 100%; margin-top: 6px; padding: 9px; border: 1px solid #c8d0d4; background: #fbfcfc; font-size: 10px; }
.instrument-active { display: flex !important; align-items: center; gap: 8px; }.instrument-form-actions { display: flex; gap: 8px; }.instrument-form-actions > button:not(.booking-primary) { padding: 10px 13px; border: 1px solid #aeb8be; color: #5d6972; background: #fff; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.instrument-list-panel { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 3px solid #173d68; border-left: 1px solid #d1d6d9; }
.instrument-list-panel article { min-height: 330px; padding: 24px; display: flex; flex-direction: column; border-right: 1px solid #d1d6d9; border-bottom: 1px solid #d1d6d9; background: #fff; }.instrument-list-panel article > div:first-child { display: flex; justify-content: space-between; }.instrument-list-panel article > div:first-child b { color: #9f2333; }.instrument-list-panel article > div:first-child span { color: #347153; font-size: 7px; font-weight: 700; text-transform: uppercase; }.instrument-list-panel article > div:first-child span.inactive { color: #9f2333; }
.instrument-list-panel h3 { margin: 30px 0 10px; color: #173d68; font: 600 20px "Source Serif 4", Georgia, serif; }.instrument-list-panel > article > p { color: #707a82; font-size: 9px; line-height: 1.6; }.instrument-list-panel dl { margin: 15px 0; }.instrument-list-panel dl div { padding: 8px 0; border-top: 1px solid #e1e4e5; }.instrument-list-panel dt { color: #899299; font-size: 7px; text-transform: uppercase; }.instrument-list-panel dd { margin: 4px 0 0; color: #59656f; font-size: 9px; line-height: 1.5; }
.instrument-actions { margin-top: auto; display: flex; gap: 7px; }.instrument-actions button { padding: 8px 10px; border: 1px solid #99a6ae; color: #173d68; background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }.instrument-actions button.delete { color: #9f2333; border-color: #cdaeb3; }
.approval-item small { color: #7d878f; font-size: 8px; line-height: 1.5; }

@media (max-width: 1050px) {
  .booking-edit-form { grid-template-columns: repeat(3, 1fr); }
  .booking-edit-form > div { align-self: end; }
  .platform-grid { grid-template-columns: repeat(2, 1fr); }
  .booking-metrics { grid-template-columns: repeat(2, 1fr); }
  .instrument-management { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .internal-access-options { grid-template-columns: 1fr; }
  .booking-edit-form { grid-template-columns: 1fr; }
  .platform-header { padding: 15px 18px; align-items: flex-start; flex-direction: column; gap: 12px; }
  .platform-main { padding: 45px 18px 65px; }.platform-grid { grid-template-columns: 1fr; }
  .lab-sso { padding: 30px 20px; }.lab-sso-card { padding: 32px 23px; }
  .booking-view-tabs { overflow-x: auto; }.booking-view-tabs button { min-width: 105px; }
  .booking-metrics, .instrument-list-panel { grid-template-columns: 1fr; }
  .instrument-form-panel form { padding: 20px; }
}

/* Refactored central booking system */
.booking-system-shell { min-height: calc(100vh - 76px); display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.booking-system-nav { padding: 30px 18px; color: #fff; background: #102b4b; }
.booking-system-nav > p { margin: 0 10px 22px; color: #c5848e; font-size: 11px; line-height: 1.35; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.booking-system-nav button { width: 100%; min-height: 46px; padding: 14px 14px; display: flex; align-items: center; justify-content: space-between; border: 0; border-left: 3px solid transparent; color: #b8c6d2; background: transparent; cursor: pointer; font-size: 12px; line-height: 1.25; font-weight: 800; text-align: left; text-transform: uppercase; }
.booking-system-nav button:hover, .booking-system-nav button.active { border-left-color: #b94b5a; color: #fff; background: rgba(255,255,255,.08); }
.booking-system-nav button b { min-width: 24px; padding: 4px 7px; border-radius: 10px; color: #fff; background: #9f2333; font-size: 10px; text-align: center; }
.calendar-toolbar select { min-width: 250px; padding: 8px 10px; border: 1px solid #bdc6cc; color: #53616d; background: #fff; font-size: 9px; }
.booking-user > span { white-space: nowrap; }

@media (max-width: 850px) {
  .booking-system-shell { grid-template-columns: 220px minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .booking-system-shell { display: block; }
  .booking-system-nav { padding: 12px; overflow-x: auto; white-space: nowrap; }
  .booking-system-nav > p { display: none; }
  .booking-system-nav button { width: auto; min-width: 135px; display: inline-flex; margin-right: 2px; white-space: nowrap; }
  .calendar-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }
  .calendar-toolbar select { width: 100%; min-width: 0; }
  .booking-user { flex-wrap: wrap; }
}

/* Premium laboratory platform navigation */
.platform-console {
  min-height: 100vh;
  color: #edf3f7;
  background:
    radial-gradient(circle at 82% 18%, rgba(65, 105, 142, .2), transparent 30%),
    radial-gradient(circle at 15% 85%, rgba(139, 47, 62, .1), transparent 25%),
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    #091827;
  background-size: auto, auto, 58px 58px, 58px 58px, auto;
}
.platform-console .platform-header {
  min-height: 92px;
  padding: 0 max(5vw, calc((100vw - 1420px) / 2));
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: rgba(6, 20, 33, .72);
  backdrop-filter: blur(18px);
}
.platform-brand { display: flex; align-items: center; gap: 14px; color: #fff; }
.platform-brand > span:last-child { display: block; }
.platform-brand strong { display: block; font: 600 15px "Source Serif 4", Georgia, serif; letter-spacing: .02em; }
.platform-brand small { margin-top: 3px; display: block; color: #8195a7; font-size: 7px; letter-spacing: .16em; text-transform: uppercase; }
.platform-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.24); color: #fff; background: rgba(255,255,255,.04); font: 600 10px "Source Serif 4", Georgia, serif; letter-spacing: .08em; }
.platform-account { display: flex; align-items: center; gap: 22px; color: #9baab7; font-size: 8px; letter-spacing: .04em; }
.platform-account button { padding: 9px 13px; border: 1px solid rgba(255,255,255,.25); color: #dce5ec; background: transparent; cursor: pointer; font-size: 7px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.platform-account button:hover { color: #102b4b; background: #fff; }
.platform-online { display: flex; align-items: center; gap: 7px; padding-right: 22px; border-right: 1px solid rgba(255,255,255,.12); text-transform: uppercase; }
.platform-online i, .platform-status i { width: 6px; height: 6px; display: inline-block; border-radius: 50%; background: #70c493; box-shadow: 0 0 0 4px rgba(112,196,147,.1); }
.platform-console .platform-main { width: min(1420px, 90vw); max-width: none; padding: 72px 0 35px; }
.platform-console .platform-welcome { max-width: none; margin-bottom: 58px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 8vw; align-items: end; }
.platform-console .platform-welcome > div:first-child > p { margin: 0 0 17px; color: #c1727e; font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.platform-console .platform-welcome h1 { margin: 0; color: #f1f5f7; font: 500 clamp(45px, 5.8vw, 82px)/.95 "Source Serif 4", Georgia, serif; letter-spacing: -.035em; }
.platform-console .platform-welcome h1 em { color: #99adbd; font-style: normal; font-weight: 400; }
.platform-intro { padding: 0 0 6px 28px; border-left: 1px solid rgba(255,255,255,.2); }
.platform-intro > span { display: block; color: #bdc9d2; font: 14px/1.7 "Source Serif 4", Georgia, serif; }
.platform-intro small { margin-top: 20px; display: block; color: #687e90; font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.platform-console .platform-grid { display: grid; grid-template-columns: 1.12fr 1.12fr .76fr; gap: 18px; border: 0; }
.platform-console .platform-module { min-height: 510px; padding: 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); background: rgba(15, 38, 58, .68); backdrop-filter: blur(12px); transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.platform-console a.platform-module:hover { transform: translateY(-5px); border-color: rgba(255,255,255,.34); background: rgba(22, 54, 80, .9); }
.platform-module-top { display: flex; align-items: center; justify-content: space-between; }
.platform-module-top > b { color: rgba(255,255,255,.14); font: 400 28px "Source Serif 4", Georgia, serif; }
.platform-status { display: flex; align-items: center; gap: 8px; color: #8fa0ae; font-size: 7px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.platform-status.planned i { background: #c59059; box-shadow: 0 0 0 4px rgba(197,144,89,.1); }
.platform-status.future i { background: #596f81; box-shadow: none; }
.platform-icon { width: 58px; height: 58px; margin-top: 55px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); color: #b8c9d5; background: rgba(255,255,255,.025); }
.platform-icon svg { width: 28px; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.platform-console .platform-module h2 { margin: 27px 0 16px; color: #f3f6f8; font: 500 35px/1.05 "Source Serif 4", Georgia, serif; letter-spacing: -.02em; }
.platform-console .platform-module > p { max-width: 420px; color: #94a6b4; font-size: 9px; line-height: 1.75; }
.platform-console .platform-module ul { margin: 23px 0 30px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px 18px; list-style: none; }
.platform-console .platform-module li { padding-top: 8px; border-top: 1px solid rgba(255,255,255,.1); color: #afbec9; font-size: 8px; }
.platform-console .platform-module > strong { margin-top: auto; padding-top: 19px; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.15); color: #e8eef2; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.platform-console .platform-module > strong span { color: #c77884; font-size: 14px; }
.platform-booking { background: linear-gradient(145deg, rgba(24, 62, 91, .94), rgba(14, 38, 59, .9)) !important; }
.platform-inventory { background: linear-gradient(145deg, rgba(22, 46, 64, .88), rgba(13, 33, 50, .88)) !important; }
.platform-future { justify-content: space-between; background: rgba(8, 25, 39, .46) !important; }
.platform-future .future-cross { width: 100%; height: 115px; margin: 45px 0 25px; position: relative; }
.future-cross span { position: absolute; inset: 50% 14%; height: 1px; background: rgba(255,255,255,.1); }
.future-cross span:last-child { transform: rotate(90deg); }
.platform-future > div:nth-child(3) > p { margin: 0; color: #657b8c; font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.platform-future > div:nth-child(3) > h2 { color: #9aacb9; }
.platform-future > div:nth-child(3) > span { color: #657b8c; font-size: 9px; line-height: 1.7; }
.platform-footer { margin-top: 45px; padding-top: 22px; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.1); color: #526a7c; font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1050px) {
  .platform-console .platform-grid { grid-template-columns: 1fr 1fr; }
  .platform-future { min-height: 280px !important; grid-column: span 2; }
  .platform-future .future-cross { display: none; }
}
@media (max-width: 700px) {
  .platform-console .platform-header { padding: 15px 18px; }
  .platform-account { width: 100%; justify-content: space-between; gap: 8px; }
  .platform-online { display: none; }
  .platform-console .platform-main { width: auto; padding: 45px 18px 28px; }
  .platform-console .platform-welcome { margin-bottom: 35px; grid-template-columns: 1fr; gap: 30px; }
  .platform-intro { padding-left: 18px; }
  .platform-console .platform-grid { grid-template-columns: 1fr; }
  .platform-console .platform-module { min-height: 455px; padding: 25px; }
  .platform-future { min-height: 280px !important; grid-column: auto; }
  .platform-icon { margin-top: 38px; }
  .platform-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
}

/* Laboratory system launchpad */
.platform-launchpad {
  min-height: 100vh;
  padding: 34px;
  color: var(--lp-text, #182b43);
  background:
    linear-gradient(115deg, color-mix(in srgb, var(--lp-page, #eaf0f8), transparent 8%) 0%, color-mix(in srgb, var(--lp-page, #eaf0f8), transparent 22%) 50%, color-mix(in srgb, var(--lp-page, #eaf0f8), transparent 10%) 100%),
    linear-gradient(0deg, rgba(23,61,104,.12), transparent 55%),
    var(--lp-hero-image) center / cover fixed no-repeat,
    var(--lp-page, #eaf0f8);
  font-family: var(--lp-body-font, "Libre Franklin", Arial, sans-serif);
}
.launchpad-panel {
  width: min(1380px, 100%);
  min-height: calc(100vh - 68px);
  margin: auto;
  overflow: hidden;
  border: 1px solid rgba(25, 67, 106, .08);
  border-radius: 28px;
  background:
    radial-gradient(circle at 97% 3%, rgba(61, 123, 178, .07), transparent 18%),
    radial-gradient(circle at 3% 97%, rgba(66, 159, 154, .06), transparent 17%),
    var(--lp-surface, #ffffff);
  box-shadow: 0 24px 70px rgba(34, 67, 108, .13);
}
.launchpad-header {
  min-height: 92px;
  padding: 0 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e5ebf2;
}
.launchpad-brand { display: flex; align-items: center; gap: 14px; color: var(--lp-primary, #173d68); }
.launchpad-logo {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(145deg, color-mix(in srgb, var(--lp-primary, #173d68), white 18%), var(--lp-primary, #173d68));
  box-shadow: 0 9px 20px rgba(23,61,104,.2);
}
.launchpad-logo svg { width: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.launchpad-brand strong, .launchpad-brand small { display: block; }
.launchpad-brand strong { font: 600 16px var(--lp-heading-font, "Source Serif 4", Georgia, serif); }
.launchpad-brand small { margin-top: 4px; color: var(--lp-muted, #8391a0); font-size: 7px; letter-spacing: .09em; text-transform: uppercase; }
.launchpad-signout {
  padding: 9px 14px;
  border: 1px solid #ccd6e0;
  border-radius: 8px;
  color: #5f7182;
  background: #fff;
  cursor: pointer;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
}
.launchpad-signout:hover { border-color: #173d68; color: #173d68; }
.launchpad-hero { padding: 54px 7% 0; text-align: center; }
.launchpad-hero > p { margin: 0; color: var(--lp-accent, #9f2333); font-size: var(--lp-body-size, 9px); font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.launchpad-hero > h1 { margin: 16px 0 8px; color: var(--lp-primary, #173d68); font-family: var(--lp-heading-font, "Source Serif 4", Georgia, serif); font-size: clamp(32px, 4.2vw, var(--lp-title-size, 58px)); font-weight: 600; line-height: 1.1; letter-spacing: -.025em; text-transform: var(--lp-title-case, none); }
.launchpad-hero > span { color: var(--lp-muted, #758596); font-family: var(--lp-heading-font, "Source Serif 4", Georgia, serif); font-size: calc(var(--lp-body-size, 9px) + 4px); font-style: italic; }
.launchpad-session {
  max-width: 1040px;
  margin: 43px auto 0;
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.2fr;
  border: 1px solid #dde6ef;
  border-radius: 16px;
  overflow: hidden;
  background: rgba(248,251,254,.86);
  text-align: left;
}
.launchpad-session > div { min-height: 112px; padding: 22px 27px; display: flex; align-items: center; }
.launchpad-session > div + div { border-left: 1px solid #dde6ef; }
.launchpad-clock { flex-direction: column; justify-content: center; text-align: center; }
.launchpad-clock strong { color: #3076b8; font: 600 30px/1 "Libre Franklin", Arial, sans-serif; letter-spacing: .05em; }
.launchpad-clock span { margin-top: 9px; color: #8191a1; font-size: 7px; }
.launchpad-user { gap: 15px; }
.launchpad-avatar { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: linear-gradient(145deg, #3d82bd, #245787); font: 600 18px "Source Serif 4", Georgia, serif; box-shadow: 0 8px 18px rgba(37,88,135,.18); }
.launchpad-user div > small, .launchpad-user div > strong, .launchpad-user div > span,
.launchpad-permission small, .launchpad-permission strong, .launchpad-permission span { display: block; }
.launchpad-user div > small, .launchpad-permission small { color: #9aabba; font-size: 7px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.launchpad-user div > strong, .launchpad-permission strong { margin-top: 5px; color: #173d68; font: 600 13px "Source Serif 4", Georgia, serif; }
.launchpad-user div > span, .launchpad-permission span { margin-top: 4px; color: #7c8d9c; font-size: 7px; line-height: 1.45; }
.launchpad-permission { flex-direction: column; align-items: flex-start !important; justify-content: center; }
.launchpad-systems { padding: 50px 7% 54px; }
.launchpad-heading { display: grid; grid-template-columns: 1fr auto 1fr; gap: 22px; align-items: center; }
.launchpad-heading span { height: 1px; background: #dfe7ef; }
.launchpad-heading h2 { margin: 0; color: var(--lp-primary, #173d68); font: 600 var(--lp-section-size, 18px) var(--lp-heading-font, "Source Serif 4", Georgia, serif); }
.launchpad-actions { max-width: 1040px; margin: 29px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.launchpad-action {
  min-height: 190px;
  padding: 25px 18px 20px;
  display: flex;
  align-items: center;
  flex-direction: column;
  border: 1px solid #dde7f0;
  border-radius: 17px;
  color: #173d68;
  background: #fff;
  box-shadow: 0 12px 28px rgba(42,77,114,.08);
  text-align: center;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
a.launchpad-action:hover { transform: translateY(-5px); border-color: #a9c3dc; box-shadow: 0 18px 34px rgba(37,82,126,.15); }
.launchpad-action-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  color: #fff;
  background: linear-gradient(145deg, #4b98d1, #2267a6);
  box-shadow: 0 10px 22px rgba(35,107,167,.25);
}
.launchpad-action.inventory .launchpad-action-icon { background: linear-gradient(145deg, #25a58a, #08755f); box-shadow: 0 10px 22px rgba(8,117,95,.2); }
.launchpad-action.samples .launchpad-action-icon { background: linear-gradient(145deg, #3d7fb8, #174d7a); box-shadow: 0 10px 22px rgba(23,77,122,.2); }
.launchpad-action.admin .launchpad-action-icon { background: linear-gradient(145deg, #7d5ad7, #3d257f); box-shadow: 0 10px 22px rgba(61,37,127,.2); }
.launchpad-action.future .launchpad-action-icon { background: linear-gradient(145deg, #9ba8b5, #697887); box-shadow: 0 10px 22px rgba(105,120,135,.18); }
.launchpad-action-icon svg { width: 35px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.launchpad-action > strong { margin-top: 19px; color: var(--lp-primary, #173d68); font: 600 var(--lp-system-size, 14px) var(--lp-heading-font, "Source Serif 4", Georgia, serif); text-transform: var(--lp-system-case, none); }
.launchpad-action > small { margin-top: 9px; display: flex; align-items: center; gap: 6px; color: #728498; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.launchpad-action > small i { width: 6px; height: 6px; border-radius: 50%; background: #53af7a; }
.launchpad-action.inventory > small i { background: #d49a50; }
.launchpad-action.samples > small i { background: #4e9ad0; }
.launchpad-action.future > small i { background: #8d9aa6; }
.launchpad-action.future { cursor: default; }
.launchpad-about {
  margin: 0 7%;
  padding: 36px 42px;
  display: grid;
  grid-template-columns: .9fr 1.3fr;
  gap: 45px;
  border: 1px solid #e0e8ef;
  border-radius: 16px;
  background: #f7f9fb;
}
.launchpad-about > div:first-child > p { margin: 0; color: var(--lp-accent, #9f2333); font-size: var(--lp-body-size, 9px); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.launchpad-about h2 { margin: 10px 0 0; color: var(--lp-primary, #173d68); font: 600 calc(var(--lp-section-size, 18px) + 4px)/1.25 var(--lp-heading-font, "Source Serif 4", Georgia, serif); }
.launchpad-about > p { margin: 0; color: var(--lp-muted, #6f8090); font-size: var(--lp-body-size, 9px); line-height: 1.8; }
.launchpad-security { grid-column: span 2; padding-top: 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; border-top: 1px solid #dfe6ec; }
.launchpad-security span { color: #728393; font-size: 7px; }
.launchpad-security b { margin-right: 7px; color: #173d68; font-size: 8px; }
.launchpad-users { margin: 22px 7% 0; padding: 24px; border: 1px solid #dce6ef; border-radius: 24px; background: rgba(255,255,255,.9); box-shadow: 0 18px 42px rgba(32,64,104,.09); }
.user-create-card { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 20px; }
.user-create-card label { display: grid; gap: 7px; color: var(--lp-muted, #6f8090); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.user-create-card input, .user-create-card select, .password-reset input, .user-table select { min-width: 0; padding: 10px 11px; border: 1px solid #d5e0e9; border-radius: 9px; color: var(--lp-primary, #173d68); background: #fff; font-size: 10px; }
.user-create-card button, .password-reset button { align-self: end; padding: 11px 13px; border: 0; border-radius: 9px; color: #fff; background: var(--lp-primary, #173d68); cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.user-table { display: grid; gap: 10px; margin-top: 18px; }
.user-table article { display: grid; grid-template-columns: 1.4fr .75fr .65fr 1fr; gap: 10px; align-items: center; padding: 13px; border: 1px solid #e1e9f0; border-radius: 16px; background: #fff; }
.user-table strong { display: block; color: var(--lp-primary, #173d68); font-size: 12px; }
.user-table small { display: block; margin-top: 4px; color: var(--lp-muted, #6f8090); font-size: 8px; }
.password-reset { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.system-admin { min-height: 100vh; color: var(--lab-text, #182b43); background: #fbfcfd; font-family: var(--lab-body-font, "Libre Franklin", Arial, sans-serif); }
.system-admin-main { padding: 38px clamp(24px, 4vw, 62px) 70px; }
.system-admin-grid { margin-top: 26px; display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 24px; align-items: start; }
.system-user-form, .system-user-list article { border: 1px solid #dfe7ee; border-radius: 18px; background: var(--lab-surface, #fff); box-shadow: 0 12px 28px rgba(43,78,113,.06); }
.system-user-form { padding: 24px; display: grid; gap: 15px; }
.system-user-form > div { margin: -24px -24px 5px; padding: 25px; border-radius: 18px 18px 0 0; color: #fff; background: var(--lab-primary, #173d68); }
.system-user-form > div p { margin: 0 0 8px; color: #d9a1aa; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.system-user-form > div h2 { margin: 0; font: 600 27px var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.system-user-form > div span { display: block; margin-top: 9px; color: #c6d3dd; font-size: 11px; line-height: 1.6; }
.system-user-form label { display: grid; gap: 7px; color: #5d6f7f; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.system-user-form input, .system-user-form select, .system-user-list select, .password-reset input { min-width: 0; padding: 11px 12px; border: 1px solid #d4dfe8; border-radius: 9px; color: var(--lab-primary, #173d68); background: #fff; font: 11px var(--lab-body-font, Arial, sans-serif); }
.system-user-list { display: grid; gap: 12px; }
.system-user-list article { padding: 15px; display: grid; grid-template-columns: minmax(220px, 1.3fr) 170px 120px 150px minmax(210px, .9fr); gap: 12px; align-items: center; }
.system-user-identity strong, .system-user-identity span, .system-user-identity small { display: block; }
.system-user-identity strong { color: var(--lab-primary, #173d68); font: 600 18px var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.system-user-identity span { margin-top: 4px; color: #536879; font-size: 11px; }
.system-user-identity small { margin-top: 5px; color: #7d8c99; font-size: 9px; }
.system-admin .booking-title > div > span { display: block; margin-top: 8px; color: var(--lab-muted, #758596); font-size: 12px; }
.launchpad-footer { margin: 38px 7% 0; padding: 20px 0 26px; display: flex; justify-content: space-between; border-top: 1px solid #e3e9ef; color: #8b99a6; background: transparent; font-size: 7px; letter-spacing: .04em; }

@media (max-width: 820px) {
  .launchpad-session { grid-template-columns: 1fr; }
  .launchpad-session > div + div { border-left: 0; border-top: 1px solid #dde6ef; }
  .launchpad-actions { grid-template-columns: repeat(4, minmax(170px, 1fr)); overflow-x: auto; padding-bottom: 12px; }
  .launchpad-about { grid-template-columns: 1fr; }
  .launchpad-security { grid-column: auto; grid-template-columns: 1fr; }
  .user-create-card, .user-table article { grid-template-columns: 1fr; }
  .system-admin-grid, .system-user-list article { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .platform-launchpad { padding: 0; background: #fff; }
  .launchpad-panel { min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
  .launchpad-header { min-height: 78px; padding: 0 18px; }
  .launchpad-brand strong { font-size: 13px; }
  .launchpad-brand small { max-width: 175px; }
  .launchpad-logo { width: 40px; height: 40px; }
  .launchpad-hero { padding: 38px 18px 0; }
  .launchpad-hero > h1 { font-size: 34px; }
  .launchpad-session { margin-top: 30px; }
  .launchpad-session > div { min-height: 95px; }
  .launchpad-systems { padding: 40px 18px; }
  .launchpad-actions { grid-template-columns: repeat(4, 160px); gap: 14px; }
  .launchpad-action { min-height: 175px; }
  .launchpad-about { margin: 0 18px; padding: 28px 24px; gap: 25px; }
  .launchpad-users { margin: 22px 18px 0; padding: 22px 18px; }
  .launchpad-footer { margin: 30px 18px 0; align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* Unified visual language for laboratory systems */
.lab-system-theme {
  color: var(--lab-text, #182b43);
  background:
    radial-gradient(circle at 10% 10%, rgba(93,146,192,.12), transparent 24%),
    radial-gradient(circle at 92% 88%, rgba(159,35,51,.06), transparent 22%),
    var(--lab-page, #eaf0f8);
  font-family: var(--lab-body-font, "Libre Franklin", Arial, sans-serif);
}
.lab-system-theme .booking-loading { color: var(--lab-muted, #758596); background: var(--lab-page, #eaf0f8); }
.lab-system-theme .booking-access {
  min-height: 100vh;
  padding: 42px max(4vw, calc((100vw - 1320px) / 2));
  color: var(--lab-text, #182b43);
  background: transparent;
}
.lab-system-theme .booking-back { color: var(--lab-primary, #173d68); border-color: #b8c9d8; }
.lab-system-theme .booking-access-intro { max-width: 760px; margin: 76px auto 45px; text-align: center; }
.lab-system-theme .booking-access-intro > p { color: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-access-intro h1 { color: var(--lab-primary, #173d68); font: 600 clamp(42px, 6vw, 68px)/1 var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .booking-access-intro span { max-width: 580px; margin: auto; color: var(--lab-muted, #758596); }
.lab-system-theme .access-options {
  gap: 22px;
  border: 0;
}
.lab-system-theme .access-card {
  min-height: 310px;
  padding: 31px;
  border: 1px solid #dce6ef;
  border-radius: 20px;
  color: var(--lab-text, #182b43);
  background: var(--lab-surface, #fff);
  box-shadow: 0 16px 35px rgba(42,77,114,.09);
  transition: transform .22s ease, box-shadow .22s ease;
}
.lab-system-theme .access-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(42,77,114,.14); }
.lab-system-theme .access-card > span { color: var(--lab-accent, #9f2333); }
.lab-system-theme .access-card h2 { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .access-card p { color: var(--lab-muted, #758596); }
.lab-system-theme .access-card button {
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: var(--lab-primary, #173d68);
  box-shadow: 0 8px 18px rgba(23,61,104,.16);
}
.lab-system-theme .booking-header {
  min-height: 88px;
  margin: 0;
  padding: 0 28px;
  border: 0;
  border-bottom: 1px solid #dce5ed;
  border-radius: 0;
  background: var(--lab-surface, #fff);
}
.lab-system-theme .booking-brand strong { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .booking-brand span { color: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-user { color: var(--lab-muted, #758596); }
.lab-system-theme .booking-user > a { color: var(--lab-primary, #173d68); border-color: #b8c8d6; }
.lab-system-theme .booking-user button {
  border-color: #cbd7e1;
  border-radius: 8px;
  color: var(--lab-primary, #173d68);
}
.lab-system-theme .booking-system-shell {
  min-height: calc(100vh - 88px);
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--lab-surface, #fff);
  box-shadow: none;
}
.lab-system-theme .booking-system-nav {
  padding: 27px 15px;
  color: var(--lab-text, #182b43);
  border-right: 1px solid #e1e8ee;
  background: #f7f9fb;
}
.lab-system-theme .booking-system-nav > p { color: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-system-nav button {
  margin-bottom: 5px;
  border: 0;
  border-radius: 10px;
  color: #6d7e8e;
}
.lab-system-theme .booking-system-nav button:hover,
.lab-system-theme .booking-system-nav button.active {
  color: var(--lab-primary, #173d68);
  background: #e8f0f7;
  box-shadow: inset 3px 0 var(--lab-primary, #173d68);
}
.lab-system-theme .booking-system-nav button b { background: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-main { padding: 30px clamp(24px, 3vw, 48px) 55px; background: #fbfcfd; }
.lab-system-theme .booking-title p,
.lab-system-theme .booking-form-card > div > p,
.lab-system-theme .approval-heading p { color: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-title h1 { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .booking-primary {
  border-radius: 9px;
  background: var(--lab-primary, #173d68);
  box-shadow: 0 7px 16px rgba(23,61,104,.14);
}
.lab-system-theme .pending-badge { border-radius: 10px; }
.lab-system-theme .booking-message { border-radius: 9px; }
.lab-system-theme .booking-message { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.lab-system-theme .booking-message button { width: 25px; height: 25px; flex: 0 0 25px; display: grid; place-items: center; border: 0; border-radius: 50%; color: currentColor; background: transparent; cursor: pointer; font-size: 17px; line-height: 1; }
.lab-system-theme .booking-message button:hover { background: rgba(0,0,0,.06); }
.lab-system-theme .booking-metrics {
  gap: 14px;
  border: 0;
}
.lab-system-theme .booking-metrics article {
  min-height: 120px;
  border: 1px solid #dfe7ee;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(43,78,113,.05);
}
.lab-system-theme .booking-metrics strong { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .all-bookings-panel,
.lab-system-theme .booking-form-card,
.lab-system-theme .approval-item,
.lab-system-theme .my-bookings > div,
.lab-system-theme .instrument-form-panel,
.lab-system-theme .instrument-list-panel {
  overflow: hidden;
  border: 1px solid #dfe7ee;
  border-radius: 16px;
  background: var(--lab-surface, #fff);
  box-shadow: 0 10px 25px rgba(43,78,113,.06);
}
.lab-system-theme .dashboard-section-heading { border-color: #e3e9ef; }
.lab-system-theme .dashboard-section-heading h2,
.lab-system-theme .approval-heading h2,
.lab-system-theme .my-bookings h2 { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .booking-form-card { border-top: 0; }
.lab-system-theme .booking-form-card > div {
  color: var(--lab-text, #182b43);
  background: linear-gradient(145deg, #eaf2f8, #f6f9fb);
}
.lab-system-theme .booking-form-card > div > p { color: var(--lab-accent, #9f2333); }
.lab-system-theme .booking-form-card h2 { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.lab-system-theme .booking-form-card > div > span { color: var(--lab-muted, #758596); }
.lab-system-theme .booking-form-card input,
.lab-system-theme .booking-form-card select,
.lab-system-theme .booking-form-card textarea,
.lab-system-theme .calendar-toolbar select {
  border-color: #d4dfe8;
  border-radius: 8px;
  background: #fff;
}
.lab-system-theme .sample-requirement { border: 0; border-radius: 10px; background: #f2f6f9; box-shadow: inset 3px 0 var(--lab-accent, #9f2333); }
.lab-system-theme .calendar-toolbar button { border-radius: 8px; }
.lab-system-theme .booking-calendar {
  gap: 9px;
  padding: 10px;
  border: 1px solid #dfe7ee;
  border-radius: 16px;
  background: var(--lab-surface, #fff);
  box-shadow: 0 10px 25px rgba(43,78,113,.06);
}
.lab-system-theme .booking-calendar > article {
  min-height: 205px;
  overflow: hidden;
  border: 1px solid #e1e8ee;
  border-radius: 11px;
  background: #fbfcfd;
}
.lab-system-theme .booking-calendar header { background: #f5f8fa; }
.lab-system-theme .calendar-booking { border: 0; border-radius: 7px; box-shadow: inset 3px 0 #347153; }
.lab-system-theme .calendar-booking.pending { box-shadow: inset 3px 0 #b17b31; }
.lab-system-theme .my-bookings > div,
.lab-system-theme .instrument-list-panel { border-top: 1px solid #dfe7ee; }
.lab-system-theme .my-bookings article,
.lab-system-theme .approval-item,
.lab-system-theme .instrument-list-panel article { border-color: #e3e9ef; }
.lab-system-theme .instrument-management { gap: 20px; }
.lab-system-theme .instrument-form-panel { border-top: 0; }
.lab-system-theme .instrument-form-panel > div { background: var(--lab-primary, #173d68); }
.lab-system-theme .instrument-list-panel { gap: 0; }
.lab-system-theme .instrument-list-panel h3 { color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font, "Source Serif 4", Georgia, serif); }

@media (min-width: 1550px) {
  .lab-system-theme .booking-system-shell { grid-template-columns: 240px minmax(0, 1fr); }
  .lab-system-theme .booking-main { padding-left: 52px; padding-right: 52px; }
  .lab-system-theme .instrument-management { grid-template-columns: 410px 1fr; }
  .lab-system-theme .instrument-list-panel { grid-template-columns: repeat(3, 1fr); }
}

.lab-sso-launchpad {
  padding: 34px;
  color: var(--lab-text, #182b43);
  background:
    radial-gradient(circle at 10% 15%, rgba(93,146,192,.13), transparent 25%),
    radial-gradient(circle at 90% 84%, rgba(159,35,51,.08), transparent 24%),
    var(--lab-page, #eaf0f8);
}
.lab-sso-launchpad .booking-back { color: var(--lab-primary, #173d68); border-color: #afc0d0; }
.lab-sso-launchpad .lab-sso-card {
  margin-top: 9vh;
  padding: 48px;
  border: 1px solid #dce6ef;
  border-radius: 24px;
  background: var(--lab-surface, #fff);
  box-shadow: 0 24px 65px rgba(34,67,108,.13);
}
.lab-sso-launchpad .lab-sso-card > p:first-child { color: var(--lab-accent, #9f2333); }
.lab-sso-launchpad .lab-sso-card h1 { color: var(--lab-primary, #173d68); }
.lab-sso-launchpad .lab-sso-card > span,
.lab-sso-launchpad .lab-sso-card > small { color: var(--lab-muted, #758596); }
.lab-sso-launchpad .lab-sso-card > button { border-radius: 9px; background: var(--lab-primary, #173d68); }
.lab-sso-launchpad .lab-sso-card > button.manager-login { color: var(--lab-primary, #173d68); border-color: #c8d5df; background: #fff; }

@media (max-width: 700px) {
  .lab-system-theme .booking-access { padding: 25px 18px 45px; }
  .lab-system-theme .booking-access-intro { margin: 55px 0 32px; }
  .lab-system-theme .booking-header { margin: 0; border: 0; border-bottom: 1px solid #dce5ed; border-radius: 0; }
  .lab-system-theme .booking-system-shell { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
  .lab-system-theme .booking-system-nav { border-right: 0; border-bottom: 1px solid #e1e8ee; }
  .lab-system-theme .booking-main { padding: 28px 18px 55px; }
  .lab-system-theme .booking-calendar { border-radius: 12px; }
  .lab-sso-launchpad { padding: 18px; }
  .lab-sso-launchpad .lab-sso-card { padding: 34px 24px; }
}

/* Laboratory inventory */
.inventory-app { min-height: 100vh; }
.inventory-login { min-height: 100vh; padding: 35px; background: var(--lab-page, #eaf0f8); }
.inventory-login > div { width: min(560px, 100%); margin: 10vh auto 0; padding: 45px; border: 1px solid #dce6ef; border-radius: 22px; background: #fff; box-shadow: 0 22px 60px rgba(34,67,108,.13); }
.inventory-login > div > p { margin: 0; color: var(--lab-accent, #9f2333); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.inventory-login h1 { margin: 12px 0; color: var(--lab-primary, #173d68); font: 600 40px var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.inventory-login > div > span { display: block; margin-bottom: 24px; color: var(--lab-muted, #758596); font-size: 11px; }
.inventory-login > div > button { width: 100%; margin-top: 8px; padding: 12px; border: 1px solid #ccd8e2; border-radius: 9px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.inventory-login > div > button:first-of-type { color: #fff; background: var(--lab-primary, #173d68); }
.inventory-shell { min-height: calc(100vh - 88px); display: grid; grid-template-columns: 275px minmax(0,1fr); background: #fff; }
.inventory-main { min-width: 0; }
.inventory-metrics { margin-top: 25px; }
.inventory-dashboard-grid { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.inventory-panel { overflow: hidden; border: 1px solid #dfe7ee; border-radius: 15px; background: #fff; box-shadow: 0 9px 22px rgba(43,78,113,.05); }
.inventory-panel-heading { padding: 20px 23px; border-bottom: 1px solid #e2e8ed; }
.inventory-panel-heading p { margin: 0; color: var(--lab-accent, #9f2333); font-size: 7px; font-weight: 700; text-transform: uppercase; }
.inventory-panel-heading h2 { margin: 5px 0 0; color: var(--lab-primary, #173d68); font: 600 22px var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.inventory-rows article { padding: 13px 22px; display: grid; grid-template-columns: 140px 1fr auto; gap: 15px; border-bottom: 1px solid #e7ebef; font-size: 9px; }
.inventory-rows article b { color: var(--lab-primary, #173d68); text-transform: capitalize; }
.inventory-rows article span { color: #687989; }
.inventory-rows article strong { color: #9f2333; }
.inventory-empty { padding: 28px; color: #8a98a5; text-align: center; }
.inventory-title-actions { display: flex; gap: 8px; }
.inventory-title-actions button, .inventory-title-actions label { padding: 9px 12px; border: 1px solid #c8d4de; border-radius: 8px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.inventory-title-actions button.booking-primary {
  border-color: var(--lab-primary, #173d68);
  color: #fff;
  background: var(--lab-primary, #173d68);
}
.inventory-title-actions button:disabled { cursor: not-allowed; opacity: .45; }
.inventory-title-actions button.booking-primary:hover:not(:disabled) { filter: brightness(1.08); }
.inventory-title-actions input { display: none; }
.inventory-filters { margin-top: 25px; padding: 14px; display: grid; grid-template-columns: minmax(240px,1fr) repeat(2, 190px); gap: 12px; border: 1px solid #dfe7ee; border-radius: 12px; background: #fff; }
.inventory-filters input, .inventory-filters select { padding: 10px; border: 1px solid #d5dfe7; border-radius: 7px; background: #fbfcfd; font-size: 10px; }
.inventory-grid-toolbar { margin-top: 20px; padding: 11px; display: flex; align-items: center; gap: 10px; border: 1px solid #dfe7ee; border-radius: 10px; background: #fff; }
.inventory-grid-toolbar > input { min-width: 260px; flex: 1; padding: 9px; border: 1px solid #d4dfe7; border-radius: 7px; }
.inventory-grid-toolbar label { display: flex; align-items: center; gap: 6px; color: #657786; font-size: 8px; white-space: nowrap; }
.inventory-grid-toolbar button { padding: 8px 10px; border: 1px solid #aebdca; border-radius: 7px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.inventory-grid-toolbar button.danger { color: #9f2333; border-color: #d5adb3; }
.inventory-nav-group { margin: 12px 0 16px; padding: 14px 0 12px; border-top: 1px solid #e2e9ef; border-bottom: 1px solid #e2e9ef; }
.booking-system-nav .inventory-nav-group > span { display: block; padding: 5px 14px 12px; color: var(--lab-primary, #173d68); font: 600 20px var(--lab-heading-font, Georgia, serif); text-transform: none; }
.booking-system-nav .inventory-nav-group button { min-height: 44px; padding: 13px 14px 13px 28px; font-size: 12px; line-height: 1.3; text-transform: none; }
.inventory-secondary-action { padding: 10px 13px; border: 1px solid #b7c5d0; border-radius: 8px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.inventory-category-rule { max-width: 690px; display: block; margin-top: 10px; color: #71828e; font-size: 9px; line-height: 1.6; }
.direct-edit-notice { margin-top: 20px; padding: 11px 14px; display: flex; align-items: center; gap: 12px; border: 1px solid #c9dce9; border-radius: 9px; color: #547087; background: #eef6fb; font-size: 8px; }
.direct-edit-notice b { color: var(--lab-primary, #173d68); text-transform: uppercase; }
.inventory-table-empty { padding: 30px; text-align: center; }
.inventory-category-settings { margin-bottom: 28px; padding: 24px; border: 1px solid #dfe7ee; border-radius: 15px; background: #fff; box-shadow: 0 9px 24px rgba(43,78,113,.05); }
.inventory-category-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.inventory-category-grid article { padding: 14px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border: 1px solid #e1e7ec; border-radius: 10px; }
.inventory-category-grid article.inactive { opacity: .55; }
.inventory-category-grid article b, .inventory-category-grid article span, .inventory-category-grid article small { display: block; }
.inventory-category-grid article b { color: var(--lab-primary, #173d68); font-size: 11px; }
.inventory-category-grid article span, .inventory-category-grid article small { margin-top: 4px; color: #788894; font-size: 8px; }
.inventory-category-grid article button { margin-left: 5px; padding: 7px 9px; border: 1px solid #9eb0be; border-radius: 6px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.inventory-category-grid article button.danger { color: #9f2333; border-color: #d8adb3; }
.inventory-category-form { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e1e7ec; }
.inventory-category-form h3 { margin: 0 0 15px; color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font); }
.inventory-catalogue-section { margin-top: 30px; }
.inventory-catalogue-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 0 3px; }
.inventory-catalogue-heading p { margin: 0 0 5px; color: #a12735; font-size: 7px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.inventory-catalogue-heading h2 { margin: 0; color: var(--lab-primary, #173d68); font-family: var(--lab-heading-font); font-size: 23px; }
.inventory-catalogue-heading > span { color: #7d8d99; font-size: 9px; }
.inventory-catalogue-section .inventory-table-wrap { margin-top: 12px; }
.inventory-table-wrap { margin-top: 18px; overflow-x: auto; border: 1px solid #dfe7ee; border-radius: 15px; background: #fff; box-shadow: 0 9px 24px rgba(43,78,113,.05); }
.inventory-table { width: 100%; min-width: 960px; border-collapse: collapse; }
.inventory-table.general-items-table { min-width: 1120px; }
.inventory-table.direct-edit-table { min-width: 1300px; }
.inventory-table.scenario-table { min-width: 1250px; }
.inventory-table th { padding: 11px 14px; color: #788895; background: #f5f7f9; font-size: 7px; text-align: left; text-transform: uppercase; }
.inventory-table td { padding: 14px; border-top: 1px solid #e3e8ec; color: #617281; font-size: 9px; vertical-align: middle; }
.inventory-table td b, .inventory-table td span, .inventory-table td small { display: block; }
.inventory-table td b { color: var(--lab-primary, #173d68); }
.inventory-table td span { margin-top: 4px; }
.inventory-table td small { margin-top: 4px; color: #94a0aa; }
.inventory-table td strong.low { color: #9f2333; }
.inventory-table td > a { color: #2475ad; border-bottom: 1px solid #a9c9de; }
.inventory-table td button { padding: 7px 9px; border: 1px solid #9eb0be; border-radius: 6px; color: var(--lab-primary, #173d68); background: #fff; cursor: pointer; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.direct-edit-table td { padding: 8px; }
.direct-edit-table input, .direct-edit-table select { width: 100%; min-width: 92px; padding: 8px; border: 1px solid transparent; border-radius: 6px; color: #31475a; background: transparent; font: 9px var(--lab-body-font, Arial, sans-serif); }
.direct-edit-table input:hover, .direct-edit-table select:hover { border-color: #cbd9e3; background: #f8fbfd; }
.direct-edit-table input:focus, .direct-edit-table select:focus { outline: 0; border-color: #6b9abc; background: #fff; box-shadow: 0 0 0 2px rgba(75,133,177,.12); }
.direct-edit-table td > input + input { margin-top: 4px; }
.direct-stock-control { display: grid; grid-template-columns: 26px minmax(72px,1fr) 26px; align-items: center; }
.direct-stock-control button { height: 30px; padding: 0 !important; border-color: #c6d3dc !important; font-size: 13px !important; }
.direct-stock-control input { min-width: 65px; text-align: center; }
.direct-edit-table .direct-unit-input { margin-top: 4px; color: #748694; font-size: 8px; text-align: center; }
.scenario-table td { padding: 7px; }
.scenario-table td input, .scenario-table td select { width: 100%; min-width: 90px; padding: 7px; border: 1px solid transparent; border-radius: 5px; color: #31475a; background: transparent; font: 9px var(--lab-body-font, Arial, sans-serif); }
.scenario-table td input:hover, .scenario-table td input:focus { outline: 0; border-color: #aac2d4; background: #fff; }
.scenario-table tr.archived { opacity: .48; background: #f4f5f6; }
.scenario-table tr.draft-row { background: #eef6fb; }
.scenario-table tr.draft-row td { border-top: 2px solid #7fa7c3; }
.scenario-table .inventory-status.available { color: #275b46; background: #dfeee6; }
.scenario-table .inventory-status.assigned { color: #74551f; background: #f4e9d4; }
.inventory-add-row { width: 100%; padding: 12px; border: 0; border-top: 1px solid #dce5eb; color: var(--lab-primary, #173d68); background: #f8fafb; cursor: pointer; font-size: 9px; font-weight: 700; text-align: left; }
.inventory-add-row:hover { background: #eef5f9; }
.inventory-row-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.inventory-row-actions button.danger { color: #9f2333; border-color: #d4aeb4; }
.inventory-status { width: fit-content; padding: 5px 7px; border-radius: 7px; color: #68501f; background: #f4e9d4; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.inventory-status.approved, .inventory-status.ordered { color: #275b46; background: #e1eee7; }
.inventory-status.rejected { color: #8e3541; background: #f2e0e3; }
.inventory-status.stocked, .inventory-status.returned { color: #275b46; background: #dfeee6; }
.inventory-status.checked_out { color: #28577c; background: #e0ebf3; }
.inventory-form-card { margin-top: 25px; display: grid; grid-template-columns: 310px minmax(0,1fr); overflow: hidden; border: 1px solid #dfe7ee; border-radius: 16px; background: #fff; box-shadow: 0 11px 28px rgba(43,78,113,.06); }
.inventory-form-card > div { padding: 30px; color: #fff; background: var(--lab-primary, #173d68); }
.inventory-form-card > div h2 { margin: 0 0 12px; font: 600 26px var(--lab-heading-font, "Source Serif 4", Georgia, serif); }
.inventory-form-card > div p { color: #c6d3dd; font-size: 10px; line-height: 1.7; }
.inventory-form-card form { padding: 30px; }
.inventory-form-card label { margin-bottom: 16px; display: block; color: #5c6d7c; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.inventory-form-card input, .inventory-form-card select, .inventory-form-card textarea { width: 100%; margin-top: 6px; padding: 10px; border: 1px solid #d2dde5; border-radius: 7px; color: #182b43; background: #fbfcfd; font: 10px var(--lab-body-font, Arial, sans-serif); }
.inventory-item-note { margin-bottom: 17px; padding: 13px; display: flex; gap: 15px; align-items: center; border-radius: 9px; background: #f0f5f8; color: #687989; font-size: 9px; }
.inventory-item-note b { color: var(--lab-primary, #173d68); }
.inventory-item-note a { margin-left: auto; color: #2475ad; border-bottom: 1px solid; }
.purchase-detail-grid { margin-top: 24px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 20px; }
.purchase-facts { margin: 0; padding: 8px 24px 24px; }
.purchase-facts div { padding: 13px 0; border-bottom: 1px solid #e3e9ee; }
.purchase-facts dt { color: #8b98a3; font-size: 7px; text-transform: uppercase; }
.purchase-facts dd { margin: 5px 0 0; color: #536575; font-size: 10px; line-height: 1.5; }
.purchase-timeline { padding: 24px 28px 30px; }
.purchase-timeline article { min-height: 67px; display: grid; grid-template-columns: 18px 1fr; gap: 13px; position: relative; }
.purchase-timeline article::before { content: ""; width: 1px; position: absolute; top: 13px; bottom: -5px; left: 5px; background: #d9e3ea; }
.purchase-timeline article:last-child::before { display: none; }
.purchase-timeline i { width: 11px; height: 11px; margin-top: 3px; z-index: 1; border: 3px solid #d9e9e1; border-radius: 50%; background: #347153; }
.purchase-timeline b, .purchase-timeline span { display: block; }
.purchase-timeline b { color: var(--lab-primary, #173d68); font-size: 10px; }
.purchase-timeline span { margin-top: 5px; color: #82909c; font-size: 8px; }

@media (min-width: 1550px) {
  .inventory-shell { grid-template-columns: 290px minmax(0,1fr); }
}
@media (max-width: 900px) {
  .inventory-dashboard-grid { grid-template-columns: 1fr; }
  .inventory-category-grid { grid-template-columns: 1fr; }
  .inventory-form-card { grid-template-columns: 1fr; }
  .inventory-filters { grid-template-columns: 1fr 1fr; }
  .purchase-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .inventory-shell { display: block; }
  .inventory-shell .booking-system-nav { overflow-x: auto; white-space: nowrap; }
  .inventory-shell .booking-system-nav > p { display: none; }
  .inventory-shell .booking-system-nav button { width: auto; min-width: 145px; display: inline-flex; }
  .inventory-shell .inventory-nav-group { display: inline-flex; align-items: center; margin: 0; padding: 0; border: 0; vertical-align: top; }
  .inventory-shell .booking-system-nav .inventory-nav-group > span { padding: 13px 14px; font-size: 14px; }
  .inventory-shell .booking-system-nav .inventory-nav-group button { padding-left: 12px; }
  .inventory-main { padding: 26px 18px 50px !important; }
  .inventory-filters { grid-template-columns: 1fr; }
  .inventory-title-actions { width: 100%; }
  .inventory-login { padding: 18px; }
  .inventory-login > div { padding: 32px 23px; }
}


