html{height:100%;--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}body{color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0;height:100%}html,body{margin:0;padding:0;height:100%;width:100%}*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #1a6fae;--color-danger: #c0392b;--color-success: #27ae60;--color-muted: #6b7280;--color-border: #d1d5db;--color-bg: #f9fafb;--color-surface: #ffffff;--radius: 6px;--shadow: 0 1px 4px rgba(0,0,0,.08)}.form-page{max-width:760px;margin:2rem auto;padding:1.5rem;font-family:Segoe UI,system-ui,sans-serif;color:#111}.form-page h2{margin-bottom:1.25rem;font-size:1.4rem}.program-id-badge{font-size:.85rem;background:#e5e7eb;color:var(--color-muted);border-radius:20px;padding:2px 10px;font-weight:400;margin-left:.5rem;vertical-align:middle}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem;background:var(--color-surface);box-shadow:var(--shadow)}legend{font-weight:600;font-size:.95rem;padding:0 .4rem;color:var(--color-primary)}.field{display:flex;flex-direction:column;margin-bottom:1rem}.field label{font-size:.85rem;font-weight:600;margin-bottom:.3rem;color:#374151}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius);padding:.45rem .65rem;font-size:.93rem;outline:none;transition:border-color .15s;background:var(--color-bg)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);background:#fff}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1rem}.field.small input,.field.small select{font-size:.88rem}.field-error{color:var(--color-danger);font-size:.78rem;min-height:1rem;margin-top:2px}.field-hint{font-size:.78rem;color:var(--color-muted);margin-top:2px}.date-row{display:flex;gap:.75rem;align-items:flex-end;margin-bottom:.75rem;flex-wrap:wrap}.date-row .field{margin-bottom:0;flex:1 1 120px}.date-mode-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.date-mode-tabs button{padding:.4rem .9rem;border:1px solid var(--color-border);background:var(--color-bg);border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .15s}.date-mode-tabs button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.hours-preview{list-style:none;padding:0;margin:.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.3rem}.hours-preview li{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);padding:.3rem .6rem;font-size:.85rem}.recurring-group{padding-top:.5rem}.btn-primary{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:.55rem 1.4rem;font-size:.95rem;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.88}.btn-secondary{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);padding:.5rem 1.2rem;font-size:.93rem;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:#e0f0ff}.btn-add{background:none;border:1px dashed var(--color-primary);color:var(--color-primary);border-radius:var(--radius);padding:.4rem 1rem;cursor:pointer;font-size:.88rem;margin-top:.25rem;transition:background .15s}.btn-add:hover{background:#e0f0ff}.btn-remove{background:none;border:1px solid var(--color-danger);color:var(--color-danger);border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:.1rem;transition:background .15s}.btn-remove:hover{background:#fde8e8}.form-actions{display:flex;gap:1rem;justify-content:flex-end}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem;font-weight:500}.alert.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.program-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);margin-bottom:1rem;overflow:hidden}.program-header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-bg);transition:background .15s}.program-header:hover{background:#f0f4f8}.program-title{margin:0;font-size:1rem}.program-category{font-size:.75rem;color:var(--color-muted);margin-top:2px;display:block}.program-header-right{display:flex;align-items:center;gap:.6rem}.program-cost{background:#fef3c7;color:#92400e;font-size:.8rem;padding:2px 7px;border-radius:20px;font-weight:600}.spots-badge{background:#d1fae5;color:#065f46;font-size:.78rem;padding:2px 8px;border-radius:20px}.spots-badge.full{background:#fee2e2;color:#991b1b}.expand-icon{font-size:.7rem;color:var(--color-muted);transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.program-description{padding:.65rem 1rem;font-size:.88rem;color:#374151;border-top:1px solid var(--color-border)}.program-details{padding:1rem;border-top:1px solid var(--color-border)}.detail-section{margin-bottom:.9rem}.detail-section p{margin:.25rem 0 0;font-size:.88rem}.schedule-list{list-style:none;padding:0;margin:.4rem 0 0}.schedule-list li{display:flex;justify-content:space-between;font-size:.86rem;padding:.25rem 0;border-bottom:1px solid #f3f4f6}.schedule-list li:last-child{border-bottom:none}.registration-message{padding:.5rem .75rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:.75rem}.registration-message.success{background:#d1fae5;color:#065f46}.registration-message.error{background:#fee2e2;color:#991b1b}.register-button{padding:.5rem 1.1rem;border:none;border-radius:var(--radius);font-size:.9rem;cursor:pointer;background:var(--color-primary);color:#fff;transition:opacity .15s}.register-button:hover:not(:disabled){opacity:.88}.register-button:disabled{opacity:.5;cursor:not-allowed}.register-button.registered{background:#6b7280}.register-button.waitlist{background:#f59e0b;color:#fff}.muted{color:var(--color-muted);font-size:.87rem}
