/* CDI V29.8.1 - comprehensive mobile spacing, contrast and form polish */
:root{
  --cdi-2981-navy:#0b2342;
  --cdi-2981-ink:#10213d;
  --cdi-2981-muted:#5e6d82;
  --cdi-2981-line:#d9e3ee;
  --cdi-2981-soft:#f4f7fb;
  --cdi-2981-green:#00b978;
  --cdi-2981-blue:#2f80ed;
}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:clip}
  body *{box-sizing:border-box}
  body main,body section,body article,body form,body fieldset,body div{min-width:0}
  body img,body svg,body video{max-width:100%;height:auto}
  body h1,body h2,body h3,body h4,body p,body li,body label,body a,body button,body span{overflow-wrap:break-word}

  /* Keep focused utility journeys clear of the floating assistant. */
  body.cdi-auth-page .ai-fab,
  body.cdi-app-page .ai-fab,
  body.cdi-claim-page .ai-fab,
  body.cdi-help-page .ai-fab,
  body.cdi-support-page .ai-fab,
  body.cdi-match-page .ai-fab{display:none!important}

  /* Learner account sign-in, registration and recovery. */
  body.cdi-auth-page .cdi-v295-auth-shell{
    width:100%!important;
    min-height:calc(100dvh - 70px)!important;
    padding:24px max(18px,env(safe-area-inset-right)) calc(108px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))!important;
    display:block!important;
    background:linear-gradient(155deg,#f4f8fd 0%,#fff 58%,#eef8f5 100%)!important;
  }
  body.cdi-auth-page .cdi-v295-auth-card{
    width:100%!important;
    max-width:560px!important;
    margin:0 auto!important;
    padding:26px 22px 24px!important;
    border-radius:22px!important;
    border:1px solid var(--cdi-2981-line)!important;
    box-shadow:0 18px 46px rgba(13,40,76,.09)!important;
    overflow:hidden!important;
  }
  body.cdi-auth-page .cdi-v295-auth-logo{margin:0 0 20px!important;padding:0!important}
  body.cdi-auth-page .cdi-v295-auth-logo img{width:142px!important;max-height:70px!important;object-fit:contain!important}
  body.cdi-auth-page .cdi-role-kicker{
    display:block!important;
    margin:0 0 9px!important;
    color:#07865c!important;
    font-size:11px!important;
    line-height:1.25!important;
    letter-spacing:.12em!important;
  }
  body.cdi-auth-page .cdi-v295-auth-card>h1{
    margin:0!important;
    color:var(--cdi-2981-ink)!important;
    font-size:clamp(29px,8.2vw,36px)!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
    text-wrap:balance;
  }
  body.cdi-auth-page .cdi-v295-auth-intro{
    max-width:none!important;
    margin:13px 0 22px!important;
    padding:0!important;
    color:var(--cdi-2981-muted)!important;
    font-size:15px!important;
    line-height:1.58!important;
    text-align:left!important;
  }
  body.cdi-auth-page .cdi-v295-auth-form{gap:18px!important;width:100%!important}
  body.cdi-auth-page .cdi-v295-two-col{display:grid!important;grid-template-columns:1fr!important;gap:18px!important}
  body.cdi-auth-page .cdi-v295-auth-form>label,
  body.cdi-auth-page .cdi-v295-two-col>label{
    width:100%!important;
    gap:8px!important;
    color:#20334f!important;
    font-size:14px!important;
    line-height:1.3!important;
    font-weight:750!important;
  }
  body.cdi-auth-page .cdi-v295-auth-form .input,
  body.cdi-auth-page .cdi-v295-auth-form input:not([type=checkbox]):not([type=radio]),
  body.cdi-auth-page .cdi-v295-auth-form select,
  body.cdi-auth-page .cdi-v295-auth-form textarea{
    width:100%!important;
    height:54px!important;
    min-height:54px!important;
    margin:0!important;
    padding:0 15px!important;
    border:1px solid #cfdbe7!important;
    border-radius:14px!important;
    background:#fff!important;
    color:var(--cdi-2981-ink)!important;
    font-size:16px!important;
    font-weight:600!important;
    box-shadow:0 6px 16px rgba(17,48,84,.035)!important;
  }
  body.cdi-auth-page .cdi-v295-auth-form textarea{height:auto!important;min-height:112px!important;padding:14px 15px!important}
  body.cdi-auth-page .cdi-v295-auth-form .input:focus,
  body.cdi-auth-page .cdi-v295-auth-form input:focus,
  body.cdi-auth-page .cdi-v295-auth-form select:focus,
  body.cdi-auth-page .cdi-v295-auth-form textarea:focus{
    border-color:var(--cdi-2981-blue)!important;
    box-shadow:0 0 0 3px rgba(47,128,237,.12)!important;
    outline:0!important;
  }
  body.cdi-auth-page .cdi-v295-pill-label{
    display:block!important;
    width:auto!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    background:none!important;
    color:#20334f!important;
    font-size:14px!important;
    line-height:1.3!important;
    text-align:left!important;
    cursor:default!important;
  }
  body.cdi-auth-page .cdi-v295-pill-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    width:100%!important;
  }
  body.cdi-auth-page .cdi-v295-choice-pill{
    width:100%!important;
    min-height:48px!important;
    padding:11px 14px!important;
    justify-content:flex-start!important;
    border-radius:13px!important;
    border:1px solid #d3deea!important;
    background:#fff!important;
    color:#334761!important;
    font-size:14px!important;
    line-height:1.25!important;
    text-align:left!important;
    white-space:normal!important;
  }
  body.cdi-auth-page .cdi-v295-choice-pill:before{
    content:"";
    flex:0 0 16px;
    width:16px;
    height:16px;
    margin-right:10px;
    border:1.5px solid #aebdcd;
    border-radius:50%;
    background:#fff;
    box-shadow:inset 0 0 0 4px #fff;
  }
  body.cdi-auth-page .cdi-v295-choice-pill:has(input:checked){
    border-color:var(--cdi-2981-green)!important;
    background:#edf9f4!important;
    color:#087a53!important;
    box-shadow:0 6px 18px rgba(0,185,120,.08)!important;
  }
  body.cdi-auth-page .cdi-v295-choice-pill:has(input:checked):before{background:var(--cdi-2981-green);border-color:var(--cdi-2981-green)}
  body.cdi-auth-page .cdi-v295-check{
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    align-items:start!important;
    gap:10px!important;
    padding:13px 14px!important;
    border:1px solid #dce5ee!important;
    border-radius:13px!important;
    background:#f8fafc!important;
  }
  body.cdi-auth-page .cdi-v295-check input{width:18px!important;height:18px!important;margin:1px 0 0!important}
  body.cdi-auth-page .cdi-v295-check span{font-size:12.5px!important;line-height:1.5!important;font-weight:600!important;color:#526178!important}
  body.cdi-auth-page .cdi-v295-auth-form .btn,
  body.cdi-auth-page .cdi-v295-google-btn{
    width:100%!important;
    min-height:50px!important;
    padding:12px 16px!important;
    border-radius:14px!important;
    font-size:15px!important;
    line-height:1.2!important;
  }
  body.cdi-auth-page .cdi-v295-auth-inline{margin-top:-5px!important;text-align:right!important}
  body.cdi-auth-page .cdi-v295-auth-inline a{font-size:13px!important}
  body.cdi-auth-page .cdi-v295-auth-foot,
  body.cdi-auth-page .cdi-v295-guest-link{
    margin:18px 0 0!important;
    padding:0!important;
    font-size:13.5px!important;
    line-height:1.5!important;
    text-align:center!important;
  }

  /* App shell and learner landing page gutters. */
  body.cdi-app-page .cdi-v29-app-shell{
    width:100%!important;
    max-width:100%!important;
    padding:14px max(18px,env(safe-area-inset-right)) calc(106px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))!important;
  }
  body.cdi-app-page .cdi-v29-appbar{margin:0 0 18px!important;padding:9px 10px!important;border-radius:15px!important}
  body.cdi-app-page .cdi-v29-welcome,
  body.cdi-app-page .cdi-v29-pro-welcome,
  body.cdi-app-page .cdi-v29-page-intro{
    width:100%!important;
    margin:0 0 18px!important;
    padding:0 2px!important;
  }
  body.cdi-app-page .cdi-v29-welcome h1,
  body.cdi-app-page .cdi-v29-pro-welcome h1,
  body.cdi-app-page .cdi-v29-page-intro h1{
    max-width:100%!important;
    margin:5px 0 10px!important;
    color:var(--cdi-2981-ink)!important;
    font-size:clamp(29px,8vw,34px)!important;
    line-height:1.1!important;
    letter-spacing:-.035em!important;
  }
  body.cdi-app-page .cdi-v29-welcome p,
  body.cdi-app-page .cdi-v29-pro-welcome p,
  body.cdi-app-page .cdi-v29-page-intro p{
    max-width:100%!important;
    margin:0!important;
    color:#516178!important;
    font-size:14px!important;
    line-height:1.62!important;
  }
  body.cdi-app-page .cdi-v295-learner-account-strip{
    width:100%!important;
    margin:0 0 18px!important;
    padding:16px!important;
    gap:14px!important;
    border-radius:16px!important;
  }
  body.cdi-app-page .cdi-v295-learner-account-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
  body.cdi-app-page .cdi-v295-learner-account-actions a{min-height:44px!important;border-radius:12px!important;padding:10px 12px!important;font-size:12.5px!important}

  /* Force high contrast even when old PWA CSS remains cached. */
  body.cdi-app-page .cdi-v29-learner-hero{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:23px 19px 21px!important;
    border:1px solid rgba(255,255,255,.1)!important;
    border-radius:20px!important;
    background-color:#0b2342!important;
    background-image:linear-gradient(145deg,#0a203d 0%,#12375d 68%,#0d5a57 130%)!important;
    color:#fff!important;
    box-shadow:0 18px 38px rgba(11,35,66,.16)!important;
    isolation:isolate!important;
    overflow:hidden!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero:before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:-2!important;
    background:linear-gradient(180deg,rgba(6,23,45,.08),rgba(6,23,45,.36))!important;
    pointer-events:none!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero:after{
    z-index:-1!important;
    right:-110px!important;
    top:-120px!important;
    width:260px!important;
    height:260px!important;
    background:rgba(27,202,129,.16)!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero-copy{position:relative!important;z-index:2!important;padding:0!important}
  body.cdi-app-page .cdi-v29-learner-hero-art{display:none!important}
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-hero-kicker{
    display:inline-flex!important;
    max-width:100%!important;
    padding:7px 10px!important;
    border:1px solid rgba(151,241,190,.3)!important;
    border-radius:999px!important;
    background:rgba(0,185,120,.15)!important;
    color:#a5f4c7!important;
    font-size:10.5px!important;
    line-height:1.2!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero h2{
    margin:14px 0 11px!important;
    color:#fff!important;
    font-size:clamp(25px,7vw,30px)!important;
    line-height:1.13!important;
    letter-spacing:-.03em!important;
    text-shadow:0 1px 1px rgba(0,0,0,.14)!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero p{
    margin:0 0 18px!important;
    color:rgba(255,255,255,.86)!important;
    font-size:13.5px!important;
    line-height:1.62!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;width:100%!important}
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-primary,
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-secondary{
    width:100%!important;
    min-height:48px!important;
    padding:12px 15px!important;
    border-radius:13px!important;
    font-size:14px!important;
    line-height:1.2!important;
  }
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-primary{background:linear-gradient(135deg,#2d7df0,#00b9d9)!important;color:#fff!important;border:0!important}
  body.cdi-app-page .cdi-v29-learner-hero .cdi-app-secondary{background:rgba(255,255,255,.09)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important}

  body.cdi-app-page .cdi-app-section,
  body.cdi-app-page .cdi-v29-pro-grid,
  body.cdi-app-page .cdi-v29-account-layout,
  body.cdi-app-page .cdi-v29-enquiry-history,
  body.cdi-app-page .cdi-v29-saved-list{width:100%!important;margin-left:0!important;margin-right:0!important}
  body.cdi-app-page .cdi-v29-action-grid,
  body.cdi-app-page .cdi-v29-mini-grid{grid-template-columns:1fr!important;gap:10px!important}
  body.cdi-app-page .cdi-v29-action-grid>a,
  body.cdi-app-page .cdi-v29-mini-grid>a{padding:15px!important;border-radius:16px!important;min-height:0!important}

  /* Compact, legible PWA bottom navigation. */
  .pwa-standalone .pwa-bottom-nav{
    left:0!important;
    right:0!important;
    width:100%!important;
    min-height:76px!important;
    padding:6px max(5px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))!important;
    gap:1px!important;
    overflow:hidden!important;
  }
  .pwa-standalone .pwa-nav-item{min-width:0!important;min-height:61px!important;padding:5px 2px!important;border-radius:13px!important;font-size:10px!important;line-height:1.15!important;white-space:nowrap!important}
  .pwa-standalone .pwa-nav-item .cdi-icon,.pwa-standalone .pwa-nav-item i{width:23px!important;height:23px!important;font-size:23px!important}

  /* Help Centre, Knowledge Hub and support forms. */
  body.cdi-help-page .help-container,
  body.cdi-help-page .help-main>.help-container,
  body.cdi-support-page .help-container{
    width:100%!important;
    max-width:100%!important;
    padding-left:max(18px,env(safe-area-inset-left))!important;
    padding-right:max(18px,env(safe-area-inset-right))!important;
  }
  body.cdi-help-page .help-hero{padding:34px 0!important}
  body.cdi-help-page .help-hero h1{font-size:31px!important;line-height:1.1!important;color:#fff!important}
  body.cdi-help-page .help-hero p{font-size:14px!important;line-height:1.62!important;color:rgba(255,255,255,.82)!important}
  body.cdi-help-page .help-tabs{
    display:flex!important;
    gap:8px!important;
    max-width:100%!important;
    overflow-x:auto!important;
    padding:2px 0 10px!important;
    scroll-snap-type:x proximity!important;
    scrollbar-width:none!important;
  }
  body.cdi-help-page .help-tabs::-webkit-scrollbar{display:none!important}
  body.cdi-help-page .help-tab{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:42px!important;
    padding:9px 14px!important;
    border-radius:12px!important;
    font-size:13px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    scroll-snap-align:start!important;
  }
  body.cdi-knowledge-page .hub-grid{grid-template-columns:1fr!important;gap:13px!important}
  body.cdi-knowledge-page .hub-card{padding:19px!important;border-radius:17px!important}
  body.cdi-knowledge-page .hub-card h3{font-size:19px!important;line-height:1.28!important}
  body.cdi-knowledge-page .hub-card p{font-size:13.5px!important;line-height:1.58!important}
  body.cdi-support-page .support-grid{grid-template-columns:1fr!important;gap:18px!important}
  body.cdi-support-page .support-form-card{padding:20px 17px!important;border-radius:18px!important}
  body.cdi-support-page .support-role-grid,
  body.cdi-support-page .support-category-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  body.cdi-support-page .support-choice label{min-height:46px!important;padding:10px 9px!important;border-radius:12px!important;font-size:12px!important;line-height:1.25!important;white-space:normal!important}
  body.cdi-support-page .support-two{grid-template-columns:1fr!important;gap:14px!important}
  body.cdi-support-page .support-field input,
  body.cdi-support-page .support-field select,
  body.cdi-support-page .support-field textarea{font-size:16px!important;border-radius:13px!important}

  /* Claim and match forms: readable controls without oversized circular pills. */
  body.cdi-claim-page .cw,
  body.cdi-match-page .cw{width:calc(100% - 36px)!important;max-width:100%!important;margin-inline:auto!important}
  body.cdi-claim-page .dcard,
  body.cdi-match-page .cdi-match-panel{padding:19px 17px!important;border-radius:18px!important}
  body.cdi-claim-page .claim-choice-grid,
  body.cdi-claim-page .cms-grid{grid-template-columns:1fr!important;gap:10px!important}
  body.cdi-claim-page .claim-manual label,
  body.cdi-match-page .cdi-match-field label{font-size:13.5px!important;line-height:1.35!important}
  body.cdi-claim-page .ff,
  body.cdi-match-page .ff,
  body.cdi-match-page .input{min-height:52px!important;border-radius:13px!important;font-size:16px!important;padding-inline:14px!important}
  body.cdi-claim-page .claim-choice,
  body.cdi-claim-page .cdi-pill,
  body.cdi-match-page .cdi-pill{
    min-height:46px!important;
    padding:10px 13px!important;
    border-radius:13px!important;
    font-size:13px!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  /* General public mobile form and content safeguards. */
  body:not(.admin-body) input:not([type=checkbox]):not([type=radio]):not([type=submit]),
  body:not(.admin-body) select,
  body:not(.admin-body) textarea{max-width:100%;font-size:16px}
  body:not(.admin-body) .btn,
  body:not(.admin-body) button,
  body:not(.admin-body) [role=button]{max-width:100%}
  body:not(.admin-body) .cw,
  body:not(.admin-body) .container{min-width:0}
}

@media(max-width:380px){
  body.cdi-auth-page .cdi-v295-auth-shell{padding-left:14px!important;padding-right:14px!important}
  body.cdi-auth-page .cdi-v295-auth-card{padding-left:18px!important;padding-right:18px!important}
  body.cdi-app-page .cdi-v29-app-shell{padding-left:14px!important;padding-right:14px!important}
  body.cdi-support-page .support-role-grid,
  body.cdi-support-page .support-category-grid{grid-template-columns:1fr!important}
  body.cdi-app-page .cdi-v295-learner-account-actions{grid-template-columns:1fr!important}
}
