:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-heading);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6}button,input,textarea,select{font:inherit}:root{--brand:#176b52;--brand-dark:#0e4d3a;--surface:#fff;--muted:#64736d;--border:#dce8e2;--background:#f2f7f4}body{background:var(--background)}#app{min-height:100vh}.dashboard-shell{width:min(100%,76rem);margin:0 auto;padding:3rem 1.5rem}.dashboard-header{justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;display:flex}.dashboard-header h1{font-size:clamp(2rem,5vw,3rem)}.dashboard-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;width:100%;display:flex}.create-activity-button,.primary-button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:.6rem;padding:.65rem .9rem;font-weight:700}.create-activity-button:hover,.primary-button:hover{background:var(--brand-dark)}.create-activity-button:disabled,.primary-button:disabled,.secondary-button:disabled,.modal-close:disabled{cursor:not-allowed;opacity:.6}.dashboard-intro{color:var(--muted);margin-top:.5rem}.activity-count,.participant-count{color:var(--brand-dark);background:#d9eee5;border-radius:.6rem;padding:.55rem .8rem;font-size:.85rem;font-weight:700}.dashboard-grid{grid-template-columns:minmax(15rem,.8fr) minmax(0,1.5fr);gap:1.25rem;display:grid}.users-shell{width:min(100%,76rem);margin:0 auto;padding:3rem 1.5rem}.users-header{margin-bottom:2rem}.users-header h1{font-size:clamp(2rem,5vw,3rem)}.back-button{color:var(--brand);cursor:pointer;background:0 0;border:0;margin-bottom:1rem;font-weight:700}.users-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.user-panel{border:1px solid var(--border);background:var(--surface);border-radius:1rem;padding:1.5rem;box-shadow:0 1rem 2.5rem #176b520f}.user-panel-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.user-panel-header h2{font-size:1.2rem}.user-list{gap:.65rem;margin-top:1rem;display:grid}.user-item{border:1px solid var(--border);border-radius:.7rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem;display:flex}.user-item-content{gap:.15rem;min-width:0;display:grid}.user-edit-button{flex:none;padding:.45rem .65rem;font-size:.78rem}.user-item span{color:var(--muted);font-size:.82rem}.parent-search-field,.participant-search-field,.filter-search-field{position:relative}.participant-search-results,.filter-search-results{z-index:20;border:1px solid var(--border);background:#fff;border-radius:.55rem;max-height:12rem;padding:.35rem;display:grid;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 .75rem 1.5rem #0e4d3a24}.participant-search-option{color:var(--brand-dark);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:.4rem;gap:.1rem;padding:.55rem;display:grid}.participant-search-option:hover:not(:disabled){background:#f0f8f4}.participant-search-option:disabled{cursor:default;opacity:.5}.participant-search-option span{color:var(--muted);font-size:.78rem}.parent-search-results{z-index:20;border:1px solid var(--border);background:#fff;border-radius:.55rem;max-height:12rem;padding:.35rem;display:grid;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 .75rem 1.5rem #0e4d3a24}.parent-search-option{color:var(--brand-dark);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:.4rem;gap:.1rem;padding:.55rem;display:grid}.parent-search-option:hover:not(:disabled){background:#f0f8f4}.parent-search-option:disabled{cursor:default;opacity:.5}.parent-search-option span{color:var(--muted);font-size:.78rem}.selected-parent-list{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.selected-parent{color:var(--brand-dark);background:#d9eee5;border-radius:.4rem;align-items:center;gap:.35rem;padding:.3rem .5rem;font-size:.78rem;font-weight:400;display:inline-flex}.selected-parent button{color:inherit;cursor:pointer;background:0 0;border:0;font-size:1rem;line-height:1}.selected-parents-empty{color:var(--muted);font-size:.78rem;font-weight:400}.activity-panel,.participant-panel{border:1px solid var(--border);background:var(--surface);border-radius:1rem;min-width:0;padding:1.5rem;box-shadow:0 1rem 2.5rem #176b520f}.activity-panel h2,.participant-panel h2{font-size:1.2rem}.activity-list{gap:.65rem;margin-top:1rem;display:grid}.activity-item{border:1px solid var(--border);width:100%;color:inherit;cursor:pointer;text-align:left;background:#fff;border-radius:.7rem;justify-content:space-between;align-items:center;padding:1rem;display:flex}.activity-item:hover,.activity-item.selected{background:#f0f8f4;border-color:#82bda5}.activity-item-content{gap:.25rem;display:grid}.activity-item-content span,.dashboard-participant span{color:var(--muted);font-size:.82rem}.activity-arrow{color:var(--brand);font-size:1.25rem}.dashboard-status,.panel-status{color:var(--muted);padding:2rem}.dashboard-status{justify-content:center;display:flex}.dashboard-error{color:#a63d3d}.panel-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.activity-description{color:var(--muted);margin:1rem 0 1.25rem}.participant-table{gap:.65rem;display:grid}.participant-groups{gap:1.25rem;display:grid}.participant-group{gap:.75rem;display:grid}.group-heading{justify-content:space-between;align-items:center;display:flex}.group-heading h3{font-size:.95rem}.group-heading span{min-width:1.5rem;color:var(--brand-dark);text-align:center;background:#e8f2ed;border-radius:.4rem;padding:.15rem .4rem;font-size:.75rem;font-weight:700}.participant-divider{background:var(--border);height:1px}.group-empty{color:var(--muted);font-size:.85rem}.muted-avatar{color:var(--muted);background:#eef1ef}.dashboard-participant{border:1px solid var(--border);border-radius:.7rem;align-items:center;gap:.8rem;padding:.8rem;display:flex}.dashboard-participant>div:last-child{gap:.15rem;display:grid}.panel-placeholder{min-height:15rem;color:var(--muted);text-align:center;place-content:center;justify-items:center;display:grid}.panel-placeholder h2{color:var(--brand-dark);margin-top:.75rem}.panel-placeholder p{max-width:20rem;margin-top:.4rem}.placeholder-icon{color:var(--brand);font-size:2rem}.modal-backdrop{z-index:10;background:#0e4d3a59;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);background:var(--surface);border-radius:1rem;width:min(100%,34rem);max-height:calc(100vh - 2rem);padding:1.5rem;overflow:auto;box-shadow:0 1.5rem 4rem #0e4d3a33}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.modal-header h2{font-size:1.35rem}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.75rem;line-height:1}.activity-form{gap:1rem;display:grid}.activity-form label{color:var(--brand-dark);gap:.35rem;font-size:.85rem;font-weight:700;display:grid}.activity-form input,.activity-form select,.activity-form textarea{border:1px solid var(--border);width:100%;color:inherit;background:#fff;border-radius:.55rem;padding:.7rem .75rem;font-weight:400}.activity-form select{appearance:auto}.field-error{color:#a63d3d;font-size:.78rem;font-weight:400}.activity-form textarea{resize:vertical}.date-fields{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.date-time-inputs{grid-template-columns:minmax(0,1fr) 7rem;gap:.5rem;display:grid}.form-error{color:#a63d3d;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.secondary-button{border:1px solid var(--border);color:var(--brand-dark);cursor:pointer;background:#fff;border-radius:.6rem;padding:.65rem .9rem;font-weight:700}.auth-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{border:1px solid var(--border);background:var(--surface);border-radius:1rem;width:min(100%,28rem);padding:2rem;box-shadow:0 1.5rem 4rem #176b521a}.auth-card h1{font-size:2rem}.auth-intro{color:var(--muted);margin-top:.5rem}.auth-form{gap:1rem;margin-top:1.5rem;display:grid}.auth-form label{color:var(--brand-dark);gap:.35rem;font-size:.85rem;font-weight:700;display:grid}.auth-form input{border:1px solid var(--border);width:100%;color:inherit;background:#fff;border-radius:.55rem;padding:.7rem .75rem}.auth-form .primary-button{width:100%}.page-shell{place-items:center;min-height:100vh;padding:2rem 1rem;display:grid;position:relative}.registration-banner{z-index:30;background:#fff;border:1px solid;border-radius:.65rem;min-width:20rem;max-width:min(30rem,100vw - 2.5rem);padding:1.1rem 1.35rem;font-size:1.05rem;font-weight:700;position:fixed;top:1.25rem;right:1.25rem;box-shadow:0 .75rem 2rem #0e4d3a29}.registration-banner-success{color:var(--brand-dark);border-color:#82bda5}.registration-banner-error{color:#a63d3d;border-color:#d99a9a}.registration-banner-pop{animation:.35s ease-out registration-banner-pop}@keyframes registration-banner-pop{0%{opacity:0;transform:translateY(-.75rem)scale(.94)}70%{transform:translateY(.1rem)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.registration-card{background:var(--surface);border:1px solid var(--border);border-radius:1.25rem;width:min(100%,42rem);overflow:hidden;box-shadow:0 1.5rem 4rem #176b521a}.card-header{color:#fff;background:linear-gradient(135deg,#176b52,#2b8a6c);padding:2.5rem 2.5rem 2rem}.eyebrow{color:#bde8d6;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem;font-weight:700}h1,h2,h3{color:#17362d;font-weight:700}.card-header h1{color:#fff;font-size:clamp(1.7rem,5vw,2.3rem);line-height:1.15}.intro{color:#e3f5ec;max-width:34rem;margin-top:.85rem}.status-message,.summary,.participants-section,.technical-details{margin:0 2.5rem}.status-message{color:var(--muted);align-items:center;gap:.75rem;padding:2.5rem 0;display:flex}.status-message.error{color:#a63d3d;flex-direction:column;align-items:flex-start;gap:.25rem}.spinner{border:2px solid #cfe1d9;border-top-color:var(--brand);border-radius:50%;width:1.1rem;height:1.1rem;animation:.8s linear infinite spin}.summary{border-bottom:1px solid var(--border);grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.5rem 0;display:grid}.summary-label{color:var(--muted);margin-bottom:.25rem;font-size:.78rem;display:block}.summary strong{color:var(--brand-dark);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;display:block;overflow:hidden}.participants-section{padding:1.75rem 0}.participants-section h2{margin-bottom:1rem;font-size:1.2rem}.participant-list{gap:.75rem;display:grid}.participant{border:1px solid var(--border);border-radius:.75rem;align-items:center;gap:.85rem;padding:.85rem;display:flex}.participant>div:nth-child(2){flex:1;min-width:0}.avatar{width:2.5rem;height:2.5rem;color:var(--brand-dark);text-transform:uppercase;background:#d9eee5;border-radius:50%;flex:0 0 2.5rem;place-items:center;font-size:.78rem;font-weight:700;display:grid}.participant h3{font-size:1rem}.participant p,.empty-message{color:var(--muted);font-size:.9rem}.participant-action{flex-flow:wrap;align-items:center;gap:.3rem;display:flex}.registration-choice{cursor:pointer;background:#fff;border:2px solid;border-radius:.6rem;place-items:center;width:2.5rem;height:2.5rem;font-size:1.35rem;font-weight:600;line-height:1;display:grid}.check-choice{color:var(--brand);border-color:#6ca88e}.decline-choice{color:#b65454;border-color:#d99a9a}.registration-choice:hover:not(:disabled),.registration-choice.selected{color:#fff}.check-choice:hover:not(:disabled),.check-choice.selected{background:var(--brand)}.decline-choice:hover:not(:disabled),.decline-choice.selected{background:#b65454}.registration-choice:disabled{opacity:.55;cursor:not-allowed}.participant-error{color:#a63d3d;text-align:right;flex-basis:100%;max-width:11rem;font-size:.72rem;line-height:1.25}.technical-details{border-top:1px solid var(--border);color:var(--muted);padding:1rem 0 2rem;font-size:.82rem}.technical-details summary{cursor:pointer;font-weight:600}.technical-details dl{gap:.5rem;margin-top:1rem;display:grid}.technical-details dl div{grid-template-columns:8rem 1fr;gap:.75rem;display:grid}.technical-details dt{font-weight:600}.technical-details dd{overflow-wrap:anywhere}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=480px){.dashboard-header,.dashboard-title{flex-direction:column;align-items:flex-start}.date-fields{grid-template-columns:1fr}.card-header{padding:2rem 1.5rem 1.75rem}.status-message,.summary,.participants-section,.technical-details{margin-left:1.5rem;margin-right:1.5rem}.participant{flex-wrap:wrap;align-items:flex-start}.participant-action{align-items:flex-start;width:100%;margin-left:3.35rem}.participant-error{text-align:left;max-width:none}}
