/* Ipakodo mobile application layer v7.3.0
   Shared, additive rules for public, auth, member and officer surfaces. */
:root{
  --app-blue:#123f91;
  --app-blue-bright:#1d5fd1;
  --app-teal:#0f817b;
  --app-gold:#f5bd2e;
  --app-ink:#10213f;
  --app-muted:#65748b;
  --app-surface:#fff;
  --app-line:#dce5f0;
  --app-radius:1.15rem;
  --app-dock-height:4.75rem;
}

html{overflow-x:hidden;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;min-width:320px;-webkit-tap-highlight-color:transparent}
img,video,canvas,svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
:where(button,a,input,select,textarea):focus-visible{outline:3px solid rgba(29,95,209,.28);outline-offset:2px}

/* Keep inherited page titles proportionate without changing their semantics. */
:where(main,header,section) h1{font-size:clamp(1.85rem,5vw,3.65rem);line-height:1.08;text-wrap:balance}
:where(main,header,section) h2{font-size:clamp(1.35rem,3.4vw,2.45rem);line-height:1.16;text-wrap:balance}
:where(main,header,section) h3{line-height:1.22;text-wrap:balance}
:where(main,header,section) p{overflow-wrap:anywhere}

.app-safe-card{border:1px solid var(--app-line);border-radius:var(--app-radius);background:var(--app-surface);box-shadow:0 20px 55px -38px rgba(15,34,65,.55)}
.app-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:#eaf2ff;color:#184caa;font-size:.69rem;font-weight:850;letter-spacing:.04em}

@media(max-width:899px){
  :root{--app-radius:1rem}
  body{padding-bottom:max(env(safe-area-inset-bottom),0px)}
  :where(main).pt-24,:where(main).sm\:pt-32,:where(main).md\:pt-20{padding-top:4.8rem!important}
  :where(.page-hero,.hero-section,.registration-hero,.login-hero,.forgot-hero,.mp-hero,[class*="page-hero"],[class*="hero-banner"]){min-height:0!important;padding-top:1.6rem!important;padding-bottom:1.6rem!important}
  :where(.page-hero,.hero-section,.registration-hero,.login-hero,.forgot-hero,[class*="page-hero"],[class*="hero-banner"]) h1{font-size:clamp(1.8rem,8.2vw,2.55rem)!important;line-height:1.04!important}
  :where(.page-hero,.hero-section,.registration-hero,.login-hero,.forgot-hero,[class*="page-hero"],[class*="hero-banner"]) p{font-size:.9rem!important;line-height:1.62!important}
  :where(section).py-16,:where(section).sm\:py-20,:where(section).md\:py-24,:where(section).md\:py-28{padding-top:2.6rem!important;padding-bottom:2.6rem!important}
  :where(.max-w-7xl,.max-w-6xl,.max-w-5xl,.max-w-4xl){padding-left:max(.9rem,env(safe-area-inset-left));padding-right:max(.9rem,env(safe-area-inset-right))}
  :where(button,a,[role="button"]){min-height:44px}
  :where(input,select,textarea){font-size:16px!important}
  :where(table){font-size:.72rem}
  :where(.overflow-x-auto,.mp-table-wrap){overscroll-behavior-inline:contain;scroll-snap-type:x proximity}
}

@media(max-width:520px){
  :where(main,header,section) h1{font-size:clamp(1.65rem,8vw,2.2rem)}
  :where(main,header,section) h2{font-size:clamp(1.25rem,6vw,1.72rem)}
  :where(main,header,section) h3{font-size:1rem}
  :where(.rounded-\[2rem\],.rounded-3xl){border-radius:1.15rem!important}
  :where(.px-6,.sm\:px-10){padding-left:1rem!important;padding-right:1rem!important}
  :where(.py-14,.sm\:py-20){padding-top:2rem!important;padding-bottom:2rem!important}
}

/* Signed-in command bar: compact on phones, information-rich on larger screens. */
.member-context-v6{isolation:isolate}
@media(max-width:899px){
  .member-context-v6{position:relative!important;margin:0!important;border:0!important}
  .member-context-v6-inner{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:.65rem!important;padding:.65rem .8rem!important}
  .member-context-v6-copy{min-width:0!important;gap:.55rem!important}
  .member-context-v6-avatar{width:2.55rem!important;height:2.55rem!important;min-width:2.55rem!important;border-radius:.85rem!important}
  .member-context-v6-avatar img{width:100%!important;height:100%!important;object-fit:cover!important}
  .member-context-v6-copy strong{max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem!important}
  .member-context-v6-copy small{max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.52rem!important}
  .member-context-v6-status{grid-column:1/-1!important;display:flex!important;gap:.4rem!important;overflow-x:auto!important;padding-bottom:.08rem!important;scrollbar-width:none}
  .member-context-v6-status::-webkit-scrollbar{display:none}
  .member-context-v6-status span{flex:0 0 auto!important;min-height:1.85rem!important;padding:.3rem .55rem!important;font-size:.52rem!important}
  .member-context-v6-actions{display:flex!important;gap:.35rem!important}
  .member-context-v6-actions a{width:2.55rem!important;height:2.55rem!important;min-height:2.55rem!important;padding:0!important;border-radius:.8rem!important}
  .member-context-v6-actions a span{display:none!important}
  .member-context-v6-actions a i{font-size:.82rem!important}
  .member-context-v6-badge{top:-.22rem!important;right:-.22rem!important}
}

/* Compact member and officer dashboard headers. */
@media(max-width:899px){
  .mp-topbar{min-height:3.8rem!important;padding:.55rem max(.65rem,env(safe-area-inset-right)) .55rem max(.65rem,env(safe-area-inset-left))!important}
  .mp-topbar-left,.mp-topbar-actions{gap:.5rem!important}
  .mp-page-kicker{display:none!important}
  .mp-page-title{font-size:1rem!important;line-height:1.15!important}
  .mp-menu,.mp-icon-button{width:2.65rem!important;height:2.65rem!important;min-height:2.65rem!important;border-radius:.82rem!important}
  .mp-person{display:none!important}
  .mp-main{padding-top:.85rem!important}
  .mp-shell{gap:.9rem!important}
  .mp-section{margin-top:1rem!important}
  .mp-section-head{margin-bottom:.65rem!important;gap:.5rem!important}
  .mp-section-head h2{font-size:1.14rem!important}
  .mp-section-head p{font-size:.69rem!important;line-height:1.45!important}
  .mp-hero{gap:.9rem!important;padding:1.05rem!important;border-radius:1.15rem!important}
  .mp-hero h1{font-size:clamp(1.55rem,7vw,2.05rem)!important;line-height:1.04!important}
  .mp-hero p{margin-top:.6rem!important;font-size:.78rem!important;line-height:1.55!important}
  .mp-eyebrow{margin-bottom:.65rem!important;padding:.36rem .55rem!important;font-size:.55rem!important}
  .mp-identity-card{gap:.6rem!important;padding:.8rem!important;border-radius:.9rem!important}
  .mp-hero-actions{gap:.45rem!important;margin-top:.8rem!important}
  .mp-button{min-height:2.65rem!important;padding:.62rem .78rem!important;border-radius:.8rem!important;font-size:.68rem!important}
  .mp-card,.mp-list-item{border-radius:.9rem!important}
  .mp-card-pad,.mp-stat{padding:.9rem!important}
  .mp-list-item{gap:.65rem!important;padding:.7rem!important}
  .mp-list-icon{width:2.35rem!important;height:2.35rem!important;border-radius:.72rem!important}
  .mp-stat{min-height:7.4rem!important}
  .mp-stat-value{font-size:1.8rem!important}
  .mp-chat{min-height:calc(100dvh - 10.5rem)!important}
  .mp-chat-pane{min-height:calc(100dvh - 17rem)!important}
  .mp-chat-compose{position:sticky;bottom:0;padding:.55rem!important;padding-bottom:max(.55rem,env(safe-area-inset-bottom))!important}
  .mp-bubble-row{max-width:94%!important}
  .unified-dashboard-mobile-dock{
    left:max(.4rem,env(safe-area-inset-left))!important;
    right:max(.4rem,env(safe-area-inset-right))!important;
    bottom:max(.4rem,env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:31rem!important;
    min-height:4.25rem!important;
    margin-inline:auto!important;
    grid-auto-rows:1fr!important;
    align-items:stretch!important;
    padding:.35rem!important;
    border-radius:1.2rem!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  .unified-dashboard-mobile-dock a,.unified-dashboard-mobile-dock button{
    width:100%!important;
    height:100%!important;
    min-height:3.45rem!important;
    border-radius:.9rem!important;
    font-size:.52rem!important;
    line-height:1!important;
    box-sizing:border-box!important;
  }
  .unified-dashboard-mobile-dock i{
    width:2rem!important;
    height:2rem!important;
    display:grid!important;
    place-items:center!important;
    flex:0 0 2rem!important;
    font-size:.92rem!important;
  }
  .unified-dashboard-mobile-dock span{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:normal!important;
  }
}

@media(max-width:380px){
  .member-context-v6-actions a:nth-child(2){display:none!important}
  .mp-page-title{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .unified-dashboard-mobile-dock a,.unified-dashboard-mobile-dock button{font-size:.48rem!important}
}

@media(display-mode:standalone){
  .site-header,.mp-topbar{padding-top:max(.55rem,env(safe-area-inset-top))!important}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
