:root{--ink:#17283c;--muted:#536277;--blue:#1457b8;--red:#ba263d;--green:#146646;--line:#dce3eb}
/* Stable reading sizes, independent of viewport width. */
h1,.page-heading h1{font-size:28px;line-height:1.25;overflow-wrap:anywhere}
h2{font-size:21px;line-height:1.35;overflow-wrap:anywhere}
h3{font-size:17px;line-height:1.4;overflow-wrap:anywhere}
p,li,dt,dd,label,summary{overflow-wrap:anywhere}
.student-row-copy,.athlete-header>div,.training-row>div,.movement-row>div{min-width:0}
.student-row-copy strong,.athlete-header h1{overflow-wrap:anywhere;white-space:normal}
.student-row-copy small,.profile-details dt,.form-field>span,.form-field label>span{font-size:14px;line-height:1.5;color:var(--muted)}
.quiet-label{color:#465368;background:#eef2f6;white-space:normal;max-width:100%;line-height:1.4}
.income-text{color:#146646}.expense-text{color:#9d2336}
.text-link,.back-link{color:#1457b8}
.home-students small,.week-day>span,.finance-destination small,.collections-access small{color:#536277}
.button{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4;min-height:48px}
.button:not(.secondary):not(.income):not(.expense){background:#17283c;color:#fff}
.button.income{background:#146646;color:#fff}.button.expense{background:#9d2336;color:#fff}
.button.secondary{color:#17283c;background:#fff;border-color:#b9c6d4}
.button:disabled{opacity:1;background:#e5eaf0;color:#536277;border-color:#c5cfd9}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #1457b8;outline-offset:3px}
.segmented{max-width:100%;flex-wrap:wrap}.segmented button{flex:1;min-width:0;white-space:normal}
.page-heading,.section-heading,.editor-actions,.cash-toolbar{flex-wrap:wrap}
.student-row{align-items:center}.student-row .quiet-label{flex-shrink:0;max-width:110px}
.movement-row>strong,.statement-row strong,.cash-balance strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;white-space:normal}
.payment-success{padding:24px 0;border-bottom:1px solid var(--line);margin-bottom:24px}
.payment-success h1{font-size:32px;color:#146646;margin:12px 0}
.payment-success p{margin-top:8px;color:var(--muted)}
.empty-state{max-width:520px;margin:0 auto}.empty-state h2{font-size:20px}
.empty-state .button{margin-top:18px}
.report-warning{display:flex;align-items:flex-start;gap:10px;padding:14px 0;color:#704809;border-bottom:1px solid #e7d3a6;line-height:1.6}
.report-warning svg{width:20px;height:20px;flex-shrink:0;margin-top:3px}
.report-category{display:flex;align-items:center;gap:16px;min-height:68px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.report-category>span{flex:1;min-width:0;overflow-wrap:anywhere}.report-category small{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.report-category strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;max-width:45%}.report-category svg{width:18px;height:18px;flex-shrink:0}
.report-category:hover{color:var(--blue);background:#f5f8fc}
.statement-empty{color:var(--muted)}
.operations-access{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 24px;padding:12px 0;border-block:1px solid var(--line)}
.operations-access a{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;color:var(--blue);font-size:14px;font-weight:600;flex:1 1 210px;min-width:0}
.operations-access a>span{flex:1;overflow-wrap:anywhere}.operations-access svg{width:19px;height:19px}
.operation-row{border:0;border-bottom:1px solid var(--line);padding:16px 0 24px;margin:20px 0;min-width:0}
.operation-row legend{font-weight:700;font-size:16px;padding:0 10px 0 0}.operation-row .button{margin-top:12px}
.compact-empty{padding:20px 0;margin:12px 0;color:var(--muted);border-block:1px solid var(--line);line-height:1.6;font-size:14px}
.empty-state{padding:28px 0;color:var(--muted)}.empty-state h2{color:var(--ink)}
dialog h2{font-size:21px;line-height:1.35;margin-bottom:16px}dialog p{font-size:14px;line-height:1.6}dialog .profile-details{margin-block:16px}
.message-privacy{border:0;border-block:1px solid var(--line);padding:20px 0;margin:20px 0;min-width:0}
.message-privacy legend{font-weight:700;padding:0 8px 0 0}.message-privacy p{margin:12px 0;font-size:14px;color:var(--muted)}
.message-privacy .category-choice{align-items:flex-start;line-height:1.6}.message-privacy input[type=checkbox]{flex-shrink:0;margin-top:5px}
.home-team-photo{object-position:center 28%}.sport-picture{display:block;min-width:0}
.sport-section-photo{height:320px;object-position:center 38%}.cash-season img{height:auto;aspect-ratio:615/834;object-fit:contain}
@media(max-width:899px){.sport-section-photo{height:300px;object-position:center top}}
@media(max-width:600px){.home-team-photo{height:220px;object-position:center 28%}.sport-section-photo{height:300px;object-position:center top}}
.athlete-tags span{color:#465368}.student-account>div>span{color:#8b3346}
.entry-income{color:#146646}
.debt-controls .segmented button:not([aria-selected=true]),.debt-workspace .section-heading>span,.debt-card-footer>span:first-child,.journey-progress b,.cash-season>span{color:#465368}
.journey-progress [aria-current=step] b{color:#fff}
.home-accesses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 28px}
.home-accesses a{display:flex;align-items:center;gap:10px;min-height:58px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;font-weight:700;background:#fff}
.home-accesses a>span{flex:1;min-width:0}.home-accesses svg{width:20px;height:20px;flex-shrink:0;color:var(--blue)}
@media(max-width:380px){.home-accesses{gap:10px}.home-accesses a{padding:10px;gap:6px}}
.message-image-preview{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.message-image-preview figure{margin:20px 0 32px;max-width:420px}
.message-image-preview img{display:block;width:100%;height:auto;aspect-ratio:3/4;border:1px solid var(--line)}
.message-image-preview figcaption{margin-top:12px}.message-image-preview .button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.report-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.report-totals>div{min-width:0}.report-totals strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.report-carry{display:flex;flex-wrap:wrap;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.report-carry>div{flex:1 1 200px;min-width:0}.report-carry span{display:block;color:var(--muted);font-size:14px;line-height:1.5}.report-carry strong{display:block;margin-top:6px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
@media print{.bottom-nav,.site-header,.cash-entry-actions,.page-heading .button{display:none!important}.report-category{color:#000}.athlete-details{break-inside:avoid}.report-totals,.report-carry{break-inside:avoid}body{background:#fff;color:#000}.report-warning{color:#000}}
@media(max-width:600px){.report-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.report-totals>div:last-child{grid-column:1/-1}.report-category{gap:10px}}
@media(max-width:600px){
 .cash-statement .accumulated{flex-wrap:wrap;gap:10px}
 .cash-statement .accumulated>span{flex:1 1 100%}
 .cash-statement .accumulated>strong{max-width:100%}
 .debt-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
 .debt-filters button{min-width:0;max-width:100%;white-space:normal}
 .page-heading h1,h1{font-size:26px}.payment-success h1{font-size:28px}
 .student-row{gap:10px}.student-row .quiet-label{max-width:86px;font-size:12px}
 .movement-row{flex-wrap:wrap;gap:12px}.movement-row .student-row-copy{flex:1 1 160px}
 .movement-row>strong{margin-left:auto}.profile-details>div{min-width:0}
 .editor-actions>.button{flex:1 1 140px}
}
@media(max-width:380px){.student-grid{grid-template-columns:minmax(0,1fr)}.student-row{min-height:120px}.student-row .student-portrait{width:64px;height:64px}.student-row-copy strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
form[data-journey-revision]{min-width:0;max-width:100%;}
form[data-journey-revision] fieldset{min-inline-size:0;max-width:100%;margin:0 0 20px;padding:16px 0;border:0;border-bottom:1px solid #dce5ef;}
form[data-journey-revision] legend{max-width:100%;overflow-wrap:anywhere;font-weight:700;}
form[data-journey-revision] .form-field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;max-width:100%;}
form[data-journey-revision] input:not([type=checkbox]),form[data-journey-revision] select{width:100%;min-width:0;max-width:100%;box-sizing:border-box;}
form[data-journey-revision] .form-field>span{max-width:100%;overflow-wrap:anywhere;}
form[data-journey-revision] label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:44px;}
form[data-journey-revision] .button{max-width:100%;white-space:normal;}
.operation-person{padding:14px 0;border-bottom:1px solid #dce5ef;}.operation-person>summary{min-height:44px;cursor:pointer;font-weight:700;overflow-wrap:anywhere;}.operation-person[open]>fieldset{margin-top:16px;}
