/* 1NFINIT3 UI System V7 — mobile, Safari, vector-state contract */
:root{
  --ui-touch:44px;
  --ui-vvh:100dvh;
  --ui-vv-top:0px;
  --ui-keyboard-height:0px;
  --ui-safe-top:env(safe-area-inset-top,0px);
  --ui-safe-right:env(safe-area-inset-right,0px);
  --ui-safe-bottom:env(safe-area-inset-bottom,0px);
  --ui-safe-left:env(safe-area-inset-left,0px);
}
html{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{max-width:100%;min-height:100svh;min-height:100dvh;overflow-x:clip;scroll-padding-bottom:calc(var(--ui-keyboard-height) + 18px)}
/* V3 icons carry their own presentation. Never recolor them through CSS image filters. */
img[src*="/assets/icons/ui-v3/"],img[data-icon-key]{filter:none!important;opacity:1!important;image-rendering:auto!important}
.q-search-icon,.search-q,.locale-search>img{filter:none!important;opacity:1!important}
/* Stable vector boxes. Optical sizing is deliberate, hit targets are separate. */
.rail-btn>img,.top-action img,.appearance-trigger img,.icon-action img,.locale-close img,.search-close img,.dialog-close img,.mobile-nav-trigger img{object-fit:contain;object-position:center}
.rail-btn .q-search-icon,.search-q,.locale-search>img{width:18px!important;height:18px!important;inline-size:18px!important;block-size:18px!important}
/* Internal fluorescent focus only; browser focus ring remains available on non-text controls. */
#formationInput:focus-visible,#localeSearch:focus-visible,#commandSearchInput:focus-visible,#globalSearchInput:focus-visible,#linkDialogInput:focus-visible,#chatInput:focus-visible{outline:none!important;box-shadow:none!important}
html[data-theme="light"] .composer:focus-within{border-color:rgba(24,27,31,.08)!important;transform:none!important;box-shadow:0 22px 64px rgba(54,61,70,.12),inset 0 8px 18px -14px rgba(255,240,166,.92),inset 0 -8px 20px -15px rgba(201,149,34,.62),inset 9px 0 20px -17px rgba(227,189,94,.42),inset -9px 0 20px -17px rgba(227,189,94,.42)!important}
html[data-theme="light"] .composer:focus-within::after{top:5px!important;height:1px!important;left:10%!important;right:10%!important;opacity:.88!important;background:linear-gradient(90deg,transparent,rgba(185,126,10,.20),rgba(255,240,166,.94),rgba(185,126,10,.20),transparent)!important;box-shadow:0 0 8px rgba(227,189,94,.54)!important}
html[data-theme="light"] .locale-search:focus-within,html[data-theme="light"] .command-search-bar:focus-within,html[data-theme="light"] .search-bar:focus-within,html[data-theme="light"] .link-input-wrap:focus-within{border-color:rgba(24,27,31,.08)!important;box-shadow:inset 0 7px 16px -12px rgba(255,240,166,.90),inset 0 -7px 18px -13px rgba(201,149,34,.56),inset 8px 0 18px -16px rgba(227,189,94,.34),inset -8px 0 18px -16px rgba(227,189,94,.34)!important}
.ui-scroll-locked{overflow:hidden!important;overscroll-behavior:none!important}
@media(max-width:760px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),textarea,select{font-size:16px!important}
  #formationInput,.locale-search input,.command-search-bar input,.search-bar input,.link-input-wrap input,#chatInput{font-size:16px!important;line-height:1.35!important}
  button,.rail-btn,.top-action,.appearance-trigger,.mobile-nav-trigger,.locale-close,.search-close,.dialog-close,.icon-action{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .top-action,.appearance-trigger,.mobile-nav-trigger{width:var(--ui-touch)!important;height:var(--ui-touch)!important;min-width:var(--ui-touch)!important;min-height:var(--ui-touch)!important}
  .rail .rail-btn{height:46px!important;min-height:46px!important;grid-template-columns:34px 1fr!important}
  .rail{padding-top:calc(12px + var(--ui-safe-top))!important;padding-bottom:calc(12px + var(--ui-safe-bottom))!important}
  .topbar{padding-top:var(--ui-safe-top)!important}
  .top-actions{top:calc(4px + var(--ui-safe-top))!important;inset-inline-end:calc(4px + var(--ui-safe-right))!important}
  .mobile-nav-trigger{top:calc(4px + var(--ui-safe-top))!important;inset-inline-start:calc(4px + var(--ui-safe-left))!important}
  .form-view,.understand-view{min-height:var(--ui-vvh)!important;padding-bottom:calc(20px + var(--ui-safe-bottom))!important}
  body.keyboard-open .form-view{min-height:var(--ui-vvh)!important;padding-top:calc(64px + var(--ui-vv-top))!important;padding-bottom:calc(10px + var(--ui-safe-bottom))!important;align-items:center!important}
  body.keyboard-open .form-center{margin-top:0!important}
  body.keyboard-open .promise{margin-bottom:10px!important}
  body.keyboard-open .form-center h1{margin-bottom:14px!important}
  body.keyboard-open .composer{margin-bottom:calc(6px + var(--ui-safe-bottom))!important}
  .locale-panel.open{max-height:calc(var(--ui-vvh) - 16px - var(--ui-vv-top))!important;padding-bottom:var(--ui-safe-bottom)!important;overflow:hidden!important}
  .locale-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  #commandSearch[open],#linkDialog[open],#settingsDialog[open]{max-height:calc(var(--ui-vvh) - 14px - var(--ui-vv-top))!important}
  .shell-dialog{overscroll-behavior:contain}
  body.keyboard-open .horizon{transform:none!important}
}
@media(prefers-reduced-motion:reduce){body.keyboard-open .form-center{transition:none!important}}
