:root {
    --ink: #102438;
    --ink-soft: #456078;
    --ink-muted: #70859a;
    --navy: #092a3a;
    --navy-2: #0d3e51;
    --teal: #087284;
    --teal-dark: #075b6a;
    --teal-soft: #e6f5f5;
    --aqua: #22a99b;
    --blue: #356bd6;
    --blue-soft: #edf3ff;
    --violet: #7862cc;
    --violet-soft: #f1effc;
    --amber: #d88926;
    --amber-soft: #fff4df;
    --red: #bd3e52;
    --red-soft: #fff0f2;
    --green: #25845b;
    --green-soft: #e9f7ef;
    --surface: #ffffff;
    --surface-2: #f7f9fc;
    --surface-3: #edf2f6;
    --border: #dce5ec;
    --border-strong: #c6d3dd;
    --shadow-sm: 0 4px 14px rgba(12, 42, 61, .06);
    --shadow-md: 0 14px 38px rgba(12, 42, 61, .09);
    --shadow-lg: 0 28px 70px rgba(4, 31, 47, .16);
    --radius-sm: 9px;
    --radius: 14px;
    --radius-lg: 20px;
    --sidebar: 266px;
    --topbar: 84px;
    --ease: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #f3f7fa; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: #f3f7fa; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
img { max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.18; letter-spacing: -.025em; }
h1 { margin-bottom: 0; font-size: 1.36rem; }
h2 { margin-bottom: .55rem; font-size: clamp(1.55rem, 2vw, 2rem); }
h3 { margin-bottom: .3rem; font-size: 1.08rem; }
h4 { margin-bottom: .35rem; font-size: 1rem; }
p { margin-bottom: 0; color: var(--ink-soft); }
small { color: var(--ink-muted); }

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 9999; padding: 10px 14px; border-radius: 8px; background: white; color: var(--ink); transform: translateY(-150%); box-shadow: var(--shadow-md); }
.skip-link:focus { transform: translateY(0); }

.app-shell { background: #f3f7fa; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; display: flex; width: var(--sidebar); flex-direction: column; overflow-y: auto; padding: 24px 18px 18px; color: #d8e8ed; background: linear-gradient(180deg, #082b3b 0%, #092536 55%, #071e2d 100%); box-shadow: 5px 0 30px rgba(5, 28, 42, .08); }
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand__mark { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 13px; background: linear-gradient(145deg, #dffff8, #56d3c2); box-shadow: 0 8px 24px rgba(32, 188, 168, .2); }
.brand__mark svg { width: 28px; height: 28px; fill: #07566a; }
.brand__name, .brand__sub { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.brand__name { color: #fff; font-size: 1.02rem; font-weight: 760; letter-spacing: -.02em; }
.brand__sub { margin-top: 2px; color: #8cb5c0; font-size: .7rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.sidebar__context { display: grid; gap: 3px; margin: 26px 2px 18px; padding: 12px 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.045); }
.context-label { color: #78a6b1; font-size: .64rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.context-value { overflow: hidden; color: #eaf4f6; font-size: .82rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.nav-list { display: grid; gap: 5px; }
.nav-list--compact { margin-top: 0; }
.nav-item { position: relative; display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 0 13px; border-radius: 11px; color: #aac5cc; font-size: .9rem; font-weight: 620; transition: background .18s var(--ease), color .18s var(--ease), transform .18s var(--ease); }
.nav-item svg { width: 20px; height: 20px; flex: 0 0 auto; fill: currentColor; opacity: .88; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(2px); }
.nav-item.is-active { color: #fff; background: linear-gradient(100deg, rgba(40, 189, 171, .24), rgba(40, 189, 171, .08)); box-shadow: inset 0 0 0 1px rgba(78, 214, 196, .13); }
.nav-item.is-active::before { position: absolute; top: 10px; bottom: 10px; left: -18px; width: 3px; border-radius: 0 4px 4px 0; background: #48d4c2; content: ""; }
.nav-section-label { margin: 26px 14px 9px; color: #608e9a; font-size: .65rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.sidebar__footer { display: grid; gap: 9px; margin-top: auto; padding: 25px 5px 0; color: #6f9aa4; font-size: .68rem; }
.security-chip { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-soft); font-size: .75rem; font-weight: 650; }
.sidebar .security-chip { color: #a3c3ca; }
.security-dot, .live-dot { display: inline-block; width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #4dd2a8; box-shadow: 0 0 0 4px rgba(77,210,168,.12); }
.live-dot { width: 10px; height: 10px; background: var(--ink-muted); box-shadow: 0 0 0 4px rgba(112,133,154,.13); }
.live-dot.is-live { background: #3bd1a1; box-shadow: 0 0 0 4px rgba(59,209,161,.14); animation: pulse-dot 1.8s infinite; }
.live-dot.is-error { background: var(--red); box-shadow: 0 0 0 4px rgba(189,62,82,.13); }
@keyframes pulse-dot { 50% { box-shadow: 0 0 0 8px rgba(59,209,161,0); } }

.app-frame { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { position: sticky; top: 0; z-index: 35; display: flex; min-height: var(--topbar); align-items: center; justify-content: space-between; gap: 20px; padding: 14px 34px; border-bottom: 1px solid rgba(203,216,226,.85); background: rgba(250,252,254,.91); backdrop-filter: blur(18px); }
.topbar__left, .topbar__actions { display: flex; align-items: center; gap: 14px; }
.topbar__left .eyebrow { margin-bottom: 3px; }
.topbar__actions { gap: 12px; }
.eyebrow { display: block; margin-bottom: 5px; color: var(--teal); font-size: .66rem; font-weight: 800; letter-spacing: .115em; text-transform: uppercase; }
.environment-badge { padding: 5px 9px; border: 1px solid #cfe1e6; border-radius: 999px; color: #457181; background: #f2f9fa; font-size: .61rem; font-weight: 800; letter-spacing: .12em; }
.user-menu { position: relative; }
.user-menu summary { display: flex; min-width: 190px; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; cursor: pointer; list-style: none; transition: background .18s; }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu summary:hover, .user-menu[open] summary { background: #eef3f6; }
.user-menu summary > svg { width: 18px; height: 18px; margin-left: auto; fill: var(--ink-muted); }
.avatar { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, var(--teal), var(--blue)); font-size: .78rem; font-weight: 800; }
.user-menu__text { display: grid; min-width: 0; }
.user-menu__text > span { overflow: hidden; max-width: 120px; font-size: .8rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.user-menu__text small { overflow: hidden; max-width: 120px; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.user-menu__panel { position: absolute; top: calc(100% + 8px); right: 0; width: 250px; overflow: hidden; border: 1px solid var(--border); border-radius: 13px; background: #fff; box-shadow: var(--shadow-lg); }
.user-menu__identity { display: grid; gap: 2px; padding: 16px; border-bottom: 1px solid var(--border); }
.user-menu__identity span { font-weight: 750; }
.user-menu__identity small { overflow-wrap: anywhere; }
.menu-action { width: 100%; padding: 13px 16px; border: 0; color: var(--red); background: transparent; text-align: left; cursor: pointer; }
.menu-action:hover { background: var(--red-soft); }
.mobile-menu { display: none !important; }
.mobile-backdrop { display: none; }

.main-content { width: min(100%, 1580px); margin: 0 auto; padding: 30px 34px 70px; }
.main-content--full { width: 100%; max-width: none; }
.card { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-sm); }
.page-intro { margin-bottom: 25px; }
.page-intro--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.page-intro p { max-width: 720px; }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.back-link { display: block; width: max-content; margin-bottom: 10px; color: var(--ink-muted); font-size: .76rem; font-weight: 680; }
.back-link:hover { color: var(--teal); }

.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border: 1px solid transparent; border-radius: 10px; font-size: .82rem; font-weight: 740; line-height: 1; cursor: pointer; transition: transform .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease), border-color .16s var(--ease); }
.button:hover { transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button:focus-visible, .icon-button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(53,107,214,.2); outline-offset: 2px; }
.button:disabled, .icon-button:disabled { opacity: .48; cursor: not-allowed; transform: none; }
.button--primary { color: #fff; background: linear-gradient(135deg, #087386, #075d72); box-shadow: 0 7px 18px rgba(8,104,123,.18); }
.button--primary:hover { background: linear-gradient(135deg, #08697a, #064f62); box-shadow: 0 10px 24px rgba(8,104,123,.24); }
.button--secondary { border-color: var(--border-strong); color: var(--ink); background: #fff; }
.button--secondary:hover { border-color: #aabcc8; background: #f8fafc; }
.button--soft { border-color: #cce5e7; color: var(--teal-dark); background: var(--teal-soft); }
.button--soft:hover { border-color: #a9d8dc; background: #dff1f2; }
.button--danger { color: #fff; background: var(--red); }
.button--large { min-height: 49px; padding: 0 21px; border-radius: 11px; font-size: .88rem; }
.button--small { min-height: 36px; padding: 0 12px; font-size: .75rem; }
.button--tiny { min-height: 30px; padding: 0 10px; border-radius: 8px; font-size: .7rem; }
.button--block { width: 100%; }
.button-row { display: flex; flex-wrap: wrap; gap: 8px; }
.text-link { color: var(--teal); font-size: .78rem; font-weight: 750; }
.text-link:hover { color: var(--teal-dark); text-decoration: underline; }
.icon-button { display: inline-grid; width: 39px; height: 39px; place-items: center; padding: 0; border: 1px solid var(--border); border-radius: 10px; color: var(--ink-soft); background: #fff; cursor: pointer; transition: .17s var(--ease); }
.icon-button:hover { color: var(--teal); border-color: #b9d4d9; background: #f3fafb; }
.icon-button svg { width: 20px; height: 20px; fill: currentColor; }
.icon-button--labeled { display: inline-flex; width: auto; padding: 0 12px; gap: 7px; font-size: .73rem; font-weight: 700; }

.alert { position: relative; display: flex; align-items: center; gap: 11px; margin-bottom: 18px; padding: 12px 45px 12px 13px; border: 1px solid; border-radius: 12px; font-size: .83rem; font-weight: 620; animation: alert-in .28s var(--ease); }
@keyframes alert-in { from { opacity: 0; transform: translateY(-8px); } }
.alert--success { color: #185e42; border-color: #b9e2cb; background: var(--green-soft); }
.alert--error { color: #8e293a; border-color: #edc5cc; background: var(--red-soft); }
.alert--warning { color: #8d5a14; border-color: #efd69f; background: var(--amber-soft); }
.alert__icon { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: currentColor; font-weight: 850; }
.alert__icon::first-letter { color: white; }
.alert__close { position: absolute; top: 50%; right: 12px; width: 27px; height: 27px; border: 0; color: inherit; background: transparent; transform: translateY(-50%); cursor: pointer; }

.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 15px; margin-bottom: 20px; }
.stat-card { display: flex; min-height: 128px; align-items: center; gap: 15px; padding: 20px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.stat-card__icon { display: grid; width: 47px; height: 47px; flex: 0 0 auto; place-items: center; border-radius: 14px; }
.stat-card__icon svg { width: 23px; height: 23px; fill: currentColor; }
.stat-card__icon--teal { color: var(--teal); background: var(--teal-soft); }
.stat-card__icon--blue { color: var(--blue); background: var(--blue-soft); }
.stat-card__icon--amber { color: var(--amber); background: var(--amber-soft); }
.stat-card__icon--violet { color: var(--violet); background: var(--violet-soft); }
.stat-card > div:last-child { display: grid; }
.stat-card span { color: var(--ink-soft); font-size: .72rem; font-weight: 680; }
.stat-card strong { margin: 2px 0; font-size: 1.75rem; line-height: 1.1; letter-spacing: -.04em; }
.stat-card small { font-size: .68rem; }
.content-grid { display: grid; gap: 20px; }
.content-grid--dashboard { grid-template-columns: minmax(0,1fr) 340px; }
.card__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid var(--border); }
.card__header h3 { margin-bottom: 0; }
.dashboard-side { display: grid; align-content: start; gap: 20px; }
.assessment-list { display: grid; }
.assessment-row { display: grid; grid-template-columns: auto minmax(160px,1fr) minmax(100px,.55fr) auto auto 18px; align-items: center; gap: 14px; min-height: 82px; padding: 13px 20px; border-bottom: 1px solid var(--border); transition: background .16s; }
.assessment-row:last-child { border-bottom: 0; }
.assessment-row:hover { background: #f8fbfc; }
.patient-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 13px; color: #0a596c; background: linear-gradient(145deg, #e2f5f3, #d7edf6); font-size: .76rem; font-weight: 850; letter-spacing: .02em; }
.patient-avatar--small { width: 34px; height: 34px; border-radius: 10px; font-size: .68rem; }
.patient-avatar--large { width: 60px; height: 60px; border-radius: 18px; font-size: 1rem; }
.assessment-row__identity, .metric-brief { display: grid; min-width: 0; }
.assessment-row__identity strong, .assessment-row__identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assessment-row__identity strong { font-size: .87rem; }
.assessment-row__identity small { margin-top: 3px; font-size: .69rem; }
.metric-brief small { font-size: .65rem; }
.metric-brief strong { font-size: .83rem; }
.row-arrow { width: 18px; height: 18px; fill: #9cb0bd; }
.quality-ring { --ring-color: var(--amber); display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: conic-gradient(var(--ring-color) calc(var(--score) * 1%), #e8eef2 0); }
.quality-ring::before { grid-area: 1/1; width: 32px; height: 32px; border-radius: 50%; background: #fff; content: ""; }
.quality-ring > span { z-index: 1; grid-area: 1/1; font-size: .67rem; font-weight: 820; }
.quality-ring--excellent { --ring-color: var(--green); }
.quality-ring--acceptable { --ring-color: var(--teal); }
.quality-ring--caution { --ring-color: var(--amber); }
.quality-ring--retake { --ring-color: var(--red); }
.quality-ring--large { width: 62px; height: 62px; }
.quality-ring--large::before { width: 48px; height: 48px; }
.quality-ring--large > span { font-size: .9rem; }
.status { display: inline-flex; width: max-content; align-items: center; justify-content: center; min-height: 25px; padding: 0 9px; border: 1px solid; border-radius: 999px; font-size: .64rem; font-weight: 780; white-space: nowrap; }
.status--draft { color: #9a6014; border-color: #ebcd94; background: #fff7e8; }
.status--reviewed { color: #275eae; border-color: #bfd1f0; background: #eff5ff; }
.status--signed { color: #19714c; border-color: #b6dec7; background: #eaf7ef; }
.status--void, .status--inactive, .status--archived { color: #7a4751; border-color: #dec6cb; background: #f8f0f2; }
.status--active { color: #19714c; border-color: #b6dec7; background: #eaf7ef; }
.protocol-card { padding: 21px; }
.protocol-card h3 { margin-bottom: 15px; }
.protocol-figure { position: relative; height: 200px; margin: 0 0 17px; overflow: hidden; border: 1px solid #d8e6e9; border-radius: 15px; background: radial-gradient(circle at center, #eff9f8 0, #f8fbfc 68%); }
.figure-head, .figure-torso, .figure-hips, .figure-leg, .reference-marker, .frame-corner { position: absolute; display: block; }
.figure-head { top: 25px; left: 50%; width: 26px; height: 26px; border: 3px solid #2a8591; border-radius: 50%; transform: translateX(-50%); }
.figure-torso { top: 53px; left: 50%; width: 3px; height: 57px; background: #2a8591; transform: translateX(-50%); }
.figure-torso::before { position: absolute; top: 9px; left: -30px; width: 63px; height: 3px; background: #2a8591; content: ""; transform: rotate(-1deg); }
.figure-hips { top: 107px; left: 50%; width: 52px; height: 3px; background: #2a8591; transform: translateX(-50%) rotate(4deg); }
.figure-leg { top: 108px; left: calc(50% - 21px); width: 3px; height: 68px; background: #2a8591; transform: rotate(4deg); transform-origin: top; }
.figure-leg--right { left: calc(50% + 21px); transform: rotate(-2deg); }
.reference-marker { top: 76px; right: 42px; width: 10px; height: 70px; border-top: 2px solid var(--aqua); border-bottom: 2px solid var(--aqua); background: linear-gradient(90deg, transparent 4px, var(--aqua) 4px, var(--aqua) 6px, transparent 6px); }
.frame-corner { width: 22px; height: 22px; border-color: #79b9c0; }
.frame-corner--one { top: 16px; left: 16px; border-top: 2px solid; border-left: 2px solid; }
.frame-corner--two { top: 16px; right: 16px; border-top: 2px solid; border-right: 2px solid; }
.frame-corner--three { bottom: 16px; left: 16px; border-bottom: 2px solid; border-left: 2px solid; }
.frame-corner--four { right: 16px; bottom: 16px; border-right: 2px solid; border-bottom: 2px solid; }
.check-list { display: grid; gap: 9px; padding: 0; margin: 0 0 17px; list-style: none; }
.check-list li { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); font-size: .76rem; font-weight: 620; }
.check-list li > span { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: var(--teal); background: var(--teal-soft); font-size: .63rem; font-weight: 800; }
.check-list--plain { margin-top: 18px; }
.patient-mini-card .card__header { padding: 18px; }
.mini-patient { display: flex; align-items: center; gap: 10px; padding: 12px 17px; border-bottom: 1px solid var(--border); }
.mini-patient:last-child { border-bottom: 0; }
.mini-patient > span:last-child { display: grid; min-width: 0; }
.mini-patient strong, .mini-patient small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-patient strong { font-size: .79rem; }
.mini-patient small { font-size: .65rem; }

.empty-state { display: grid; justify-items: center; padding: 54px 25px; text-align: center; }
.empty-state--compact { padding: 34px 20px; }
.empty-state--page { max-width: 740px; margin: 50px auto; padding: 64px 30px; }
.empty-state__icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 15px; border-radius: 16px; color: var(--teal); background: var(--teal-soft); font-size: 1.1rem; font-weight: 850; }
.empty-state p { max-width: 500px; margin-bottom: 18px; }

.table-card { overflow: hidden; }
.table-toolbar { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--border); }
.search-form { display: flex; width: min(100%, 460px); min-height: 41px; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); }
.search-form:focus-within { border-color: #94bec6; box-shadow: 0 0 0 3px rgba(8,114,132,.09); }
.search-form svg { width: 18px; height: 18px; flex: 0 0 auto; fill: var(--ink-muted); }
.search-form input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; }
.search-clear { color: var(--teal); font-size: .7rem; font-weight: 700; }
.toolbar-note { color: var(--ink-muted); font-size: .72rem; font-weight: 650; }
.data-table-wrap { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; text-align: left; }
.data-table th { height: 46px; padding: 0 16px; border-bottom: 1px solid var(--border); color: #6d8293; background: #f7f9fb; font-size: .65rem; font-weight: 780; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.data-table td { min-height: 66px; padding: 13px 16px; border-bottom: 1px solid var(--border); color: var(--ink-soft); font-size: .77rem; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fafcfd; }
.data-table td > strong, .data-table td > small { display: block; }
.table-person { display: flex; min-width: 190px; align-items: center; gap: 10px; }
.table-person > span:last-child { display: grid; min-width: 0; }
.table-person strong { color: var(--ink); font-size: .8rem; }
.table-person small { overflow: hidden; max-width: 250px; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.table-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.truncate-cell { display: block; max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mono-value { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; letter-spacing: .015em; }
.count-badge { display: grid; min-width: 28px; height: 28px; place-items: center; padding: 0 8px; border-radius: 999px; color: var(--teal); background: var(--teal-soft); font-size: .69rem; font-weight: 800; }

.clinical-form { display: grid; gap: 18px; }
.form-section { padding: 0 24px 24px; }
.form-section__header { display: flex; align-items: flex-start; gap: 14px; margin: 0 -24px 22px; padding: 21px 24px; border-bottom: 1px solid var(--border); }
.form-section__header h3 { margin-bottom: 3px; }
.form-section__header p { font-size: .76rem; }
.section-number, .step-index { display: grid; width: 31px; height: 31px; flex: 0 0 auto; place-items: center; border-radius: 9px; color: var(--teal); background: var(--teal-soft); font-size: .68rem; font-weight: 850; }
.form-grid { display: grid; gap: 17px; }
.form-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-grid--tight { gap: 11px; }
.field { display: grid; align-content: start; gap: 6px; min-width: 0; }
.field > span, .field legend { color: #3f586d; font-size: .7rem; font-weight: 740; }
.field b { color: var(--red); }
.field input, .field select, .field textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--border-strong); border-radius: 9px; outline: none; color: var(--ink); background: #fff; font-size: .8rem; transition: border-color .16s, box-shadow .16s; }
.field textarea { min-height: 88px; line-height: 1.5; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #aebfca; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #6fa8b2; box-shadow: 0 0 0 3px rgba(8,114,132,.09); }
.field input[readonly] { color: var(--ink-muted); background: #f6f8fa; }
.field small { font-size: .64rem; line-height: 1.4; }
.field--wide { grid-column: 1 / -1; }
.field-error { color: var(--red) !important; }
.checkbox-group { display: flex; flex-wrap: wrap; gap: 9px 18px; padding: 0; border: 0; }
.checkbox-group legend { width: 100%; margin-bottom: 2px; }
.checkbox-group label { display: flex; align-items: center; gap: 7px; color: var(--ink-soft); font-size: .76rem; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--teal); }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 4px 0 15px; }
.form-actions--inside { padding: 6px 0 0; }
.input-unit { display: flex; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 9px; background: #fff; }
.input-unit:focus-within { border-color: #6fa8b2; box-shadow: 0 0 0 3px rgba(8,114,132,.09); }
.input-unit input { border: 0 !important; border-radius: 0; box-shadow: none !important; }
.input-unit > span { display: grid; min-width: 46px; place-items: center; border-left: 1px solid var(--border); color: var(--ink-muted); background: #f5f7f9; font-size: .68rem; font-weight: 750; }
.input-unit--readonly { background: #f5f7f9; }
.check-row { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.check-row input { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 2px; }
.check-row > span { display: grid; }
.check-row strong { color: var(--ink); font-size: .73rem; }
.check-row small { margin-top: 2px; font-size: .64rem; line-height: 1.35; }
.check-row--compact { margin-top: 14px; }
.check-row--consent { padding: 13px; border: 1px solid #c9e2e5; border-radius: 11px; background: #f2f9f9; }

.patient-hero { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 20px; padding: 22px; }
.patient-hero__identity, .capture-patient { display: flex; align-items: center; gap: 14px; min-width: 0; }
.patient-hero__identity > div, .capture-patient > div { min-width: 0; }
.patient-title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.patient-title h2 { margin-bottom: 0; }
.patient-hero__identity p, .capture-patient p { font-size: .75rem; }
.content-grid--patient { grid-template-columns: minmax(0,1fr) 330px; }
.patient-main, .patient-sidebar { display: grid; align-content: start; gap: 20px; }
.trend-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 7px; }
.trend-summary > div { display: grid; }
.trend-summary small { font-size: .66rem; }
.trend-summary strong { margin: 3px 0; font-size: 1.8rem; letter-spacing: -.04em; }
.trend-summary strong span { color: var(--ink-muted); font-size: .8rem; }
.trend-summary p { font-size: .67rem; }
.trend-chart { padding: 4px 24px 15px; }
.trend-chart svg { width: 100%; height: 185px; overflow: visible; }
.chart-grid { stroke: #e5ebef; stroke-width: 1; stroke-dasharray: 4 5; }
.chart-line { fill: none; stroke: var(--teal); stroke-width: 3; vector-effect: non-scaling-stroke; }
.chart-point { fill: #fff; stroke: var(--teal); stroke-width: 3; vector-effect: non-scaling-stroke; }
.trend-axis { display: flex; justify-content: space-between; color: var(--ink-muted); font-size: .64rem; }
.clinical-caveat { display: flex; align-items: flex-start; gap: 10px; margin: 0 22px 20px; padding: 12px; border: 1px solid #d7e6ea; border-radius: 11px; background: #f5fafb; }
.clinical-caveat svg { width: 18px; height: 18px; flex: 0 0 auto; fill: var(--teal); }
.clinical-caveat span { color: var(--ink-soft); font-size: .68rem; line-height: 1.45; }
.timeline-list { display: grid; }
.timeline-item { display: grid; grid-template-columns: 15px minmax(180px,1fr) minmax(190px,.65fr) auto 17px; align-items: center; gap: 13px; min-height: 82px; padding: 14px 20px; border-bottom: 1px solid var(--border); }
.timeline-item:last-child { border-bottom: 0; }
.timeline-item:hover { background: #fafcfd; }
.timeline-dot { width: 11px; height: 11px; border: 3px solid #fff; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 2px #efcf96; }
.timeline-dot--reviewed { background: var(--blue); box-shadow: 0 0 0 2px #c3d4f1; }
.timeline-dot--signed { background: var(--green); box-shadow: 0 0 0 2px #b6dec7; }
.timeline-dot--void { background: var(--red); box-shadow: 0 0 0 2px #e5bfc6; }
.timeline-content { display: grid; min-width: 0; }
.timeline-content strong { font-size: .8rem; }
.timeline-content small { margin-top: 3px; overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.timeline-metrics { display: flex; gap: 25px; }
.timeline-metrics > span { display: grid; }
.timeline-metrics small { font-size: .61rem; }
.timeline-metrics strong { font-size: .75rem; }
.detail-card { padding: 20px; }
.detail-card > header { margin-bottom: 14px; }
.detail-list { display: grid; gap: 0; margin: 0; }
.detail-list > div { display: grid; gap: 3px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--ink-muted); font-size: .64rem; font-weight: 700; }
.detail-list dd { margin: 0; color: var(--ink); font-size: .76rem; font-weight: 650; }
.detail-list--compact > div { grid-template-columns: 1fr auto; align-items: center; }
.detail-list--compact dd { text-align: right; }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }
.tag { display: inline-flex; min-height: 23px; align-items: center; padding: 0 8px; border: 1px solid #d7e4e8; border-radius: 999px; color: #466a76; background: #f2f8f9; font-size: .61rem; font-weight: 690; }
.consent-reminder { display: flex; align-items: flex-start; gap: 9px; margin-top: 12px; padding: 11px; border-radius: 10px; background: var(--amber-soft); }
.consent-reminder > span { display: grid; width: 20px; height: 20px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: var(--amber); font-size: .65rem; font-weight: 800; }
.consent-reminder p { color: #7a541d; font-size: .66rem; }
.quality-summary { display: flex; align-items: center; gap: 13px; margin: 15px 0 10px; }
.quality-summary > div { display: grid; }
.quality-summary strong { font-size: .84rem; }
.quality-summary small { font-size: .65rem; }

.capture-app { display: grid; gap: 18px; }
.capture-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px; }
.capture-header .back-link { margin-bottom: 4px; }
.capture-header h2 { margin-bottom: 2px; font-size: 1.15rem; }
.capture-status { display: flex; align-items: center; gap: 10px; min-width: 210px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); }
.capture-status > div { display: grid; }
.capture-status strong { font-size: .72rem; }
.capture-status small { font-size: .62rem; }
.capture-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(330px,.68fr); gap: 18px; align-items: start; }
.capture-workspace { overflow: hidden; }
.capture-workspace__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--border); }
.capture-workspace__header p { font-size: .7rem; }
.protocol-selector { display: flex; gap: 8px; }
.protocol-selector label { display: grid; gap: 4px; }
.protocol-selector label > span { color: var(--ink-muted); font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.protocol-selector select { height: 34px; padding: 0 27px 0 9px; border: 1px solid var(--border); border-radius: 8px; color: var(--ink-soft); background: #fff; font-size: .66rem; }
.camera-stage { position: relative; aspect-ratio: 16/10; min-height: 470px; overflow: hidden; background: #071824; }
.camera-stage video, .camera-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.camera-stage video { opacity: 0; }
.camera-stage.is-streaming video { opacity: 1; }
.camera-stage canvas { z-index: 3; }
.camera-placeholder { position: absolute; inset: 0; z-index: 8; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; color: #dbe9ee; text-align: center; background: radial-gradient(circle at 50% 43%, #113e4d 0, #071b28 68%); }
.camera-placeholder__icon { display: grid; width: 68px; height: 68px; place-items: center; margin-bottom: 17px; border: 1px solid rgba(117,211,207,.26); border-radius: 21px; color: #83dfd5; background: rgba(52,194,180,.1); }
.camera-placeholder__icon svg { width: 32px; height: 32px; fill: currentColor; }
.camera-placeholder h4 { color: #fff; font-size: 1.1rem; }
.camera-placeholder p { max-width: 450px; margin-bottom: 19px; color: #99b8c2; font-size: .76rem; }
.camera-placeholder .button { margin: 4px; }
.upload-button input { display: none; }
.capture-guides { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.guide-line { position: absolute; display: block; opacity: .19; background: #b9e7e4; }
.guide-line--vertical { top: 8%; bottom: 8%; left: 50%; width: 1px; }
.guide-line--horizontal { top: 50%; right: 7%; left: 7%; height: 1px; }
.safe-frame { position: absolute; inset: 6% 15%; border: 1px dashed rgba(185,231,228,.35); border-radius: 50% 50% 18% 18% / 13% 13% 10% 10%; }
.camera-hud { position: absolute; right: 13px; left: 13px; z-index: 6; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.camera-hud--top { top: 12px; }
.camera-hud--bottom { bottom: 12px; }
.camera-hud span { padding: 6px 9px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; color: #d7ecef; background: rgba(4,18,27,.65); font-size: .62rem; font-weight: 680; backdrop-filter: blur(8px); }
.calibration-instruction { position: absolute; top: 50%; left: 50%; z-index: 12; display: grid; min-width: 330px; gap: 3px; padding: 12px 15px; border: 1px solid rgba(114,231,214,.42); border-radius: 12px; color: white; background: rgba(3,51,60,.91); text-align: center; transform: translate(-50%,-50%); box-shadow: var(--shadow-lg); pointer-events: none; }
.calibration-instruction strong { font-size: .78rem; }
.calibration-instruction span { color: #b9dedf; font-size: .67rem; }
.camera-toolbar { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 15px; border-top: 1px solid #163646; background: #0a2230; }
.camera-toolbar__group { display: flex; gap: 8px; }
.camera-toolbar .icon-button { color: #b4ced5; border-color: #284956; background: #102f3d; }
.camera-toolbar .button--secondary { color: #d5e6ea; border-color: #315260; background: #102f3d; }
.capture-panel { display: grid; align-content: start; gap: 13px; }
.capture-step { padding: 17px; transition: border-color .2s, box-shadow .2s; }
.capture-step.is-active { border-color: #acd8dc; box-shadow: 0 0 0 3px rgba(8,114,132,.06), var(--shadow-sm); }
.capture-step.is-complete { border-color: #bce1cd; }
.capture-step__header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.capture-step__header > div { min-width: 0; }
.capture-step__header h3 { margin-bottom: 0; }
.step-state { margin-left: auto; padding: 4px 7px; border-radius: 999px; color: var(--ink-muted); background: var(--surface-3); font-size: .58rem; font-weight: 780; white-space: nowrap; }
.capture-step.is-complete .step-state { color: var(--green); background: var(--green-soft); }
.quality-live-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.quality-live { display: grid; gap: 4px; padding: 9px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); }
.quality-live__label { display: flex; align-items: center; gap: 5px; color: var(--ink-muted); font-size: .57rem; font-weight: 690; }
.quality-live__label i { width: 6px; height: 6px; border-radius: 50%; background: #b7c3cc; }
.quality-live__label i.is-pass { background: var(--green); }
.quality-live__label i.is-warning { background: var(--amber); }
.quality-live__label i.is-fail { background: var(--red); }
.quality-live strong { font-size: .72rem; }
.mini-progress { height: 3px; overflow: hidden; border-radius: 999px; background: #e1e7eb; }
.mini-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--teal); transition: width .25s; }
.protocol-tip { display: flex; gap: 8px; margin-top: 11px; padding: 10px; border-radius: 9px; background: #f3f8fa; }
.protocol-tip svg { width: 17px; height: 17px; flex: 0 0 auto; fill: var(--teal); }
.protocol-tip p { font-size: .62rem; line-height: 1.4; }
.primary-result { display: flex; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid #cce3e5; border-radius: 11px; background: linear-gradient(135deg,#f0f9f9,#f8fbfc); }
.primary-result > div { display: grid; }
.primary-result small { font-size: .6rem; }
.primary-result strong { margin: 2px 0; font-size: 1.45rem; letter-spacing: -.04em; }
.primary-result strong span { color: var(--ink-muted); font-size: .7rem; }
.primary-result p { font-size: .6rem; }
.uncertainty-badge { height: max-content; padding: 4px 7px; border-radius: 999px; color: var(--blue); background: var(--blue-soft); font-size: .6rem; font-weight: 740; white-space: nowrap; }
.result-mini-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.result-mini-grid > div { display: grid; gap: 2px; padding: 8px; border: 1px solid var(--border); border-radius: 8px; }
.result-mini-grid small { font-size: .55rem; }
.result-mini-grid strong { font-size: .7rem; }
.quality-score-card { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; }
.quality-score-card > div { display: grid; }
.quality-score-card small { font-size: .59rem; }
.quality-score-card strong { font-size: .77rem; }
.quality-score-card p { margin-top: 2px; font-size: .57rem; }
.privacy-note { margin-top: 12px; padding: 10px; border-radius: 9px; background: var(--surface-2); }
.privacy-note span { color: var(--teal); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.privacy-note p { font-size: .61rem; }
.capture-step .button--block { margin-top: 13px; }
.capture-disclaimer { margin-top: 9px; font-size: .57rem; line-height: 1.4; text-align: center; }
.capture-toast { position: fixed; right: 25px; bottom: 25px; z-index: 100; max-width: 390px; padding: 13px 16px; border-radius: 11px; color: #fff; background: #122d3b; box-shadow: var(--shadow-lg); font-size: .76rem; font-weight: 650; }

.review-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding: 19px 21px; }
.review-header .back-link { margin-bottom: 5px; }
.review-header p { font-size: .7rem; }
.locked-chip { padding: 8px 10px; border: 1px solid #b7dec8; border-radius: 9px; color: var(--green); background: var(--green-soft); font-size: .67rem; font-weight: 700; }
.review-layout { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(390px,.75fr); gap: 18px; align-items: start; }
.review-evidence { display: grid; gap: 18px; }
.evidence-card { overflow: hidden; }
.ai-label, .clinical-label { display: inline-flex; align-items: center; min-height: 27px; padding: 0 9px; border: 1px solid #c6d8f3; border-radius: 999px; color: #315eaa; background: var(--blue-soft); font-size: .61rem; font-weight: 770; }
.clinical-label { color: var(--green); border-color: #b7dec8; background: var(--green-soft); }
.evidence-primary { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 22px; border-bottom: 1px solid var(--border); background: linear-gradient(135deg,#f1f9f9,#fff); }
.evidence-primary > div { display: grid; }
.evidence-primary small { font-size: .65rem; }
.evidence-primary strong { margin: 3px 0; font-size: 2rem; letter-spacing: -.045em; }
.evidence-primary strong span { color: var(--ink-muted); font-size: .85rem; }
.evidence-primary p { font-size: .68rem; }
.metric-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; }
.metric-review { display: grid; padding: 14px 16px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.metric-review:nth-child(3n) { border-right: 0; }
.metric-review span { color: var(--ink-muted); font-size: .59rem; }
.metric-review strong { margin-top: 3px; font-size: .78rem; }
.metric-review small { font-size: .56rem; }
.measurement-definition { margin: 18px; padding: 13px; border-radius: 10px; background: var(--amber-soft); }
.measurement-definition strong { color: #855718; font-size: .7rem; }
.measurement-definition p { margin-top: 3px; color: #775a31; font-size: .63rem; }
.quality-evidence { padding-bottom: 18px; }
.quality-criteria { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 18px; }
.quality-criteria > div { display: flex; align-items: center; gap: 9px; }
.quality-criteria > div > span:last-child { display: grid; }
.quality-criteria strong { font-size: .68rem; }
.quality-criteria small { font-size: .58rem; }
.criterion-state { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 8px; font-size: .66rem; font-weight: 850; }
.criterion-state--pass { color: var(--green); background: var(--green-soft); }
.criterion-state--warning { color: var(--amber); background: var(--amber-soft); }
.criterion-state--fail { color: var(--red); background: var(--red-soft); }
.criterion-state--unavailable { color: var(--ink-muted); background: var(--surface-3); }
.quality-evidence .detail-list { padding: 0 18px; }
.capture-thumbnail { display: grid; gap: 6px; margin: 15px 18px 0; overflow: hidden; border: 1px solid var(--border); border-radius: 10px; }
.capture-thumbnail img { width: 100%; max-height: 340px; object-fit: contain; background: #081923; }
.capture-thumbnail span { padding: 0 10px 9px; color: var(--teal); font-size: .63rem; font-weight: 700; }
.review-form-card { position: sticky; top: calc(var(--topbar) + 18px); overflow: hidden; }
.review-form-card__header { padding: 21px; border-bottom: 1px solid var(--border); background: #fbfcfd; }
.review-form-card__header p { font-size: .7rem; }
.review-form { padding: 20px; }
.stack-form { display: grid; gap: 15px; }
.locked-panel { display: grid; justify-items: center; padding: 55px 25px; text-align: center; }
.locked-panel__icon { display: grid; width: 55px; height: 55px; place-items: center; margin-bottom: 14px; border-radius: 50%; color: #fff; background: var(--green); font-size: 1.2rem; }
.locked-panel p { max-width: 340px; margin-bottom: 17px; }

.report-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.report-toolbar > div:first-child { display: flex; align-items: center; gap: 11px; }
.report-toolbar .back-link { margin: 0; }
.clinical-report { overflow: hidden; }
.clinical-report__header { display: grid; grid-template-columns: 1fr 1.3fr 1fr; align-items: center; gap: 20px; padding: 26px 28px; color: #d7ebef; background: linear-gradient(125deg,#082d3d,#0b4353); }
.report-brand { display: flex; align-items: center; gap: 10px; }
.report-brand .brand__mark { width: 38px; height: 38px; }
.report-brand .brand__mark svg { width: 25px; height: 25px; }
.report-brand > div { display: grid; }
.report-brand strong { color: #fff; font-size: .8rem; }
.report-brand small { color: #8eb6bf; font-size: .6rem; }
.report-title { text-align: center; }
.report-title > span { color: #64d5c8; font-size: .59rem; font-weight: 820; letter-spacing: .15em; }
.report-title h2 { margin: 5px 0 3px; color: #fff; font-size: 1.38rem; }
.report-title p { color: #88adb7; font-family: ui-monospace, monospace; font-size: .58rem; }
.report-state { display: flex; justify-self: end; align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(255,255,255,.06); }
.report-state > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.1); font-size: .68rem; }
.report-state > div { display: grid; }
.report-state strong { color: #fff; font-size: .67rem; }
.report-state small { color: #91b6bf; font-size: .55rem; }
.report-state--signed > span { color: #082f3b; background: #68d8b1; }
.report-patient-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); border-bottom: 1px solid var(--border); background: #f7f9fb; }
.report-patient-grid > div { display: grid; gap: 3px; padding: 15px 17px; border-right: 1px solid var(--border); }
.report-patient-grid > div:last-child { border-right: 0; }
.report-patient-grid span, .report-clinical-grid span, .clinical-finding-primary > span, .report-notes > span { color: var(--ink-muted); font-size: .57rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.report-patient-grid strong { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.amendment-banner { display: flex; gap: 12px; padding: 12px 25px; color: #855718; background: var(--amber-soft); font-size: .68rem; }
.report-section { padding: 25px 28px; border-bottom: 1px solid var(--border); }
.report-section__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.section-label { color: var(--teal); font-size: .6rem; font-weight: 820; letter-spacing: .11em; }
.report-section__heading h3 { margin: 4px 0 0; }
.report-highlight-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.report-highlight { display: grid; min-height: 122px; align-content: center; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: #fafcfd; }
.report-highlight > span { color: var(--ink-muted); font-size: .62rem; font-weight: 700; }
.report-highlight > strong { margin: 3px 0; font-size: 1.55rem; letter-spacing: -.04em; }
.report-highlight > strong small { font-size: .68rem; }
.report-highlight p { font-size: .59rem; }
.report-highlight--quality { border-color: #cce4d6; background: #f4faf6; }
.report-metric-table { overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; }
.report-metric-table table { width: 100%; border-collapse: collapse; }
.report-metric-table th { padding: 10px 13px; color: var(--ink-muted); background: #f5f8fa; font-size: .58rem; text-align: left; text-transform: uppercase; }
.report-metric-table td { padding: 10px 13px; border-top: 1px solid var(--border); color: var(--ink-soft); font-size: .67rem; }
.report-metric-table td strong, .report-metric-table td small { display: block; }
.report-metric-table td strong { color: var(--ink); font-size: .69rem; }
.report-metric-table td small { max-width: 430px; font-size: .56rem; }
.report-section--split { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; }
.report-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; border: 1px solid var(--border); border-radius: 11px; }
.report-detail-grid > div { padding: 11px 13px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.report-detail-grid > div:nth-child(2n) { border-right: 0; }
.report-detail-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.report-detail-grid dt { color: var(--ink-muted); font-size: .57rem; font-weight: 700; }
.report-detail-grid dd { margin: 2px 0 0; color: var(--ink); font-size: .68rem; font-weight: 680; }
.report-section--clinical { background: #fbfcfd; }
.report-empty { display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid #efd49c; border-radius: 11px; background: var(--amber-soft); }
.report-empty > span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: #fff; background: var(--amber); font-weight: 800; }
.report-empty strong { font-size: .76rem; }
.report-empty p { font-size: .65rem; }
.clinical-finding-primary { padding: 17px; border-left: 4px solid var(--green); border-radius: 0 11px 11px 0; background: #f1f8f4; }
.clinical-finding-primary p { margin-top: 6px; color: var(--ink); font-size: .78rem; line-height: 1.65; }
.report-clinical-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 13px; }
.report-clinical-grid > div { padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.report-clinical-grid strong, .report-clinical-grid p { display: block; margin-top: 4px; color: var(--ink); font-size: .7rem; line-height: 1.5; }
.report-notes { margin-top: 12px; padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.report-notes p { margin-top: 5px; font-size: .69rem; }
.report-signature { display: grid; grid-template-columns: auto minmax(0,1fr) minmax(250px,.7fr); align-items: center; gap: 17px; padding: 24px 28px; border-bottom: 1px solid var(--border); }
.signature-seal { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; color: #fff; background: var(--green); }
.report-signature h3 { margin: 3px 0; }
.report-signature p { font-size: .66rem; }
.report-signature small { display: block; max-width: 680px; margin-top: 5px; font-size: .57rem; }
.record-hash { display: grid; gap: 5px; justify-self: end; width: 100%; padding: 10px; border-radius: 9px; background: var(--surface-2); }
.record-hash span { color: var(--ink-muted); font-size: .56rem; font-weight: 700; }
.record-hash code { overflow: hidden; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.signature-pending { grid-column: 1/-1; padding: 13px; border-radius: 10px; background: var(--amber-soft); }
.signature-pending span { color: #835415; font-size: .72rem; font-weight: 750; }
.signature-pending p { font-size: .63rem; }
.report-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; padding: 18px 28px; background: #f5f8fa; }
.report-footer p { max-width: 850px; font-size: .57rem; line-height: 1.5; }
.report-footer span { color: var(--ink-muted); font-size: .55rem; white-space: nowrap; }
.record-actions { display: grid; gap: 15px; margin-top: 17px; }
.sign-card { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(420px,1fr); gap: 30px; padding: 22px; }
.sign-card > div p { font-size: .7rem; }
.sign-form { display: grid; gap: 12px; }
.sign-card--amend { border-color: #ddcfaa; }
.danger-zone { padding: 0 20px; border-color: #ecd2d7; }
.danger-zone summary { padding: 15px 0; color: var(--red); font-size: .72rem; font-weight: 720; cursor: pointer; }
.danger-zone form { display: flex; align-items: end; gap: 12px; padding: 0 0 18px; }
.danger-zone .field { flex: 1; }

.compare-patient-picker { overflow: hidden; }
.patient-picker-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--border); }
.patient-picker-grid > a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 18px; background: #fff; }
.patient-picker-grid > a:hover { background: #f8fbfc; }
.patient-picker-grid > a > span:nth-child(2) { display: grid; min-width: 0; }
.patient-picker-grid strong, .patient-picker-grid small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-picker-grid strong { font-size: .8rem; }
.patient-picker-grid small { font-size: .64rem; }
.patient-picker-grid svg { width: 18px; fill: var(--ink-muted); }
.compare-profile { display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px; padding: 17px 20px; }
.compare-profile h3 { margin-bottom: 1px; }
.comparison-selectors { display: grid; grid-template-columns: 1fr auto 1fr auto; align-items: end; gap: 14px; margin-bottom: 16px; padding: 18px; }
.compare-arrow { display: grid; width: 38px; height: 42px; place-items: center; color: var(--teal); }
.compare-arrow svg { width: 22px; fill: currentColor; }
.compare-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 16px; }
.compare-summary { display: grid; padding: 18px; }
.compare-summary > span { color: var(--ink-muted); font-size: .62rem; font-weight: 700; }
.compare-summary > strong { margin: 4px 0; font-size: 1.35rem; letter-spacing: -.035em; }
.compare-summary > strong small { font-size: .63rem; }
.compare-summary p { font-size: .61rem; }
.value-positive { color: var(--green) !important; }
.value-negative { color: var(--red) !important; }
.comparison-table-card { overflow: hidden; }
.compare-legend { display: flex; gap: 13px; color: var(--ink-muted); font-size: .61rem; }
.compare-legend span { display: flex; align-items: center; gap: 5px; }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; }
.legend-dot--a { background: #7fa9b4; }
.legend-dot--b { background: var(--teal); }
.comparison-table td:first-child strong, .comparison-table td:first-child small { display: block; }
.comparison-table td:first-child small { max-width: 340px; font-size: .56rem; }
.delta-value { font-weight: 750; }
.comparison-bars { display: grid; width: 110px; gap: 4px; }
.comparison-bar { display: block; width: var(--bar); min-width: 3px; height: 5px; border-radius: 999px; background: #7fa9b4; }
.comparison-bar--b { background: var(--teal); }

.segmented-control { display: flex; flex-wrap: wrap; gap: 3px; padding: 3px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
.segmented-control button { min-height: 31px; padding: 0 10px; border: 0; border-radius: 7px; color: var(--ink-muted); background: transparent; font-size: .65rem; font-weight: 720; cursor: pointer; }
.segmented-control button:hover { color: var(--ink); }
.segmented-control button.is-active { color: var(--teal-dark); background: #fff; box-shadow: 0 2px 7px rgba(20,54,71,.08); }
.quality-inline { display: flex; align-items: baseline; gap: 3px; }
.quality-dot { width: 8px; height: 8px; margin-right: 3px; border-radius: 50%; background: var(--amber); }
.quality-dot--excellent { background: var(--green); }
.quality-dot--acceptable { background: var(--teal); }
.quality-dot--retake { background: var(--red); }
.quality-inline strong { color: var(--ink); }

.integrity-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid; border-radius: 10px; font-size: .68rem; font-weight: 750; }
.integrity-badge > span { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; color: #fff; }
.integrity-badge--valid { color: var(--green); border-color: #b7dec8; background: var(--green-soft); }
.integrity-badge--valid > span { background: var(--green); }
.integrity-badge--invalid { color: var(--red); border-color: #e5bec5; background: var(--red-soft); }
.integrity-badge--invalid > span { background: var(--red); }
.audit-action { padding: 4px 7px; border-radius: 7px; color: #376674; background: #eef6f7; font-family: ui-monospace, monospace; font-size: .62rem; }
.hash-chip { padding: 4px 7px; border-radius: 7px; color: var(--violet); background: var(--violet-soft); font-family: ui-monospace, monospace; font-size: .59rem; }

.role-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 17px; }
.role-summary-grid article { display: grid; padding: 18px; }
.role-summary-grid span { color: var(--ink-muted); font-size: .62rem; font-weight: 700; }
.role-summary-grid strong { margin: 3px 0; font-size: 1.45rem; }
.role-summary-grid p { font-size: .61rem; }
.role-chip { display: inline-flex; width: max-content; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 8px; color: #496071; background: #edf2f5; font-size: .62rem; font-weight: 720; }
.role-chip--orthopedic_clinician { color: #245db6; background: var(--blue-soft); }
.role-chip--administrator { color: #6650b5; background: var(--violet-soft); }
.role-chip--prosthetist { color: #17735a; background: var(--green-soft); }
.role-chip--technician { color: #946018; background: var(--amber-soft); }
.modal { width: min(92vw,560px); max-width: none; padding: 0; border: 0; border-radius: 18px; background: transparent; box-shadow: var(--shadow-lg); }
.modal::backdrop { background: rgba(4,22,32,.55); backdrop-filter: blur(4px); }
.modal__panel { overflow: hidden; border-radius: 18px; background: #fff; }
.modal__panel > header { display: flex; align-items: center; justify-content: space-between; padding: 19px 21px; border-bottom: 1px solid var(--border); }
.modal__panel > header h3 { margin: 0; }
.modal__panel > .stack-form { padding: 21px; }
.modal__panel > footer { display: flex; justify-content: flex-end; gap: 9px; padding: 14px 21px; border-top: 1px solid var(--border); background: #f8fafb; }
.password-field { display: flex; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 9px; }
.password-field:focus-within { border-color: #6fa8b2; box-shadow: 0 0 0 3px rgba(8,114,132,.09); }
.password-field input { border: 0 !important; border-radius: 0; box-shadow: none !important; }
.password-field button { min-width: 70px; border: 0; border-left: 1px solid var(--border); color: var(--teal); background: #f5f8fa; font-size: .65rem; font-weight: 720; cursor: pointer; }

.settings-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 18px; align-items: start; }
.settings-main { display: grid; gap: 18px; }
.settings-side { position: sticky; top: calc(var(--topbar) + 18px); display: grid; gap: 13px; }
.radio-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.radio-card { display: flex; align-items: flex-start; gap: 9px; min-height: 118px; padding: 14px; border: 1px solid var(--border); border-radius: 11px; cursor: pointer; }
.radio-card:has(input:checked) { border-color: #89bec5; background: #f2f9f9; box-shadow: 0 0 0 2px rgba(8,114,132,.07); }
.radio-card input { margin-top: 3px; }
.radio-card > span { display: grid; }
.radio-card strong { font-size: .72rem; }
.radio-card small { margin-top: 4px; font-size: .61rem; line-height: 1.45; }
.immutable-policies { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.immutable-policies > div { display: flex; gap: 9px; padding: 12px; border: 1px solid #cce2d5; border-radius: 10px; background: #f4faf6; }
.immutable-policies > div > span { display: grid; width: 21px; height: 21px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-size: .6rem; }
.immutable-policies p { display: grid; }
.immutable-policies strong { color: var(--ink); font-size: .69rem; }
.immutable-policies small { margin-top: 2px; font-size: .59rem; }
.governance-card { padding: 20px; }
.governance-card h3 { margin-bottom: 5px; }

.auth-shell { color: #dcecf0; background: #071e2b; }
.auth-stage { display: grid; min-height: 100vh; grid-template-columns: minmax(460px,1.12fr) minmax(480px,.88fr); }
.auth-story { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 38px clamp(38px,5vw,75px); background: radial-gradient(circle at 78% 14%,rgba(45,199,181,.22),transparent 33%), radial-gradient(circle at 20% 80%,rgba(54,111,205,.17),transparent 38%), linear-gradient(145deg,#062637,#0a4051); }
.auth-story::before { position: absolute; top: 17%; right: 7%; width: 350px; height: 500px; border: 1px solid rgba(132,224,216,.11); border-radius: 50% 50% 30% 30%; content: ""; transform: rotate(8deg); }
.auth-story::after { position: absolute; right: -80px; bottom: -130px; width: 390px; height: 390px; border: 70px solid rgba(85,208,194,.035); border-radius: 50%; content: ""; }
.brand--light { position: relative; z-index: 2; }
.auth-story__content { position: relative; z-index: 2; max-width: 650px; margin: auto 0; padding: 70px 0; }
.story-kicker { color: #6cd7ca; font-size: .66rem; font-weight: 820; letter-spacing: .16em; }
.auth-story__content h1 { max-width: 630px; margin: 14px 0 19px; color: #fff; font-size: clamp(2.4rem,4vw,4.15rem); line-height: 1.03; letter-spacing: -.055em; }
.auth-story__content > p { max-width: 570px; color: #a9c5cc; font-size: .98rem; line-height: 1.7; }
.story-features { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 42px; }
.story-features > div { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.04); backdrop-filter: blur(8px); }
.story-features > div > span { color: #55d1c2; font-family: ui-monospace, monospace; font-size: .65rem; }
.story-features p { display: grid; }
.story-features strong { color: #eaf5f7; font-size: .7rem; }
.story-features small { margin-top: 3px; color: #85aab3; font-size: .58rem; line-height: 1.35; }
.auth-story__footer { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; color: #88b0ba; font-size: .67rem; }
.auth-panel { display: grid; place-items: center; padding: 40px; color: var(--ink); background: #f7f9fb; }
.login-card { width: min(100%,460px); padding: 35px; border: 1px solid var(--border); border-radius: 22px; background: #fff; box-shadow: var(--shadow-md); }
.login-card__heading { margin-bottom: 24px; }
.login-card__heading h2 { margin-bottom: 7px; font-size: 1.8rem; }
.login-card__heading p { font-size: .78rem; }
.demo-access { display: grid; gap: 7px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); }
.demo-access__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; color: var(--ink-muted); font-size: .65rem; font-weight: 720; }
.demo-account { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 54px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: #fafcfd; text-align: left; cursor: pointer; }
.demo-account:hover { border-color: #b1d2d6; background: #f1f8f9; }
.demo-account > span:first-child { display: grid; }
.demo-account strong { font-size: .68rem; }
.demo-account small { font-size: .57rem; }
.demo-account > span:last-child { color: var(--teal); font-size: .6rem; font-weight: 750; }
.login-security { display: flex; align-items: flex-start; gap: 8px; margin-top: 19px; padding: 11px; border-radius: 9px; background: #f2f7f8; }
.login-security svg { width: 17px; height: 17px; flex: 0 0 auto; fill: var(--teal); }
.login-security span { color: var(--ink-muted); font-size: .59rem; line-height: 1.45; }

@media (max-width: 1280px) {
    :root { --sidebar: 238px; }
    .main-content { padding-right: 25px; padding-left: 25px; }
    .content-grid--dashboard { grid-template-columns: minmax(0,1fr) 310px; }
    .assessment-row { grid-template-columns: auto minmax(140px,1fr) auto auto 17px; }
    .assessment-row .metric-brief { display: none; }
    .capture-layout { grid-template-columns: minmax(0,1.35fr) 350px; }
    .camera-stage { min-height: 420px; }
    .report-patient-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .report-patient-grid > div:nth-child(3n) { border-right: 0; }
    .report-patient-grid > div:nth-child(-n+3) { border-bottom: 1px solid var(--border); }
}

@media (max-width: 1080px) {
    .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .content-grid--dashboard, .content-grid--patient, .settings-layout { grid-template-columns: 1fr; }
    .dashboard-side { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .patient-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .settings-side { position: static; grid-template-columns: 1fr auto; align-items: end; }
    .capture-layout { grid-template-columns: 1fr; }
    .capture-panel { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .camera-stage { min-height: 520px; }
    .review-layout { grid-template-columns: 1fr; }
    .review-form-card { position: static; }
    .clinical-report__header { grid-template-columns: 1fr 1.2fr; }
    .report-state { display: none; }
    .report-highlight-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .report-signature { grid-template-columns: auto 1fr; }
    .record-hash { grid-column: 1/-1; justify-self: stretch; }
    .compare-summary-grid, .role-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .auth-stage { grid-template-columns: 1fr; }
    .auth-story { display: none; }
    .auth-panel { min-height: 100vh; }
}

@media (max-width: 820px) {
    :root { --topbar: 72px; }
    .sidebar { width: min(85vw,290px); transform: translateX(-105%); transition: transform .25s var(--ease); }
    body.sidebar-open .sidebar { transform: translateX(0); }
    .mobile-backdrop { position: fixed; inset: 0; z-index: 45; background: rgba(3,20,31,.52); backdrop-filter: blur(2px); }
    body.sidebar-open .mobile-backdrop { display: block; }
    .app-frame { margin-left: 0; }
    .mobile-menu { display: inline-grid !important; }
    .topbar { padding: 11px 18px; }
    .topbar .eyebrow { display: none; }
    .topbar h1 { font-size: 1.08rem; }
    .environment-badge, .user-menu__text { display: none; }
    .user-menu summary { min-width: 0; padding: 4px; }
    .main-content { padding: 22px 18px 60px; }
    .page-intro--split, .patient-hero, .review-header, .capture-header, .report-toolbar { align-items: flex-start; flex-direction: column; }
    .patient-hero, .review-header, .capture-header { display: flex; }
    .page-actions { width: 100%; }
    .page-actions .button { flex: 1; }
    .dashboard-side, .patient-sidebar, .capture-panel { grid-template-columns: 1fr; }
    .form-grid--3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .timeline-item { grid-template-columns: 14px 1fr auto; }
    .timeline-metrics, .timeline-item .status { display: none; }
    .camera-stage { min-height: 420px; }
    .capture-workspace__header { align-items: flex-start; flex-direction: column; }
    .protocol-selector { width: 100%; }
    .protocol-selector label { flex: 1; }
    .protocol-selector select { width: 100%; }
    .clinical-report__header { grid-template-columns: 1fr; text-align: center; }
    .report-brand { justify-content: center; }
    .report-title { grid-row: 1; }
    .report-brand { grid-row: 2; }
    .report-section--split { grid-template-columns: 1fr; }
    .report-signature { grid-template-columns: 1fr; text-align: center; }
    .signature-seal { justify-self: center; }
    .sign-card { grid-template-columns: 1fr; }
    .comparison-selectors { grid-template-columns: 1fr; }
    .compare-arrow { height: 20px; transform: rotate(90deg); }
    .settings-side { grid-template-columns: 1fr; }
    .radio-card-grid { grid-template-columns: 1fr; }
    .radio-card { min-height: 90px; }
}

@media (max-width: 600px) {
    body { font-size: 14px; }
    .main-content { padding-right: 13px; padding-left: 13px; }
    .stat-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
    .stat-card { min-height: 104px; padding: 13px; }
    .stat-card__icon { width: 38px; height: 38px; border-radius: 11px; }
    .stat-card__icon svg { width: 19px; }
    .stat-card strong { font-size: 1.35rem; }
    .stat-card small { display: none; }
    .card { border-radius: 15px; }
    .page-intro h2 { font-size: 1.45rem; }
    .assessment-row { grid-template-columns: auto 1fr auto 15px; padding: 11px 13px; }
    .assessment-row .quality-ring { display: none; }
    .status { font-size: .58rem; }
    .dashboard-side { display: block; }
    .dashboard-side > * { margin-bottom: 14px; }
    .form-grid--2, .form-grid--3 { grid-template-columns: 1fr; }
    .form-section { padding: 0 16px 18px; }
    .form-section__header { margin-right: -16px; margin-left: -16px; padding: 17px 16px; }
    .patient-hero__identity, .capture-patient { align-items: flex-start; }
    .patient-avatar--large { width: 48px; height: 48px; }
    .trend-summary { padding: 17px 17px 4px; }
    .trend-chart { padding-right: 15px; padding-left: 15px; }
    .timeline-item { padding: 12px 14px; }
    .camera-stage { min-height: 350px; aspect-ratio: 3/4; }
    .camera-toolbar { align-items: stretch; flex-direction: column; }
    .camera-toolbar__group { justify-content: space-between; }
    .camera-toolbar .button { flex: 1; }
    .icon-button--labeled span { display: none; }
    .capture-workspace__header, .capture-step { padding: 14px; }
    .capture-header .capture-status { width: 100%; }
    .quality-live-grid, .result-mini-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .calibration-instruction { min-width: 0; width: calc(100% - 30px); }
    .metric-review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .metric-review:nth-child(3n) { border-right: 1px solid var(--border); }
    .metric-review:nth-child(2n) { border-right: 0; }
    .quality-criteria { grid-template-columns: 1fr; }
    .clinical-report { border-radius: 0; margin-right: -13px; margin-left: -13px; }
    .clinical-report__header, .report-section, .report-signature { padding: 20px 16px; }
    .report-patient-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .report-patient-grid > div:nth-child(3n) { border-right: 1px solid var(--border); }
    .report-patient-grid > div:nth-child(2n) { border-right: 0; }
    .report-patient-grid > div:nth-child(-n+4) { border-bottom: 1px solid var(--border); }
    .report-highlight-grid, .report-clinical-grid { grid-template-columns: 1fr; }
    .report-detail-grid { grid-template-columns: 1fr; }
    .report-detail-grid > div { border-right: 0; border-bottom: 1px solid var(--border) !important; }
    .report-detail-grid > div:last-child { border-bottom: 0 !important; }
    .report-footer { align-items: flex-start; flex-direction: column; padding: 16px; }
    .danger-zone form { align-items: stretch; flex-direction: column; }
    .patient-picker-grid { grid-template-columns: 1fr; }
    .compare-summary-grid, .role-summary-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
    .compare-summary, .role-summary-grid article { padding: 13px; }
    .segmented-control { width: 100%; overflow-x: auto; flex-wrap: nowrap; }
    .table-toolbar { align-items: flex-start; flex-direction: column; }
    .immutable-policies { grid-template-columns: 1fr; }
    .auth-panel { padding: 18px; }
    .login-card { padding: 25px 20px; }
}

@media print {
    @page { size: letter; margin: .42in; }
    body { color: #111; background: #fff; font-size: 10pt; }
    .sidebar, .topbar, .no-print, .alert, .record-actions { display: none !important; }
    .app-frame { margin: 0; }
    .main-content { width: 100%; max-width: none; padding: 0; }
    .clinical-report { border: 0; border-radius: 0; box-shadow: none; }
    .clinical-report__header { padding: 16px 18px; background: #143b4a !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .report-section { break-inside: avoid; padding: 16px 18px; }
    .report-highlight { min-height: 90px; }
    .report-metric-table th, .report-metric-table td { padding: 6px 8px; }
    .report-footer { padding: 12px 18px; }
    a { text-decoration: none; }
}
