/* Shared UI boundaries; printed financial documents keep their own stylesheet. */
.card,.panel,.hero,.school-modal,dialog,.modal,.modal-card,.school-form fieldset,.school-health,.school-family-member,.school-financial-document{border:1.5px solid #111!important}
table{border-collapse:collapse;border:1.5px solid #111}table th,table td{border:1px solid #a8adb6;vertical-align:top}table thead th{background:#102342;color:#fff}table td:has(.money),table .money,.school-money{white-space:nowrap;min-width:6.5rem;font-variant-numeric:tabular-nums}
.school-actions,.row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.section-heading{flex-wrap:wrap;gap:.75rem}.section-heading h3,.topbar h1{word-break:normal;overflow-wrap:normal}.school-form fieldset{padding:1rem;border-radius:10px}.school-form input,.school-form select,.school-form textarea{border-color:#424a57}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ba840b;outline-offset:3px}.btn{min-height:42px}
.school-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:1rem}.school-product-card{display:flex;flex-direction:column;gap:.5rem;max-width:460px}.school-product-card h3,.school-product-card p{margin:0}.school-product-card .btn{margin-top:auto;align-self:flex-start}.school-product-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.school-availability{font-size:.85rem;color:#334155}.school-table-wrap{max-width:100%;overflow:auto}.school-access-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:.6rem}.school-access-modules label{padding:.6rem;border:1px solid #a8adb6;border-radius:6px}
@media(max-width:640px){.school-products{grid-template-columns:1fr}.school-product-card{max-width:none}.school-modal,.modal{max-width:calc(100vw - 20px)}.school-actions>.btn,.row-actions>.btn{flex:0 1 auto}.school-cols{grid-template-columns:minmax(0,1fr)}.card{min-width:0}.content{min-width:0}table th,table td{padding:.55rem}.topbar h1{font-size:1.3rem}}

.school-dialog>.school-modal{background:#fffefa;padding:1.5rem;border-radius:16px;width:min(1000px,calc(100vw - 28px));max-height:92vh;overflow:auto}.school-access-modules input{width:auto}.school-dialog>.school-modal>form>label{display:grid;gap:.4rem;margin:.8rem 0}

.school-dialog>.school-modal>form>label>select{min-height:44px;padding:.65rem .75rem;border:1px solid #424a57;border-radius:8px;background:#fffefa;color:#102342;font:inherit}.school-dialog>.school-modal>form>fieldset{border:1.5px solid #111;border-radius:10px;padding:.8rem}

.school-table th,.school-table thead th{background:#102342;color:#fff}.school-table th,.school-table td{border:1px solid #a8adb6}.school-dialog #roll-form select,.school-dialog #roll-form input:not([type=checkbox]){min-height:44px;max-width:100%;padding:.6rem .7rem;border:1px solid #424a57;border-radius:8px;font:inherit;color:#102342;background:#fffefa}.school-dialog #roll-form label{display:block;margin:.6rem 0}.school-dialog #roll-form input[type=checkbox]{min-width:18px;min-height:18px;vertical-align:middle}.school-dialog #roll-form .school-cols>label{min-width:0}.school-dialog #roll-form .school-cols select,.school-dialog #roll-form .school-cols input:not([type=checkbox]){width:100%}

.hero-copy h2{font-size:clamp(1.35rem,2.3vw,1.85rem);overflow-wrap:anywhere;line-height:1.3}.product-variant-row{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.cart-totals{margin:16px 0;padding:12px;border:1px solid var(--line);background:var(--cream,#faf7ef)}.cart-totals p{display:flex;justify-content:space-between;gap:20px}.school-table input[type=number]{width:88px}.school-table td,.school-table th{border:1px solid var(--line)}@media(max-width:600px){.product-variant-row{grid-template-columns:1fr 1fr}}

.attendance-filters{display:flex;flex-wrap:wrap;gap:12px}.attendance-filters .field{min-width:130px;flex:1}.attendance-scroll{max-height:70vh;overflow:auto;margin-top:16px}.attendance-scroll table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;color:#152238}.attendance-scroll th,.attendance-scroll td{border-right:1px solid #b8b8b8;border-bottom:1px solid #b8b8b8;padding:7px 5px;text-align:center;min-width:55px;background:#fff}.attendance-scroll table{border-top:1px solid #b8b8b8;border-left:1px solid #b8b8b8}.attendance-scroll th{position:sticky;top:0;z-index:4;background:#f3f0e8}.attendance-scroll th small{display:block;font-weight:400}.attendance-scroll .sticky-index{position:sticky;left:0;min-width:40px;width:40px;z-index:2}.attendance-scroll .sticky-name{position:sticky;left:40px;min-width:235px;max-width:260px;text-align:left;white-space:normal;overflow-wrap:anywhere;z-index:2}.attendance-scroll .sticky-slot{position:sticky;left:275px;min-width:40px;z-index:2}.attendance-scroll th.sticky-index,.attendance-scroll th.sticky-name,.attendance-scroll th.sticky-slot{z-index:5;background:#f3f0e8}.attendance-scroll .calendar-grey,.attendance-scroll tr.calendar-grey td{background:#e2e2e2}.attendance-time{border:0;background:transparent;font:inherit;color:#152238;padding:0;cursor:pointer;font-variant-numeric:tabular-nums}.attendance-time:disabled{opacity:1;cursor:default}.attendance-scroll .btn{font-size:10px;padding:2px 7px;margin-top:4px}

.ot-section{margin-top:28px}.ot-section .attendance-filters{margin-top:18px}.ot-student{border:1px solid var(--line);border-radius:8px;margin-top:10px;padding:12px}.ot-student summary{cursor:pointer}.ot-student small{display:block;color:#596174}.ot-rule-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:10px;border-bottom:1px solid var(--line);padding:16px 0}@media(max-width:650px){.ot-rule-row{grid-template-columns:1fr 1fr}}

#school-content form.attendance-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:end;gap:12px}#school-content form.attendance-filters .field{margin:0}#school-content form.attendance-filters input,#school-content form.attendance-filters select{min-height:40px;padding:8px 10px}.ot-bands-preview{margin:10px 0;padding:10px;border:1px solid var(--line);background:var(--paper)}@media(max-width:650px){#school-content form.attendance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.school-dialog:has(#parent-cart-lines) .school-table table{min-width:440px}.school-dialog:has(#parent-cart-lines) .school-table{overflow:auto}.school-dialog:has(#parent-cart-lines){align-items:center}}

.school-dialog:has(#parent-cart-lines) .school-form{grid-template-columns:minmax(0,1fr)}#parent-cart-lines{min-width:0;max-width:100%}#parent-cart-lines .school-table{max-width:100%;width:100%;overflow:auto}#parent-cart-total{min-width:0}.cart-totals strong{white-space:nowrap}

/* Keep date headings readable, including grey calendar days. */
.attendance-scroll thead th,.attendance-scroll thead th.sticky-index,.attendance-scroll thead th.sticky-name,.attendance-scroll thead th.sticky-slot{background:#102342;color:#fff}.attendance-scroll thead th.calendar-grey{background:#e2e2e2;color:#152238}
.cart-qty-label{display:none}
@media(max-width:650px){#parent-cart-lines .school-table table{min-width:0;border:0}#parent-cart-lines thead{display:none}#parent-cart-lines tbody{display:block}#parent-cart-lines tbody tr{display:grid;grid-template-columns:minmax(0,1fr) 92px;border-bottom:1px solid #a8adb6}#parent-cart-lines tbody tr:last-child{border-bottom:0}#parent-cart-lines tbody td{display:block;border:0;padding:10px;font-size:.85rem}#parent-cart-lines tbody td:first-child{grid-column:1;grid-row:1}#parent-cart-lines tbody td:nth-child(2){grid-column:2;grid-row:1}#parent-cart-lines tbody td:nth-child(3){grid-column:1;grid-row:2;font-weight:700;white-space:nowrap;align-self:center}#parent-cart-lines tbody td:nth-child(4){grid-column:2;grid-row:2}#parent-cart-lines [data-cart-qty]{width:100%;padding:8px;min-height:42px}#parent-cart-lines .btn{font-size:.78rem;padding:8px 9px;min-height:42px}#parent-cart-lines .cart-qty-label{display:block;font-size:.72rem;margin-bottom:5px}}
@media(max-width:650px){.school-dialog:has(#parent-cart-lines) .school-table table{display:block;min-width:0;width:100%}}

.ot-batch-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:12px;border:1px solid #a8adb6;background:#faf7ef}.ot-batch-summary>span{font-size:.85rem}.ot-excluded-note{display:block;color:#665327;font-size:.8rem;line-height:1.5;margin:5px 0}.ot-month-table th,.ot-month-table td{padding:10px!important;border:1px solid #a8adb6!important}.ot-month-table small,.ot-daily-table small{display:block;margin-top:5px}.ot-currency{font-variant-numeric:tabular-nums}.ot-currency>strong{white-space:nowrap}.ot-month-table td:last-child .btn{margin:3px}.ot-month-table .btn,.ot-daily-table .btn{padding:8px 10px;font-size:.8rem}.ot-batch-results{margin-top:20px;border-top:1px solid #a8adb6;padding-top:12px}#manual-handoff-filters{margin-top:20px}@media(max-width:650px){#school-ot .ot-main-wrap table{min-width:0;display:block}#school-ot .ot-main-wrap thead{display:none}#school-ot .ot-main-wrap tbody{display:block}#school-ot .ot-main-wrap tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid #a8adb6}#school-ot .ot-main-wrap td{display:block;min-width:0}#school-ot .ot-main-wrap td:first-child{grid-column:1/-1;background:#f5f1e8}#school-ot .ot-main-wrap td:nth-child(2){grid-column:1/-1}#school-ot .ot-main-wrap td:nth-child(3){grid-column:1}#school-ot .ot-main-wrap td:nth-child(4){grid-column:2}.ot-daily-table{min-width:600px!important}}

/* Administrators can target the whole IN/OUT cell, including blank calendar dates. */
.attendance-scroll td:has(.attendance-cell-edit){padding:0}.attendance-cell-edit{display:block;box-sizing:border-box;width:100%;min-height:38px;padding:9px 5px;color:#102342}.attendance-cell-edit:hover,.attendance-cell-edit:focus-visible{background:#fff3ce;outline:2px solid #cc940c;outline-offset:-2px}.attendance-cell-empty span{opacity:0}.attendance-cell-empty:hover span,.attendance-cell-empty:focus-visible span{opacity:.7}.ot-daily-table .ot-excluded-note{display:block;margin-top:5px}
.ot-daily-table td.ot-currency,.ot-daily-table th:nth-last-child(-n+3){white-space:nowrap;min-width:82px;text-align:right}
