/* Compact Orbit toolbar: native sidebar state/actions, role-gated clinic links. */
.fi-body .fi-topbar { gap:12px; padding-top:6px; padding-bottom:6px; min-height:64px; flex-wrap:wrap; }
.fi-body .fi-topbar > .fi-topbar-start { order:0; flex:0 0 auto; }
/* Orbit's desktop sidebar is active from 1024px; keep its native toggle available. */
@media(min-width:1024px) {
    .fi-body .fi-topbar-collapse-sidebar-btn-ctn { display:flex!important; }
}
.fi-body .fi-topbar > .ds-clinical-search { order:1; flex:0 1 320px; max-width:320px; min-width:100px; }
.fi-body .fi-topbar > .fi-topbar-end { order:2; }
/* Keep the native drawer close control in its own header, away from account controls. */
@media(max-width:1023px) {
    .fi-body .fi-topbar-close-sidebar-btn {
        inset-block-start:1.5rem;
        inset-inline-start:calc(min(var(--sidebar-width), calc(100vw - 2rem)) - 3rem);
        inset-inline-end:auto;
        background:var(--ds-surface);
    }
}
/* Keep the native account menu beside the clinic controls at every available header width. */
/* Size containment changes fixed dropdown coordinates; measure available header width instead. */
.fi-body .fi-topbar:has(.ds-clinic-toolbar) {
    display:grid;
    grid-template-columns:auto minmax(9rem, 1fr) auto auto;
    align-items:center;
}
.fi-topbar:has(.ds-clinic-toolbar) > .fi-topbar-start { grid-column:1; grid-row:1; }
.fi-topbar:has(.ds-clinic-toolbar) > :is(.fi-topbar-open-sidebar-btn,.fi-topbar-close-sidebar-btn) { grid-column:1; grid-row:1; }
.fi-topbar:has(.ds-clinic-toolbar) > .ds-clinical-search { grid-column:2; grid-row:1; width:100%; }
.fi-topbar:has(.ds-clinic-toolbar) > .ds-clinic-toolbar { grid-column:3; grid-row:1; }
.fi-topbar:has(.ds-clinic-toolbar) > .fi-topbar-end { grid-column:4; grid-row:1; }
.fi-body .fi-topbar.ds-toolbar-compact { grid-template-columns:auto minmax(0,1fr) auto; }
.fi-topbar.ds-toolbar-compact > .ds-clinical-search { grid-column:2 / 4; max-width:100%; }
.fi-topbar.ds-toolbar-compact > .ds-clinic-toolbar { grid-column:1 / 3; grid-row:2; justify-self:end; }
.fi-topbar.ds-toolbar-compact > .fi-topbar-end { grid-column:3; grid-row:2; }
.fi-topbar:has(.ds-clinic-toolbar) > .fi-topbar-end { order:4; flex:0 0 auto; margin-inline-start:0; }
.ds-clinic-toolbar { display:flex; align-items:center; gap:12px; order:3; flex:0 1 auto; flex-wrap:wrap; max-width:100%; margin-inline-start:auto; color:var(--ds-text); }
.ds-toolbar-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; position:relative; border-radius:10px; border:1px solid transparent; }
.ds-toolbar-icon > svg { width:22px; height:22px; }
.ds-toolbar-icon:hover, .ds-clinic-trigger:hover { background:var(--orbit-panel-soft-bg); border-color:var(--ds-border); }
.ds-toolbar-icon:focus-visible, .ds-clinic-trigger:focus-visible { outline:2px solid var(--primary-600); outline-offset:2px; }
.ds-toolbar-count { position:absolute; top:0; right:-3px; min-width:17px; padding:1px 4px; font-size:10px; line-height:15px; border-radius:999px; background:var(--primary-700); color:#fff; }
@property --ds-demo-angle { syntax:"<angle>"; inherits:false; initial-value:0deg; }
.ds-subscription-status { --ds-demo-accent:var(--primary-500); }
.ds-subscription-status[data-payment-status="rejected"] { --ds-demo-accent:#ef4444; --ds-status-bg:#b91c1c; }
.ds-subscription-status:is([data-payment-status="pending_review"],[data-payment-status="resubmit"]) { --ds-demo-accent:#f59e0b; --ds-status-bg:#854d0e; }
.ds-subscription-status[data-payment-status="awaiting_evidence"] { --ds-demo-accent:#38bdf8; --ds-status-bg:#075985; }
.ds-subscription-status[data-payment-status="paid"] { --ds-demo-accent:#34d399; --ds-status-bg:#047857; }
.ds-subscription-status:not(:has(.ds-demo-menu)) { display:none; }
.ds-demo-labels { display:flex; flex-direction:column; align-items:flex-start; line-height:1.3; }
.ds-payment-label { font-weight:700; }
.fi-body .ds-demo-button.ds-payment-active { background:var(--ds-status-bg); color:#fff; }
.fi-body .ds-demo-button {
    position:relative; isolation:isolate; display:inline-flex; align-items:center; gap:6px;
    min-height:36px; padding:7px 12px; border-radius:999px; white-space:nowrap; font-size:12px; font-weight:600;
    background:var(--ds-action-bg); color:var(--ds-button-ink);
    border:1px solid color-mix(in srgb,var(--ds-demo-accent) 55%,var(--ds-border));
    box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-demo-accent) 10%,transparent),0 3px 14px color-mix(in srgb,var(--ds-demo-accent) 16%,transparent);
    transition:box-shadow 200ms ease,border-color 200ms ease;
}
.ds-demo-button::before { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(ellipse at 50% 110%,rgb(255 255 255 / .18),transparent 65%); }
.ds-demo-button::after {
    content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
    background:conic-gradient(from var(--ds-demo-angle),transparent 0deg,rgb(255 255 255 / .08) 265deg,rgb(255 255 255 / .85) 305deg,transparent 345deg);
    mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude;
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor;
    opacity:.65;
}
.ds-demo-button .ds-demo-sparkles { width:17px; height:17px; flex:none; }
.ds-demo-button > :is(span,svg) { position:relative; z-index:1; }
.ds-demo-button:focus-visible { outline:2px solid var(--primary-600); outline-offset:5px; }
.ds-demo-button:is(:hover,:focus-visible,[aria-expanded="true"]) { box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-demo-accent) 18%,transparent),0 4px 22px color-mix(in srgb,var(--ds-demo-accent) 28%,transparent); }
.ds-demo-button:is(:hover,:focus-visible,[aria-expanded="true"])::after { opacity:1; }
.ds-demo-short-label { display:none; }
.ds-demo-menu .fi-dropdown-panel, .fi-dropdown-panel:has(.ds-demo-details) { width:20rem; max-width:calc(100vw - 24px); overflow-y:auto; }
.ds-demo-details { padding:18px; }
.ds-demo-details > strong { display:block; font-size:13px; color:var(--ds-text); }
.ds-demo-details p { font-size:13px; line-height:1.5; color:var(--ds-muted); margin-top:10px; }
.ds-demo-details .ds-demo-remaining { font-size:22px; font-weight:600; line-height:1.25; color:var(--ds-text); margin-top:12px; }
.ds-demo-details .ds-demo-end { font-size:12px; margin-top:6px; }
.ds-payment-details { border-bottom:1px solid var(--ds-border); }
.ds-payment-details .ds-payment-reason { color:var(--ds-text); white-space:pre-line; overflow-wrap:anywhere; }
.fi-body .ds-demo-details .ds-demo-extend { display:flex; width:100%; margin-top:16px; }
.ds-demo-quick-links { border-top:1px solid var(--ds-border); }
@keyframes ds-demo-orbit { to { --ds-demo-angle:360deg; } }
@keyframes ds-demo-sparkle { 50% { opacity:.65; transform:scale(.9); } }
@media(prefers-reduced-motion:no-preference) {
    .ds-demo-button::after { animation:ds-demo-orbit 6s linear infinite; }
    .ds-demo-button:is(:hover,:focus-visible,[aria-expanded="true"])::after { animation-duration:2.8s; }
    .ds-demo-button:is(:hover,:focus-visible,[aria-expanded="true"]) .ds-demo-sparkles { animation:ds-demo-sparkle 1.8s ease-in-out infinite; }
}
@media(prefers-reduced-motion:reduce) { .ds-demo-button { transition:none; } }
.ds-clinic-trigger { display:flex; align-items:center; gap:8px; padding:3px; border:1px solid transparent; border-radius:10px; }
.ds-clinic-logo { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; object-fit:contain; background:var(--ds-surface); border:1px solid var(--ds-border); flex-shrink:0; }
.ds-clinic-logo svg { width:22px; height:22px; color:var(--ds-muted); }
.ds-clinic-label { font-size:12px; font-weight:600; max-width:140px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-align:start; }
.ds-clinic-label small { display:block; font-size:10px; font-weight:400; color:var(--ds-muted); }
.ds-clinic-chevron { width:14px; height:14px; }
/* Clamp the width independently of native preset max-width rules; Floating UI sizes height. */
.ds-toolbar-menu .fi-dropdown-panel, .fi-dropdown-panel:has(.ds-toolbar-notices, .ds-toolbar-note) {
    width:min(24rem, calc(100vw - 24px)); overflow-y:auto;
    overscroll-behavior:contain; overflow-wrap:anywhere;
}
.ds-toolbar-notices { min-width:0; padding:16px; font-size:13px; }
.ds-toolbar-note { padding:10px 12px; font-size:12px; color:var(--ds-muted); }
.ds-toolbar-notices .ds-toolbar-note { padding-inline:0; }
.ds-toolbar-link { display:block; padding:8px 0; color:var(--primary-700); font-size:13px; }
.dark .ds-toolbar-link { color:var(--primary-300); }
.ds-toolbar-notice { border-top:1px solid var(--ds-border); padding:12px 0; }
.ds-toolbar-notice summary { cursor:pointer; font-weight:500; }
.ds-toolbar-notice p { margin-top:8px; color:var(--ds-muted); white-space:pre-line; overflow-wrap:anywhere; }
.ds-toolbar-mobile { display:none; }
@media(max-width:1279px) { .ds-clinic-label { display:none; } }
@media(max-width:767px) {
    .ds-clinic-logo { width:48px; height:48px; }
    .ds-toolbar-desktop { display:none!important; }
    .ds-toolbar-mobile { display:block; }
    .ds-clinic-toolbar { gap:4px; }
    .fi-body .fi-topbar { gap:6px; padding-inline:12px; }
    .fi-body .fi-topbar > .ds-clinical-search { flex:1 1 9rem; max-width:320px; min-width:9rem; }
    .ds-clinic-chevron { display:none; }
    .fi-body .ds-demo-button { min-height:34px; padding:6px 9px; gap:4px; font-size:11px; }
    .ds-demo-button .ds-demo-sparkles { width:14px; height:14px; }
    .ds-demo-full-label { display:none; }
    .ds-demo-short-label { display:inline; }
}
@media(max-width:359px) {
    .fi-body .fi-topbar:has(.ds-payment-active) { flex-wrap:wrap; }
    .fi-body .fi-topbar:has(.ds-payment-active) > .fi-topbar-start { margin-inline-end:0; }
    .fi-body .fi-topbar:has(.ds-payment-active) > .ds-clinical-search { order:4; flex:1 1 100%; max-width:none; }
}

/* A neutral circular surface keeps the notification bell legible over every card. */
.fi-body .ds-notice-trigger,
.fi-body .fi-topbar-database-notifications-btn {
    min-width:2.75rem; min-height:2.75rem; border-radius:50%;
    background:var(--ds-surface, #fff); border:1px solid var(--ds-border, #dce3e7);
    color:var(--ds-text, #243642); box-shadow:0 2px 6px rgb(15 23 42 / .06);
}
