:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#162019;background:#f4f7f5}*{box-sizing:border-box}body{margin:0}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;background:#176b3a;color:#fff;box-shadow:0 2px 12px #0002}.topbar a{color:#fff;text-decoration:none}.topbar nav{display:flex;gap:.8rem;flex-wrap:wrap}.brand{font-weight:800}.container{width:min(1050px,100%);margin:auto;padding:1rem}.narrow{width:min(620px,100%)}h1{font-size:1.65rem}h2{margin-top:2rem}.card{background:#fff;border:1px solid #d9e3dc;border-radius:14px;padding:1rem;box-shadow:0 4px 14px #0000000d}.card-list{display:grid;gap:1rem}.form-grid{display:grid;gap:1rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:grid;gap:.4rem;font-weight:650}input,select,textarea,button,.button{font:inherit;border-radius:10px;border:1px solid #b8c8bd;padding:.75rem;background:#fff}textarea{resize:vertical}button,.button{display:inline-block;background:#176b3a;color:#fff;border-color:#176b3a;text-decoration:none;font-weight:700;cursor:pointer;text-align:center}.secondary{background:#fff;color:#176b3a}.danger{background:#a52222;border-color:#a52222}.selected{outline:3px solid #efb21c}.toolbar,.inline{display:flex;gap:.6rem;align-items:center}.wrap{flex-wrap:wrap}.toolbar{margin-bottom:1rem;flex-wrap:wrap}.inline input{flex:1}.flash{padding:.9rem;border-radius:10px;margin-bottom:1rem}.success{background:#dff4e6}.error{background:#ffe1e1}.meta{font-size:.82rem;color:#617267}.comment{margin-top:.8rem;padding:.7rem;border-left:4px solid #d5dfd8;background:#f7faf8}.comment-form{margin-top:.8rem}.document-link{font-weight:700}.compact{padding:.7rem}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.auth-card{max-width:520px;margin:auto}@media(max-width:650px){.two-col{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.container{padding:.8rem}.inline.comment-form{align-items:stretch}.inline.comment-form input{min-width:0}.toolbar .button{flex:1}}
.invite-code-panel{
    position:sticky;
    top:76px;
    z-index:15;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    margin:0 0 1rem;
    padding:1rem;
    border:2px solid #176b3a;
    border-radius:14px;
    background:#fff;
    box-shadow:0 5px 18px #0002
}
.invite-code-label{
    font-size:.82rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#53675a
}
.invite-code-team{font-weight:750;margin-top:.15rem}
.invite-code-value{
    margin:.2rem 0;
    font-size:1.8rem;
    line-height:1.1;
    font-weight:900;
    letter-spacing:.12em;
    color:#176b3a;
    overflow-wrap:anywhere
}
.invite-code-help{font-size:.9rem;color:#617267}
.invite-code-actions{
    display:flex;
    gap:.6rem;
    flex-wrap:wrap;
    justify-content:flex-end
}
.invite-code-actions .button{white-space:nowrap}
@media(max-width:650px){
    .invite-code-panel{
        top:116px;
        align-items:stretch;
        flex-direction:column
    }
    .invite-code-actions{
        display:grid;
        grid-template-columns:1fr 1fr
    }
    .invite-code-value{font-size:1.55rem}
}

.notification-setup{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    margin-bottom:1rem
}
.notification-status{
    margin-top:.3rem;
    color:#617267;
    font-size:.92rem
}
.notification-buttons{
    display:flex;
    gap:.6rem;
    flex-wrap:wrap
}
button:disabled{
    cursor:not-allowed;
    opacity:.65
}
@media(max-width:650px){
    .notification-setup{
        align-items:stretch;
        flex-direction:column
    }
    .notification-buttons{
        display:grid;
        grid-template-columns:1fr 1fr
    }
}

.latest-parent-comment{
    margin-top:1rem;
    padding:.85rem;
    border:1px solid #c9d8ce;
    border-left:5px solid #176b3a;
    border-radius:10px;
    background:#f7faf8
}
.latest-parent-comment p{
    margin:.45rem 0 0
}
.latest-comment-label{
    margin-bottom:.35rem;
    font-size:.75rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.055em;
    color:#617267
}
.comment-time{
    margin-left:.35rem;
    font-size:.78rem;
    font-weight:400;
    color:#718078
}
.coach-comments-collapse{
    margin-top:.75rem;
    border-top:1px solid #d9e3dc;
    padding-top:.65rem
}
.coach-comments-collapse summary{
    color:#176b3a;
    font-weight:750;
    cursor:pointer
}
.coach-comments-list{
    display:grid;
    gap:.6rem;
    margin-top:.65rem
}
.no-parent-comments{
    margin-top:.8rem;
    padding:.65rem;
    border-radius:8px;
    background:#f4f7f5;
    color:#718078;
    font-size:.9rem
}

.admin-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    margin-bottom:1rem
}
.admin-stat{
    display:grid;
    gap:.25rem;
    text-align:center
}
.admin-stat strong{
    font-size:2rem;
    color:#176b3a
}
.admin-stat span{
    color:#617267;
    font-weight:700
}
.admin-filter-form{
    display:grid;
    grid-template-columns:2fr 1fr 1fr auto;
    gap:1rem;
    align-items:end;
    margin-bottom:1rem
}
.admin-filter-buttons{
    display:flex;
    gap:.5rem
}
.admin-user-list{
    display:grid;
    gap:1rem
}
.admin-user-main{
    display:flex;
    justify-content:space-between;
    gap:1rem
}
.admin-user-main h3{
    margin:.4rem 0
}
.admin-role-badge{
    display:inline-block;
    padding:.25rem .55rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    background:#e8efe9
}
.admin-role-badge.admin{background:#e4e7ff;color:#343f9b}
.admin-role-badge.coach{background:#dff4e6;color:#176b3a}
.admin-role-badge.parent{background:#fff0d7;color:#8a5600}
.admin-user-status{
    display:grid;
    align-content:start;
    justify-items:end;
    gap:.4rem
}
.status-pill{
    display:inline-block;
    padding:.25rem .55rem;
    border-radius:999px;
    font-size:.78rem;
    font-weight:750
}
.status-pill.active{background:#dff4e6;color:#176b3a}
.status-pill.pending{background:#fff0d7;color:#8a5600}
.status-pill.suspended{background:#ffe1e1;color:#9a2020}
.admin-membership-list{
    display:flex;
    flex-wrap:wrap;
    gap:.45rem;
    margin:.8rem 0
}
.admin-membership-list span{
    padding:.35rem .55rem;
    border-radius:8px;
    background:#f1f5f2;
    font-size:.86rem
}
.admin-card-actions{
    margin-top:.8rem;
    margin-bottom:0
}
.admin-team-card{
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:1rem;
    align-items:center
}
.admin-team-counts{
    display:grid;
    gap:.35rem;
    color:#617267;
    font-size:.88rem
}
@media(max-width:750px){
    .admin-summary-grid{
        grid-template-columns:1fr
    }
    .admin-filter-form{
        grid-template-columns:1fr
    }
    .admin-user-main{
        flex-direction:column
    }
    .admin-user-status{
        justify-items:start
    }
    .admin-team-card{
        grid-template-columns:1fr
    }
}

.parent-alert-banner{
    display:flex;
    align-items:center;
    gap:.8rem;
    margin-bottom:1rem;
    padding:1rem;
    border:2px solid #9f1414;
    border-radius:14px;
    background:#d92727;
    color:#fff;
    text-decoration:none;
    box-shadow:0 5px 18px #8d000044
}
.parent-alert-banner:hover{
    background:#bd1e1e
}
.parent-alert-banner small{
    display:block;
    margin-top:.2rem;
    color:#fff
}
.parent-alert-icon{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#fff;
    color:#c51f1f;
    font-size:1.45rem;
    font-weight:900
}
.admin-area-menu{
    margin-bottom:1rem
}
.admin-area-menu h2{
    margin-top:0
}
.team-brand-header{
    display:flex;
    align-items:center;
    gap:1rem;
    margin-bottom:1rem;
    padding:1rem;
    border:3px solid var(--team-primary);
    border-radius:14px;
    background:#ffffff;
    color:var(--team-primary);
    box-shadow:0 4px 14px #00000012
}
.team-brand-logo{
    width:76px;
    height:76px;
    border-radius:14px;
    object-fit:contain;
    background:#fff;
    border:1px solid #d9e3dc
}
.team-brand-name{
    font-size:1.5rem;
    font-weight:900
}
.team-brand-subtitle{
    margin-top:.2rem;
    font-weight:700;
    opacity:.8
}
.team-logo-admin-preview{
    display:flex;
    align-items:center;
    gap:1rem;
    padding:.8rem;
    border:1px solid #d9e3dc;
    border-radius:10px;
    background:#f7faf8
}
.team-logo-admin-preview img{
    width:100px;
    height:100px;
    object-fit:contain;
    border-radius:10px;
    background:#fff
}
.admin-team-brand-row{
    display:flex;
    align-items:center;
    gap:.8rem;
    padding:.7rem;
    border-left:6px solid var(--team-primary);
    border-radius:10px;
    background:#ffffff;
    color:var(--team-primary)
}
.admin-team-logo{
    width:64px;
    height:64px;
    border-radius:10px;
    object-fit:contain;
    background:#fff;
    border:1px solid #d9e3dc
}
@media(max-width:650px){
    .team-brand-logo{
        width:60px;
        height:60px
    }
    .team-brand-name{
        font-size:1.25rem
    }
}

.admin-direct-url{
    display:grid;
    gap:.4rem;
    margin-bottom:1rem
}
.admin-direct-url code{
    display:block;
    padding:.7rem;
    border-radius:8px;
    background:#f2f5f3;
    overflow-wrap:anywhere
}

.admin-login-body{
    min-height:100vh;
    display:grid;
    align-items:center;
    background:#eef3ef
}
.admin-login-container{
    padding-top:2rem;
    padding-bottom:2rem
}
.admin-login-card{
    padding:1.4rem
}
.admin-login-heading{
    display:flex;
    align-items:center;
    gap:1rem;
    margin-bottom:1.2rem
}
.admin-login-heading h1{
    margin:0
}
.admin-login-heading p{
    margin:.25rem 0 0;
    color:#617267
}
.admin-login-lock{
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    flex:0 0 58px;
    border-radius:14px;
    background:#176b3a;
    font-size:1.7rem
}
.admin-login-back{
    margin:1rem 0 0;
    text-align:center
}



:root{
    --team-primary:#176b3a;
    --team-primary-text:#ffffff
}











.team-brand-header{
    color:#162019
}
.team-brand-name,
.team-brand-subtitle{
    color:inherit
}


/* Version 18: compact team logos */
.topbar-team-logo{
    width:32px !important;
    height:32px !important;
    max-width:32px !important;
    max-height:32px !important;
    flex:0 0 32px;
    object-fit:contain;
    padding:2px;
    border-radius:7px
}
.team-brand-logo{
    width:52px !important;
    height:52px !important;
    max-width:52px !important;
    max-height:52px !important;
    flex:0 0 52px;
    object-fit:contain;
    padding:3px;
    border-radius:10px
}
.admin-team-logo{
    width:48px !important;
    height:48px !important;
    max-width:48px !important;
    max-height:48px !important;
    flex:0 0 48px;
    object-fit:contain
}
.team-logo-admin-preview img{
    width:80px !important;
    height:80px !important;
    max-width:80px !important;
    max-height:80px !important;
    object-fit:contain
}
.team-brand-header{
    min-height:auto;
    padding:.75rem
}
@media(max-width:650px){
    .topbar-team-logo{
        width:28px !important;
        height:28px !important;
        max-width:28px !important;
        max-height:28px !important;
        flex-basis:28px
    }
    .team-brand-logo{
        width:44px !important;
        height:44px !important;
        max-width:44px !important;
        max-height:44px !important;
        flex-basis:44px
    }
}


/* Version 19: team colors only affect header and buttons */
.team-themed-app .topbar{
    background:var(--team-primary);
    color:var(--team-primary-text)
}
.team-themed-app .topbar a,
.team-themed-app .brand{
    color:var(--team-primary-text)
}
.team-themed-app button,
.team-themed-app .button{
    background:var(--team-primary);
    border-color:var(--team-primary);
    color:var(--team-primary-text)
}
.team-themed-app .button.secondary{
    background:#ffffff;
    border-color:var(--team-primary);
    color:var(--team-primary)
}
.team-themed-app{
    background:#f4f7f5;
    color:#162019
}
.team-themed-app .card{
    background:#ffffff;
    color:#162019;
    border-color:#d9e3dc
}
.team-themed-app h1,
.team-themed-app h2,
.team-themed-app h3{
    color:#162019
}
.team-themed-app input,
.team-themed-app select,
.team-themed-app textarea{
    background:#ffffff;
    color:#111111
}
.team-themed-app .latest-parent-comment,
.team-themed-app .comment,
.team-themed-app .no-parent-comments{
    background:#f7faf8;
    color:#111111
}
.team-themed-app .document-link,
.team-themed-app .coach-comments-collapse summary{
    color:#176b3a
}
.team-brand-header{
    background:#ffffff;
    color:#162019;
    border-color:#d9e3dc
}
.team-brand-name,
.team-brand-subtitle{
    color:#162019
}


/* Version 21: team font color and live preview */
input[type="color"]{
    width:100%;
    min-height:52px;
    padding:4px;
    border:2px solid #bcc9c0;
    border-radius:10px;
    background:#ffffff;
    cursor:pointer
}
input[type="color"]::-webkit-color-swatch-wrapper{
    padding:2px
}
input[type="color"]::-webkit-color-swatch{
    border:1px solid #87958b;
    border-radius:7px
}
input[type="color"]::-moz-color-swatch{
    border:1px solid #87958b;
    border-radius:7px
}
.team-color-preview{
    --preview-primary:#176b3a;
    --preview-font:#ffffff;
    display:grid;
    gap:.8rem;
    padding:1rem;
    border:2px solid #d3ddd6;
    border-radius:12px;
    background:#ffffff
}
.team-color-preview-header{
    padding:1rem;
    border-radius:9px;
    background:var(--preview-primary);
    color:var(--preview-font);
    font-weight:900;
    text-align:center
}
.team-color-preview-button{
    display:inline-block;
    width:auto;
    justify-self:start;
    margin:0;
    padding:.75rem 1rem;
    border:1px solid var(--preview-primary);
    border-radius:9px;
    background:var(--preview-primary) !important;
    color:var(--preview-font) !important;
    font-weight:800
}
.team-color-values{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem 1.25rem;
    color:#26332a;
    font-size:.92rem
}
.team-color-values code{
    padding:.15rem .35rem;
    border-radius:5px;
    background:#f0f3f1;
    color:#111111
}


/* Version 22: align topbar team logo and name */
.topbar .brand{
    display:flex;
    align-items:center;
    gap:.7rem;
    line-height:1;
    min-height:32px
}
.topbar .brand span{
    display:flex;
    align-items:center;
    line-height:1.05
}
.topbar-team-logo{
    display:block;
    vertical-align:middle
}
@media(max-width:650px){
    .topbar .brand{
        min-height:28px
    }
}


/* Version 24: coach remove post/event controls */
.coach-content-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem
}
.coach-content-heading h3{
    margin-top:0;
    margin-bottom:.5rem
}
.coach-delete-form{
    flex:0 0 auto;
    margin:0
}
.compact-delete-button{
    width:auto;
    padding:.5rem .7rem;
    white-space:nowrap;
    font-size:.88rem
}
.team-themed-app .compact-delete-button.danger{
    background:#a52222;
    border-color:#a52222;
    color:#ffffff
}
@media(max-width:650px){
    .coach-content-heading{
        align-items:stretch;
        flex-direction:column
    }
    .coach-delete-form{
        align-self:flex-start
    }
}


/* Version 25: mobile containment and coach replies */
html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden
}
img,
video,
iframe{
    max-width:100%;
    height:auto
}
.container,
.card,
.notification-setup,
.team-brand-header,
.topbar,
.topbar nav,
.toolbar,
.inline,
.coach-content-heading{
    min-width:0;
    max-width:100%
}
.card,
.comment,
.latest-parent-comment,
.no-parent-comments{
    overflow-wrap:anywhere;
    word-break:break-word
}
input,
select,
textarea,
button,
.button{
    max-width:100%
}
.coach-reply-form{
    display:flex;
    align-items:stretch;
    gap:.5rem;
    margin-top:.7rem;
    max-width:100%
}
.coach-reply-form input[type="text"]{
    flex:1 1 auto;
    min-width:0;
    width:100%
}
.coach-reply-form button{
    flex:0 0 auto;
    width:auto
}
.notification-setup[hidden]{
    display:none !important
}
@media(max-width:650px){
    .topbar{
        width:100%;
        padding:.75rem
    }
    .topbar nav{
        width:100%;
        gap:.45rem
    }
    .topbar nav a{
        display:inline-block;
        max-width:100%;
        overflow-wrap:anywhere
    }
    .container{
        width:100%;
        max-width:100%;
        padding:.65rem
    }
    .card{
        width:100%;
        padding:.8rem
    }
    .toolbar,
    .inline,
    .notification-setup,
    .coach-reply-form{
        width:100%;
        flex-wrap:wrap
    }
    .toolbar > *,
    .inline > *,
    .notification-buttons > *{
        min-width:0
    }
    .coach-reply-form input[type="text"]{
        flex:1 1 100%
    }
    .coach-reply-form button{
        width:100%
    }
}


/* Version 26: installed-app notification requirement */
.notification-setup[hidden]{
    display:none !important
}
.notification-status strong{
    display:inline
}
@media(max-width:650px){
    .notification-setup{
        width:100%;
        max-width:100%;
        overflow:hidden
    }
    .notification-buttons,
    .notification-buttons button{
        width:100%
    }
}


/* Version 27: visible mobile Home Screen instructions */
.notification-status{
    line-height:1.45
}
.notification-status strong{
    font-size:1.02rem
}
@media(max-width:650px){
    .notification-status{
        width:100%;
        padding:.7rem;
        border-radius:9px;
        background:#fff7d6;
        color:#302500
    }
}


/* Version 28: clickable map addresses */
.map-address-link{
    display:inline-flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.4rem;
    max-width:100%;
    color:#176b3a;
    font-weight:750;
    text-decoration:underline;
    overflow-wrap:anywhere
}
.map-link-label{
    display:inline-block;
    padding:.15rem .4rem;
    border-radius:999px;
    background:#eef5f0;
    color:#176b3a;
    font-size:.72rem;
    font-weight:800;
    text-decoration:none
}
.event-location-link{
    margin-top:.2rem
}


/* Version 32: alerts clearing and game schedules */
.alerts-toolbar form{
    margin:0
}
.schedule-manager{
    margin-top:1rem
}
.schedule-list{
    display:grid;
    gap:.75rem;
    margin-top:1rem
}
.schedule-item{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:.9rem;
    border:1px solid #d9e3dc;
    border-radius:11px;
    background:#f9fbfa
}
.schedule-main{
    display:grid;
    gap:.3rem;
    min-width:0
}
.schedule-main p{
    margin:.3rem 0 0
}
.schedule-status{
    display:inline-block;
    width:max-content;
    padding:.15rem .45rem;
    border-radius:999px;
    font-size:.74rem;
    font-weight:800
}
.schedule-status.cancelled{
    background:#ffe1e1;
    color:#8b1111
}
.schedule-cancelled{
    opacity:.75
}
@media(max-width:650px){
    .schedule-item{
        flex-direction:column
    }
    .schedule-item form,
    .schedule-item button{
        width:100%
    }
}


/* Version 34: unified team schedules */
.schedule-item h3{
    margin:.25rem 0 .5rem
}
.schedule-item .meta{
    font-weight:800
}


/* Version 35: swipe-to-delete parent alerts */
.notification-list{
    width:100%;
    max-width:100%
}
.swipe-alert{
    position:relative;
    width:100%;
    max-width:100%;
    overflow:hidden;
    border-radius:14px
}
.swipe-alert-actions{
    position:absolute;
    inset:0 0 0 auto;
    display:flex;
    align-items:stretch;
    width:92px;
    background:#c52222
}
.swipe-alert-actions form{
    width:100%;
    height:100%;
    margin:0
}
.swipe-delete-button{
    width:100%;
    height:100%;
    min-height:100%;
    border:0;
    border-radius:0;
    background:#c52222 !important;
    color:#ffffff !important;
    font-weight:900
}
.swipe-alert-content{
    position:relative;
    z-index:1;
    width:100%;
    max-width:100%;
    margin:0;
    background:#ffffff;
    transition:transform .2s ease;
    touch-action:pan-y
}
.swipe-alert.swipe-open .swipe-alert-content{
    transform:translateX(-92px)
}
@media(min-width:651px){
    .swipe-alert-actions{
        display:none
    }
}


/* Version 36: collapsible parent sections */
.collapsible-section{
    margin-bottom:1rem
}
.section-toggle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    margin:0 0 .75rem;
    padding:.85rem 1rem;
    border-radius:12px;
    background:#176b3a;
    color:#ffffff;
    text-align:left;
    font-weight:900
}
.team-themed-app .section-toggle{
    background:var(--team-primary);
    color:var(--team-primary-text)
}
.section-toggle-icon{
    flex:0 0 auto;
    font-size:.85rem
}
.collapsed-items > *:nth-child(n+2){
    display:none
}
.collapsed-items.expanded > *{
    display:block
}
@media(max-width:650px){
    .section-toggle{
        width:100%;
        max-width:100%
    }
}


/* Version 37: parent icon navigation buttons */
.parent-nav-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    min-height:42px;
    padding:.55rem .75rem;
    border:1px solid currentColor;
    border-radius:10px;
    background:rgba(255,255,255,.14);
    color:inherit;
    font-weight:800;
    line-height:1;
    text-decoration:none
}
.parent-nav-button:hover,
.parent-nav-button:focus{
    background:rgba(255,255,255,.24)
}
.parent-nav-icon{
    display:inline-grid;
    place-items:center;
    min-width:1.2rem;
    font-size:1rem;
    line-height:1
}
@media(max-width:650px){
    .topbar nav{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        width:100%;
        gap:.45rem
    }
    .parent-nav-button{
        width:100%;
        min-width:0;
        padding:.6rem .35rem;
        flex-direction:column;
        gap:.22rem;
        font-size:.78rem;
        text-align:center
    }
    .parent-nav-icon{
        font-size:1.15rem
    }
}

/* Version 38: icon-only parent navigation */
.parent-nav-button{
    position:relative;
    display:inline-grid;
    place-items:center;
    width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    color:inherit;
    text-decoration:none
}
.parent-nav-button:hover,
.parent-nav-button:focus{
    background:transparent !important;
    opacity:.8
}
.parent-nav-icon{
    display:grid;
    place-items:center;
    min-width:0;
    font-size:1.45rem;
    line-height:1
}
.parent-nav-badge{
    position:absolute;
    top:1px;
    right:0;
    display:grid;
    place-items:center;
    min-width:17px;
    height:17px;
    padding:0 4px;
    border-radius:999px;
    background:#d62828;
    color:#ffffff;
    font-size:.66rem;
    font-weight:900;
    line-height:1
}
@media(max-width:650px){
    .topbar nav{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        width:auto;
        gap:.75rem
    }
    .parent-nav-button{
        width:40px;
        height:40px;
        min-height:40px
    }
    .parent-nav-icon{
        font-size:1.4rem
    }
}


/* Version 39: larger modern SVG parent icons */
.parent-nav-button{
    width:52px;
    height:52px;
    min-height:52px
}
.parent-nav-icon{
    width:30px;
    height:30px;
    font-size:0
}
.parent-nav-icon svg{
    display:block;
    width:100%;
    height:100%;
    fill:currentColor
}
.parent-nav-badge{
    top:0;
    right:-1px;
    min-width:19px;
    height:19px;
    font-size:.7rem
}
@media(max-width:650px){
    .parent-nav-button{
        width:50px;
        height:50px;
        min-height:50px
    }
    .parent-nav-icon{
        width:29px;
        height:29px
    }
}


/* Version 40: centered parent icons and age group header */
.topbar-team-title{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.4rem;
    min-width:0
}
.topbar-team-name{
    display:inline-block;
    line-height:1.05
}
.topbar-age-group{
    display:inline-block;
    padding:.18rem .45rem;
    border:1px solid currentColor;
    border-radius:999px;
    font-size:.72rem;
    font-weight:800;
    line-height:1
}
@media(max-width:650px){
    .topbar{
        display:grid;
        grid-template-columns:1fr;
        justify-items:center;
        align-items:center;
        gap:.35rem;
        padding:.7rem .75rem .35rem
    }
    .topbar .brand{
        justify-content:center;
        width:100%;
        text-align:center
    }
    .topbar-team-title{
        justify-content:center
    }
    .topbar nav{
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        gap:1rem;
        margin:0;
        padding:0
    }
    .parent-nav-button{
        margin:0;
    }
    .container{
        padding-top:.55rem
    }
}


/* Version 41: lower nav icons and larger team logo */
.topbar-team-logo{
    width:42px !important;
    height:42px !important;
    max-width:42px !important;
    max-height:42px !important;
    flex:0 0 42px;
    padding:2px
}
@media(max-width:650px){
    .topbar{
        padding:.8rem .75rem .3rem
    }
    .topbar .brand{
        margin-bottom:.5rem
    }
    .topbar-team-logo{
        width:48px !important;
        height:48px !important;
        max-width:48px !important;
        max-height:48px !important;
        flex-basis:48px
    }
    .topbar nav{
        margin-top:.35rem;
        transform:translateY(6px)
    }
    .parent-nav-button{
        width:54px;
        height:54px;
        min-height:54px
    }
    .parent-nav-icon{
        width:31px;
        height:31px
    }
    .container{
        padding-top:.8rem
    }
}


/* Version 42: clean circular parent nav icons */
.parent-nav-button{
    width:56px !important;
    height:56px !important;
    min-height:56px !important;
    border:2px solid rgba(255,255,255,.95) !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.08) !important;
    box-shadow:none
}
.parent-nav-button:hover,
.parent-nav-button:focus{
    background:rgba(255,255,255,.16) !important;
    opacity:1
}
.parent-nav-icon{
    width:30px !important;
    height:30px !important
}
@media(max-width:650px){
    .parent-nav-button{
        width:58px !important;
        height:58px !important;
        min-height:58px !important
    }
    .parent-nav-icon{
        width:31px !important;
        height:31px !important
    }
}


/* Version 43: large icons without circles */
.parent-nav-button{
    width:58px !important;
    height:58px !important;
    min-height:58px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important
}
.parent-nav-button:hover,
.parent-nav-button:focus{
    background:transparent !important;
    opacity:.85
}
.parent-nav-icon{
    width:31px !important;
    height:31px !important
}


/* Version 44: lower and slightly larger parent icons */
@media(max-width:650px){
    .topbar{
        padding:.8rem .75rem 0;
        gap:.2rem
    }
    .topbar .brand{
        margin-bottom:.95rem
    }
    .topbar nav{
        margin-top:.45rem;
        margin-bottom:-.15rem;
        transform:translateY(12px)
    }
    .parent-nav-button{
        width:64px !important;
        height:64px !important;
        min-height:64px !important
    }
    .parent-nav-icon{
        width:35px !important;
        height:35px !important
    }
    .container{
        padding-top:1rem
    }
}


/* Version 45: coach icon navigation */
.coach-nav-button{
    position:relative;
    display:inline-grid;
    place-items:center;
    width:64px;
    height:64px;
    min-height:64px;
    padding:0;
    border:0 !important;
    background:transparent !important;
    color:inherit;
    text-decoration:none
}
.coach-nav-button:hover,
.coach-nav-button:focus{
    background:transparent !important;
    opacity:.85
}
.coach-nav-icon{
    display:grid;
    place-items:center;
    width:35px;
    height:35px;
    font-size:0
}
.coach-nav-icon svg{
    display:block;
    width:100%;
    height:100%;
    fill:currentColor
}
.coach-nav-badge{
    position:absolute;
    top:4px;
    right:4px;
    display:grid;
    place-items:center;
    min-width:19px;
    height:19px;
    padding:0 4px;
    border-radius:999px;
    background:#d62828;
    color:#ffffff;
    font-size:.7rem;
    font-weight:900;
    line-height:1
}
@media(max-width:650px){
    .topbar nav{
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        gap:1rem;
        margin-top:.45rem;
        margin-bottom:-.15rem;
        transform:translateY(12px)
    }
    .coach-nav-button{
        width:64px;
        height:64px;
        min-height:64px
    }
    .coach-nav-icon{
        width:35px;
        height:35px
    }
}


/* Version 46: coach collapsible sections and compact action buttons */
.coach-small-action{
    width:auto !important;
    min-width:0 !important;
    padding:.48rem .7rem !important;
    font-size:.84rem !important;
    line-height:1.1
}
.coach-collapsible-section{
    margin-bottom:1rem
}
.coach-section-toggle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    margin:0 0 .75rem;
    padding:.72rem .9rem;
    border-radius:10px;
    background:var(--team-primary);
    color:var(--team-primary-text);
    font-weight:900;
    text-align:left
}
.coach-section-toggle-label{
    flex:0 0 auto;
    font-size:.82rem
}
.coach-collapsed-items > *:nth-child(n+2),
#coachTeamSchedulesContent:not(.expanded) .schedule-list > *:nth-child(n+2){
    display:none
}
.coach-collapsed-items.expanded > *,
#coachTeamSchedulesContent.expanded .schedule-list > *{
    display:block
}
@media(max-width:650px){
    .coach-small-action{
        flex:0 0 auto !important;
        width:auto !important;
        padding:.45rem .62rem !important;
        font-size:.8rem !important
    }
    .coach-section-toggle{
        padding:.68rem .8rem
    }
}


/* Version 47: hidden Team Schedule create form */
.schedule-manager-heading{
    display:flex;
    align-items:center;
    gap:.65rem;
    margin-bottom:.75rem
}
.schedule-manager-heading .coach-section-toggle{
    flex:1 1 auto;
    margin:0
}
.schedule-create-button{
    flex:0 0 auto;
    width:auto !important;
    min-width:0 !important;
    padding:.58rem .85rem !important;
    border-color:#198754 !important;
    background:#198754 !important;
    color:#ffffff !important;
    font-size:.86rem;
    white-space:nowrap
}
.schedule-create-panel{
    margin-bottom:1rem;
    padding:1rem;
    border:1px solid #d9e3dc;
    border-radius:11px;
    background:#f7faf8
}
.schedule-create-panel[hidden]{
    display:none !important
}
.schedule-form-actions{
    display:flex;
    align-items:center;
    gap:.65rem;
    flex-wrap:wrap
}
.schedule-form-actions button{
    width:auto
}
@media(max-width:650px){
    .schedule-manager-heading{
        align-items:stretch
    }
    .schedule-create-button{
        padding:.55rem .7rem !important
    }
    .schedule-create-panel{
        padding:.8rem
    }
    .schedule-form-actions button{
        flex:1 1 0
    }
}


/* Version 48: coach alert removal and mobile New Post fix */
.coach-post-card{
    width:min(720px,100%);
    max-width:100%;
    margin-left:auto;
    margin-right:auto
}
.coach-post-form{
    width:100%;
    max-width:100%;
    min-width:0
}
.coach-post-form > *,
.coach-post-form input,
.coach-post-form select,
.coach-post-form textarea,
.coach-post-form button{
    width:100%;
    max-width:100%;
    min-width:0
}
.coach-post-form input[type="checkbox"],
.coach-post-form input[type="radio"]{
    width:auto
}
@media(max-width:650px){
    .coach-post-card{
        width:100%;
        margin:0 auto;
        padding:.8rem
    }
    .coach-post-form{
        overflow:hidden
    }
}


/* Version 49: schedule create button placement and smaller coach actions */
.coach-small-action{
    flex:0 0 auto !important;
    width:auto !important;
    min-width:0 !important;
    padding:.38rem .55rem !important;
    font-size:.72rem !important;
    line-height:1.05 !important;
    border-radius:8px !important;
    white-space:nowrap
}
.schedule-create-row{
    display:flex;
    justify-content:flex-start;
    width:100%;
    margin-bottom:.55rem
}
.schedule-manager-heading{
    display:block
}
.schedule-manager-heading .coach-section-toggle{
    width:100%;
    margin:0 0 .75rem
}
.schedule-create-button{
    padding:.48rem .72rem !important;
    font-size:.8rem !important;
    border-radius:8px !important
}
@media(max-width:650px){
    .toolbar{
        gap:.4rem;
        align-items:center
    }
    .toolbar .coach-small-action{
        flex:0 0 auto !important;
        width:auto !important;
        padding:.35rem .48rem !important;
        font-size:.68rem !important
    }
    .schedule-create-row{
        margin-bottom:.5rem
    }
}


/* Version 50: full-width schedule create and three-item preview */
.coach-small-action{
    padding:.48rem .68rem !important;
    font-size:.78rem !important;
    border-radius:9px !important
}
.schedule-create-row{
    width:100%;
    display:block
}
.schedule-create-button{
    display:block;
    width:100% !important;
    max-width:100%;
    padding:.7rem 1rem !important;
    font-size:.92rem !important;
    border-radius:9px !important;
    text-align:center
}
#coachTeamSchedulesContent:not(.expanded) .schedule-list > *:nth-child(n+4){
    display:none
}
.coach-section-toggle-label{
    display:grid;
    place-items:center;
    width:28px;
    height:28px
}
.coach-section-toggle-label svg{
    width:24px;
    height:24px;
    fill:currentColor;
    transition:transform .2s ease
}
.coach-section-toggle-label.expanded svg{
    transform:rotate(180deg)
}
@media(max-width:650px){
    .toolbar .coach-small-action{
        padding:.44rem .58rem !important;
        font-size:.74rem !important
    }
    .schedule-create-button{
        padding:.68rem .85rem !important;
        font-size:.9rem !important
    }
}


/* Version 51: coach team branding */
.team-branding-editor{
    display:grid;
    gap:1rem;
    padding:1rem;
    border:1px solid #d9e3dc;
    border-radius:12px;
    background:#f7faf8
}
.team-branding-editor h2{
    margin:0
}
@media(max-width:650px){
    .team-branding-editor{
        padding:.8rem
    }
}


/* Version 52: schedule expand arrow below the three-item list */
.schedule-list-arrow{
    display:grid;
    place-items:center;
    width:46px !important;
    height:36px;
    min-height:36px;
    margin:.55rem auto 0;
    padding:0;
    border:0 !important;
    border-radius:999px;
    background:transparent !important;
    color:var(--team-primary) !important
}
.schedule-list-arrow svg{
    width:30px;
    height:30px;
    fill:currentColor;
    transition:transform .2s ease
}
.schedule-list-arrow.expanded svg{
    transform:rotate(180deg)
}
.schedule-list-arrow:hover,
.schedule-list-arrow:focus{
    background:#eef5f0 !important
}


/* Version 53: fix Show All label wrapping */
.coach-section-toggle{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:.75rem
}
.coach-section-toggle > span:first-child{
    min-width:0
}
.coach-section-toggle-label{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:auto !important;
    height:auto !important;
    min-width:max-content;
    white-space:nowrap;
    line-height:1;
    text-align:right
}
@media(max-width:650px){
    .coach-section-toggle{
        grid-template-columns:minmax(0,1fr) auto
    }
    .coach-section-toggle-label{
        font-size:.78rem
    }
}


/* Version 54: coach My Teams editing */
.my-teams-layout{
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
    gap:1rem;
    align-items:start
}
.my-teams-list h2,
.coach-team-editor h2{
    margin-top:0
}
.my-teams-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    margin-bottom:1rem
}
.team-edit-list{
    display:grid;
    gap:.7rem
}
.team-edit-list-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    padding:.75rem;
    border:1px solid #d9e3dc;
    border-radius:10px;
    background:#f9fbfa
}
.team-edit-list-brand{
    display:flex;
    align-items:center;
    gap:.7rem;
    min-width:0
}
.team-edit-list-logo{
    width:48px;
    height:48px;
    flex:0 0 48px;
    object-fit:contain;
    border-radius:9px;
    background:#ffffff
}
.coach-team-editor{
    width:100%;
    max-width:100%
}
@media(max-width:760px){
    .my-teams-layout{
        grid-template-columns:1fr
    }
    .my-teams-heading{
        align-items:flex-start
    }
    .team-edit-list-item{
        align-items:stretch;
        flex-direction:column
    }
    .team-edit-list-item .button{
        width:100%
    }
}


/* Version 55: keep My Teams form fully inside mobile screen */
.my-teams-layout,
.my-teams-list,
.coach-team-editor,
.team-branding-editor,
.team-edit-list-item,
.team-edit-list-brand,
.coach-team-editor form,
.coach-team-editor .two-col,
.coach-team-editor label{
    min-width:0;
    max-width:100%;
}

.my-teams-heading{
    flex-wrap:wrap;
}

.my-teams-heading .button{
    flex:0 1 auto;
    max-width:100%;
}

.coach-team-editor input,
.coach-team-editor select,
.coach-team-editor textarea,
.coach-team-editor button,
.coach-team-editor .button{
    max-width:100%;
    min-width:0;
}

.coach-team-editor input[type="color"]{
    width:100%;
    min-height:44px;
    padding:.35rem;
}

.team-color-preview{
    width:100%;
    max-width:100%;
    overflow:hidden;
}

.team-logo-admin-preview img,
.team-edit-list-logo{
    max-width:100%;
}

@media(max-width:760px){
    .my-teams-layout{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    .my-teams-list,
    .coach-team-editor{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    .my-teams-heading{
        flex-direction:column;
        align-items:stretch;
    }

    .my-teams-heading .button{
        width:100%;
    }

    .coach-team-editor{
        padding:.85rem;
    }

    .coach-team-editor form{
        width:100%;
    }

    .coach-team-editor .two-col{
        grid-template-columns:1fr !important;
        gap:.85rem;
    }

    .team-branding-editor{
        padding:.8rem;
    }
}


/* Version 56: hard mobile width containment for My Teams form */
.coach-team-editor,
.coach-team-editor *,
.team-branding-editor,
.team-branding-editor *{
    box-sizing:border-box
}

.coach-team-editor form,
.coach-team-editor .form-grid,
.coach-team-editor .two-col,
.coach-team-editor label,
.team-branding-editor,
.team-color-preview,
.team-color-preview-header,
.team-color-preview-button{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important
}

.coach-team-editor input:not([type="checkbox"]):not([type="radio"]),
.coach-team-editor select,
.coach-team-editor textarea{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important
}

.coach-team-editor input[type="file"]{
    overflow:hidden;
    text-overflow:ellipsis
}

.team-color-preview{
    overflow:hidden !important;
    padding:.8rem !important
}

.team-color-preview-header,
.team-color-preview-button{
    white-space:normal !important;
    overflow-wrap:anywhere !important
}

@media(max-width:760px){
    .my-teams-layout,
    .my-teams-list,
    .coach-team-editor{
        overflow:hidden !important
    }

    .coach-team-editor{
        padding:.7rem !important
    }

    .coach-team-editor .form-grid{
        gap:.8rem
    }

    .coach-team-editor input,
    .coach-team-editor select,
    .coach-team-editor textarea{
        font-size:16px
    }

    .team-branding-editor{
        padding:.65rem !important
    }

    .team-color-preview-button{
        display:block !important;
        margin:0 !important
    }
}


/* Version 59: team-aware alert navigation */
.notification-card-link{
    display:block;
    color:inherit;
    text-decoration:none
}
.notification-card-link:hover,
.notification-card-link:focus{
    color:inherit;
    text-decoration:none
}


/* Version 61: admin delete users */
.admin-delete-user-form{
    margin:0
}
.admin-delete-user-form button{
    width:auto
}
@media(max-width:650px){
    .admin-card-actions{
        align-items:stretch
    }
    .admin-card-actions > a,
    .admin-delete-user-form,
    .admin-delete-user-form button{
        width:100%
    }
}


/* Version 63: coach pending member approval */
.coach-member-team-info{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem
}
.coach-member-team-info h2{
    margin:0
}
.coach-member-section{
    margin-bottom:1.25rem
}
.coach-member-section-heading{
    display:flex;
    align-items:center;
    gap:.6rem
}
.coach-member-section-heading h2{
    margin:.5rem 0
}
.pending-count,
.approved-count{
    display:grid;
    place-items:center;
    min-width:27px;
    height:27px;
    padding:0 7px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:900
}
.pending-count{
    background:#d62828;
    color:#ffffff
}
.approved-count{
    background:#dff4e6;
    color:#176b3a
}
.pending-member-card{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    border-left:5px solid #efb21c
}
.pending-member-card h3{
    margin-top:0
}
.member-registration-details{
    display:grid;
    gap:.4rem;
    margin:0
}
.member-registration-details div{
    display:grid;
    grid-template-columns:100px minmax(0,1fr);
    gap:.5rem
}
.member-registration-details dt{
    font-weight:800
}
.member-registration-details dd{
    margin:0
}
.pending-member-actions{
    display:flex;
    gap:.55rem;
    flex:0 0 auto
}
.pending-member-actions form{
    margin:0
}
.pending-member-actions button{
    width:auto
}
.approve-member-button{
    background:#198754 !important;
    border-color:#198754 !important;
    color:#ffffff !important
}
.denied-member-details summary{
    cursor:pointer;
    font-weight:900
}
.denied-member-details .card-list{
    margin-top:1rem
}
.denied-member-card{
    display:grid;
    gap:.2rem;
    border-bottom:1px solid #d9e3dc
}
.coach-members-button{
    position:relative
}
.coach-members-pending-badge{
    display:inline-grid;
    place-items:center;
    min-width:18px;
    height:18px;
    margin-left:.25rem;
    padding:0 4px;
    border-radius:999px;
    background:#d62828;
    color:#ffffff;
    font-size:.66rem;
    font-weight:900
}
@media(max-width:650px){
    .coach-member-team-info,
    .pending-member-card{
        align-items:stretch;
        flex-direction:column
    }
    .pending-member-actions{
        width:100%
    }
    .pending-member-actions form,
    .pending-member-actions button{
        flex:1 1 0;
        width:100%
    }
    .member-registration-details div{
        grid-template-columns:1fr
    }
}


/* Version 64: compact invite button and admin team deletion */
#copy-invitation-code,
#copy-code-only,
#text-invitation-code{
    width:auto !important;
    min-width:0 !important;
    padding:.58rem .78rem !important;
    font-size:.84rem !important;
    line-height:1.1;
    white-space:nowrap
}
.invite-code-actions{
    align-items:center
}
.admin-team-actions{
    margin-top:.9rem;
    margin-bottom:0
}
.admin-delete-team-form{
    margin:0
}
.admin-delete-team-form button{
    width:auto
}
@media(max-width:650px){
    .invite-code-actions{
        display:flex;
        flex-wrap:wrap
    }
    #copy-invitation-code,
    #copy-code-only,
    #text-invitation-code{
        flex:0 0 auto !important;
        width:auto !important
    }
    .admin-team-actions{
        align-items:stretch
    }
    .admin-team-actions > a,
    .admin-delete-team-form,
    .admin-delete-team-form button{
        width:100%
    }
}


/* Version 66: coach schedule edit icon */
.schedule-create-panel h3{
    margin:.1rem 0 1rem
}
.schedule-item-actions{
    display:flex;
    align-items:center;
    gap:.45rem;
    flex:0 0 auto
}
.schedule-item-actions form{
    margin:0
}
.schedule-edit-icon{
    display:grid !important;
    place-items:center;
    width:38px !important;
    min-width:38px !important;
    height:38px;
    min-height:38px;
    padding:0 !important;
    border-radius:999px !important;
    background:#ffffff !important;
    border:1px solid var(--team-primary) !important;
    color:var(--team-primary) !important
}
.schedule-edit-icon svg{
    width:19px;
    height:19px;
    fill:currentColor
}
.schedule-edit-icon:hover,
.schedule-edit-icon:focus{
    background:#eef5f0 !important
}
@media(max-width:650px){
    .schedule-item-actions{
        width:100%;
        justify-content:flex-end
    }
}


/* Version 69: private parent-to-coach messages */
.parent-message-coach{
    margin-bottom:1rem
}
.parent-message-coach h2,
.coach-private-message-thread h3{
    margin:0
}
.parent-message-coach-heading,
.coach-private-message-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.8rem
}
.private-message-thread{
    display:grid;
    gap:.6rem;
    max-height:420px;
    margin:.8rem 0;
    overflow-y:auto
}
.private-message{
    width:min(88%,620px);
    padding:.7rem .8rem;
    border-radius:12px;
    background:#eef3ef
}
.private-message.sent{
    justify-self:end;
    background:#dff4e6
}
.private-message.received{
    justify-self:start
}
.private-message p{
    margin:.3rem 0;
    overflow-wrap:anywhere
}
.private-message small{
    color:#617267
}
.parent-message-form,
.coach-parent-reply-form{
    margin-top:.8rem
}
.coach-private-message-thread{
    min-width:0
}
.private-message-unread,
.coach-message-unread-badge{
    display:inline-grid;
    place-items:center;
    min-width:22px;
    min-height:22px;
    padding:2px 7px;
    border-radius:999px;
    background:#d62828;
    color:#ffffff;
    font-size:.72rem;
    font-weight:900
}
.coach-message-unread-badge{
    margin-left:.35rem
}
@media(max-width:650px){
    .private-message{
        width:94%
    }
    .parent-message-coach-heading,
    .coach-private-message-heading{
        flex-direction:column
    }
}


/* Version 70: collapsed private messages and read acknowledgments */
.private-thread-details{
    padding:0 !important;
    overflow:hidden
}
.private-thread-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    width:100%;
    padding:1rem;
    cursor:pointer;
    font-weight:900;
    list-style:none
}
.private-thread-summary::-webkit-details-marker{
    display:none
}
.private-thread-summary-label{
    flex:0 0 auto;
    color:var(--team-primary);
    font-size:.78rem;
    white-space:nowrap
}
.private-thread-details[open] .private-thread-summary-label{
    font-size:0
}
.private-thread-details[open] .private-thread-summary-label::after{
    content:"Close";
    font-size:.78rem
}
.private-thread-content{
    padding:0 1rem 1rem
}
.private-message.unread-message{
    border:2px solid #d62828;
    box-shadow:0 0 0 2px #d6282815
}
.private-message-meta-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
    flex-wrap:wrap
}
.message-new-label{
    color:#d62828 !important;
    font-weight:900
}
.message-read-receipt{
    font-weight:800
}
.message-read-receipt.read{
    color:#176b3a !important
}
.message-read-receipt.unread{
    color:#7b4d00 !important
}
.message-acknowledge-form{
    margin:.75rem 0
}
.message-acknowledge-button{
    width:auto !important;
    padding:.62rem .85rem !important;
    background:#d62828 !important;
    border-color:#d62828 !important;
    color:#ffffff !important
}
.private-message-thread{
    max-height:320px
}
@media(max-width:650px){
    .private-thread-summary{
        padding:.85rem
    }
    .private-thread-content{
        padding:0 .85rem .85rem
    }
    .message-acknowledge-button{
        width:100% !important
    }
}


/* Version 74: archive private conversations */
.message-archive-form{
    margin:.75rem 0
}
.message-archive-button{
    width:auto !important;
    padding:.58rem .78rem !important;
    font-size:.82rem !important
}
@media(max-width:650px){
    .message-archive-button{
        width:100% !important
    }
}


/* Version 76: admin archived messages */
.admin-archived-message-list{
    display:grid;
    gap:1rem
}
.admin-archived-thread{
    padding:0 !important;
    overflow:hidden
}
.admin-archived-thread-summary{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:1rem;
    cursor:pointer;
    list-style:none
}
.admin-archived-thread-summary::-webkit-details-marker{
    display:none
}
.admin-archived-thread-stats{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.45rem;
    flex-wrap:wrap;
    text-align:right
}
.archive-status{
    display:inline-flex;
    align-items:center;
    padding:.25rem .5rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:900
}
.parent-archived{
    background:#fff0c7;
    color:#7b4d00
}
.coach-archived{
    background:#dff4e6;
    color:#176b3a
}
.admin-archived-thread-content{
    padding:0 1rem 1rem
}
.admin-archived-participants{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.75rem;
    padding:.8rem;
    border-radius:10px;
    background:#f7faf8
}
.admin-archived-participants > div{
    display:grid;
    gap:.2rem;
    min-width:0
}
.admin-archived-participants span{
    overflow-wrap:anywhere
}
.admin-archived-message-thread{
    max-height:520px
}
.archived-message-filter{
    margin-bottom:1rem
}
@media(max-width:760px){
    .admin-archived-thread-summary{
        flex-direction:column
    }
    .admin-archived-thread-stats{
        justify-content:flex-start;
        text-align:left
    }
    .admin-archived-participants{
        grid-template-columns:1fr
    }
}


/* Version 77: admin parents grouped under coaches */
.admin-coach-parent-groups{
    display:grid;
    gap:1rem
}
.admin-coach-group{
    padding:0 !important;
    overflow:hidden
}
.admin-coach-group-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:1rem;
    cursor:pointer;
    list-style:none
}
.admin-coach-group-summary::-webkit-details-marker{
    display:none
}
.admin-coach-summary-main{
    display:flex;
    align-items:center;
    gap:.75rem;
    min-width:0
}
.admin-coach-summary-main > div{
    min-width:0
}
.admin-coach-summary-main strong,
.admin-coach-summary-main .meta{
    overflow-wrap:anywhere
}
.admin-coach-summary-counts{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.45rem;
    flex-wrap:wrap;
    text-align:right
}
.admin-coach-summary-counts > span{
    display:inline-flex;
    align-items:center;
    padding:.25rem .5rem;
    border-radius:999px;
    background:#eef3ef;
    font-size:.74rem;
    font-weight:800
}
.admin-coach-summary-counts .admin-pending-parent-count{
    background:#d62828;
    color:#ffffff
}
.admin-coach-group-content{
    padding:0 1rem 1rem
}
.admin-coach-actions{
    margin-bottom:1rem
}
.admin-coach-team-block{
    padding:1rem 0;
    border-top:1px solid #d9e3dc
}
.admin-coach-team-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.8rem;
    margin-bottom:.75rem
}
.admin-coach-team-heading h3{
    margin:0
}
.admin-parent-list{
    display:grid;
    gap:.7rem
}
.admin-parent-row{
    display:grid;
    gap:.7rem;
    padding:.8rem;
    border:1px solid #d9e3dc;
    border-radius:10px;
    background:#f9fbfa
}
.admin-parent-main{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.75rem
}
.admin-parent-main > div{
    min-width:0
}
.admin-parent-main strong,
.admin-parent-main .meta{
    overflow-wrap:anywhere
}
.admin-parent-membership-details{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
    font-size:.84rem
}
.admin-parent-actions{
    margin:0
}
@media(max-width:760px){
    .admin-coach-group-summary,
    .admin-coach-team-heading,
    .admin-parent-main{
        align-items:stretch;
        flex-direction:column
    }
    .admin-coach-summary-counts{
        justify-content:flex-start;
        text-align:left
    }
    .admin-coach-actions,
    .admin-parent-actions{
        align-items:stretch
    }
    .admin-coach-actions > a,
    .admin-coach-actions > form,
    .admin-coach-actions button,
    .admin-parent-actions > a,
    .admin-parent-actions > form,
    .admin-parent-actions button{
        width:100%
    }
}


/* Version 79: pinned posts at top with parent unpin */
.pinned-posts-top{
    display:grid;
    gap:.8rem;
    margin-bottom:1rem
}
.pinned-post-alert{
    border:2px solid #efb21c !important;
    border-left-width:7px !important;
    background:#fff9e8 !important;
    box-shadow:0 5px 18px #00000012
}
.pinned-post-alert h2{
    margin:.15rem 0 .4rem;
    font-size:1.25rem
}
.pinned-post-label{
    color:#7b4d00;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.02em;
    text-transform:uppercase
}
.pinned-post-alert-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.8rem
}
.pinned-post-alert-heading > div{
    min-width:0
}
.pinned-post-alert p{
    overflow-wrap:anywhere
}
.pinned-post-dismiss-form{
    margin:0;
    flex:0 0 auto
}
.pinned-post-unpin-button{
    width:auto !important;
    min-width:0 !important;
    padding:.48rem .68rem !important;
    font-size:.78rem !important;
    white-space:nowrap
}
@media(max-width:650px){
    .pinned-post-alert-heading{
        align-items:stretch;
        flex-direction:column
    }
    .pinned-post-dismiss-form{
        align-self:flex-end
    }
}


/* Version 81: developer contact and coach post editing */
.developer-contact-footer{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));
    color:#6a746d;
    font-size:.74rem;
    text-align:center
}
.developer-contact-footer a{
    color:inherit;
    font-weight:800;
    text-decoration:underline
}
.pinned-post-coach-actions,
.coach-post-heading-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.45rem;
    flex-wrap:wrap
}
.pinned-post-edit-button,
.compact-edit-button{
    width:auto !important;
    min-width:0 !important;
    padding:.48rem .68rem !important;
    font-size:.78rem !important
}
.coach-post-heading-actions form{
    margin:0
}
@media(max-width:650px){
    .coach-post-heading-actions{
        justify-content:flex-start
    }
}


/* Version 83: parent registration button on sign-in */
.parent-registration-area{
    display:grid;
    gap:.85rem;
    margin-top:1.1rem
}
.parent-registration-divider{
    display:flex;
    align-items:center;
    gap:.7rem;
    color:#6b746e;
    font-size:.78rem;
    font-weight:800;
    text-align:center
}
.parent-registration-divider::before,
.parent-registration-divider::after{
    content:"";
    flex:1 1 auto;
    height:1px;
    background:#d7e0da
}
.parent-registration-divider span{
    white-space:nowrap
}
.parent-registration-button{
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:48px;
    border:2px solid var(--team-primary, #176b3a) !important;
    background:#ffffff !important;
    color:var(--team-primary, #176b3a) !important;
    font-size:1rem !important;
    font-weight:900 !important;
    text-align:center;
    text-decoration:none !important;
    box-shadow:0 4px 12px #0000000d
}
.parent-registration-button:hover,
.parent-registration-button:focus{
    background:var(--team-primary, #176b3a) !important;
    color:#ffffff !important
}

/* Version 84: multiple coaches */
select[multiple]{min-height:145px}


/* Version 85: assistant coaches grouped under head coach */
.admin-assistant-coach-list{
    display:grid;
    gap:.6rem;
    margin-bottom:.85rem;
    padding:.8rem;
    border:1px solid #d9e3dc;
    border-radius:10px;
    background:#f4f8f5
}
.admin-assistant-coach-list h4{
    margin:0
}
.admin-assistant-coach-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:.7rem;
    border-radius:8px;
    background:#ffffff
}
.admin-role-badge.assistant{
    margin-right:.45rem;
    background:#e7f0ff;
    color:#24508f
}
@media(max-width:760px){
    .admin-assistant-coach-row{
        align-items:stretch;
        flex-direction:column
    }
    .admin-assistant-coach-row > a{
        width:100%
    }
}

/* Version 88: registration approval confirmation */
.registration-confirmation-banner{margin-bottom:1rem;padding:1.25rem !important;border:3px solid #1f7a3f !important;background:#edf9f1 !important;text-align:center}
.registration-confirmation-banner h1{margin:0 0 .65rem;color:#165d31;font-size:clamp(1.8rem,6vw,2.7rem);line-height:1.05;font-weight:1000}
.registration-confirmation-banner p{margin:0;color:#173f28;font-size:clamp(1.1rem,4vw,1.45rem);line-height:1.45;font-weight:900}

/* Version 89: coach registration and approval */
.registration-choice-card{padding:.75rem !important}.registration-choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.registration-choice-buttons .button{justify-content:center;text-align:center}@media(max-width:600px){.registration-choice-buttons{grid-template-columns:1fr}}

/* Version 90: parent and coach registration buttons on sign-in */
.login-registration-buttons{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.7rem
}
.coach-registration-button{
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:48px;
    border:2px solid var(--team-primary, #176b3a) !important;
    background:var(--team-primary, #176b3a) !important;
    color:#ffffff !important;
    font-size:1rem !important;
    font-weight:900 !important;
    text-align:center;
    text-decoration:none !important;
    box-shadow:0 4px 12px #00000012
}
.coach-registration-button:hover,
.coach-registration-button:focus{
    filter:brightness(.92);
    color:#ffffff !important
}
@media(max-width:560px){
    .login-registration-buttons{
        grid-template-columns:1fr
    }
}


/* Version 91: parent joins additional teams */
.parent-team-switcher form{
    margin:0
}
.parent-join-team-button{
    width:auto !important;
    margin-top:.55rem;
    padding:.48rem .7rem !important;
    font-size:.78rem !important
}
.parent-join-team-form{
    margin-top:.8rem !important;
    padding-top:.8rem;
    border-top:1px solid #d7e0da
}
.parent-join-team-form[hidden]{
    display:none !important
}
@media(max-width:650px){
    .parent-join-team-button{
        width:100% !important
    }
}

/* Version 92: visible join another team button */
.parent-team-switcher .parent-join-team-button{
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:100% !important;
    min-height:44px;
    margin-top:.65rem !important;
    border:0 !important;
    background:#198754 !important;
    color:#fff !important;
    font-size:.9rem !important;
    font-weight:900 !important;
    text-align:center;
    visibility:visible !important;
    opacity:1 !important
}
.parent-team-switcher .parent-join-team-button:hover,
.parent-team-switcher .parent-join-team-button:focus{
    background:#146c43 !important;
    color:#fff !important
}

/* Version 95: cross-team notification targeting */
.notification-target-highlight{
    outline:3px solid #efb21c;
    outline-offset:3px;
    animation:notificationTargetPulse 1s ease-in-out 2
}
@keyframes notificationTargetPulse{
    0%,100%{box-shadow:0 0 0 0 rgba(239,178,28,.15)}
    50%{box-shadow:0 0 0 10px rgba(239,178,28,.22)}
}

/* Version 98: external attachment viewing and coach previews */
.post-image-link{
    display:block;
    margin:.75rem 0;
    text-decoration:none
}
.post-attachment-image{
    display:block;
    width:100%;
    max-width:560px;
    max-height:460px;
    object-fit:contain;
    border:1px solid #d7e0da;
    border-radius:10px;
    background:#f7f9f8
}
.document-link[target="_blank"]::after{
    content:" ↗";
    font-size:.8em
}


/* Version 99: attachment links only */
.post-image-link,.post-attachment-image{display:none !important}
.post-attachment-row{margin:.65rem 0}
.external-attachment-link{display:inline-flex;align-items:center;gap:.3rem;font-weight:800;text-decoration:underline;overflow-wrap:anywhere}
.external-attachment-link::after{content:" ↗";font-size:.82em}


/* Version 100: attachment viewer with reliable PWA return control */
.attachment-viewer-page{
    margin:0;
    min-height:100vh;
    background:#f3f5f7;
}
.attachment-viewer-shell{
    width:min(100%, 1100px);
    margin:0 auto;
    padding:calc(12px + env(safe-area-inset-top)) 12px calc(20px + env(safe-area-inset-bottom));
}
.attachment-viewer-toolbar{
    position:sticky;
    top:0;
    z-index:20;
    display:flex;
    gap:10px;
    justify-content:space-between;
    padding:10px 0;
    background:#f3f5f7;
}
.attachment-back-button{
    flex:1;
    font-size:1rem;
    font-weight:800;
}
.attachment-viewer-card h1{
    overflow-wrap:anywhere;
    font-size:1.15rem;
}
.attachment-viewer-image{
    display:block;
    width:100%;
    height:auto;
    max-height:75vh;
    object-fit:contain;
    background:#fff;
}
.attachment-viewer-frame{
    display:block;
    width:100%;
    min-height:75vh;
    border:0;
    background:#fff;
}
@media (max-width:600px){
    .attachment-viewer-toolbar{
        flex-direction:column;
    }
    .attachment-viewer-toolbar .button{
        width:100%;
        text-align:center;
    }
}


.notification-source{
    margin:.35rem 0 .55rem;
    font-size:.9rem;
    line-height:1.35;
    color:#4b5563;
}
.notification-source span{
    display:inline-block;
    margin:0 .35rem;
}


/* v102: keep the attachment viewer open while files download. */
.attachment-download-frame{
    position:fixed;
    width:1px;
    height:1px;
    left:-9999px;
    border:0;
    opacity:0;
}
.attachment-download-status{
    position:fixed;
    left:50%;
    bottom:calc(20px + env(safe-area-inset-bottom));
    transform:translate(-50%, 20px);
    max-width:calc(100% - 32px);
    padding:10px 14px;
    border-radius:10px;
    background:#16202a;
    color:#fff;
    font-weight:700;
    text-align:center;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
    z-index:9999;
}
.attachment-download-status.is-visible{
    opacity:1;
    transform:translate(-50%, 0);
}

/* v103 grouped push diagnostics */
.push-device-group-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.push-device-label{font-weight:700;margin-top:.35rem}
.push-revoke-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}
.push-revoke-actions form{margin:0}
.push-subscription-list{display:grid;gap:.75rem;margin-top:.75rem}
.push-subscription-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem;border:1px solid rgba(0,0,0,.12);border-radius:10px;background:rgba(255,255,255,.45)}
.push-subscription-item small{overflow-wrap:anywhere}
.text-danger{color:#b42318;font-weight:700}
@media(max-width:700px){.push-subscription-item{display:block}.push-subscription-item form{margin-top:.75rem}.push-revoke-actions .button{width:100%}.push-revoke-actions form{width:100%}}

/* Registration spam trap: hidden from people, visible to basic form bots. */
.registration-honeypot{
    position:absolute !important;
    left:-10000px !important;
    top:auto !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}


/* v107 parent administration */
.admin-parent-directory{display:grid;gap:16px}
.admin-parent-directory-card{display:grid;gap:14px}
.admin-parent-directory-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.admin-parent-directory-heading h2{margin:0 0 4px}
.admin-parent-team-list{display:grid;gap:8px}
.admin-parent-team-record{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1px solid var(--border,#d7ddd9);border-radius:10px;background:rgba(0,0,0,.02)}
.admin-parent-directory-actions form{margin:0}
.admin-parent-directory-actions button{width:auto}
@media(max-width:700px){.admin-parent-directory-heading{align-items:flex-start}.admin-parent-directory-actions,.admin-parent-directory-actions form,.admin-parent-directory-actions a,.admin-parent-directory-actions button{width:100%}}


/* v109 outgoing email template editor */
.email-template-card{border:1px solid #d9e0e7;border-radius:12px;margin:0 0 14px;background:#fff;overflow:hidden}
.email-template-card summary{cursor:pointer;font-weight:800;padding:15px 16px;background:#f5f7f9}
.email-template-content{padding:16px}.email-template-body{min-height:230px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}
.template-field-buttons{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.template-field-button{font-size:.78rem;padding:7px 10px}
.sticky-template-save{position:sticky;bottom:8px;background:rgba(255,255,255,.94);padding:10px;border-radius:12px;box-shadow:0 3px 16px rgba(0,0,0,.12);z-index:4}


/* Version 110 visual HTML email editor */
.html-email-editor{border:1px solid #cfd8e3;border-radius:12px;overflow:hidden;background:#fff;margin:6px 0 14px}
.html-editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:9px;background:#f4f7fa;border-bottom:1px solid #d9e1e8}
.html-editor-toolbar button{width:auto;min-width:40px;padding:7px 10px;margin:0;font-size:.84rem}
.html-color-control{display:flex;align-items:center;gap:6px;margin:0;padding:3px 8px;border:1px solid #c9d3dd;border-radius:8px;background:#fff;font-size:.8rem;font-weight:700}
.html-color-control input{width:31px;height:27px;padding:0;border:0;background:transparent}
.email-html-canvas{min-height:270px;padding:18px;outline:none;line-height:1.55;background:#fff;color:#222;overflow:auto}
.email-html-canvas:focus{box-shadow:inset 0 0 0 2px rgba(22,105,180,.22)}
.email-html-canvas h1,.email-html-canvas h2,.email-html-canvas h3{margin-top:.4em}
.email-html-canvas a{text-decoration:underline}
.email-html-source{display:none;width:100%;min-height:270px;border:0;border-radius:0;margin:0;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}
.email-html-source.is-visible{display:block}
.email-html-canvas.is-hidden{display:none}
@media(max-width:700px){.html-editor-toolbar{gap:5px}.html-editor-toolbar button{font-size:.76rem;padding:7px 8px}.email-html-canvas{min-height:230px;padding:14px}}


/* Huddleora public login and registration branding */
.public-brand-header{
    display:flex;
    justify-content:center;
    align-items:center;
    width:min(760px,100%);
    margin:.35rem auto 1rem;
    padding:.25rem .75rem;
}
.public-brand-header a{
    display:block;
    max-width:100%;
}
.public-brand-logo{
    display:block;
    width:min(560px,92vw);
    max-height:150px;
    object-fit:contain;
    filter:drop-shadow(0 5px 10px rgba(0,45,48,.18));
}
.registration-brand-header{
    margin-bottom:.65rem;
}
@media(max-width:650px){
    .public-brand-header{
        margin:.1rem auto .75rem;
        padding:0 .25rem;
    }
    .public-brand-logo{
        width:min(430px,96vw);
        max-height:112px;
    }
}


/* Version 113 email template image and logo insertion */
.html-upload-image,.html-insert-logo{font-weight:700}
.email-html-canvas img{max-width:100%;height:auto}
.email-image-help{padding:10px 12px;border-radius:9px;background:#eef8f7;color:#164d49;margin:8px 0 14px;font-size:.9rem}
@media(max-width:700px){.html-upload-image,.html-insert-logo{flex:1 1 auto}}


/* v114 application URL settings */
.admin-url-details code{
    display:inline-block;
    max-width:100%;
    padding:.45rem .65rem;
    margin-top:.25rem;
    overflow-wrap:anywhere;
    white-space:normal;
    background:#f3f6f4;
    border:1px solid #d6e0da;
    border-radius:.45rem;
}
.settings-checklist{
    margin:.5rem 0 0;
    padding-left:1.4rem;
}
.settings-checklist li{
    margin:.55rem 0;
}


/* Admin invitation center */
.admin-invitation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.csv-column-help{margin-top:14px;padding:12px;border:1px solid #d7e5e0;border-radius:8px;background:#f7fbfa}
.csv-column-help code{display:block;margin-top:8px;white-space:normal}
#invite-team-label.is-optional::after{content:" (optional for coaches)";font-weight:400;color:#667}
.error-text{color:#a40000;font-size:.88rem}
@media(max-width:760px){.admin-invitation-grid{grid-template-columns:1fr}}
