@import url('/css/shared/font-standard.css');
/* T082: Arsenal/Clearances mechanical mobile fixes; loaded only on audited pages. */
@media (pointer: coarse), (max-width: 700px) {
  :root body button:not(.pin-cell), :root body [role="button"],
  :root body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  :root body select, :root body textarea { min-height: 40px !important; }
  :root body button:not(.pin-cell), :root body [role="button"] { min-width: 40px !important; }
  :root body a[href] { min-height: 40px !important; }
  :root body .bb-site-footer a, :root body .bb-footer-actions a,
  :root body .resource-card a, :root body .source-credit a { display: inline-flex; align-items: center; }
  :root body .node-info-btn { width: 40px; height: 40px; }
  :root body .ws-list-pane { overflow-x: auto !important; max-width: 100%; }
  :root body .card:has(#databaseBody) { min-width: 0; }
  :root body .card:has(#databaseBody) table { width: 100%; table-layout: fixed; }
  :root body .card:has(#databaseBody) th, :root body .card:has(#databaseBody) td { overflow-wrap: anywhere; }
}

:root body :is(button, input, select, textarea, [role="button"], summary) { scroll-margin-top: 240px; }
@media (min-width: 1200px) { .cl-sweep-layout .security-controls.cl-sweep-content { margin-left: 260px !important; margin-right: 24px !important; width: calc(100% - 284px) !important; } }

/* Links, summaries, and associated form labels also need usable touch surfaces. */
@media (pointer: coarse), (max-width: 700px) {
  :root body a[href] { display: inline-flex; align-items: center; min-width: 40px; box-sizing: border-box; }
  :root body summary, :root body input[type="range"], :root body label:has(input[type="checkbox"]), :root body label:has(input[type="radio"]) { min-height: 40px !important; }
  :root body label:has(input[type="checkbox"]), :root body label:has(input[type="radio"]) { display: inline-flex; align-items: center; gap: 8px; }
  :root body .bb-security-hero { grid-template-columns: minmax(0,1fr) !important; }
  :root body .bb-security-hero .shell { min-width: 0 !important; width: calc(100% - 32px) !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
  :root body .bb-security-hero h1 { font-size: clamp(1.8rem, 8vw, 2.5rem) !important; overflow-wrap: anywhere; }
  :root body .learning-toolbar { position: relative !important; top: auto !important; }
}
:root body .ws-table-wrap { min-width: 0; max-width: 100%; overflow-x: auto !important; }

.bb-arsenal-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.bb-arsenal-options button { min-height: 44px; text-align: left; white-space: normal; }
@media (max-width: 700px) { .bb-arsenal-options { grid-template-columns: minmax(0, 1fr); } }
:root body .grid > section:has(.domain) { min-width: 0; }
@media (max-width: 700px) {
  :root body .query-anatomy .grid { width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr) !important; }
  :root body .ws-table.ws-table { display: table !important; width: max-content !important; min-width: 100%; overflow: visible !important; }
}
.bb-audit-table-scroll { max-width: 100%; min-width: 0; overflow-x: auto; }
@media (max-width: 700px) { :root body .bb-audit-team-grid { grid-template-columns: minmax(0, 1fr) !important; } }

@media (pointer: coarse) { :root body .pin-cell { min-height: 40px !important; min-width: 40px !important; } }

html.bb-standard-site { --font-tech:'Ultra', Georgia, serif; --font-body:'Geist', sans-serif; --bb-control-font:'Geist', sans-serif; }
:root body { font-family: 'Geist', sans-serif !important; }
:root body :is(h1,h2,h3,h4,h5,h6) { font-family: 'Ultra', Georgia, serif !important; }
:root body button { font-family: 'Geist', sans-serif !important; }

:root body .os-module a[href*="youtube.com"] { border-color:var(--theme-component-error-7); color:var(--theme-component-error-8); }
:root body .hero-watermark { object-fit: contain; }
:root body :is(section, main, form, h2, h3, h4, div)[id] { scroll-margin-top: 240px; }

:root body .bb-code-case { text-transform: none; letter-spacing: 0; }

/* Keep the account menu inside the touch viewport, including demo header overrides. */
@media (pointer: coarse) { #bbNavMenu { position: fixed !important; left: auto !important; right: 12px !important; max-width: calc(100vw - 24px) !important; } }

@media (max-width: 600px) { .bb-page-e0ebc8ee14 .chalk-steps { grid-template-columns: minmax(0, 1fr) !important; } .bb-page-e0ebc8ee14 .chalk-card { min-width: 0; overflow-wrap: anywhere; } }

/* Site fonts (Brett 2026-10-13): Ultra titles, Geist Medium body. Ultra ships one weight, so never fake-bold it. */
:root body { font-weight: 500; }
:root body :is(h1,h2,h3,h4,h5,h6) { font-weight: 400 !important; font-synthesis: none; letter-spacing: .01em; }

html { font-synthesis: none; }
/* Ultra is wide: keep card titles inside narrow phone cards. */
@media (max-width: 480px) { :root body :is(h3,h4,h5) { font-size: min(1em, 5.6vw) !important; overflow-wrap: break-word; hyphens: auto; } }

/* T088: explanatory copy only; table cells, tool controls, rails and labels stay compact. */
:root body :is(.resource-card-body p, .resource-card p, .drill-desc, .tool-description, .scenario-text, .clearance-description, .intel-card-summary) { font-size: var(--bb-body-size) !important; line-height: 1.65 !important; color:var(--bb-body-color) !important; font-weight: 500; overflow-wrap: break-word; }
:root body :is(.resource-card-body p, .resource-card p, .intel-card-summary) { line-height: 1.6 !important; }

/* T088: lesson copy, including dynamically loaded edge modules. */
html.bb-standard-site body :is(.intel-content, .md-module, .os-module, .security-controls) :is(p, li):not(:where(nav, aside, footer, button, [role="button"], .bb-opt, .choices, .terminal, .terminal-window, .console, .packet-table, .packet-inspector, .packet-info-panel, .ws-table, .os-window, .sim-window, .simulated-ui, .render-preview-card, .xss-output-panel, .fetch-result-panel, .status-brief, .bb-mission-head, .bb-mission-foot, nav *, aside *, footer *, button *, [role="button"] *, .bb-opt *, .choices *, .terminal *, .terminal-window *, .console *, .packet-table *, .packet-inspector *, .packet-info-panel *, .ws-table *, .os-window *, .sim-window *, .simulated-ui *, .render-preview-card *, .xss-output-panel *, .fetch-result-panel *, .status-brief *, .bb-mission-head *, .bb-mission-foot *)) { font-size: var(--bb-body-size) !important; line-height: 1.65 !important; color:var(--bb-body-color) !important; font-weight: 500; overflow-wrap: break-word; }
html.bb-standard-site body :is(#md-overview, #os-overview) > p:first-of-type { font-size: var(--bb-lead-size) !important; line-height: 1.65 !important; color:var(--bb-lead-color) !important; font-weight: 500; overflow-wrap: break-word; }
html.bb-standard-site body :is(.intel-content, .md-module main, .os-module main) section > p { max-width: 720px; }

:root body :is(.cl-intel-card > p, .cl-photo figcaption, .cl-hardware-study figcaption, .storage-photo-card figcaption, .page-wrap > .bb-container > p) { font-size: var(--bb-body-size) !important; line-height: 1.65 !important; color:var(--bb-body-color) !important; }

:root body :is(.fr-tx span, .fr-doc span, .fr-lab span, .intel-card li) { font-size: var(--bb-body-size) !important; line-height: 1.6 !important; color:var(--bb-body-color) !important; }

/* T092: acronym chips inside titles must also fit the phone card. */
@media (max-width: 480px) { :root body .intel-card h3 .tag { white-space: normal; max-width: 100%; overflow-wrap: anywhere; } }
