:root{color:#222;background:#f5f5f5;font-family:Arial,Helvetica,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}main{background:#fff;border-radius:8px;width:min(94%,1100px);margin:40px auto;padding:24px}form{gap:16px;display:grid}#login-form{gap:0}#login-form label{margin-top:.9rem;margin-bottom:.2rem}#login-form label:first-of-type{margin-top:0}#login-form .field-guidance{margin:0 0 .35rem}#login-form input{margin-bottom:.8rem}#login-form .required-fields-note{margin:-.4rem 0 0}label{font-weight:700}input{width:100%;font:inherit;padding:10px}button{width:fit-content;font:inherit;cursor:pointer;padding:.65rem 1rem}button:disabled{cursor:not-allowed;opacity:.7}[role=alert]{color:#a00000}.page{max-width:1100px;margin:0 auto;padding:2rem 1rem}.page-header,.section-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.page-header{margin-bottom:1.5rem;display:block;position:relative}.page-header>:first-child{width:100%;min-width:0}.page-header .header-actions{position:absolute;top:0;right:0}.page-header h1{margin-top:0;padding-right:11rem}.header-actions{white-space:nowrap;flex:none;align-items:center;gap:.75rem;display:flex}.header-actions .help-button{margin:0}.secondary-button{color:inherit;background:0 0;border:1px solid}.primary-button{font-weight:700}.button-row{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.visually-hidden{white-space:nowrap;clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-wrapper{width:100%;overflow-x:auto}.party-table{border-collapse:collapse;width:100%;margin-top:1rem}.party-table th,.party-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #d8d8d8;padding:.75rem}.party-table th{background:#f3f3f3;font-weight:700}.party-table select{min-width:8rem;padding:.45rem}.error-summary{background:#fff4f4;border:2px solid #b00020;margin-bottom:1.5rem;padding:1rem}.error-summary h2{margin-top:0}.group-summary{margin-top:1.5rem}.group-summary-row{border-bottom:1px solid #ddd;grid-template-columns:7rem 1fr;gap:1rem;padding:.5rem 0;display:grid}.child-selection{border:0;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;display:flex}.child-selection legend{width:100%;margin-bottom:.35rem;font-weight:600}.child-option{align-items:center;gap:.4rem;display:inline-flex}.child-option.disabled{opacity:.5}.field-warning{margin:.5rem 0 0;font-size:.9rem}.preference-groups{margin-top:2rem}.group-list{gap:1rem;margin-top:1rem;display:grid}.group-card{border:1px solid #d8d8d8;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem;display:flex}.group-card h3{margin-top:0}.group-card ul{margin-bottom:0;padding-left:1.25rem}.selected-group{border:1px solid #d8d8d8;border-radius:.5rem;margin-top:1.5rem;padding:1.25rem}.selected-group h2{margin-top:0}.member-list{gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.member-list li{border-bottom:1px solid #e5e5e5;justify-content:space-between;gap:1rem;padding:.65rem 0;display:flex}.member-list li:last-child{border-bottom:0}.member-description{white-space:nowrap;opacity:.75}.preference-entry{width:100%;margin-top:1.5rem}.preference-entry__header{margin-bottom:1.5rem}.preference-entry__header h2,.preference-entry__header p{margin-top:0}.preference-entry__sessions{gap:1.5rem;display:grid}.preference-session{background:#fff;border:1px solid #d8d8d8;border-radius:.75rem;padding:1rem}.preference-session--locked{background:#f1f1f1}.preference-session__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.preference-session__header h3{margin:0}.preference-session__count{white-space:nowrap;font-size:.875rem}.preference-session__lock-reason{margin:.4rem 0 0;font-size:.9rem}.preference-session__empty{margin-bottom:0}.class-card-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;display:grid}.class-card{background:#fff;border:2px solid #d8d8d8;border-radius:.75rem;grid-template-rows:auto auto auto;display:grid;position:relative;overflow:hidden}.class-card--preferred{border-color:#555;box-shadow:0 0 0 2px #00000014}.class-card__body{align-items:center;gap:.85rem;min-height:8.25rem;padding:.85rem;display:flex}.class-card__icon{object-fit:scale-down;background:#f5f5f5;border-radius:.5rem;flex:none;width:4.5rem;height:4.5rem}.class-card__content{flex:auto;gap:.3rem;min-width:0;display:grid}.class-card__title{white-space:normal;overflow-wrap:anywhere;min-width:0;font-weight:700;line-height:1.2;display:block}.class-card__metadata{gap:.15rem;min-width:0;margin-top:.15rem;font-size:.85rem;display:grid}.class-card__difficulty,.class-card__teacher{white-space:normal;overflow-wrap:anywhere;min-width:0;font-weight:700;line-height:1.2;display:block}.class-card__session-badge{color:#fff;white-space:nowrap;background:#1f5aa6;border-radius:999px;align-items:center;padding:.25rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.class-card__teacher-tag{background:#eee;border-radius:999px;width:fit-content;padding:.15rem .45rem;font-size:.75rem}.class-card__preference{background:#f7f7f7;border-top:1px solid #ddd;gap:.4rem;padding:.75rem;font-size:.85rem;font-weight:600;display:grid}.class-card__preference select{width:100%;font:inherit;background:#fff;border:1px solid #999;border-radius:.4rem;padding:.6rem}.class-card__preference select:disabled{color:#777;cursor:not-allowed;background:#d2d2d2}.class-card__actions{justify-content:space-between;align-items:center;min-height:2.6rem;padding:.35rem .4rem .4rem;display:flex}.class-card__info{cursor:pointer;background:#fff;border:1px solid #bdbdbd;border-radius:4px;justify-content:center;align-items:center;margin:0;padding:.3rem .75rem;font-size:.85rem;display:inline-flex}.class-card__info:hover{background-color:#f5f5f5}.class-card--unavailable{color:#666;background:#e8e8e8;border-color:#c6c6c6}.class-card--unavailable .class-card__body{opacity:.65}.class-card--unavailable .class-card__icon{opacity:.55;filter:grayscale()}.class-card--unavailable .class-card__preference{background:#ddd;border-top-color:#c6c6c6}.class-card__unavailable-reason{background:#d2d2d2;border-radius:.35rem;padding:.35rem .5rem;font-size:.75rem;font-weight:600;display:block}.class-card--continuing{background:#f5f5f5;border-style:dashed}.class-card__preference--inherited{color:#555}.class-card__preference--inherited strong{font-size:1rem}.class-card__preference--inherited small{font-weight:400}.class-details-backdrop{z-index:1000;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.class-details{background:#fff;border-radius:.85rem;width:min(42rem,100%);max-height:calc(100vh - 2rem);position:relative;overflow-y:auto}.class-details__close{z-index:1;cursor:pointer;background:#fff;border:0;border-radius:50%;place-items:center;width:2rem;height:2rem;padding:0;font-size:1.4rem;display:grid;position:absolute;top:.75rem;right:.75rem}.class-details__image{object-fit:scale-down;background:#f5f5f5;width:100%;max-height:20rem;display:block}.class-details__body{padding:1.25rem}.class-details__body h3{margin-top:0;font-size:1.6rem}.class-details__badges{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.class-details__badges span{background:#eee;border-radius:999px;padding:.25rem .6rem;font-size:.85rem}.class-details__section{margin-top:1rem}.class-details__section h4{margin:0 0 .3rem}.class-details__section p{white-space:pre-line;margin:0}.class-details__preference{gap:.4rem;margin-top:1.5rem;font-weight:700;display:grid}.class-details__preference select{width:100%;font:inherit;background:#fff;border:1px solid #777;border-radius:.5rem;padding:.75rem}@media (width<=700px){.page-header,.section-heading,.group-card{flex-direction:column;align-items:stretch}.page-header{display:flex;position:static}.page-header .header-actions{position:static}.page-header h1{padding-right:0}.page-header button,.group-card button{width:100%}.member-list li{flex-direction:column;gap:.25rem}.member-description{white-space:normal}}@media (width<=36rem){main{border-radius:0;width:100%;margin:0;padding:1rem}.preference-session__header{display:grid}.class-card-grid{grid-template-columns:1fr}}.success-message{color:#245524;background:#f1fff1;border:1px solid #4f7f4f;border-radius:.5rem;padding:.75rem 1rem;font-weight:600}.application-header{text-align:center;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.application-header__logo{width:160px;max-width:100%;height:auto;display:block}.application-header__text{flex-direction:column;align-items:center;display:flex}.application-header__title,.application-header__subtitle{margin:0}.field-guidance{margin:.25rem 0 .5rem;font-size:.9rem}.dialog-overlay{z-index:1000;white-space:normal;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow:auto}.dialog-panel{white-space:normal;background:#fff;border-radius:8px;width:min(600px,100vw - 2rem);min-width:0;max-height:calc(100vh - 2rem);padding:1.5rem;overflow:hidden auto}.help-dialog{width:min(500px,100vw - 2rem)}.faq-dialog{width:min(700px,100vw - 2rem)}.dialog-panel form{min-width:0}.dialog-panel label,.dialog-panel input,.dialog-panel textarea,.dialog-panel select{min-width:0;max-width:100%}.dialog-panel input,.dialog-panel textarea,.dialog-panel select{width:100%}.dialog-panel p,.dialog-panel label,.dialog-panel h2,.dialog-panel h3,.dialog-panel h4{overflow-wrap:break-word}.dialog-actions{gap:.75rem;margin-top:1rem;display:flex}.help-contact{border-top:1px solid #ddd;margin-top:1.5rem;padding-top:1rem}.faq-list{margin-top:1rem}.faq-category-section{margin-bottom:2rem}.faq-category-heading{margin:0 0 1rem;font-size:1.35rem}.faq-item{margin:0 0 1.25rem 1rem}.faq-question{margin:0 0 .5rem;font-size:1.05rem}.faq-answer{margin:0 0 0 1rem}.support-request-dialog textarea{resize:vertical}.faq-category{margin-bottom:.25rem;font-size:.85rem;font-weight:600}.faq-item h3{margin-top:0;margin-bottom:.5rem}.support-success{border:1px solid #ccc;border-radius:6px;margin:1rem 0;padding:1rem}.login-actions{align-items:center;gap:.75rem;margin-top:1rem;display:flex}.login-actions>button,.login-actions .help-button{margin:0}.support-recipient{margin:0 0 1rem}.support-recipient strong{margin:.25rem}.booking-party-introduction{flex:1}.booking-party-introduction h1{margin-top:0}.booking-party-progress{margin-top:1rem}.booking-party-section{margin-top:.75rem}.booking-party-section h2{margin-top:0;margin-bottom:.1rem}.booking-party-child-row td:first-child{padding-left:2rem}.preference-status{white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-size:.9rem;font-weight:600;display:inline-block}.preference-status-not-started{background:#eee}.preference-status-draft{background:#fff3cd}.preference-status-confirmed{background:#d1e7dd}.party-table td,.party-table th{vertical-align:middle}.party-table td button{justify-content:center;align-items:center;display:inline-flex}.member-name-cell{white-space:nowrap}.child-arrow{color:#777;margin-right:.5rem;font-weight:400;display:inline-block}.submission-deadline{white-space:nowrap;margin:0}.submission-deadline strong{margin-top:0;font-size:1.1rem;font-weight:700;display:inline-block}.party-table th:nth-child(5),.party-table td:nth-child(5),.party-table th:last-child,.party-table td:last-child{text-align:center}.party-table td:last-child button{justify-content:center;align-items:center;min-width:6rem;display:inline-flex}.preference-page-introduction h1{margin-top:0}.preference-rules{margin:.75rem 0;padding-left:1.4rem}.preference-rules li{margin-bottom:.6rem;line-height:1.35}.submission-status{margin:1.25rem 0}.submission-status h2{margin-bottom:.75rem}.submission-status__table{border-collapse:collapse;width:100%}.submission-status__table th:first-child,.submission-status__table td:first-child{width:6rem}.submission-status__table th:nth-child(2),.submission-status__table td:nth-child(2){width:16rem}.submission-status__table th,.submission-status__table td{vertical-align:middle;text-align:left;padding:.4rem .75rem;line-height:1.25}.submission-status__table th{font-weight:700}.preference-title{margin:0;line-height:1.15}.preference-title-main{display:block}.preference-title-group{margin-top:.15rem;font-size:.8em;font-weight:500;display:block}.preference-rules-heading{margin:.75rem 0 .35rem}.preference-important-note{margin:.4rem 0}.class-card-legend{margin:0 0 .5rem;font-size:.85rem;line-height:1.25}.difficulty-legend{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.85rem;line-height:1.25;display:flex}.difficulty-legend__items{flex-wrap:wrap;gap:.4rem;display:flex}.difficulty-legend__item{border:1px solid #999;border-radius:.35rem;padding:.2rem .55rem;font-weight:600;display:inline-block}.class-card__inherited{flex-direction:column;justify-content:center;min-height:2.4rem;display:flex}.class-card__inherited-note{color:#555;font-size:.8rem}.class-details__inherited-preference{gap:.2rem;margin-top:.4rem;display:grid}.class-details__inherited-preference span{color:#555;font-size:.85rem}.submission-review__title{margin:0;line-height:1.15}.submission-review__title-main{display:block}.submission-review__title-group{margin-top:.15rem;font-size:.8em;font-weight:500;display:block}.submission-review__important{margin:.4rem 0}.session-review{margin-bottom:1.5rem}.session-review__header{margin-bottom:.3rem}.session-review__header h3{margin:0}.session-review__list{margin:0 0 1rem;padding-left:1.4rem}.session-review__list li{margin-bottom:.2rem;line-height:1.3}.submission-review__instructions{display:block}@media print{.header-actions,.button-row,.submission-review__instructions,.submission-review__important--screen-only,.submission-review__sign-up-note,.help-button{display:none!important}body{background:#fff}.page{max-width:none;margin:0;padding:0}.submission-review__important{margin-bottom:0}.submission-review__title{margin-bottom:.05rem}.submission-review__preferences{margin-top:0}.session-review{break-inside:avoid;page-break-inside:avoid;margin-bottom:1rem}}.submission-confirmed__summary,.submission-confirmed__deadline,.submission-confirmed__party{margin-bottom:1.5rem}.submission-confirmed__primary-message{margin-bottom:1rem;font-size:1.05rem}.submission-confirmed__deadline p{margin:.5rem 0}.submission-confirmed__party h2{margin-bottom:.6rem}.booking-party-table__action{text-align:center}.required-indicator{color:#b00020;margin-left:.2rem;font-weight:700}.required-fields-note{color:#b00020;font-size:.9rem}.tester-email-setup{max-width:40rem}.tester-email-setup form{margin-top:1rem}.tester-mode-banner{border:1px solid #a00000;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.tester-mode-banner strong{color:#a00000}
