/* ===========================================================================
   EMRS — Electronic Medical Record System — "Records that remember
   everything." (prefix: emr-)
   UNIQUE PRESENTATION — nothing here mirrors other pages:
       · auto-writing chart hero: glass chart panel whose rows write
         themselves in sequence (hero DARK per house rule)
       · hex department grid: honeycomb tiles with centre core cell
       · care-journey zigzag: alternating stops with time chips
       · role × module access matrix (hover row/col highlight, perm glyphs)
       · interactive redaction demo: toggle masks identity fields live
       · appointment-card CTA with date block + slot chips
   LIGHT / DARK MIX: hero dark · light hex grid · dark journey ·
   light matrix · dark redaction · light appointment CTA.
   Light bands use dark ink #17093C + deepened accents.
   Palette on theme: navy #080A2B · magenta #B217BA · violet #7B2FF7
   · blue #2A7BFF · cyan #43D2E0 · gold #F0A400 · Afacad (global).
   Loaded only by templates/emrs.html.
   =========================================================================== */

.emr-hero,
.emr-hex,
.emr-journey,
.emr-matrix,
.emr-privacy,
.emr-cta {
    --emr-ink: #ffffff;
    --emr-mute: rgba(255, 255, 255, .74);
    --emr-faint: rgba(255, 255, 255, .46);
    --emr-line: rgba(255, 255, 255, .14);
    --emr-line-strong: rgba(255, 255, 255, .3);
    --emr-magenta: #b217ba;
    --emr-violet: #7b2ff7;
    --emr-blue: #2a7bff;
    --emr-cyan: #43d2e0;
    --emr-gold: #f0a400;
    --emr-green: #2ecc71;
    --emr-navy: #080a2b;
    --emr-grad: linear-gradient(90deg, #b217ba 0%, #2a7bff 100%);
    --emr-wrap: min(88%, 1280px);
    --emr-ease: cubic-bezier(.22, .61, .36, 1);
}

.emr-wrap {
    width: var(--emr-wrap);
    margin-inline: auto;
}

/* ------------------------------ reveal --------------------------------- */
.emr-rise {
    opacity: 1;
    transform: none;
}

.js .emr-rise {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .8s var(--emr-ease), transform .8s var(--emr-ease);
}

.js .emr-rise.is-in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {

    .js .emr-rise,
    .js .emr-rise.is-in {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ------------------------------ typography ------------------------------ */
.emr-eyebrow {
    display: inline-block;
    font-size: .82rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--emr-cyan);
    margin-bottom: 1.1rem;
}

.emr-head h2 {
    font-size: clamp(2.1rem, 4.6vw, 3.6rem);
    line-height: 1.06;
    font-weight: 700;
    margin-bottom: 1rem;
}

.emr-head h2 em {
    font-style: normal;
    background: var(--emr-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.emr-head p {
    max-width: 58ch;
    color: var(--emr-mute);
    font-size: 1.12rem;
}

.emr-crumb {
    display: flex;
    gap: .55rem;
    align-items: center;
    flex-wrap: wrap;
    font-size: .86rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--emr-faint);
    margin-bottom: 1.4rem;
}

.emr-crumb i {
    font-style: normal;
    color: var(--emr-line-strong);
}

.emr-crumb a:hover {
    color: var(--emr-cyan);
}

.emr-crumb b {
    color: var(--emr-cyan);
    font-weight: 600;
}

/* buttons */
.emr-btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .95rem 1.9rem;
    border-radius: 999px;
    font-size: 1.05rem;
    font-weight: 600;
    transition: transform .35s var(--emr-ease), box-shadow .35s var(--emr-ease), background .35s;
}

.emr-btn--fill {
    background: var(--emr-grad);
    color: #fff;
    box-shadow: 0 14px 38px rgba(178, 23, 186, .38);
}

.emr-btn--fill:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 52px rgba(42, 123, 255, .45);
}

.emr-btn--ghost {
    border: 1px solid var(--emr-line-strong);
    color: var(--emr-ink);
    background: rgba(255, 255, 255, .04);
}

.emr-btn--ghost:hover {
    transform: translateY(-3px);
    border-color: var(--emr-cyan);
    background: rgba(67, 210, 224, .12);
}

/* ================== 1 · AUTO-WRITING CHART HERO (dark) ================= */
.emr-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 11rem 0 6rem;
    /* HERO RULE: heroes stay dark on every generated page */
    background:
        radial-gradient(900px 540px at 80% 14%, rgba(46, 204, 113, .14), transparent 58%),
        radial-gradient(760px 500px at 8% 92%, rgba(178, 23, 186, .22), transparent 58%),
        linear-gradient(165deg, #0e1230 0%, var(--emr-navy) 55%, #05061c 100%);
    overflow: hidden;
}

.emr-hero__in {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 4rem;
    align-items: center;
}

.emr-hero__title {
    font-size: clamp(3rem, 6.6vw, 5.6rem);
    line-height: 1.02;
    font-weight: 700;
    margin-bottom: 1.6rem;
}

.emr-hero__title em {
    font-style: normal;
    background: linear-gradient(90deg, #8dffc8, #7bd7ff 55%, #b7a4ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.emr-hero__sub {
    max-width: 54ch;
    font-size: 1.2rem;
    color: var(--emr-mute);
    margin-bottom: 2.2rem;
}

.emr-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2.6rem;
}

.emr-specs {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.emr-specs li {
    padding: .55rem 1.15rem;
    border-radius: 999px;
    border: 1px solid var(--emr-line);
    background: rgba(255, 255, 255, .05);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    font-size: .9rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--emr-mute);
    transition: transform .3s var(--emr-ease), border-color .3s;
}

.emr-specs li:hover {
    transform: translateY(-3px);
    border-color: rgba(46, 204, 113, .5);
}

/* chart panel */
.emr-chart {
    position: relative;
    border: 1px solid rgba(46, 204, 113, .3);
    border-radius: 22px;
    background: rgba(255, 255, 255, .05);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    box-shadow: 0 32px 80px rgba(2, 3, 16, .5);
    overflow: hidden;
}

.emr-chart__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.15rem 1.55rem;
    border-bottom: 1px solid var(--emr-line);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .86rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.emr-chart__mrn {
    color: var(--emr-faint);
}

.emr-chart__sync {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--emr-green);
}

.emr-live {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--emr-green);
    box-shadow: 0 0 10px rgba(46, 204, 113, .9);
    animation: emrPulse 2s ease-in-out infinite;
}

@keyframes emrPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .35;
    }
}

/* rows write themselves */
.emr-chart__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1.2rem;
    padding: 1.05rem 1.55rem;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    overflow: hidden;
}

.emr-chart__row span {
    font-size: .82rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--emr-faint);
}

.emr-chart__row b {
    font-size: 1.02rem;
    color: var(--emr-ink);
    white-space: nowrap;
}

.emr-chart__alert {
    color: #ff8fae !important;
}

.js .emr-chart__row b {
    opacity: 0;
    transform: translateX(14px);
    transition: opacity .5s ease, transform .5s var(--emr-ease);
}

.js .emr-chart.is-written .emr-chart__row b {
    opacity: 1;
    transform: none;
}

.emr-chart.is-written .emr-chart__row[data-w="0"] b { transition-delay: .15s; }
.emr-chart.is-written .emr-chart__row[data-w="1"] b { transition-delay: .5s; }
.emr-chart.is-written .emr-chart__row[data-w="2"] b { transition-delay: .85s; }
.emr-chart.is-written .emr-chart__row[data-w="3"] b { transition-delay: 1.2s; }
.emr-chart.is-written .emr-chart__row[data-w="4"] b { transition-delay: 1.55s; }
.emr-chart.is-written .emr-chart__row[data-w="5"] b { transition-delay: 1.9s; }

.emr-chart__foot {
    display: flex;
    justify-content: space-between;
    padding: 1.05rem 1.55rem;
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .82rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--emr-faint);
}

.emr-chart__ok {
    color: var(--emr-green);
}

/* ======================== 2 · HEX DEPARTMENT GRID ====================== */
.emr-hex {
    --emr-ink: #17093c;
    --emr-mute: rgba(23, 9, 60, .74);
    --emr-faint: rgba(23, 9, 60, .5);
    --emr-line: rgba(23, 9, 60, .12);
    --emr-line-strong: rgba(23, 9, 60, .28);
    color: var(--emr-ink);
    background: linear-gradient(180deg, #f7f2fd 0%, #ece2f8 100%);
    padding: 7rem 0 8rem;
}

.emr-hex .emr-eyebrow,
.emr-matrix .emr-eyebrow {
    color: #0e8494;
}

.emr-hex .emr-head,
.emr-matrix .emr-head {
    margin-bottom: 3.6rem;
}

.emr-honey {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.15rem;
}

.emr-cell {
    --c: var(--emr-magenta);
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .35rem;
    padding: 1.85rem 1.75rem;
    clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
    background: #fff;
    border: 0;
    box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--c) 32%, transparent);
    transition: transform .4s var(--emr-ease), box-shadow .4s, background .4s;
}

.emr-cell:hover {
    transform: translateY(-6px);
    background: color-mix(in srgb, var(--c) 9%, #fff);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--c) 58%, transparent),
        0 22px 48px color-mix(in srgb, var(--c) 18%, rgba(23, 9, 60, .16));
}

.emr-cell--lg {
    grid-column: span 2;
    clip-path: polygon(4% 0, 96% 0, 100% 50%, 96% 100%, 4% 100%, 0 50%);
    background: linear-gradient(120deg, color-mix(in srgb, var(--emr-magenta) 12%, #fff),
            color-mix(in srgb, var(--emr-blue) 12%, #fff));
}

.emr-cell b {
    font-size: 1.32rem;
}

.emr-cell--lg b {
    font-size: 1.75rem;
    background: var(--emr-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.emr-cell span {
    font-size: .97rem;
    color: var(--emr-mute);
}

/* =========================== 3 · CARE JOURNEY ========================== */
.emr-journey {
    background:
        radial-gradient(860px 460px at 84% 10%, rgba(46, 204, 113, .1), transparent 55%),
        linear-gradient(180deg, #10123a 0%, #0a0b2e 100%);
    padding: 7rem 0 8rem;
}

.emr-journey .emr-head {
    margin-bottom: 3.8rem;
}

/* zigzag: alternating sides around a centre rail */
.emr-zig {
    list-style: none;
    position: relative;
    max-width: 980px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
}

.emr-zig::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 8px;
    bottom: 8px;
    width: 2px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, var(--emr-magenta), var(--emr-blue), var(--emr-cyan));
    opacity: .5;
}

.emr-stop {
    position: relative;
    width: 46%;
    padding: 1.85rem 2rem;
    border: 1px solid var(--emr-line);
    border-radius: 22px;
    background: rgba(255, 255, 255, .045);
    transition: transform .45s var(--emr-ease), border-color .45s;
}

.emr-stop:nth-child(odd) {
    align-self: flex-start;
}

.emr-stop:nth-child(even) {
    align-self: flex-end;
}

.emr-stop:hover {
    transform: translateY(-6px);
    border-color: rgba(46, 204, 113, .45);
}

/* node dot on the rail */
.emr-stop::after {
    content: "";
    position: absolute;
    top: 2.2rem;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2.5px solid var(--emr-cyan);
    background: var(--emr-navy);
    box-shadow: 0 0 16px rgba(67, 210, 224, .55);
}

.emr-stop:nth-child(odd)::after {
    right: calc(-9% - 7px);
}

.emr-stop:nth-child(even)::after {
    left: calc(-9% - 7px);
}

.emr-stop__chip {
    display: inline-block;
    padding: .36rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--emr-line-strong);
    background: rgba(255, 255, 255, .05);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .8rem;
    letter-spacing: .12em;
    color: var(--emr-cyan);
    margin-bottom: .95rem;
}

.emr-stop b {
    display: block;
    font-size: 1.42rem;
    margin-bottom: .6rem;
}

.emr-stop p {
    color: var(--emr-mute);
    line-height: 1.66;
}

/* =========================== 4 · ACCESS MATRIX ========================= */
.emr-matrix {
    --emr-ink: #17093c;
    --emr-mute: rgba(23, 9, 60, .74);
    --emr-faint: rgba(23, 9, 60, .5);
    --emr-line: rgba(23, 9, 60, .12);
    --emr-line-strong: rgba(23, 9, 60, .28);
    color: var(--emr-ink);
    background: linear-gradient(180deg, #ece2f8 0%, #f7f2fd 100%);
    padding: 7rem 0;
}

.emr-grid-wrap {
    border: 1px solid rgba(23, 9, 60, .12);
    border-radius: 22px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 18px 44px rgba(23, 9, 60, .08);
}

.emr-grid__row {
    display: grid;
    grid-template-columns: 1.3fr repeat(6, 1fr);
    align-items: center;
    border-bottom: 1px solid rgba(23, 9, 60, .08);
    transition: background .3s;
}

.emr-grid__row:last-child {
    border-bottom: 0;
}

.emr-grid__row:not(.emr-grid__row--head):hover {
    background: rgba(178, 23, 186, .06);
}

.emr-grid__row--head {
    background: rgba(23, 9, 60, .04);
}

.emr-grid__row--head span {
    padding: 1.15rem .9rem;
    font-size: .82rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--emr-faint);
    text-align: center;
}

.emr-grid__row--head span:first-child {
    text-align: left;
}

.emr-grid__row b {
    padding: 1.15rem 1.25rem;
    font-size: 1.06rem;
    border-right: 1px solid rgba(23, 9, 60, .08);
}

/* permission glyphs */
.emr-perm {
    display: block;
    text-align: center;
    padding: 1.1rem 0;
    font-style: normal;
    font-size: 1.18rem;
    line-height: 1;
    transition: transform .3s var(--emr-ease), background .3s;
    cursor: default;
}

.emr-perm:hover {
    transform: scale(1.35);
    background: rgba(178, 23, 186, .07);
}

.emr-perm--full {
    color: var(--emr-magenta);
}

.emr-perm--view {
    color: var(--emr-blue);
}

.emr-perm--none {
    color: rgba(23, 9, 60, .28);
}

.emr-legend {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.6rem;
    margin-top: 1.6rem;
    font-size: .98rem;
    color: var(--emr-mute);
}

.emr-legend li {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.emr-legend .emr-perm {
    display: inline;
    padding: 0;
    font-size: 1.05rem;
}

.emr-legend__note {
    margin-left: auto;
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .84rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--emr-faint);
}

/* ========================== 5 · REDACTION DEMO ========================= */
.emr-privacy {
    background:
        radial-gradient(820px 440px at 16% 12%, rgba(178, 23, 186, .16), transparent 58%),
        linear-gradient(180deg, #0a0b2e 0%, #130c33 100%);
    padding: 7rem 0 8rem;
}

.emr-privacy__in {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    gap: 4rem;
    align-items: center;
}

.emr-privacy__copy>p {
    color: var(--emr-mute);
    font-size: 1.12rem;
    line-height: 1.7;
    margin: 1.6rem 0;
    max-width: 54ch;
}

.emr-checks {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: .95rem;
    margin-bottom: 2.2rem;
}

.emr-checks li {
    position: relative;
    padding-left: 2.3rem;
    font-size: 1.05rem;
    color: var(--emr-ink);
}

.emr-checks li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--emr-magenta), var(--emr-blue));
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
}

/* toggle */
.emr-toggle {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1.35rem .75rem .85rem;
    border-radius: 999px;
    border: 1px solid var(--emr-line-strong);
    background: rgba(255, 255, 255, .05);
    color: var(--emr-ink);
    font-family: inherit;
    font-size: 1.02rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .3s, background .3s;
}

.emr-toggle:hover {
    border-color: var(--emr-cyan);
    background: rgba(67, 210, 224, .1);
}

.emr-toggle__knob {
    position: relative;
    width: 58px;
    height: 30px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .16);
    transition: background .35s;
}

.emr-toggle__knob::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    transition: transform .35s var(--emr-ease);
}

.emr-toggle[aria-pressed="true"] .emr-toggle__knob {
    background: linear-gradient(90deg, var(--emr-magenta), var(--emr-blue));
}

.emr-toggle[aria-pressed="true"] .emr-toggle__knob::after {
    transform: translateX(28px);
}

/* record card */
.emr-record {
    margin: 0;
    border: 1px solid var(--emr-line-strong);
    border-radius: 22px;
    background: rgba(255, 255, 255, .05);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    overflow: hidden;
    box-shadow: 0 32px 80px rgba(2, 3, 16, .5);
}

.emr-record__cap {
    padding: 1rem 1.6rem;
    border-bottom: 1px solid var(--emr-line);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .82rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--emr-faint);
}

.emr-record__body {
    padding: 1.4rem 1.6rem;
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.emr-field {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1.2rem;
    padding: .85rem 1.15rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, .045);
}

.emr-field span {
    font-size: .8rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--emr-faint);
    white-space: nowrap;
}

.emr-field b {
    font-size: 1.02rem;
    text-align: right;
    position: relative;
}

/* redaction bar sweeps over identity values */
.emr-redact::after {
    content: "";
    position: absolute;
    inset: -.15em -.35em;
    border-radius: 4px;
    background: #0c0c1a;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--emr-ease);
}

.emr-record.is-redacted .emr-redact::after {
    transform: scaleX(1);
}

.emr-record__foot {
    padding: 1rem 1.6rem;
    border-top: 1px solid var(--emr-line);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .84rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* ====================== 6 · APPOINTMENT CARD CTA ====================== */
.emr-cta {
    --emr-ink: #17093c;
    --emr-mute: rgba(23, 9, 60, .74);
    --emr-faint: rgba(23, 9, 60, .5);
    --emr-line: rgba(23, 9, 60, .12);
    --emr-line-strong: rgba(23, 9, 60, .28);
    color: var(--emr-ink);
    background: #f3edfc;
    padding: 7rem 0;
}

.emr-appt {
    display: grid;
    grid-template-columns: 260px 1fr;
    border-radius: 28px;
    overflow: hidden;
    border: 1px solid rgba(23, 9, 60, .14);
    background: #fff;
    box-shadow: 0 30px 70px rgba(23, 9, 60, .14);
}

.emr-appt__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: 3.2rem 1.6rem;
    background:
        radial-gradient(320px 240px at 30% 18%, rgba(178, 23, 186, .32), transparent 62%),
        linear-gradient(160deg, #2c0a5e, #0b1440);
    color: #fff;
}

.emr-appt__mon {
    letter-spacing: .34em;
    text-transform: uppercase;
    font-size: .92rem;
    color: rgba(255, 255, 255, .72);
}

.emr-appt__date b {
    font-size: 5.2rem;
    line-height: 1;
    background: linear-gradient(180deg, #fff, #9be8ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.emr-appt__min {
    letter-spacing: .22em;
    text-transform: uppercase;
    font-size: .82rem;
    color: rgba(255, 255, 255, .6);
}

.emr-appt__main {
    padding: 3.6rem 3.4rem;
}

.emr-appt__main h2 {
    font-size: clamp(2rem, 4vw, 3.1rem);
    line-height: 1.08;
    margin-bottom: 1rem;
}

.emr-appt__main h2 em {
    font-style: normal;
    background: var(--emr-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.emr-appt__main p {
    color: var(--emr-mute);
    font-size: 1.13rem;
    margin-bottom: 1.9rem;
    max-width: 54ch;
}

.emr-slots {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 2.2rem;
}

.emr-slots button {
    padding: .72rem 1.45rem;
    border-radius: 14px;
    border: 1.5px solid rgba(23, 9, 60, .2);
    background: #fff;
    color: var(--emr-ink);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 1.02rem;
    cursor: pointer;
    transition: all .3s;
}

.emr-slots button:hover,
.emr-slots button.is-active {
    border-color: var(--emr-magenta);
    background: color-mix(in srgb, var(--emr-magenta) 10%, #fff);
    transform: translateY(-3px);
}

.emr-appt__row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

@media (prefers-reduced-motion: reduce) {

    .emr-live {
        animation: none;
    }

    .js .emr-chart__row b {
        opacity: 1;
        transform: none;
    }
}

/* ============================== RESPONSIVE ============================= */
@media (max-width: 1100px) {
    .emr-hero__in {
        grid-template-columns: 1fr;
    }

    .emr-honey {
        grid-template-columns: repeat(2, 1fr);
    }

    .emr-cell--lg {
        grid-column: span 2;
    }

    .emr-zig::before {
        left: 8px;
        transform: none;
    }

    .emr-stop {
        width: 100%;
        align-self: stretch !important;
        margin-left: 2.4rem;
    }

    .emr-stop:nth-child(odd)::after,
    .emr-stop:nth-child(even)::after {
        left: calc(-2.4rem - 7px);
        right: auto;
    }

    .emr-privacy__in {
        grid-template-columns: 1fr;
    }

    .emr-appt {
        grid-template-columns: 1fr;
    }

    .emr-appt__date {
        padding: 2.2rem;
    }
}

@media (max-width: 760px) {
    .emr-hero {
        padding: 9.5rem 0 4.5rem;
    }

    .emr-honey {
        grid-template-columns: 1fr;
    }

    .emr-cell,
    .emr-cell--lg {
        grid-column: auto;
        clip-path: polygon(4% 0, 96% 0, 100% 50%, 96% 100%, 4% 100%, 0 50%);
    }

    .emr-grid__row {
        grid-template-columns: 1.2fr repeat(6, .75fr);
    }

    .emr-grid__row b {
        padding: .85rem .6rem;
        font-size: .92rem;
    }

    .emr-perm {
        padding: .85rem 0;
        font-size: 1rem;
    }

    .emr-legend__note {
        margin-left: 0;
    }

    .emr-appt__main {
        padding: 2.4rem 1.6rem;
    }

    .emr-chart__row {
        flex-direction: column;
        gap: .3rem;
    }

    .emr-chart__row b {
        white-space: normal;
    }
}


/* ========================================================================
   EMRS 2026 experience refinement · hero field + shared chart + access lens
   ======================================================================== */
.emr-kicker{margin:0 0 .7rem;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#6d28d9}

/* hero clinical data field */
.emr-hero{--emr-px:72%;--emr-py:26%;isolation:isolate}
.emr-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(420px circle at var(--emr-px) var(--emr-py),rgba(67,210,224,.12),transparent 72%),radial-gradient(600px circle at var(--emr-px) var(--emr-py),rgba(123,47,247,.1),transparent 76%);transition:background .25s ease}
.emr-hero__field{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:.88}
.emr-hero__network{width:100%;height:100%;display:block;transform:translate3d(var(--emr-fx,0),var(--emr-fy,0),0) scale(1.03);transition:transform .8s cubic-bezier(.22,1,.36,1)}
.emr-hero__mesh{fill:none;stroke:rgba(160,196,255,.085);stroke-width:1}
.emr-hero__ecg{fill:none;stroke:url(#emrPulseGrad);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16 84;animation:emrEcgTravel 5.8s linear infinite;filter:drop-shadow(0 0 6px rgba(67,210,224,.32))}
@keyframes emrEcgTravel{to{stroke-dashoffset:-200}}
.emr-hero__nodes circle{fill:#43d2e0;opacity:.38;animation:emrNodePing 3.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.emr-hero__nodes circle:nth-child(2){animation-delay:-.7s}.emr-hero__nodes circle:nth-child(3){animation-delay:-1.4s}.emr-hero__nodes circle:nth-child(4){animation-delay:-2.1s}.emr-hero__nodes circle:nth-child(5){animation-delay:-2.8s}.emr-hero__nodes circle:nth-child(6){animation-delay:-3.5s}
@keyframes emrNodePing{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.9;transform:scale(1.8)}}
.emr-hero__packet{position:absolute;padding:.42rem .78rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(8,10,43,.62);backdrop-filter:blur(10px);font:700 .68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:rgba(225,239,255,.75);animation:emrPacketFloat 8s ease-in-out infinite}
.emr-hero__packet--lab{top:25%;right:9%}.emr-hero__packet--rx{bottom:22%;right:28%;animation-delay:-2.8s}.emr-hero__packet--vitals{top:44%;left:48%;animation-delay:-5.2s}
@keyframes emrPacketFloat{0%,100%{transform:translate3d(0,0,0);opacity:.45}50%{transform:translate3d(0,-18px,0);opacity:.9}}
.emr-hero__in{z-index:2}

/* Shared Chart Constellation */
.emr-constellation{padding:clamp(5rem,8vh,7rem) 0;min-height:100svh;display:flex;align-items:center;background:linear-gradient(180deg,#f8f5ff 0%,#eef3ff 100%)}
.emr-constellation__head,.emr-access__head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(2rem,4vh,3.25rem)!important}
.emr-constellation__head>p,.emr-access__head>p{margin:0;color:rgba(23,9,60,.65);font-size:1.04rem;line-height:1.65;max-width:48ch}
.emr-constellation__shell{display:grid;grid-template-columns:minmax(500px,1.22fr) minmax(340px,.78fr);gap:1.25rem;align-items:stretch}
.emr-constellation__orbit{position:relative;min-height:520px;border:1px solid rgba(23,9,60,.1);border-radius:32px;background:radial-gradient(circle at 50% 48%,rgba(123,47,247,.09),transparent 34%),rgba(255,255,255,.72);box-shadow:0 28px 65px rgba(48,25,99,.1);overflow:hidden}
.emr-constellation__orbit::before{content:"";position:absolute;inset:11%;border:1px dashed rgba(123,47,247,.22);border-radius:50%}
.emr-constellation__links{position:absolute;inset:7% 5%;width:90%;height:86%;overflow:visible}
.emr-constellation__links line{stroke:rgba(123,47,247,.14);stroke-width:1.2;stroke-dasharray:5 8;transition:stroke .3s,stroke-width .3s}
.emr-dept{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:3;width:104px;min-height:64px;padding:.65rem .55rem;border-radius:18px;border:1px solid rgba(23,9,60,.12);background:rgba(255,255,255,.92);color:#17093c;box-shadow:0 10px 28px rgba(23,9,60,.08);font:inherit;cursor:pointer;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s,background .3s}
.emr-dept:hover,.emr-dept:focus-visible{transform:translate(-50%,-50%) translateY(-4px);border-color:rgba(123,47,247,.45);box-shadow:0 16px 34px rgba(123,47,247,.14)}
.emr-dept.is-active{background:linear-gradient(135deg,#7b2ff7,#2a7bff);color:#fff;border-color:transparent;box-shadow:0 16px 38px rgba(86,72,235,.28)}
.emr-dept b,.emr-dept span{display:block}.emr-dept b{font-size:.96rem}.emr-dept span{margin-top:.12rem;font-size:.75rem;opacity:.7}.emr-dept.is-active span{opacity:.82}
.emr-patient-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;width:min(280px,42%);padding:1.25rem;border:1px solid rgba(123,47,247,.18);border-radius:24px;background:linear-gradient(165deg,#14083a,#080a2b);color:#fff;box-shadow:0 26px 60px rgba(20,8,58,.28)}
.emr-patient-core__top,.emr-patient-core__status{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font:700 .65rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:rgba(220,232,255,.62)}
.emr-patient-core__top i{width:7px;height:7px;border-radius:50%;background:#43d2e0;box-shadow:0 0 12px #43d2e0;margin-left:auto}
.emr-patient-core__identity{padding:1rem 0 .85rem;border-bottom:1px solid rgba(255,255,255,.1)}.emr-patient-core__identity strong{display:block;font-size:1.45rem}.emr-patient-core__identity small{color:rgba(225,235,255,.62)}
.emr-patient-core__vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.85rem 0}.emr-patient-core__vitals span{padding:.55rem;border-radius:12px;background:rgba(255,255,255,.06)}.emr-patient-core__vitals small,.emr-patient-core__vitals b{display:block}.emr-patient-core__vitals small{font-size:.62rem;letter-spacing:.12em;color:#43d2e0}.emr-patient-core__vitals b{font-size:.92rem;margin-top:.15rem}.emr-patient-core__status{padding-top:.25rem}.emr-patient-core__status span{color:#fff;letter-spacing:0}
.emr-constellation__detail{padding:clamp(1.8rem,3vw,2.5rem);border-radius:32px;background:#fff;border:1px solid rgba(23,9,60,.09);box-shadow:0 28px 65px rgba(48,25,99,.09);display:flex;flex-direction:column;justify-content:center;min-width:0}
.emr-constellation__label,.emr-access__eyebrow{margin:0 0 .75rem;font:800 .72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;text-transform:uppercase;color:#7b2ff7}
.emr-constellation__detail h3,.emr-access__summary h3{font-size:clamp(1.7rem,2.5vw,2.4rem);line-height:1.08;margin:0 0 1rem;color:#17093c}.emr-constellation__detail>p:not(.emr-constellation__label),.emr-access__summary>p:not(.emr-access__eyebrow){color:rgba(23,9,60,.68);line-height:1.65;margin:0 0 1.4rem}
.emr-constellation__flow{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;align-items:center;padding:1rem 0;border-top:1px solid rgba(23,9,60,.08);border-bottom:1px solid rgba(23,9,60,.08)}.emr-constellation__flow div{min-width:0}.emr-constellation__flow small,.emr-constellation__flow strong{display:block}.emr-constellation__flow small{font-size:.72rem;color:rgba(23,9,60,.5);text-transform:uppercase;letter-spacing:.09em}.emr-constellation__flow strong{margin-top:.3rem;font-size:.93rem;color:#24104c}.emr-constellation__flow>span{color:#7b2ff7;font-size:1.3rem}
.emr-constellation__proof{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:1.25rem}.emr-constellation__proof span{padding:.8rem;border-radius:14px;background:#f7f4ff}.emr-constellation__proof b,.emr-constellation__proof small{display:block}.emr-constellation__proof b{font-size:1.15rem;color:#4d2db7}.emr-constellation__proof small{font-size:.7rem;color:rgba(23,9,60,.55)}

/* Role access lens */
.emr-access{padding:clamp(5rem,8vh,7rem) 0;min-height:100svh;display:flex;align-items:center;background:linear-gradient(180deg,#eef3ff 0%,#f9f6ff 100%)}
.emr-access__lab{display:grid;grid-template-columns:190px minmax(0,1fr) minmax(300px,.72fr);gap:1rem;align-items:stretch}
.emr-access__roles{display:grid;gap:.55rem;align-content:center}.emr-access__roles button{width:100%;text-align:left;padding:.9rem 1rem;border:1px solid rgba(23,9,60,.1);border-radius:15px;background:rgba(255,255,255,.78);color:#17093c;font:inherit;cursor:pointer;transition:.25s ease}.emr-access__roles button span,.emr-access__roles button small{display:block}.emr-access__roles button span{font-weight:800}.emr-access__roles button small{margin-top:.12rem;color:rgba(23,9,60,.5);font-size:.76rem}.emr-access__roles button:hover{transform:translateX(4px);border-color:rgba(123,47,247,.36)}.emr-access__roles button.is-active{background:#17093c;color:#fff;border-color:#17093c;box-shadow:0 14px 30px rgba(23,9,60,.18)}.emr-access__roles button.is-active small{color:rgba(255,255,255,.6)}
.emr-access__chart{border:1px solid rgba(23,9,60,.1);border-radius:26px;background:#fff;box-shadow:0 24px 60px rgba(48,25,99,.08);overflow:hidden;display:flex;flex-direction:column;min-width:0}.emr-access__chartbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.15rem 1.3rem;background:#17093c;color:#fff}.emr-access__chartbar strong,.emr-access__chartbar small{display:block}.emr-access__chartbar small{color:rgba(255,255,255,.58);font-size:.75rem}.emr-access__chartbar>span{padding:.42rem .7rem;border-radius:999px;background:rgba(67,210,224,.14);border:1px solid rgba(67,210,224,.25);color:#9ff4ff;font:700 .68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em;white-space:nowrap}
.emr-access__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;flex:1}.emr-access__fields section{position:relative;padding:1rem 1.15rem;border-right:1px solid rgba(23,9,60,.07);border-bottom:1px solid rgba(23,9,60,.07);min-height:116px;transition:opacity .25s,filter .25s,background .25s}.emr-access__fields section:nth-child(2n){border-right:0}.emr-access__fields section:nth-last-child(-n+2){border-bottom:0}.emr-access__fields span,.emr-access__fields strong,.emr-access__fields small{display:block}.emr-access__fields span{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7b2ff7}.emr-access__fields strong{margin:.45rem 0 .28rem;color:#17093c;font-size:1.02rem}.emr-access__fields small{color:rgba(23,9,60,.5)}.emr-access__fields section[data-access="edit"]{background:linear-gradient(135deg,rgba(123,47,247,.055),rgba(42,123,255,.035))}.emr-access__fields section[data-access="view"]::after,.emr-access__fields section[data-access="lock"]::after{position:absolute;right:.75rem;top:.7rem;padding:.24rem .42rem;border-radius:999px;font:800 .58rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.emr-access__fields section[data-access="view"]::after{content:"VIEW";background:#eaf4ff;color:#2466c9}.emr-access__fields section[data-access="lock"]{opacity:.42;filter:grayscale(.35)}.emr-access__fields section[data-access="lock"]::after{content:"SEALED";background:#f0edf6;color:#756b89}.emr-access__audit{display:flex;align-items:center;gap:.55rem;padding:.72rem 1.2rem;border-top:1px solid rgba(23,9,60,.07);font:600 .72rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(23,9,60,.55)}.emr-access__audit i{width:7px;height:7px;border-radius:50%;background:#2ecc71;box-shadow:0 0 10px rgba(46,204,113,.55)}
.emr-access__summary{padding:1.8rem;border:1px solid rgba(23,9,60,.09);border-radius:26px;background:rgba(255,255,255,.86);box-shadow:0 24px 60px rgba(48,25,99,.08);display:flex;flex-direction:column;justify-content:center}.emr-access__legend{display:flex;flex-wrap:wrap;gap:.9rem;padding:1rem 0;border-top:1px solid rgba(23,9,60,.08);border-bottom:1px solid rgba(23,9,60,.08)}.emr-access__legend span{display:flex;align-items:center;gap:.38rem;font-size:.78rem;color:rgba(23,9,60,.6)}.emr-access__legend i{width:9px;height:9px;border-radius:50%}.emr-access__legend .is-edit{background:#7b2ff7}.emr-access__legend .is-view{background:#2a7bff}.emr-access__legend .is-lock{background:#c7c0d4}.emr-access__policy{padding:1rem 0}.emr-access__policy small,.emr-access__policy strong{display:block}.emr-access__policy small{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(23,9,60,.45)}.emr-access__policy strong{margin-top:.3rem;color:#24104c}.emr-access__auditstat{padding:1rem;border-radius:15px;background:#17093c;color:#fff}.emr-access__auditstat b,.emr-access__auditstat span{display:block}.emr-access__auditstat b{font-size:.92rem}.emr-access__auditstat span{margin-top:.2rem;font-size:.75rem;color:rgba(255,255,255,.58)}

@media(max-width:1100px){.emr-constellation__shell{grid-template-columns:1fr}.emr-constellation__orbit{min-height:500px}.emr-access__lab{grid-template-columns:160px minmax(0,1fr)}.emr-access__summary{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.emr-access__summary>p,.emr-access__summary>h3,.emr-access__summary>.emr-access__eyebrow{grid-column:1}.emr-access__summary>.emr-access__legend,.emr-access__summary>.emr-access__policy,.emr-access__summary>.emr-access__auditstat{grid-column:2}}
@media(max-width:760px){.emr-constellation,.emr-access{min-height:auto;padding:5rem 0}.emr-constellation__head,.emr-access__head{grid-template-columns:1fr;gap:1rem}.emr-constellation__orbit{min-height:560px}.emr-dept{width:88px;min-height:58px}.emr-patient-core{width:56%}.emr-constellation__detail{border-radius:24px}.emr-constellation__flow{grid-template-columns:1fr}.emr-constellation__flow>span{transform:rotate(90deg);justify-self:start}.emr-constellation__proof{grid-template-columns:1fr 1fr}.emr-access__lab{grid-template-columns:1fr}.emr-access__roles{display:flex;overflow-x:auto;padding-bottom:.3rem;scroll-snap-type:x proximity}.emr-access__roles button{min-width:145px;scroll-snap-align:start}.emr-access__roles button:hover{transform:none}.emr-access__summary{display:block}.emr-access__fields{grid-template-columns:1fr}.emr-access__fields section{border-right:0!important;border-bottom:1px solid rgba(23,9,60,.07)!important;min-height:100px}.emr-access__fields section:last-child{border-bottom:0!important}.emr-hero__packet{display:none}}
@media(prefers-reduced-motion:reduce){.emr-hero__ecg,.emr-hero__nodes circle,.emr-hero__packet{animation:none!important}.emr-hero__network{transform:none!important;transition:none!important}}


/* ========================================================================
   EMRS stability pass · keep interactive sections height-stable
   ======================================================================== */
@media (min-width:1101px){
  .emr-constellation__shell{
    height:520px;
    min-height:520px;
  }
  .emr-constellation__orbit,
  .emr-constellation__detail{
    height:100%;
    min-height:0;
  }
  .emr-access__lab{
    height:520px;
    min-height:520px;
  }
  .emr-access__roles,
  .emr-access__chart,
  .emr-access__summary{
    height:100%;
    min-height:0;
  }
}

/* Reserve the largest dynamic copy footprint so selecting another item
   never changes the section height. */
.emr-constellation__detail h3{
  min-height:3.25em;
  display:flex;
  align-items:flex-start;
}
.emr-constellation__detail>p:not(.emr-constellation__label){
  min-height:6.55em;
}
.emr-constellation__flow{
  min-height:84px;
}
.emr-constellation__proof{
  min-height:66px;
}

.emr-access__summary h3{
  min-height:3.25em;
  display:flex;
  align-items:flex-start;
}
.emr-access__summary>p:not(.emr-access__eyebrow){
  min-height:8.1em;
}
.emr-access__policy strong{
  min-height:2.6em;
}

/* Keep orbit nodes completely inside the card, including hover lift. */
.emr-constellation__orbit{
  padding-block:14px;
}
.emr-dept[data-emr-dept="opd"]{
  top:9% !important;
}

@media (max-width:1100px){
  .emr-constellation__detail{
    min-height:390px;
  }
  .emr-access__summary{
    min-height:300px;
  }
}

@media (max-width:760px){
  .emr-constellation__detail{
    min-height:430px;
  }
  .emr-constellation__detail h3{
    min-height:3.3em;
  }
  .emr-constellation__detail>p:not(.emr-constellation__label){
    min-height:8.2em;
  }
  .emr-access__summary{
    min-height:430px;
  }
  .emr-access__summary h3{
    min-height:3.3em;
  }
  .emr-access__summary>p:not(.emr-access__eyebrow){
    min-height:9.9em;
  }
}
