/* Shared device rules. Component styles still define the brand and desktop composition. */
:root { --safe-left:env(safe-area-inset-left,0px); --safe-right:env(safe-area-inset-right,0px); --safe-bottom:env(safe-area-inset-bottom,0px); }
html { -webkit-text-size-adjust:100%; }
:where(main,section,article,figure,form,fieldset,nav,header,footer,aside,dialog) { min-inline-size:0; }
:where(input,select,textarea,button) { max-inline-size:100%; }
:where(h1,h2,h3,p,dd,label,.desk-row strong,.work-item-name,.demo-company strong) { overflow-wrap:anywhere; }
:where(input,select,textarea,button,a,summary) { touch-action:manipulation; }
:where(input,select,textarea,button,summary,[tabindex]) { scroll-margin-block:7rem 2rem; }
:where(.table-scroll,.work-table-wrap,.commerce-table-wrap,.work-tabs,.work-stage-strip,.journey-lanes,.desk-pipeline) { max-width:100%; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
:where(.table-scroll,.work-table-wrap,.commerce-table-wrap):focus-visible { outline:2px solid var(--red,#a63732); outline-offset:3px; }
:where(.desk-panel,.demo-card,.partner-record,.desk-row,.work-preview,.journey-action-row)>div { min-width:0; }
:where(.desk-panel,.demo-card,.partner-record,.journey-action-row) pre { white-space:pre-wrap; overflow-wrap:anywhere; }
:where(.bo-drawer,.bo-leave-dialog,.demo-cart) { max-height:calc(100dvh - var(--safe-bottom)); overflow-y:auto; }
.bo-drawer { padding-bottom:var(--safe-bottom); }
:where(.bo-toast,.demo-toast) { bottom:max(1rem,var(--safe-bottom)); }
.bo-admin .tabular .module { overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }

/* The partner menu expands vertically: all twelve sections remain reachable. */
.partner-navigation { display:flex; flex-direction:column; flex:1; min-height:0; }
.partner-app .demo-nav { height:100dvh; }
.partner-menu-toggle { display:none; }
.partner-app .demo-company>div { min-width:0; }
.partner-app .demo-company strong { white-space:normal; }
.partner-app .demo-main { padding-bottom:max(2rem,var(--safe-bottom)); }
.partner-app .demo-payment-amount { white-space:normal; overflow-wrap:anywhere; }
.partner-app .demo-total-row { flex-wrap:wrap; gap:12px; }
.partner-app .partner-contract-version header { flex-wrap:wrap; }
.partner-app .demo-specs dd { min-width:0; overflow-wrap:anywhere; }
.partner-app .partner-actions { flex-wrap:wrap; }
.partner-app .partner-demo-bar form { min-width:0; }

@media (min-width:1101px) and (max-width:1280px) {
  .partner-app .demo-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-app .demo-support-grid { grid-template-columns:minmax(0,1fr); }
  .partner-app .demo-tuning { padding:20px; }
  .partner-app .partner-selection-fields { grid-template-columns:minmax(0,1fr); }
  .partner-app .demo-card-heading { flex-wrap:wrap; }
  .partner-app .demo-control { grid-template-columns:minmax(0,1fr) auto; }
  .partner-app .demo-metric { padding:18px; }
  .partner-app .demo-metric>strong { font-size:1.6rem; }
}
@media (min-width:701px) and (max-width:880px) {
  .partner-app .demo-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-app .demo-support-grid { grid-template-columns:minmax(0,1fr); }
  .partner-app .partner-selection-fields { grid-template-columns:minmax(0,1fr); }
  .partner-app .demo-card { padding:20px; }
}
@media (max-width:1100px) {
  .partner-app .demo-frame { display:block; }
  .partner-app .demo-nav { display:grid; position:sticky; top:0; z-index:50; height:auto; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; padding:12px max(16px,var(--safe-right)) 12px max(16px,var(--safe-left)); }
  .partner-app .demo-brand { grid-column:1; grid-row:1; margin:0; padding:0; }
  .partner-app .demo-brand small { font-size:.65rem; }
  .partner-app .partner-menu-toggle:not([hidden]) { display:flex; align-items:center; justify-content:center; gap:10px; grid-column:2; grid-row:1; min-height:44px; padding:10px 12px; border:1px solid #fff2dc45; border-radius:8px; background:transparent; color:#fff5e5; font:inherit; font-size:.85rem; cursor:pointer; }
  .partner-app .partner-menu-toggle[aria-expanded=true] { background:var(--red); border-color:var(--red); }
  .partner-app .demo-company { grid-column:1/-1; margin:10px 0 0; padding:9px 0 0; text-align:left; border-top:1px solid #fff2dc24; border-bottom:0; }
  .partner-app .demo-company strong { font-size:.75rem; }
  .partner-app .demo-company small,.partner-app .demo-company .demo-avatar,.partner-app .demo-fox,.partner-app .demo-return { display:none; }
  .partner-navigation { grid-column:1/-1; display:block; min-width:0; max-height:calc(100dvh - 155px); overflow:auto; overscroll-behavior:contain; padding:12px 0 4px; }
  .partner-enhanced:not(.partner-menu-open) .partner-navigation { display:none; }
  .partner-app .demo-nav nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:0 4px 4px 0; overflow:visible; margin:0; }
  .partner-app .demo-nav nav a { min-height:48px; padding:10px; font-size:.8rem; white-space:normal; line-height:1.35; }
  .partner-app .partner-company-switch { flex-wrap:wrap; gap:8px; }
  .partner-app .partner-company-switch label { width:100%; }
  .partner-app .partner-company-switch select { flex:1 1 180px; }
  .partner-app .partner-company-switch button { min-height:44px; }
  .partner-app .demo-topbar { min-height:58px; }
  .partner-app .demo-breadcrumb { overflow-wrap:anywhere; }
  .partner-app .demo-main { padding-inline:max(20px,var(--safe-left)) max(20px,var(--safe-right)); }
  .bo-body .bo-topbar { padding-inline:max(16px,var(--safe-left)) max(16px,var(--safe-right)); }
  .bo-main { padding-inline:max(20px,var(--safe-left)) max(20px,var(--safe-right)); }
  .bo-body .bo-menu-toggle,.bo-body .bo-menu-dismiss,.bo-drawer__bar button { width:44px; height:44px; flex-shrink:0; }
  .bo-body .bo-sidebar { padding-bottom:var(--safe-bottom); }
  .bo-body .bo-nav-group a { min-height:44px; font-size:13px; }
  .bo-body .bo-nav-search { min-height:44px; }
  .bo-body .bo-nav-search input[type=search] { font-size:16px; }
  .bo-body .bo-topbar .bo-contours a { min-height:38px; display:grid; align-items:center; font-size:12px; }
  .bo-body .bo-main :is(.button,.work-chips a,.work-view-switch a,.work-tabs button,.journey-lanes a) { min-height:44px; display:inline-flex; align-items:center; font-size:13px; }
  .bo-body .bo-main :is(.desk-row strong,.work-table,.desk-facts,.work-timeline__entry p,.journey-action-row strong) { font-size:14px; }
  .bo-body .bo-main :is(.desk-field label,.desk-filters label,.desk-row small,.desk-muted,.work-table small) { font-size:12px; }
  .bo-body .bo-main :is(input:not([type=checkbox]):not([type=hidden]),textarea,select),
  .partner-app :is(.desk-field input:not([type=checkbox]):not([type=hidden]),textarea,select,.desk-filters input,.partner-quantity) { font-size:16px; min-height:46px; }
  .partner-app .demo-control>div input { font-size:16px; min-height:32px; }
  .partner-app .demo-button { min-height:44px; font-size:.85rem; }
  .partner-app .demo-topbar .demo-button { min-height:44px; font-size:.75rem; }
  .partner-app .desk-field label { font-size:.875rem; }
  .partner-app .demo-card p,.partner-app .desk-panel p { font-size:.9rem; }
  .partner-app .demo-payment dl>div { font-size:.85rem; }
  .partner-app .demo-chat-message p { font-size:.9rem; }
  .partner-app .demo-chat-message small { font-size:.72rem; }
  .bo-admin #content :is(input:not([type=checkbox]):not([type=hidden]),textarea,select) { font-size:16px; min-height:46px; }
  .bo-admin #content :is(button,input[type=submit],.object-tools a) { min-height:44px; font-size:13px; }
  .bo-admin #content .object-tools a { display:inline-flex; align-items:center; }
  .bo-admin #toolbar #searchbar { font-size:16px; }
  .bo-admin .aligned .form-row>div,.bo-admin .aligned .form-row .flex-container { width:100%; max-width:100%; min-width:0; }
  .bo-admin .aligned .related-widget-wrapper { max-width:100%; flex-wrap:wrap; }
  .bo-admin .aligned .related-widget-wrapper select { min-width:0; max-width:100%; }
  .bo-admin #changelist table :is(th,td),.bo-admin .form-row .readonly { font-size:14px; }
  .bo-admin #changelist table thead th { font-size:12px; }
  .bo-admin .form-row label { font-size:14px; }
  .bo-admin #changelist .actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
  .bo-admin #changelist .actions label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
  .bo-admin #changelist .actions select { max-width:100%; }
  .bo-admin #changelist .results { overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
}

@media (max-width:960px) { .bo-enhanced:not(.bo-menu-open) .bo-sidebar { transition:none; } }

/* Public navigation remains scrollable on short screens and in landscape. */
@media (max-width:72rem) {
  .public-site .site-nav { max-height:calc(100dvh - 5.5rem); overflow-y:auto; overscroll-behavior:contain; padding-bottom:max(1.5rem,var(--safe-bottom)); }
  .public-site .site-header { padding-inline:max(4vw,var(--safe-left)) max(4vw,var(--safe-right)); }
}
@media (max-width:55rem) {
  .public-site .button,.public-site .menu-filter,.public-site .menu-taste { min-height:44px; }
  .public-site :is(input:not([type=checkbox]):not([type=range]):not([type=hidden]),select,textarea) { font-size:16px; }
  .public-site .cabinet-ui { transform:none; }
  .public-site .cabinet-ui__nav { flex-wrap:wrap; gap:8px 16px; }
  .public-site .hero__visual-tag { max-width:100%; }
  .public-site .about-hero img { height:auto; aspect-ratio:4/3; object-fit:cover; }
  .public-site .fox-footer__bottom { padding-right:0; padding-bottom:6rem; }
  .public-site .legal-page article { padding:1.5rem; }
  .partner-auth .desk-login { padding-inline:max(20px,var(--safe-left)) max(20px,var(--safe-right)); padding-bottom:max(2rem,var(--safe-bottom)); }
  .partner-auth .desk-brand { flex-wrap:wrap; }
}
@media (max-width:700px) {
  .partner-app .demo-nav nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-app .demo-main { padding-inline:max(16px,var(--safe-left)) max(16px,var(--safe-right)); }
  .partner-app .partner-demo-bar form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .partner-app .partner-demo-bar label { grid-column:1/-1; }
  .partner-app .partner-demo-bar select { width:100%; }
  .partner-app .partner-demo-bar button { min-height:46px; }
  .partner-app .demo-card-heading,.partner-app .demo-catalog-note { flex-wrap:wrap; }
  .partner-app .demo-support-grid { gap:16px; }
  .partner-app .demo-chat-message { max-width:100%; margin-left:16px; }
  .partner-app .demo-chat-message--customer { margin-left:0; margin-right:16px; }
  .partner-app .demo-tuning,.partner-app .demo-payment { padding:20px; }
  .partner-app .demo-payment dl>div { gap:12px; }
  .partner-app .demo-payment dd { white-space:normal; text-align:right; flex-shrink:0; max-width:58%; }
  .partner-app .demo-specs div { flex-wrap:wrap; gap:6px 14px; }
  .partner-app .demo-specs dd { text-align:left; }
  .partner-app .desk-field--checkbox { align-items:start; }
  .partner-app .demo-cart { max-height:calc(100dvh - 32px); }
}
@media (max-width:600px) {
  .bo-body .bo-topbar { flex-wrap:wrap; gap:8px; }
  .bo-body .bo-topbar__actions { gap:8px; }
  .bo-body .bo-topbar .bo-contours a { min-width:40px; padding:6px 8px; }
  .bo-body .bo-site-link span { display:none; }
  .bo-body .bo-main,.bo-drawer__content { padding-inline:max(16px,var(--safe-left)) max(16px,var(--safe-right)); }
  .bo-body .bo-main .desk-filters>label { flex-basis:100%; }
  .bo-body .bo-main .desk-filters>.button { flex:1; justify-content:center; }
  .bo-body .bo-main .desk-panel>header { flex-wrap:wrap; gap:10px; }
  .bo-body .bo-main .desk-row { flex-wrap:wrap; }
  .bo-body .bo-main .desk-row-meta { text-align:left; justify-items:start; }
  .bo-body .bo-main .desk-metrics a { padding:16px 12px; }
  .bo-body .bo-main .desk-metrics strong { font-size:clamp(24px,7vw,32px); overflow-wrap:anywhere; }
  .bo-body .work-table-wrap { border-radius:var(--ui-radius-small,8px); }
  .bo-body .work-table { min-width:620px; }
  .bo-body .desk-pipeline { scroll-snap-type:x proximity; grid-auto-columns:min(280px,85vw); }
  .bo-body .desk-stage { scroll-snap-align:start; }
  .bo-body .journey-impact { gap:16px; flex-wrap:wrap; }
  .bo-body .bo-content-card footer,.bo-body .bo-settings-shortcut { flex-wrap:wrap; }
  .bo-body .bo-settings-shortcut>div { flex-basis:calc(100% - 60px); }
  .bo-body .bo-page-footer { flex-wrap:wrap; }
  .bo-body .work-form-footer { align-items:stretch; }
  .bo-body .work-form-footer>.button { flex:1; justify-content:center; }
}
@media (max-width:380px) {
  .partner-app .demo-brand>span { font-size:1.2rem; }
  .partner-app .demo-brand img { width:34px; height:34px; }
  .partner-app .demo-brand small { font-size:.58rem; }
  .partner-app .partner-menu-toggle:not([hidden]) { font-size:.75rem; padding:8px; gap:6px; }
  .partner-app .demo-page-heading h1 { font-size:1.8rem; }
  .partner-app .partner-demo-bar form { grid-template-columns:minmax(0,1fr); }
  .partner-app .partner-demo-bar button { width:100%; }
  .partner-app .partner-selection-fields,.partner-app .demo-card .desk-facts { grid-template-columns:minmax(0,1fr); }
  .partner-app .demo-card,.partner-app .desk-panel--padded { padding:18px; }
  .partner-app .demo-payment-amount { font-size:1.9rem; }
  .partner-app .demo-metrics { grid-template-columns:minmax(0,1fr); }
  .partner-app .demo-metric>strong { font-size:1.8rem; }
  .partner-app .demo-metric>small { font-size:.75rem; }
  .partner-app .demo-metric>span { font-size:.8rem; }
  .partner-app .demo-topbar-actions { flex-wrap:wrap; }
  .partner-app .demo-topbar-actions>.demo-button { flex:1; }
  .public-site .hero__actions,.public-site .fox-home-hero__actions { flex-wrap:wrap; }
  .public-site .fox-footer__wordmark { font-size:3.8rem; }
  .public-site .fox-inline { padding:1rem; gap:.75rem; }
}
@media (max-height:520px) and (max-width:1100px) {
  .partner-app .demo-nav,.public-site .site-header,.bo-body .bo-topbar { position:relative; }
  .partner-navigation { max-height:calc(100dvh - 120px); }
  .public-site .site-nav { position:absolute; top:100%; max-height:calc(100dvh - 75px); grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; justify-items:stretch; gap:0 24px; }
  .public-site .site-nav a { min-height:44px; }
  .public-site .fox-world { --actor-width:140px; --actor-height:140px; }
  .public-site .fox-stage-bubble { max-height:calc(100dvh - 215px); overflow:auto; font-size:.75rem; padding:.6rem .8rem; }
  .public-site .site-nav__link { padding:.65rem 0; font-size:1.15rem; }
  .public-site .fox-companion { bottom:max(.4rem,var(--safe-bottom)); }
  .public-site .fox-launcher { width:3.5rem; }
  .public-site .fox-launcher img { width:3.5rem; height:3.5rem; }
  .public-site .fox-panel { position:fixed; inset:.5rem max(.5rem,var(--safe-right)) auto auto; max-height:calc(100dvh - 1rem); }
  .bo-body .bo-brand { min-height:62px; padding-block:12px; }
  .bo-body .bo-workspace { display:none; }
  .bo-body .bo-nav-search { margin-bottom:8px; }
  .bo-body .bo-operator__profile { padding-block:10px; }
}
@media (any-pointer:coarse) {
  :is(.public-site,.partner-app,.bo-body,.partner-auth) :is(input:not([type=checkbox]):not([type=range]):not([type=hidden]),textarea,select) { font-size:16px; }
  :is(.public-site,.partner-app,.bo-body) input[type=range] { min-height:44px; cursor:pointer; }
  :is(.public-site,.partner-app,.bo-body) :is(.button,.demo-button,.fox-option,.bo-menu-toggle,.bo-menu-dismiss) { min-height:44px; }
  :is(.public-site,.partner-app,.bo-body) input[type=checkbox] { min-width:22px; min-height:22px; }
}
@media (min-width:1800px) {
  .partner-app .demo-main { max-width:1480px; padding-inline:40px; }
  .bo-body .bo-main { max-width:1600px; padding-inline:40px; }
  .public-site .fox-footer__middle,.public-site .fox-footer__top,.public-site .fox-footer__bottom { max-width:1600px; margin-inline:auto; }
}

/* Form helpers also apply to content inserted by partial navigation. */
.desk-form [data-field][hidden] { display: none !important; }
.form-password-toggle { justify-self: start; width: auto; padding: .35rem 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: .8rem; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.catalog-art-note { display: block; color: var(--muted, #70685f); font-size: .7rem; line-height: 1.4; margin: .5rem 0; }
[data-media-preview] img { object-fit: contain; max-height: 160px; }

.form-optional-fields { grid-column: 1 / -1; padding: 1rem; border: 1px solid #b8ac9755; border-radius: .75rem; }
.form-optional-fields summary { cursor: pointer; font-weight: 600; }
.form-optional-fields[open] .desk-field { margin-top: 1rem; }
