:root{--bb-a11y-ink:#163247;--bb-a11y-muted:#465d6b;--bb-a11y-rule:#82909a;--bb-a11y-focus:#173f6b}
#bb-contrast-toggle{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:2147483000;min-width:46px;height:46px;padding:0 12px;border:1px solid rgba(23,50,71,.42);border-radius:999px;background:rgba(250,247,239,.94);color:#173247;font:600 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em;box-shadow:0 2px 12px rgba(20,36,48,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;opacity:.78;transition:opacity .16s ease,transform .16s ease,background .16s ease}
#bb-contrast-toggle:hover,#bb-contrast-toggle:focus-visible{opacity:1;transform:translateY(-1px)}
#bb-contrast-toggle:focus-visible{outline:3px solid rgba(23,63,107,.35);outline-offset:2px}
#bb-contrast-toggle .bb-a11y-label{display:none}
#bb-contrast-toggle[aria-pressed="true"]{background:#173247;color:#fff;border-color:#173247;opacity:.94}
html.bb-enhanced-contrast body{color:var(--bb-a11y-ink)}
html.bb-enhanced-contrast :where(p,li,label,small,figcaption,summary,td,th,legend){opacity:1}
html.bb-enhanced-contrast :where(.muted,.subtle,.secondary,.hint,.helper,[class*="muted"],[class*="subtle"],[class*="secondary"],[class*="hint"],[class*="helper"]){color:var(--bb-a11y-muted)!important;opacity:1!important}
html.bb-enhanced-contrast :where(button,input,select,textarea,[role="button"],[role="tab"],[role="option"]){border-color:var(--bb-a11y-rule)!important}
html.bb-enhanced-contrast :where(input,select,textarea){color:#102b3d!important;background-color:#fffefb!important}
html.bb-enhanced-contrast :where(hr,[class*="divider"],[class*="rule"],[class*="border"]){border-color:var(--bb-a11y-rule)!important}
html.bb-enhanced-contrast :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(23,63,107,.42)!important;outline-offset:2px!important}
html.bb-enhanced-contrast canvas{filter:contrast(1.08) saturate(1.04)}
@media(max-width:560px){#bb-contrast-toggle{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;font-size:12px}}
@media print{#bb-contrast-toggle{display:none!important}}
@media(prefers-reduced-motion:reduce){#bb-contrast-toggle{transition:none}}

/* Blue Bridge 0372 suite-level visual refinements. Kept shallow: layout/readability only. */
html,body{max-width:100%;}
img,svg,canvas{max-width:100%;}
:where(button,a,input,select,textarea,summary){-webkit-tap-highlight-color:transparent;}
/* ADAPT: reduce dead vertical space while preserving its single reading column. */
@media (min-width: 900px){body:has(#adapt-app) main,body:has(.adapt-app) main{padding-top:28px!important}.intro{padding-bottom:20px!important}.catalogue-top{margin-top:18px!important}}
/* DESK: prevent the primary/header tool groups from colliding on tablet widths. */
@media (max-width:1180px){.desk-header{align-items:stretch!important;flex-wrap:wrap!important}.desk-header .header-primary{flex:1 1 100%!important}.desk-header .header-tools{flex:1 1 100%!important;justify-content:flex-end!important;border-top:1px solid var(--line,#c9c3b8);padding-top:6px!important}}
@media (max-width:720px){.desk-header .header-tools{justify-content:stretch!important}.desk-header .header-tools .header-button{min-width:0!important;flex:1 1 120px!important}}
/* CLASSROOM: protect narrow headers/decks from horizontal overflow. */
@media (max-width:760px){.classroom-header{flex-wrap:wrap!important;height:auto!important}.classroom-header .date-lockup{min-width:0!important;flex:1 1 150px!important}.classroom-header .header-actions{min-width:0!important;flex:0 1 auto!important}.classroom-main,.control-deck,.control-deck-grid{min-width:0!important;max-width:100%!important}.classroom-dialog{max-width:100vw!important;overflow-x:hidden!important}}
@media (max-width:430px){.classroom-header{align-items:flex-start!important}.classroom-header .header-actions{margin-left:auto!important}.control-deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.control-deck-button{min-height:62px!important}.classroom-dock{max-width:100%!important;overflow:hidden!important}}
/* STILL: keep session/setup controls discoverable on phones instead of silently hiding the second action. */
@media (max-width:520px){.still-app .top-actions .quiet-button:nth-child(2){display:inline-flex!important}.still-app .top-actions{max-width:72vw!important;overflow-x:auto!important;scrollbar-width:none}.still-app .top-actions::-webkit-scrollbar{display:none}.still-app .quiet-button{flex:0 0 auto!important;min-width:44px!important}.still-app .session-tabs{padding-inline:2px!important}}
/* Dialogs and sheets across the suite should never exceed the visible width. */
:where(dialog,[role="dialog"],.modal-panel,.surface-shell,.confirm-shell){max-width:calc(100vw - 20px);}
@media(max-width:520px){:where(dialog,[role="dialog"],.modal-panel,.surface-shell,.confirm-shell){max-width:100vw}.modal-heading,.dialog-header,.surface-header{overflow-wrap:anywhere}}
/* Presentation states: contrast control moves to a quiet edge rather than covering next/exit controls. */
body:has(.present-surface:not([hidden])) #bb-contrast-toggle,
body:has(.still-app.is-presenting) #bb-contrast-toggle,
body:has(.is-presenting) #bb-contrast-toggle{right:auto;left:max(8px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));}
