/* V14.3: touch-first refinements. Loaded after all existing styles. */
@media (max-width: 760px) {
  :root { -webkit-text-size-adjust:100%; }
  html { scroll-behavior:smooth; scroll-padding-top:76px; }
  body { width:100%; min-width:0; overflow-x:clip; }
  *, *::before, *::after { box-sizing:border-box; }
  main, section, article, aside, .labShell, .ansibleShell, .iacWorkspace,
  .ansibleWorkspace, .iacMain, .ansibleMain, .d31Main, .infraExplorer,
  .observeCenterV95 { min-width:0; }
  img, video, canvas { max-width:100%; height:auto; }
  pre, code { overflow-wrap:normal; }
  pre, .terraformCode, .ansibleMain>pre, .ansibleConsole pre {
    max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
  button, select, input, textarea, a { touch-action:manipulation; }
  button, select, input:not([type=checkbox]), textarea { min-height:44px; }
  button, a { -webkit-tap-highlight-color:transparent; }
  :focus-visible { outline:3px solid #8479ff; outline-offset:3px; }
  .v138-header { padding:10px 16px!important; }
  .v138-header nav a { min-height:46px; display:flex; align-items:center; }
  .v138-menu-button { min-width:44px; min-height:44px; }
  .labShell, .ansibleShell { width:100%; padding:18px 14px 54px!important; }
  .labPage .iacHero, .ansibleHero { padding:25px 19px!important; border-radius:16px!important; }
  .labPage .iacHero h2, .ansibleHero h1 { font-size:clamp(31px,9vw,46px)!important; line-height:1.08!important; overflow-wrap:anywhere; }
  .labPage .iacWorkspace, .ansibleWorkspace { display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:14px!important; }
  .labPage .iacConfigurator, .ansibleWorkspace>aside { padding:18px!important; }
  .labPage .iacMain, .ansibleMain { width:100%; min-width:0; overflow:hidden; }
  .iacTabs, .ansibleTabs { display:flex!important; overflow-x:auto!important; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; white-space:nowrap; min-height:54px; height:auto!important; padding:4px 8px!important; }
  .iacTabs button, .ansibleTabs button { flex:0 0 auto; min-height:44px; padding:10px 13px!important; font-size:12px!important; }
  .ansibleFileActions { flex:0 0 auto; }
  .ansibleFileActions button { min-height:40px!important; font-size:10px!important; }
  .ansibleMain>pre { min-height:220px!important; max-height:390px!important; padding:16px!important; font-size:11px!important; }
  .ansibleConsole { padding:15px!important; }
  .ansibleOperate { padding:22px 17px!important; }
  .ansibleOperate h2 { font-size:clamp(26px,8vw,36px)!important; }
  .operateCards { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .operateFlow { flex-wrap:wrap; }
  .labPage .observeCenterV95 .observeMainV95,
  .labPage .observeCenterV95 .observeBottomV95,
  .ansibleUnifiedObserve .observeMainV95,
  .ansibleUnifiedObserve .observeBottomV95 { display:grid!important; grid-template-columns:minmax(0,1fr)!important; }
  .labPage .observeKpisV95, .ansibleUnifiedObserve .observeKpis { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .observeChartV95 svg { max-width:100%; height:auto; }
  .infraExplorer, .infraStage, .recoveryBridge { width:100%; max-width:100%; }
  .infraExplorer { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .d31Hero, .d31Commvault, .d31Mindset, .d31Outro { min-width:0; }
  .d31Hero h1 { overflow-wrap:anywhere; }
  .referenceNotice { margin-inline:14px!important; }
}
@media (max-width:420px) {
  .labShell, .ansibleShell { padding-inline:10px!important; }
  .labPage .iacHero, .ansibleHero { padding:21px 15px!important; }
  .operateCards { grid-template-columns:minmax(0,1fr)!important; }
  .labPage .observeKpisV95 article { padding:10px!important; }
  .v138-footer { padding-inline:17px!important; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *, *::before, *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
