:root {
    --ink:#1d3434;
    --muted:#637471;
    --paper:#f5f6f2;
    --line:#e2e7e0;
    --green:#23564c;
    --mint:#dce9dd;
    --orange:#edb68e;
    --radius:18px;
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    color:var(--ink);
    background:var(--paper);
    font-synthesis:none;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
}
a {
    color:inherit;
    text-decoration:none;
}
button,input,select,textarea {
    font:inherit;
}
button,a,input,select,textarea,summary {
    -webkit-tap-highlight-color:transparent;
}
button,summary {
    cursor:pointer;
}
button {
    border:0;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {
    outline:3px solid #ba743c;
    outline-offset:4px;
}
h1,h2,h3,p {
    margin:0;
}
h1 {
    font-size:clamp(30px,3vw,42px);
    letter-spacing:-1.5px;
    line-height:1.2;
    font-weight:650;
}
h2 {
    font-size:21px;
    letter-spacing:-.6px;
    font-weight:650;
}
h3 {
    font-size:15px;
    font-weight:650;
    line-height:1.45;
}
p {
    line-height:1.65;
}
small {
    font-size:12px;
}
svg {
    flex-shrink:0;
}
.icon {
    width:21px;
    height:21px;
    display:inline-block;
    vertical-align:middle;
}
.sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:252px;
    background:#172f30;
    color:#d5dfda;
    display:flex;
    flex-direction:column;
    padding:34px 22px 20px;
    z-index:20;
}
.brand {
    display:flex;
    gap:12px;
    align-items:center;
    font-size:28px;
    font-weight:800;
    letter-spacing:3px;
    color:#f4f4df;
}
.brand small {
    display:block;
    font-size:8px;
    font-weight:500;
    letter-spacing:1.5px;
    margin-top:4px;
    white-space:nowrap;
}
.brand-symbol {
    width:43px;
    height:43px;
    border-radius:13px;
    display:grid;
    place-items:center;
    background:#dae8c7;
    color:#183a33;
    transform:rotate(-6deg);
}
.brand-symbol .icon {
    width:29px;
    height:29px;
}
.nav-caption {
    font-size:9px;
    color:#93aaa3;
    letter-spacing:1.8px;
    margin:50px 14px 17px;
}
.nav-item {
    display:flex;
    align-items:center;
    gap:13px;
    padding:14px;
    border-radius:10px;
    font-size:13px;
    min-height:48px;
    margin:4px 0;
    color:#bacac5;
}
.nav-item:hover {
    background:#23403f;
}
.nav-item.active {
    background:#dce8cd;
    color:#244438;
    font-weight:650;
}
.nav-dot {
    height:6px;
    width:6px;
    border-radius:50%;
    background:#46715a;
    margin-left:auto;
}
.sidebar-note {
    margin-top:auto;
    border-top:1px solid #36504b;
    padding:24px 12px;
    color:#e1e7db;
}
.sidebar-note .eyebrow {
    color:#9db8aa;
    font-size:9px;
}
.sidebar-note p {
    font-size:16px;
    line-height:1.5;
    margin:11px 0;
}
.sidebar-note .muted {
    font-size:11px;
    color:#9ab0a8;
}
.user-block {
    display:flex;
    gap:10px;
    align-items:center;
    border-top:1px solid #36504b;
    padding-top:20px;
}
.avatar {
    display:inline-grid;
    place-items:center;
    width:36px;
    height:36px;
    background:#dfc6ab;
    color:#493f31;
    border-radius:12px;
    font-weight:650;
    flex-shrink:0;
}
.user-name {
    font-size:12px;
    line-height:1.5;
    overflow-wrap:anywhere;
    flex:1;
    min-width:0;
}
.user-name small {
    display:block;
    font-size:10px;
    color:#9bb2a8;
}
.icon-button {
    width:40px;
    height:44px;
    border-radius:8px;
    background:none;
    color:inherit;
    display:grid;
    place-items:center;
}
.icon-button:hover {
    background:#294441;
}
.app-shell {
    margin-left:252px;
}
.topbar {
    height:78px;
    background:#fcfcf9;
    border-bottom:1px solid var(--line);
    padding:0 42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:12px;
}
.breadcrumb {
    color:var(--muted);
}
.breadcrumb span {
    margin:0 14px;
    color:#a7b2aa;
}
.breadcrumb strong {
    font-weight:500;
    color:var(--ink);
}
.topbar-team {
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
}
.topbar-team i {
    background:#789b69;
    width:6px;
    height:6px;
    border-radius:50%;
}
.main {
    padding:36px 42px;
    max-width:1520px;
    margin:0 auto;
}
.page-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:28px;
}
.page-heading h1 {
    margin:9px 0;
}
.page-heading p {
    font-size:14px;
    color:var(--muted);
}
.eyebrow {
    font-size:10px;
    font-weight:650;
    letter-spacing:1.7px;
    text-transform:uppercase;
    color:var(--muted);
}
.greeting-dot {
    color:#a97750;
}
.pill {
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 12px;
    border-radius:30px;
    font-size:11px;
    font-weight:600;
    white-space:nowrap;
}
.pill .icon {
    width:16px;
    height:16px;
}
.light {
    background:#eaf0e7;
    color:#526d56;
}
.sage {
    background:#e0ebdb;
    color:#365b41;
}
.peach {
    background:#f8e8d9;
    color:#80512e;
}
.lavender {
    background:#e9e8f2;
    color:#5a5579;
}
.hero {
    background:#234d45;
    border-radius:var(--radius);
    min-height:295px;
    display:flex;
    overflow:hidden;
    position:relative;
    color:#eff2dc;
    margin-bottom:24px;
}
.hero-copy {
    padding:30px 34px;
    position:relative;
    z-index:1;
    width:56%;
}
.hero .eyebrow {
    color:#bfd2bd;
    font-size:9px;
}
.hero h2 {
    font-size:34px;
    letter-spacing:-1px;
    line-height:1.15;
    margin:13px 0;
}
.hero p {
    font-size:12px;
    color:#c5d5c5;
    margin-bottom:20px;
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    border:1px solid transparent;
    min-height:46px;
    background:#23564c;
    color:#fff;
    padding:12px 19px;
    border-radius:9px;
    font-size:12px;
    font-weight:600;
    line-height:1.3;
    text-align:center;
}
.button:hover {
    background:#173f37;
}
.button.cream {
    background:#edf0d3;
    color:#2b4b38;
}
.button.secondary {
    background:#f8faf6;
    border:1px solid #cbd6c9;
    color:#315344;
}
.button.secondary:hover {
    background:#e8eee3;
}
.ramp-art {
    position:absolute;
    right:0;
    bottom:0;
    width:48%;
    height:100%;
    display:flex;
    align-items:flex-end;
}
.ramp-art svg {
    width:100%;
    height:auto;
}
.stats {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:16px;
    margin:22px 0;
}
.stat {
    padding:22px 19px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    display:flex;
    gap:14px;
    align-items:center;
    min-height:102px;
}
.stat>div {
    flex:1;
}
.stat>div>span {
    font-size:11px;
    color:var(--muted);
}
.stat strong {
    display:block;
    font-size:27px;
    font-weight:600;
    letter-spacing:-1px;
    margin-top:7px;
}
.stat strong small {
    font-size:10px;
    font-weight:400;
    color:var(--muted);
    letter-spacing:0;
    margin-left:3px;
}
.stat>.icon {
    color:#728477;
    width:16px;
}
.stat-icon {
    height:43px;
    width:43px;
    display:inline-grid;
    place-items:center;
    border-radius:13px;
    flex-shrink:0;
}
.dashboard-grid {
    display:grid;
    grid-template-columns:1.15fr 1fr;
    gap:22px;
    margin-top:26px;
}
.panel {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:25px;
}
.panel h2+p,.panel h3+p {
    margin-top:8px;
}
.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
    gap:15px;
}
.section-heading h2 {
    font-size:18px;
    margin-top:7px;
}
.section-heading .eyebrow {
    font-size:9px;
}
.text-link {
    color:#38604d;
    display:inline-flex;
    align-items:center;
    gap:9px;
    font-size:12px;
    font-weight:600;
    min-height:44px;
}
.text-link:hover {
    text-decoration:underline;
}
.text-link .icon {
    width:16px;
}
.event-row {
    display:flex;
    align-items:center;
    gap:16px;
    border-top:1px solid var(--line);
    padding:21px 0;
}
.event-row:hover h2,.event-row:hover h3 {
    text-decoration:underline;
}
.event-row h2 {
    font-size:19px;
    margin:4px 0;
}
.event-row p {
    font-size:12px;
    color:var(--muted);
    margin-top:3px;
}
.event-row>.icon {
    width:16px;
    color:#5b7566;
}
.date-tile {
    background:#eef2e9;
    width:54px;
    height:65px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    flex-shrink:0;
}
.date-tile strong {
    font-size:23px;
    font-weight:600;
}
.date-tile span {
    text-transform:uppercase;
    font-size:9px;
    color:#6f806a;
    letter-spacing:1px;
}
.grow {
    flex:1;
    min-width:0;
}
.micro {
    font-size:11px;
    color:var(--muted);
    display:inline-flex;
    gap:5px;
    align-items:center;
    margin-top:6px;
}
.micro .icon {
    width:12px;
    height:12px;
}
.task-row {
    display:flex;
    align-items:center;
    gap:12px;
    padding:20px 0;
    border-top:1px solid var(--line);
}
.task-row>div {
    flex:1;
}
.task-row h3 {
    font-size:13px;
}
.task-row p {
    font-size:11px;
    color:var(--muted);
    margin-top:6px;
}
.task-row>.icon {
    width:16px;
}
.task-circle {
    width:18px;
    height:18px;
    border:1px solid #b9c7b8;
    border-radius:6px;
    flex-shrink:0;
}
.count {
    font-size:11px;
    background:#f1f1e5;
    border-radius:20px;
    padding:6px 9px;
}
.panel-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:11px;
    color:#49684d;
    border-top:1px solid var(--line);
    padding-top:17px;
}
.panel-footer .icon {
    width:15px;
}
.quiet-footer {
    margin-top:30px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:10px;
    color:#788778;
}
.quiet-footer>span:last-child {
    font-size:8px;
    letter-spacing:1.5px;
}
.muted {
    color:var(--muted);
    font-size:13px;
}
.empty {
    text-align:center;
    padding:35px 20px;
    color:var(--muted);
}
.empty>.icon {
    width:32px;
    height:32px;
    color:#749079;
    margin-bottom:15px;
}
.empty h2,.empty h3 {
    color:#3f594b;
    margin-bottom:8px;
}
.empty p {
    font-size:12px;
    max-width:300px;
    margin:auto;
}
.notice,.error-box {
    padding:20px 24px;
    border-radius:12px;
    margin-bottom:24px;
    font-size:13px;
    line-height:1.6;
    background:#e5eedf;
    border:1px solid #c8d8bc;
}
.error-box {
    background:#fcf0e9;
    border-color:#dfba9d;
    color:#793f22;
}
.error-box ul {
    margin-bottom:0;
    padding-left:20px;
}
.notice .button {
    flex-shrink:0;
}
.between {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
}
.stack {
    display:flex;
    flex-direction:column;
    gap:19px;
}
.stack>.button {
    align-self:flex-start;
}
.field {
    display:flex;
    flex-direction:column;
    gap:9px;
    font-size:12px;
    font-weight:600;
    min-width:0;
}
.field>small {
    font-weight:400;
    font-size:11px;
    color:var(--muted);
}
input,textarea,select {
    border:1px solid #ccd6cb;
    background:#fff;
    color:var(--ink);
    border-radius:8px;
    min-height:46px;
    padding:11px 13px;
    width:100%;
    font-size:14px;
    font-weight:400;
}
textarea {
    resize:vertical;
    line-height:1.5;
}
input[type=checkbox] {
    width:18px;
    height:18px;
    min-height:18px;
    accent-color:#315f4d;
    flex-shrink:0;
    padding:0;
}
.checkbox {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:44px;
    font-size:12px;
    line-height:1.5;
}
.required {
    color:#986239;
    margin-left:2px;
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
    margin-top:22px;
}
.full {
    grid-column:1/-1;
}
.form-panel {
    margin-top:26px;
    scroll-margin-top:20px;
}
.form-panel>h2 {
    margin-top:8px;
}
.form-panel>p {
    margin-top:12px;
}
.inline-form {
    display:flex;
    align-items:flex-end;
    gap:12px;
    flex-wrap:wrap;
}
.inline-form select {
    width:auto;
    max-width:100%;
}
.year-filter {
    margin-bottom:22px;
}
.year-filter .field {
    max-width:140px;
}
.searchbar {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:25px;
    max-width:520px;
}
.searchbar input {
    min-width:0;
}
.searchbar>a {
    font-size:12px;
}
.roster {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.athlete-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
    transition:box-shadow .2s;
}
.athlete-card:hover {
    box-shadow:0 8px 25px #1d34340d;
    border-color:#a7bda2;
}
.avatar.large {
    width:50px;
    height:50px;
    font-size:22px;
    background:#e4ebdd;
    color:#4c6945;
}
.athlete-card h2 {
    margin:24px 0 8px;
    font-size:20px;
}
.athlete-card p {
    font-size:12px;
    color:var(--muted);
}
.athlete-card .pill {
    font-size:9px;
    white-space:normal;
}
.card-bottom {
    margin-top:25px;
    padding-top:15px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    font-size:10px;
    color:#526e51;
    align-items:center;
    gap:10px;
}
.card-bottom .icon {
    width:15px;
}
.two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}
.preserve {
    white-space:pre-line;
    overflow-wrap:anywhere;
    font-size:14px;
    line-height:1.8;
}
.agreement-text {
    max-width:780px;
    margin:24px 0;
}
.panel>.two-col {
    margin-top:25px;
}
.contact,.log-entry {
    padding-top:18px;
    margin-top:18px;
    border-top:1px solid var(--line);
}
.contact p {
    font-size:13px;
}
.log-entry p {
    margin:10px 0;
}
.task-detail,.expense-row,.attendance-row {
    padding:23px 0;
    border-bottom:1px solid var(--line);
    scroll-margin-top:20px;
}
.task-detail:first-child,.expense-row:first-of-type {
    padding-top:8px;
}
.task-detail:last-child,.expense-row:last-child,.attendance-row:last-child {
    border-bottom:0;
}
.task-detail h2 {
    font-size:19px;
    margin:16px 0 8px;
}
.task-detail>.muted {
    margin:10px 0;
}
.task-detail>.inline-form {
    margin-top:15px;
}
.overdue {
    color:#a14726!important;
}
.expense-row>h3 {
    font-size:17px;
    margin-top:14px;
}
.expense-row>p {
    font-size:12px;
    color:var(--muted);
    margin-top:8px;
}
.expense-row>.decision {
    border-top:1px solid var(--line);
    padding-top:18px;
    margin-top:8px;
}
.table-scroll {
    overflow-x:auto;
    margin-top:20px;
}
table {
    border-collapse:collapse;
    width:100%;
    font-size:12px;
    text-align:right;
    white-space:nowrap;
}
td,th {
    padding:16px 12px;
    border-bottom:1px solid var(--line);
}
thead th {
    font-size:10px;
    color:var(--muted);
    font-weight:500;
}
th:first-child {
    text-align:left;
    padding-left:0;
    font-weight:500;
}
table tr:last-child td,table tr:last-child th {
    border-bottom:0;
}
.pagination {
    display:flex;
    justify-content:space-between;
    gap:15px;
    font-size:12px;
    margin:25px 0;
}
.pagination>span {
    color:var(--muted);
}
fieldset {
    border:1px solid var(--line);
    border-radius:10px;
    padding:15px;
}
legend {
    font-size:12px;
    font-weight:600;
    padding:0 8px;
}
.check-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}
.selection {
    background:#f2f5ed;
    border-radius:8px;
    padding:10px;
}
.form-panel summary {
    font-size:17px;
    font-weight:600;
    min-height:44px;
    line-height:44px;
}
.mobile-nav {
    display:none;
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.skip-link {
    position:fixed;
    left:10px;
    top:-60px;
    background:#fff;
    padding:12px;
    z-index:100;
}
.skip-link:focus {
    top:10px;
}
.auth-body {
    background:#f7f7f0;
}
.auth-main {
    min-height:100vh;
    display:grid;
    grid-template-columns:1fr 1fr;
}
.auth-main>.notice,.auth-main>.error-box {
    position:relative;
    grid-column:1/-1;
    margin:15px;
}
.auth-story {
    background:#214a42;
    color:#f4f1d7;
    padding:60px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:100vh;
    position:relative;
    overflow:hidden;
}
.auth-story:after {
    content:"";
    position:absolute;
    bottom:-100px;
    right:-180px;
    width:600px;
    height:600px;
    border:1px solid #9fb6a044;
    border-radius:50%;
    box-shadow:0 0 0 70px #90a98011,0 0 0 140px #90a9800a;
    pointer-events:none;
}
.auth-story h1 {
    font-size:clamp(40px,5vw,70px);
    letter-spacing:-3px;
    line-height:1.08;
    margin:20px 0;
}
.auth-story p {
    font-size:16px;
    color:#c0d2be;
}
.auth-story .eyebrow {
    color:#c0d2be;
}
.auth-story>div {
    position:relative;
    z-index:1;
    margin:70px 0;
}
.auth-footer {
    font-size:10px;
    letter-spacing:3px;
}
.auth-card {
    width:100%;
    max-width:460px;
    padding:50px 35px;
    align-self:center;
    justify-self:center;
}
.auth-card h2 {
    font-size:29px;
    margin:14px 0;
    letter-spacing:-1px;
}
.auth-card>p {
    font-size:14px;
    margin:15px 0 28px;
}
.auth-card .stack>.button {
    align-self:stretch;
    margin-top:6px;
}
.auth-card .auth-help {
    font-size:11px;
    text-align:center;
    margin-top:30px;
    color:var(--muted);
}
.auth-card .between {
    gap:10px;
}
.auth-card .text-link {
    font-size:11px;
}
.standalone {
    grid-column:1/-1;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    margin:30px auto;
}
.standalone h1 {
    font-size:30px;
    margin-top:15px;
}
.standalone>.text-link {
    margin-top:20px;
}
@media(min-width:1550px) {
    .hero h2 {
        font-size:40px;
    }
    .hero-copy {
        padding:36px 40px;
    }
    .hero {
        min-height:320px;
    }
    .sidebar {
        width:270px;
    }
    .app-shell {
        margin-left:270px;
    }
}
@media(max-width:1200px) {
    .sidebar {
        width:220px;
        padding:30px 16px 20px;
    }
    .app-shell {
        margin-left:220px;
    }
    .brand {
        font-size:24px;
        gap:9px;
    }
    .brand small {
        font-size:7px;
        letter-spacing:1px;
    }
    .main {
        padding:28px;
    }
    .topbar {
        padding:0 28px;
    }
    .roster {
        grid-template-columns:repeat(2,1fr);
    }
    .stat {
        padding:18px 14px;
        gap:10px;
    }
    .stat-icon {
        width:35px;
        height:35px;
    }
    .stats {
        gap:12px;
        grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    }
    .dashboard-grid {
        gap:16px;
    }
    .panel {
        padding:22px;
    }
    .check-grid {
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:960px) {
    .sidebar {
        width:195px;
        padding:24px 12px;
    }
    .app-shell {
        margin-left:195px;
    }
    .sidebar .brand {
        font-size:20px;
        letter-spacing:2px;
    }
    .sidebar .brand small {
        font-size:6px;
    }
    .brand-symbol {
        width:35px;
        height:38px;
    }
    .nav-item {
        font-size:12px;
        padding:12px;
        gap:10px;
    }
    .main {
        padding:24px;
    }
    .dashboard-grid {
        grid-template-columns:1fr;
    }
    .stats {
        grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    }
    .hero h2 {
        font-size:30px;
    }
    .hero-copy {
        padding:28px;
    }
    .hero {
        min-height:280px;
    }
    .page-heading>.pill {
        display:none;
    }
    .two-col {
        gap:15px;
    }
    .quiet-footer {
        flex-direction:column;
        gap:10px;
    }
    .auth-story {
        padding:35px;
    }
    .user-name {
        font-size:10px;
    }
    .user-block {
        gap:6px;
    }
    .user-block .avatar {
        width:28px;
        height:30px;
    }
}
@media(max-width:700px) {
    .sidebar {
        position:static;
        width:auto;
        padding:18px 20px 0;
        background:#172f30;
        min-height:76px;
        flex-direction:row;
        align-items:flex-start;
        justify-content:space-between;
    }
    .sidebar .brand {
        font-size:22px;
    }
    .sidebar .brand small {
        font-size:6px;
        letter-spacing:1.4px;
    }
    .sidebar nav,.nav-caption,.sidebar-note {
        display:none;
    }
    .sidebar .user-block {
        border:0;
        padding:0;
        gap:8px;
    }
    .sidebar .user-name {
        display:none;
    }
    .user-block .avatar {
        display:none;
    }
    .app-shell {
        margin:0;
    }
    .topbar {
        height:48px;
        padding:0 20px;
        font-size:10px;
    }
    .topbar-team {
        font-size:9px;
    }
    .breadcrumb span {
        margin:0 8px;
    }
    .main {
        padding:25px 18px 105px;
    }
    .page-heading {
        margin-bottom:22px;
        align-items:flex-start;
        flex-wrap:wrap;
        gap:14px;
    }
    .page-heading p {
        font-size:12px;
    }
    .page-heading h1 {
        font-size:31px;
    }
    .page-heading .eyebrow {
        font-size:8px;
        letter-spacing:1.4px;
    }
    .page-heading>.button {
        min-height:42px;
        font-size:11px;
        padding:10px 14px;
    }
    .hero {
        min-height:315px;
        margin-bottom:20px;
    }
    .hero-copy {
        width:100%;
        padding:28px 23px;
    }
    .hero h2 {
        font-size:31px;
        margin:15px 0;
    }
    .hero p {
        font-size:11px;
    }
    .hero .eyebrow {
        font-size:8px;
    }
    .hero .button {
        position:relative;
        z-index:2;
    }
    .ramp-art {
        width:61%;
        right:-22px;
        opacity:.62;
        bottom:-15px;
    }
    .hero-copy p {
        max-width:210px;
    }
    .stats {
        grid-template-columns:1fr;
        gap:10px;
        margin:18px 0;
    }
    .stat {
        padding:15px 18px;
        min-height:80px;
    }
    .stat-icon {
        width:40px;
        height:40px;
    }
    .stat strong {
        font-size:24px;
        margin-top:5px;
    }
    .stat>div>span {
        font-size:11px;
    }
    .stat strong small {
        font-size:10px;
    }
    .dashboard-grid {
        margin-top:22px;
        gap:20px;
    }
    .panel {
        border-radius:14px;
        padding:20px;
    }
    .section-heading h2 {
        font-size:17px;
    }
    .section-heading .eyebrow {
        font-size:8px;
    }
    .event-row {
        gap:12px;
        padding:19px 0;
    }
    .event-row h2 {
        font-size:16px;
    }
    .event-row h3 {
        font-size:13px;
    }
    .event-row p {
        font-size:11px;
    }
    .event-row>.pill {
        display:none;
    }
    .date-tile {
        width:48px;
        height:60px;
    }
    .section-heading .text-link {
        font-size:10px;
        gap:5px;
    }
    .two-col {
        grid-template-columns:1fr;
        gap:18px;
    }
    .form-grid {
        grid-template-columns:1fr;
        gap:20px;
    }
    .full {
        grid-column:auto;
    }
    .roster {
        grid-template-columns:1fr;
        gap:14px;
    }
    .athlete-card {
        padding:22px;
    }
    .athlete-card h2 {
        margin-top:18px;
    }
    .between {
        flex-wrap:wrap;
        gap:12px;
    }
    .form-panel {
        margin-top:20px;
    }
    .check-grid {
        grid-template-columns:1fr;
    }
    .field {
        font-size:12px;
    }
    input,select,textarea {
        font-size:16px;
    }
    .notice,.error-box {
        padding:18px;
        font-size:12px;
    }
    .notice .button {
        margin-top:3px;
    }
    .inline-form {
        align-items:stretch;
    }
    .inline-form .field {
        width:100%;
    }
    .inline-form>.button {
        align-self:flex-end;
    }
    .inline-form select {
        flex:1;
        min-width:140px;
    }
    .decision>.button {
        width:100%;
    }
    .mobile-nav {
        position:fixed;
        display:flex;
        bottom:0;
        left:0;
        right:0;
        background:#fcfcf8f5;
        backdrop-filter:blur(12px);
        border-top:1px solid #dce3d7;
        justify-content:space-around;
        z-index:30;
        padding:8px 5px max(10px,env(safe-area-inset-bottom));
    }
    .mobile-nav a {
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:5px;
        font-size:9px;
        min-height:46px;
        flex:1;
        color:#738373;
        border-radius:10px;
        padding:5px 2px;
        max-width:95px;
    }
    .mobile-nav a.active {
        color:#315e43;
        background:#e8efdf;
        font-weight:650;
    }
    .mobile-nav .icon {
        height:21px;
        width:21px;
    }
    .quiet-footer {
        font-size:10px;
        line-height:1.6;
        margin-top:24px;
    }
    .auth-main {
        display:flex;
        flex-direction:column;
        min-height:100vh;
    }
    .auth-story {
        min-height:unset;
        padding:30px 26px 36px;
    }
    .auth-story>div {
        margin:45px 0 0;
    }
    .auth-story h1 {
        font-size:43px;
        letter-spacing:-1.8px;
        margin:15px 0;
    }
    .auth-story p {
        font-size:13px;
    }
    .auth-footer {
        display:none;
    }
    .auth-story:after {
        width:350px;
        height:350px;
        right:-240px;
    }
    .auth-card {
        padding:35px 25px;
        max-width:470px;
    }
    .auth-card h2 {
        font-size:27px;
    }
    .auth-card>.eyebrow {
        font-size:9px;
    }
    .auth-card.standalone {
        width:calc(100% - 30px);
        margin:40px auto;
    }
    .auth-main>.notice,.auth-main>.error-box {
        order:-1;
    }
    .auth-story .brand small {
        font-size:7px;
    }
}
@media(prefers-reduced-motion:reduce) {
    * {
        scroll-behavior:auto!important;
        transition:none!important;
    }
}
@media(max-width:700px) {
    .page-heading p,.muted,.event-row p,.task-row p,.empty p,.contact p,.expense-row>p {
        font-size:14px;
    }
    .hero p {
        font-size:13px;
    }
    .field {
        font-size:14px;
    }
    .task-row h3,.event-row h3 {
        font-size:15px;
    }
    .button {
        font-size:13px;
    }
    .mobile-nav a {
        font-size:10px;
    }
    .micro {
        font-size:12px;
    }
}

/* Mobile photo capture, private documentation, and partner branding. */
.mobile-upload { min-width:0; margin:0; padding:18px; background:#f8faf5; }
.upload-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.upload-option { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:18px; background:#fff; border:1px solid #cbd6c9; border-radius:12px; cursor:pointer; }
.upload-option > span { font-size:14px; font-weight:600; }
.upload-option small { display:block; margin-top:5px; font-size:12px; color:var(--muted); font-weight:400; }
.upload-option input { width:100%; font-size:12px; min-width:0; }
.upload-help,.upload-status { font-size:12px; color:var(--muted); margin-top:12px; }
.upload-status { color:#315e43; }
.upload-previews { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin-top:14px; }
.upload-preview { padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; min-width:0; }
.upload-preview img { width:100%; height:150px; object-fit:contain; background:#edf1e8; border-radius:6px; }
.upload-preview > span { display:block; overflow-wrap:anywhere; font-size:12px; margin-top:8px; }
.upload-preview .text-link { font-size:12px; background:none; border:0; padding:4px 0; }
.profile-panel { max-width:750px; }
.profile-summary { display:flex; align-items:center; gap:24px; margin-bottom:30px; }
.profile-photo { width:100px; height:100px; object-fit:cover; border-radius:24px; font-size:40px; }
.profile-link { overflow:hidden; }
.profile-link img { width:100%; height:100%; object-fit:cover; }
.documentation-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:25px; }
.documentation-card { min-width:0; }
.documentation-card h2 { margin:12px 0; }
.documentation-photos { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.documentation-photos a { min-width:0; font-size:12px; }
.documentation-photos img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:#eef2e9; border-radius:9px; margin-bottom:8px; }
.partners { margin-top:35px; padding:26px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.partners h2 { font-size:19px; margin:10px 0; }
.partners p { font-size:12px; color:var(--muted); }
.partner-logos { display:grid; grid-template-columns:repeat(3,1fr); align-items:center; gap:30px; margin-top:20px; }
.partner-logos a { min-height:110px; display:flex; align-items:center; justify-content:center; padding:14px; border-radius:10px; }
.partner-logos a:hover { background:#f5f6f2; }
.partner-logos img { display:block; width:100%; max-width:175px; height:90px; object-fit:contain; }
.login-partners { grid-column:1/-1; width:100%; padding:0 25px 25px; }
.login-partners .partners { max-width:1000px; margin:0 auto; }
@media(max-width:700px) {
 .upload-options,.documentation-grid { grid-template-columns:1fr; }
 .upload-option { padding:15px; }
 .upload-option input { font-size:14px; }
 .user-block .avatar.profile-link { display:inline-grid; width:38px; height:38px; }
 .mobile-nav a { min-width:0; font-size:9px; }
 .mobile-nav a span { max-width:100%; overflow-wrap:anywhere; }
 .profile-summary { gap:15px; }
 .profile-photo { width:78px; height:78px; border-radius:20px; }
 .partners { padding:20px; }
 .partner-logos { gap:12px; }
 .partner-logos a { min-height:80px; padding:3px; }
 .partner-logos img { height:65px; }
 .partners .eyebrow { font-size:9px; }
}

@media(max-width:480px){.partner-logos{grid-template-columns:1fr}.partner-logos img{height:90px;max-width:190px}.partner-logos a{min-height:95px}}

.report-chain { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:24px 0; padding:0; list-style:none; }
.report-chain li { display:flex; align-items:center; gap:12px; padding:17px; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:12px; }
.report-chain li > span { display:grid; place-items:center; width:28px; height:28px; flex-shrink:0; border-radius:50%; background:#eaf0e4; }
.report-chain small { display:block; margin-top:5px; color:var(--muted); overflow-wrap:anywhere; }
.report-chain .current { background:#e1ead7; border-color:#a3b990; }
.report-list-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.report-list-row:last-child { border:0; }
.report-list-row h2 { margin:10px 0; }
.report-submit { margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.role-levels { padding-left:25px; line-height:2.4; font-size:14px; }
.role-levels .current { color:#23564c; font-weight:650; }
@media(max-width:1000px){.report-chain{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.report-chain{grid-template-columns:1fr}.report-chain li{padding:14px}.report-list-row{align-items:flex-start;flex-direction:column;gap:10px}.report-chain strong{font-size:14px}.report-list-row .pill{white-space:normal}}

.date-entry { display:flex; align-items:center; position:relative; gap:8px; }
.date-entry > input[data-date-text] { flex:1; min-width:0; }
.date-native { position:absolute; left:0; bottom:0; width:1px; height:1px; min-height:0; opacity:0; pointer-events:none; padding:0; border:0; }
.date-calendar { display:inline-flex; justify-content:center; align-items:center; min-width:46px; min-height:46px; border:1px solid #ccd6cb; border-radius:8px; background:#eef2e9; color:#315e43; }
.date-calendar[hidden] { display:none; }
.field-error { color:#984e2b!important; }

.calendar-actions,.calendar-legend { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.calendar-toolbar { align-items:flex-end; padding-bottom:22px; border-bottom:1px solid var(--line); }
.calendar-tabs { display:flex; gap:7px; flex-wrap:wrap; }
.calendar-tabs a { padding:13px; border-radius:9px; background:#f1f4ec; font-size:13px; }
.calendar-tabs a.active { background:#23564c; color:white; }
.calendar-toolbar .field { max-width:190px; }
.calendar-month-heading { display:flex; align-items:center; justify-content:space-between; margin:24px 0; gap:15px; text-align:center; }
.calendar-month-heading h2 { text-transform:capitalize; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays span { font-size:12px; text-align:center; padding:12px 3px; color:var(--muted); }
.calendar-grid { border-left:1px solid var(--line); border-top:1px solid var(--line); }
.calendar-cell { min-height:125px; padding:8px 5px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); min-width:0; }
.calendar-cell.outside-month { background:#f5f6f2; color:#899386; }
.calendar-cell.is-today { background:#f0f5e8; box-shadow:inset 0 0 0 2px #7e9d6f; }
.calendar-day-number { font-size:12px; display:block; margin:0 3px 8px; }
.calendar-chip { display:block; padding:6px; font-size:10px; border-radius:5px; margin-top:5px; overflow-wrap:anywhere; }
.calendar-chip-title { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.calendar-chip-dot { display:none; }
.calendar-more { font-size:10px; display:inline-block; padding:6px 0; }
.calendar-mobile-hint { display:none; }
.schedule-entry { display:flex; align-items:center; gap:14px; border-bottom:1px solid var(--line); padding:20px 0; }
.schedule-entry:last-child { border:0; }
.schedule-entry p { color:var(--muted); font-size:12px; margin-top:6px; }
.schedule-category { display:inline-flex; padding:7px 10px; border-radius:7px; font-size:10px; white-space:nowrap; }
.category-training { background:#e0ebdb; color:#365b41; }
.category-competition { background:#f8e8d9; color:#80512e; }
.category-camp { background:#e6e8f5; color:#4a5386; }
.category-meeting,.category-other { background:#e1edf0; color:#325e6b; }
.category-task,.category-report { background:#f2e6ed; color:#78475d; }
.cancelled h3,.calendar-chip.cancelled { text-decoration:line-through; opacity:.65; }
#subscription .field { max-width:800px; }
#subscription input[readonly] { font-size:12px; }
@media(max-width:1100px){.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-panel{padding:18px}.calendar-cell{min-height:110px}.schedule-entry{gap:10px}}
@media(max-width:700px){.calendar-panel{padding:12px}.calendar-cell{min-height:78px;padding:6px 4px}.calendar-chip{display:inline-flex;align-items:center;justify-content:center;padding:0;width:20px;height:20px;margin:2px 0;vertical-align:middle}.calendar-chip-title{display:none}.calendar-chip-dot{display:block;width:8px;height:8px;border-radius:50%;background:currentColor}.calendar-day-number{margin-bottom:5px;font-size:13px}.calendar-weekdays span{font-size:11px}.calendar-mobile-hint{display:block;margin-top:14px;font-size:12px}.calendar-legend{gap:6px}.calendar-legend .schedule-category{padding:6px;font-size:9px}.calendar-toolbar .inline-form{gap:9px}.calendar-toolbar .field{max-width:100%}.schedule-entry{align-items:flex-start;flex-wrap:wrap}.schedule-entry .grow{flex-basis:65%}.schedule-entry h3{font-size:15px}.schedule-entry p{font-size:13px}.schedule-entry>.icon{display:none}.calendar-actions .button{flex:1;min-width:130px}#subscription input[readonly]{font-size:14px}}

.sidebar { overflow-y:auto; }

/* Reusable private documentation */
.media-picker { min-width: 0; }
.media-picker details { margin-block: 1rem; }
.media-picker summary { cursor: pointer; padding-block: .7rem; font-weight: 700; }
.media-choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr)); gap: .8rem; max-height: 520px; overflow-y: auto; padding: .3rem; }
.media-choice { display: flex; flex-direction: column; border: 2px solid var(--line, #dce3df); border-radius: 12px; overflow: hidden; cursor: pointer; background: white; }
.media-choice:has(input:checked) { border-color: #16745a; background: #eff8f1; }
.media-choice:focus-within { outline: 3px solid #16745a; outline-offset: 2px; }
.media-choice img { width: 100%; height: 135px; object-fit: cover; }
.media-choice span, .media-choice small { padding: .5rem .7rem; overflow-wrap: anywhere; }
.media-choice input { width: 20px; height: 20px; vertical-align: middle; accent-color: #16745a; }
.media-choice small { padding-top: 0; }
[data-media-item][hidden] { display: none; }
.linked-documentation { margin-block: 1.5rem; }
.linked-documentation .documentation-photos { margin-block: .8rem; }

.settings-uri { display: block; overflow-wrap: anywhere; padding: .8rem; background: #edf4ef; border-radius: 8px; }
.settings-tabs { flex-wrap: wrap; margin-bottom: 1.2rem; }
#microsoft, #identities, #communication { scroll-margin-top: 1rem; }
.microsoft-login { width: 100%; justify-content: center; }
#identities .field { flex: 1 1 260px; }
#communication summary { cursor: pointer; font-weight: 700; padding-block: .7rem; }

/* Internal conversations */
.message-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.unread-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; min-height: 22px; border-radius: 20px; padding: 3px 7px; background: #fae0b7; color: #573514; font-size: 11px; font-weight: 700; white-space: nowrap; }
.unread-badge[hidden], [data-contact-name][hidden], [data-message-refresh][hidden], [data-mark-read-form][hidden] { display: none; }
.inbox-panel { padding-block: 0; }
.conversation-row { display: flex; align-items: center; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.conversation-row:last-child { border-bottom: 0; }
.conversation-row h2 { font-size: 18px; margin: 0 0 6px; }
.conversation-row p { margin: 4px 0; font-size: 13px; }
.conversation-row .grow { min-width: 0; overflow-wrap: anywhere; }
.conversation-row.is-unread h2 { color: #145b47; }
.conversation-avatar { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #e7eee5; }
.conversation-meta { display: grid; justify-items: end; gap: 10px; font-size: 11px; white-space: nowrap; }
.message-preview { color: var(--muted); }
.message-contacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 10px; max-height: 350px; overflow-y: auto; margin-block: 15px; }
.message-contacts small { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; }
.chat-messages { display: grid; gap: 18px; }
.chat-message { display: flex; justify-content: flex-start; min-width: 0; }
.chat-message.is-own { justify-content: flex-end; }
.chat-bubble { background: #edf2e9; border-radius: 16px 16px 16px 3px; padding: 18px; width: fit-content; max-width: 85%; overflow-wrap: anywhere; }
.is-own .chat-bubble { background: #dce9dd; border-radius: 16px 16px 3px 16px; }
.chat-bubble .between { gap: 20px; flex-wrap: wrap; }
.chat-bubble strong { font-size: 13px; }
.chat-bubble time { color: var(--muted); font-size: 11px; }
.chat-bubble p { margin-bottom: 0; font-size: 15px; line-height: 1.65; }
.message-composer { margin-top: 25px; padding-top: 25px; border-top: 1px solid var(--line); }
.topbar-links { flex-wrap: wrap; }
@media(max-width:700px) {
 .topbar { height: auto; min-height: 66px; flex-wrap: wrap; gap: 8px; padding-block: 10px; }
 .topbar-links { gap: 12px; }
 .sidebar > .nav-item { display: none; }
 .conversation-row { align-items: flex-start; gap: 10px; flex-wrap: wrap; }
 .conversation-row .grow { flex: 1 1 calc(100% - 60px); }
 .conversation-meta { display: flex; flex-wrap: wrap; align-items: center; margin-left: 54px; white-space: normal; }
 .chat-bubble { max-width: 96%; padding: 14px; }
 .chat-bubble .between { gap: 5px 15px; }
 .chat-panel { padding: 16px; }
}

.test-environment-banner { padding: 12px 20px; background: #fae0b7; color: #573514; text-align: center; font-size: 13px; font-weight: 650; }

.report-chain { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }

/* Private beneficiary allocation and support overview */
.beneficiary-picker { min-width: 0; }
.beneficiary-rows { display: grid; gap: 10px; margin-block: 16px; }
.beneficiary-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
.beneficiary-row .field { max-width: 240px; }
[data-allocation-rows][hidden], [data-manual-amount][hidden] { display: none; }
.expense-benefit-summary { margin-block: 14px; padding: 12px; background: #f1f5ee; border-radius: 10px; }
.support-stats { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.support-stats strong { font-size: 27px; }
.support-athletes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 18px; }
.support-athlete { padding: 20px; border: 1px solid var(--line); border-radius: 14px; min-width: 0; }
.support-athlete .between { gap: 12px; flex-wrap: wrap; }
.support-athlete h3 { margin: 0; overflow-wrap: anywhere; }
.support-bar { height: 12px; border-radius: 8px; background: #edf1e9; overflow: hidden; margin-top: 18px; }
.support-bar span { display: block; height: 100%; background: #367a62; }
.support-values { display: grid; gap: 10px; margin-block: 18px; }
.support-values div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 13px; }
.support-values dt { color: var(--muted); }
.support-values dd { margin: 0; font-weight: 650; }
.support-athlete summary { cursor: pointer; font-size: 13px; min-height: 44px; padding-block: 12px; }
.support-pie-layout { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 30px; align-items: center; }
.support-pie { width: 100%; max-width: 300px; margin-inline: auto; }
.support-pie-legend { padding: 0; margin: 0; list-style: none; }
.support-pie-legend li { display: grid; grid-template-columns: 14px minmax(80px,1fr) auto auto; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.support-pie-legend li span { overflow-wrap: anywhere; }
.support-swatch { display: block; width: 14px; height: 14px; border-radius: 4px; }
@media(max-width:700px) {
 .support-pie-layout { grid-template-columns: 1fr; gap: 18px; }
 .support-pie { max-width: 250px; }
 .support-pie-legend li { grid-template-columns: 14px 1fr auto; gap: 10px; }
 .support-pie-legend li > span:last-child { grid-column: 2 / 4; }
 .beneficiary-row { align-items: flex-start; }
 .beneficiary-row .field { max-width: 100%; width: 100%; }
}
@media print {
 body:has(.distribution-report) .sidebar, body:has(.distribution-report) .topbar, body:has(.distribution-report) .mobile-nav,
 body:has(.distribution-report) .partners, body:has(.distribution-report) .test-environment-banner, .distribution-report .no-print { display: none !important; }
 body:has(.distribution-report) .app-shell { margin: 0; }
 body:has(.distribution-report) .main { max-width: none; padding: 0; }
 .distribution-report { color: #172f30; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
 .distribution-report .panel, .distribution-report .support-athlete { break-inside: avoid; box-shadow: none; }
 .distribution-report .support-athletes { display: block; }
 .distribution-report .support-athlete { margin-bottom: 16px; }
 .distribution-report .support-stats { grid-template-columns: 1fr 1fr; }
}
