:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#183344;background:#f4f7f9;line-height:1.5}*{box-sizing:border-box}body{margin:0}header{background:#0e406a;color:white;padding:1.5rem 3%;display:flex;justify-content:space-between;align-items:center;border-bottom:5px solid #d14627}header a{color:white;font-size:1.6rem;text-decoration:none;font-weight:750}header span{font-weight:400}a{color:#075a8b}a:hover{text-decoration-thickness:2px}.shell{display:flex;max-width:1600px;margin:auto}nav{flex:0 0 240px;padding:1.5rem;background:#eaf0f4;min-height:85vh}nav a{display:block;padding:.5rem 0}nav p{border-top:1px solid #bbcad5;padding-top:1rem}main{padding:2rem;min-width:0;flex:1}h1{font-size:2rem;line-height:1.2;margin:0 0 1rem}h2{font-size:1.35rem}section,article,details{background:white;border:1px solid #d6e0e6;border-radius:8px;padding:1.25rem;margin:1rem 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.cards article{margin:0}label{display:block;font-weight:600;margin:.8rem 0}input,select,textarea{display:block;width:100%;max-width:650px;font:inherit;padding:.6rem;border:1px solid #8fa5b4;border-radius:4px;background:white;color:#183344}textarea{min-height:110px}input[type=checkbox]{width:auto;display:inline-block;margin-right:.5rem}.inline{font-weight:400}button,.button{display:inline-block;background:#0e406a;border:0;border-radius:5px;color:white;padding:.65rem 1rem;font:inherit;font-weight:600;cursor:pointer;margin:.4rem 0;text-decoration:none}.secondary{background:white;color:#0e406a;border:1px solid #0e406a}button:hover{filter:brightness(1.15)}fieldset{border:1px solid #bdcbd4;margin:1rem 0;padding:1rem}table{width:100%;border-collapse:collapse;background:white;margin:1rem 0;overflow-wrap:anywhere}th,td{text-align:left;padding:.75rem;border-bottom:1px solid #d6e0e6;vertical-align:top}th{background:#eaf0f4}small{display:block;color:#546f80}header small{color:#d5e6f2}.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.eyebrow{font-size:.8rem;letter-spacing:.08em;color:#6b3b25;font-weight:700}.notice{background:#e0f4e8;border-left:4px solid #287c4c;padding:1rem}footer{padding:1rem 3%;font-size:.85rem;color:#546f80}summary{cursor:pointer;font-weight:600}@media(max-width:800px){.shell{display:block}nav{min-height:0}nav a{display:inline-block;margin-right:1rem}.columns{grid-template-columns:1fr}main{padding:1rem}header{align-items:flex-start;gap:1rem}table{font-size:.85rem}}

/* Sessions dashboard: native disclosures, logical heading order and visible focus. */
.session-group{padding:0;margin:1.5rem 0;border:1px solid #8fa5b4;background:#fff}
.session-group>summary{padding:1rem;background:#eaf0f4;border-radius:7px;color:#183344}
.session-group>summary h2,.session-subgroup>summary h3{display:inline;font-size:1.2rem;line-height:1.5;overflow-wrap:anywhere}
.session-group-content{padding:.25rem 1rem 1rem}
.session-subgroup{padding:0;margin:1rem 0;border:1px solid #8fa5b4;background:#fff}
.session-subgroup>summary{padding:.85rem;color:#183344;border-radius:7px}
.session-subgroup>p{padding:0 1rem}
.session-count{font-weight:400;white-space:nowrap}
.session-list{padding:0 1rem 0 2.25rem;margin:0 0 1rem}
.session-list-item{padding:.75rem 0;border-top:1px solid #d6e0e6}
.session-list-item h4{font-size:1.05rem;margin:0 0 .4rem;overflow-wrap:anywhere}
.session-list-item p{margin:.25rem 0}
.session-empty{padding:.5rem 1rem}
a:focus,button:focus,input:focus,select:focus,textarea:focus,summary:focus{outline:3px solid #0e406a;outline-offset:3px}
header a:focus{outline-color:#fff}
.skip-link{position:absolute;left:1rem;top:-10rem;z-index:1000;background:#fff;color:#0e406a;padding:.75rem 1rem;font-weight:700}
.skip-link:focus{top:1rem}
@media(max-width:600px){.session-group-content{padding:.25rem .5rem .5rem}.session-group>summary h2,.session-subgroup>summary h3{font-size:1.1rem}}

/* Activity ledger: shared disclosure motif, bounded person search and readable tables. */
.ledger-available-hours{font-size:1.25rem;line-height:1.5;margin:.5rem 0 1.5rem;color:#0e406a}
.ledger-person-search h2{margin-top:0}
.ledger-person-results{padding-left:1.5rem}
.ledger-person-results li{padding:.65rem 0;border-bottom:1px solid #d6e0e6}
.ledger-person-results span{display:block;overflow-wrap:anywhere}
nav.ledger-pagination{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;min-height:0;padding:.75rem 0;background:transparent}
nav.ledger-pagination a{padding:.35rem}
.ledger-table-scroll{overflow-x:auto;max-width:100%;margin:1rem 0}
.ledger-table-scroll:focus{outline:3px solid #0e406a;outline-offset:3px}
.ledger-table-scroll table{margin:0}
.ledger-table-scroll caption{text-align:left;padding:.75rem;font-weight:600}
.ledger-table-scroll th[scope=row]{background:#fff;font-weight:600}
.ledger-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.ledger-totals>div{padding:1rem;background:#eaf0f4;border-radius:5px}
.ledger-totals dt{font-weight:600;overflow-wrap:anywhere}
.ledger-totals dd{font-size:1.5rem;margin:.25rem 0 0}
.ledger-section .session-group-content>h3{margin-top:1.5rem}
.form-error{font-weight:600;color:#8a1c13}
@media(max-width:600px){.ledger-totals{grid-template-columns:1fr}.ledger-available-hours{font-size:1.1rem}}

/* Structured staff person search; both alternatives remain keyboard accessible. */
.ledger-search-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.ledger-search-or{font-weight:700}
@media(max-width:800px){.ledger-search-fields{grid-template-columns:1fr}}

/* Session form: retain native calendar/clock controls, clear groups and error focus. */
.session-form-error{border:2px solid #8a1c13;background:#fff;padding:1rem;margin:1rem 0}
.session-form-error h2{margin-top:0}
.session-form-error:focus{outline:3px solid #8a1c13;outline-offset:3px}
#session-form p{max-width:75ch}
#session-form legend{font-weight:700}
#session-form [hidden]{display:none!important}

/* Shared search destinations: visible keyboard focus and a little viewport space. */
[data-search-region],[data-search-error]{scroll-margin-top:1rem}
[data-search-region]:focus,[data-search-error]:focus{outline:3px solid #0e406a;outline-offset:3px}

.legacy-value { white-space: pre-wrap; overflow-wrap: anywhere; }
.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; }
.contract-preview-text { white-space: pre-wrap; overflow-wrap: anywhere; padding: 1rem; border: 1px solid #637589; background: #fff; color: #172b42; }
.home-choice[hidden] { display: none !important; }

/* Errors have text and programmatic associations; color is supplementary. */
.form-validation-summary { border: 3px solid #9b1c31; padding: 1rem; margin: 0 0 1rem; background: #fff; color: #222; }
.form-validation-summary:focus { outline: 3px solid #005fcc; outline-offset: 3px; }
.form-validation-summary h2 { margin-top: 0; }
.field-validation-message { display: block; color: #9b1c31; font-weight: 700; margin: .25rem 0 1rem; }
input.field-validation-invalid, select.field-validation-invalid, textarea.field-validation-invalid { border: 3px solid #9b1c31; }

.inline input[type="radio"] { display:inline-block; width:auto; margin-right:.5rem; }

.access-hint{display:block;font-size:.8rem;font-weight:normal;color:#394956;margin:.2rem 0 .65rem}.access-debug,.preview-banner{border:2px solid #385269;background:#edf5fa;color:#152b40;padding:1rem;margin:1rem 0}.preview-banner{position:sticky;top:0;z-index:10;border-width:3px}.permission-group{margin:.7rem 0}.permission-group label{display:block;margin:.65rem 0}

.preserve-lines{white-space:pre-wrap}img{max-width:100%;height:auto}
