*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0ecff;--surface: #ffffff;--surface-2: #f7f4ff;--border: #e0d8f5;--text: #1a1525;--text-muted: #7c6fa0;--primary: #7c3aed;--primary-hover: #6d28d9;--primary-subtle: #ede9fe;--primary-on: #ffffff;--success: #059669;--success-subtle: #d1fae5;--warning: #d97706;--warning-subtle: #fef3c7;--error: #dc2626;--error-subtle: #fee2e2;--error-border: #fca5a5;--radius-sm: 6px;--radius: 12px;--radius-lg: 18px;--radius-xl: 9999px;--shadow-sm: 0 1px 4px rgba(80, 40, 160, .08);--shadow: 0 2px 16px rgba(80, 40, 160, .11), 0 1px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 40px rgba(80, 40, 160, .16)}[data-theme=dark]{--bg: #0d0b16;--surface: #17132a;--surface-2: #1e1a32;--border: #2e2848;--text: #ede8ff;--text-muted: #9c8ec5;--primary: #a78bfa;--primary-hover: #c4b5fd;--primary-subtle: #2c1f4a;--primary-on: #0d0b16;--success: #34d399;--success-subtle: #064e3b;--warning: #fbbf24;--warning-subtle: #451a03;--error: #f87171;--error-subtle: #450a0a;--error-border: #991b1b;--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow: 0 2px 16px rgba(0,0,0,.4), 0 1px 4px rgba(0,0,0,.25);--shadow-lg: 0 8px 40px rgba(0,0,0,.55)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}.loading-screen{min-height:100vh;background:var(--bg)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(ellipse at 60% 0%,var(--primary-subtle) 0%,var(--bg) 60%)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.login-card h1{font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,var(--primary),#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;margin-bottom:.125rem}.subtitle{color:var(--text-muted);font-size:.9375rem;margin-bottom:2rem}form{display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;font-weight:600;color:var(--text)}input{padding:.5625rem .875rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9375rem;color:var(--text);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}button[type=submit]{margin-top:.25rem;padding:.625rem 1.25rem;background:var(--primary);color:var(--primary-on);border:none;border-radius:var(--radius-xl);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 35%,transparent)}button[type=submit]:hover{background:var(--primary-hover);box-shadow:0 4px 16px color-mix(in srgb,var(--primary) 40%,transparent)}button[type=submit]:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.error{font-size:.875rem;color:var(--error);background:var(--error-subtle);border:1px solid var(--error-border);border-radius:var(--radius);padding:.5rem .875rem}.dashboard{min-height:100vh}.header{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);padding:0 1.5rem;height:58px;display:flex;align-items:center;justify-content:space-between;z-index:10;box-shadow:var(--shadow-sm)}.header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--primary),#c084fc,var(--primary));opacity:.5}.logo{font-size:1.25rem;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--primary),#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;align-items:center;gap:.75rem}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#c084fc);color:#fff;font-size:.6875rem;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;flex-shrink:0}.user-name{font-size:.875rem;font-weight:500;color:var(--text-muted)}.btn-ghost{padding:.375rem .875rem;background:transparent;color:var(--text-muted);border:1.5px solid var(--border);border-radius:var(--radius-xl);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--primary)}.btn-icon{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:50%}.btn-lang{font-size:.75rem;font-weight:700;letter-spacing:.04em;padding:.375rem .625rem}.content{max-width:1000px;margin:2rem auto;padding:0 1.25rem;display:flex;flex-direction:column;gap:1.25rem}.tabs{display:flex;gap:.25rem;padding:.3rem;background:var(--surface-2);border-radius:var(--radius-xl);width:fit-content;border:1px solid var(--border)}.tab{padding:.4rem 1.1rem;background:none;border:none;border-radius:var(--radius-xl);font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}.tab:hover{color:var(--text)}.tab--active{background:var(--primary);color:var(--primary-on);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 35%,transparent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow)}.card h2{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.badge{display:inline-flex;align-items:center;justify-content:center;background:var(--primary-subtle);color:var(--primary);border-radius:var(--radius-xl);font-size:.6875rem;font-weight:700;padding:.1rem .5rem;letter-spacing:0}.detail-list{display:grid;grid-template-columns:auto 1fr;gap:.625rem 2rem;font-size:.9375rem}.detail-list dt{color:var(--text-muted);font-size:.875rem}.group-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.group-item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border)}.group-item--btn{width:100%;border:1px solid var(--border);cursor:pointer;text-align:left;transition:background .15s,border-color .15s,box-shadow .15s}.group-item--btn:hover{background:var(--primary-subtle);border-color:var(--primary);box-shadow:var(--shadow-sm)}.group-name{font-size:.9375rem;font-weight:600}.group-meta{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted)}.group-chevron{font-size:1.25rem;line-height:1;color:var(--primary);opacity:.6}.empty{color:var(--text-muted);font-size:.875rem}.back-btn{margin-bottom:1.25rem;font-size:.875rem}.group-detail-name{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-bottom:1.25rem}.next-event-heading{font-size:1.0625rem;font-weight:700;margin-bottom:.375rem}.next-event-meta{font-size:.875rem;color:var(--text-muted);display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.next-event-dot{opacity:.4}.next-event-location{margin-top:.375rem;font-size:.875rem;color:var(--text-muted)}.member-list{list-style:none;display:flex;flex-direction:column;gap:0}.member-entry{border-bottom:1px solid var(--border)}.member-entry:last-child{border-bottom:none}.member-item{display:flex;align-items:flex-start;gap:.875rem;padding:.75rem 0}.member-entry:first-child>.member-item{padding-top:0}.member-entry:last-child>.member-item,.member-entry:last-child .guardian-list{padding-bottom:0}.guardian-list{list-style:none;padding-bottom:.5rem;display:flex;flex-direction:column;gap:0}.member-item--guardian{padding:.375rem 0 .375rem .5rem;margin-left:2.75rem;border-left:2px solid var(--border)}.member-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--primary-subtle);color:var(--primary);font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}.member-avatar--owner{background:var(--warning-subtle);color:var(--warning)}.member-avatar--guardian{width:28px;height:28px;font-size:.6875rem;background:var(--success-subtle);color:var(--success)}.member-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.member-name{font-size:.9375rem;font-weight:500;display:flex;align-items:center;flex-wrap:wrap;gap:.375rem}.role-badge{font-size:.6875rem;font-weight:700;padding:.1rem .5rem;border-radius:var(--radius-xl);background:var(--primary-subtle);color:var(--primary);text-transform:uppercase;letter-spacing:.05em}.role-badge--owner{background:var(--warning-subtle);color:var(--warning)}.role-badge--guardian{background:var(--success-subtle);color:var(--success)}.member-contact-row{display:flex;flex-wrap:wrap;gap:.75rem}.member-contact{font-size:.8125rem;color:var(--primary);text-decoration:none}.member-contact:hover{text-decoration:underline}.att-row{display:flex;align-items:center;gap:.375rem;margin-top:.3rem;flex-wrap:wrap}.att-badge{display:inline-flex;align-items:center;gap:.15rem;font-size:.6875rem;font-weight:700;padding:.15rem .5rem;border-radius:var(--radius-xl)}.att-badge--accepted{background:var(--success-subtle);color:var(--success)}.att-badge--declined{background:var(--error-subtle);color:var(--error)}.att-badge--unanswered{background:var(--surface-2);color:var(--text-muted)}.att-total{font-size:.6875rem;color:var(--text-muted)}.view-toggle{display:flex;gap:0;margin-bottom:1.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.25rem;width:fit-content}.view-btn{padding:.375rem 1rem;font-size:.8125rem;font-weight:500;background:transparent;color:var(--text-muted);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:background .15s,color .15s}.view-btn--active{background:var(--primary);color:var(--primary-on);box-shadow:0 2px 6px color-mix(in srgb,var(--primary) 30%,transparent)}.card--flush{padding:0;overflow:hidden}.att-table-wrapper{overflow-x:auto}.att-table{border-collapse:collapse;width:100%;font-size:.8125rem}.att-table thead tr{background:var(--surface-2);border-bottom:1px solid var(--border)}.att-table th{padding:.5rem .75rem;text-align:center;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .12s}.att-table th:first-child{text-align:left}.att-table th:hover{color:var(--text)}.att-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}.att-table tr:last-child td{border-bottom:none}.att-table tbody tr:hover{background:var(--surface-2)}.att-table th:first-child,.att-table td:first-child{position:sticky;left:0;z-index:1;text-align:left}.att-table th:first-child{background:var(--surface-2)}.att-table td:first-child{background:var(--surface)}.att-table tbody tr:hover td:first-child{background:var(--surface-2)}.att-name-cell{font-weight:500;min-width:140px}.att-cell{font-weight:700;font-size:.875rem;min-width:42px}.att-cell--accepted{color:var(--success)}.att-cell--declined{color:var(--error)}.att-cell--unanswered{color:var(--border)}.att-cell--none{color:transparent}.att-num{font-weight:600;font-variant-numeric:tabular-nums;min-width:36px}.att-num--accepted{color:var(--success)}.att-num--declined{color:var(--error)}.att-num--unanswered{color:var(--text-muted)}.att-pct{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-muted);min-width:42px}.sort-icon{font-size:.625rem;opacity:.35;margin-left:.2rem}.sort-icon--active{opacity:1;color:var(--primary)}.card--calendar{padding:1.25rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1.25rem}.cal-nav-group{display:flex;align-items:center;gap:.5rem}.cal-title{font-size:1rem;font-weight:700;letter-spacing:-.01em;min-width:10rem;text-align:center}.cal-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;font-size:1rem}.cal-error{color:var(--error);font-size:.875rem;margin-bottom:1rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--border);border-left:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;transition:opacity .15s}.cal-grid--loading{opacity:.5;pointer-events:none}.cal-weekday{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.5rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);text-align:center;background:var(--surface-2)}.cal-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:100px;padding:.4rem .5rem;vertical-align:top;transition:background .1s}.cal-cell--filler{background:var(--surface-2)}.cal-cell--today{background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.cal-cell--today .cal-day-num{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-on);border-radius:50%;width:24px;height:24px;font-weight:700}.cal-day-num{display:inline-block;font-size:.8125rem;font-weight:500;color:var(--text-muted);margin-bottom:.3rem;line-height:24px}.cal-events{display:flex;flex-direction:column;gap:2px}.cal-event{display:flex;align-items:baseline;gap:.25rem;background:var(--primary-subtle);color:var(--primary);border-radius:var(--radius-xl);padding:2px 6px;font-size:.6875rem;line-height:1.5;overflow:hidden;white-space:nowrap;cursor:default}.cal-event-time{font-weight:700;flex-shrink:0}.cal-event-title{overflow:hidden;text-overflow:ellipsis}.cal-overflow{font-size:.6875rem;color:var(--text-muted);padding:1px 4px;font-weight:600}.cal-event--link{cursor:pointer;transition:background .12s,transform .1s}.cal-event--link:hover{filter:brightness(.9)}.cal-event--external{background:var(--success-subtle);color:var(--success)}.cal-ext-toggle{font-size:.8125rem;display:flex;align-items:center;gap:.375rem}.cal-ext-toggle--active{background:var(--primary-subtle);border-color:var(--primary);color:var(--primary)}.cal-ext-badge{font-size:.6875rem}.cal-ext-panel{margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.cal-ext-form{display:flex;flex-direction:row;gap:.5rem;padding:.75rem;background:var(--surface-2);border-bottom:1px solid var(--border);margin:0}.cal-ext-form input{flex:1;font-size:.8125rem;padding:.375rem .625rem;min-width:0}.cal-ext-form button[type=submit]{margin:0;padding:.375rem .875rem;font-size:.8125rem;white-space:nowrap}.cal-ext-error{color:var(--error);font-size:.8125rem;padding:.5rem .75rem;background:var(--error-subtle);border-bottom:1px solid var(--error-border)}.cal-ext-list{list-style:none}.cal-ext-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;border-bottom:1px solid var(--border);font-size:.8125rem}.cal-ext-item:last-child{border-bottom:none}.cal-ext-item-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.cal-ext-label{font-weight:600;color:var(--text)}.cal-ext-url{color:var(--primary);text-decoration:none;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-ext-url:hover{text-decoration:underline}.cal-ext-remove{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.125rem;line-height:1;padding:.125rem .25rem;border-radius:var(--radius);transition:color .12s,background .12s}.cal-ext-remove:hover{color:var(--error);background:var(--error-subtle)}.cal-ext-empty{font-size:.8125rem;color:var(--text-muted);padding:.75rem}.ev-duration{color:var(--text-muted);font-size:.875rem}.ev-address{color:var(--text-muted)}.ev-description{margin-top:1rem;font-size:.9375rem;color:var(--text);white-space:pre-wrap;border-top:1px solid var(--border);padding-top:1rem}.ev-attendance-summary{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.ev-summary-pill{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.25rem;border-radius:var(--radius);min-width:76px}.ev-summary-pill--accepted{background:var(--success-subtle)}.ev-summary-pill--declined{background:var(--error-subtle)}.ev-summary-pill--unanswered{background:var(--surface-2)}.ev-summary-pill--waiting{background:var(--warning-subtle)}.ev-summary-count{font-size:1.625rem;font-weight:800;line-height:1.2;letter-spacing:-.02em}.ev-summary-pill--accepted .ev-summary-count{color:var(--success)}.ev-summary-pill--declined .ev-summary-count{color:var(--error)}.ev-summary-pill--unanswered .ev-summary-count{color:var(--text-muted)}.ev-summary-pill--waiting .ev-summary-count{color:var(--warning)}.ev-summary-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:.125rem}.ev-summary-pill--accepted .ev-summary-label{color:var(--success)}.ev-summary-pill--declined .ev-summary-label{color:var(--error)}.ev-summary-pill--unanswered .ev-summary-label{color:var(--text-muted)}.ev-summary-pill--waiting .ev-summary-label{color:var(--warning)}.ev-attendee-groups{display:flex;flex-direction:column;gap:1rem}.ev-attendee-group{border-radius:var(--radius);padding:.875rem 1rem;background:var(--surface-2);border:1px solid var(--border)}.ev-attendee-label{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:700;margin-bottom:.5rem}.ev-attendee-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ev-attendee-dot--accepted{background:var(--success)}.ev-attendee-dot--declined{background:var(--error)}.ev-attendee-dot--unanswered{background:var(--text-muted)}.ev-attendee-list{list-style:none;display:flex;flex-direction:column;gap:.375rem}.ev-attendee-item{display:flex;align-items:center;gap:.625rem}.ev-attendee-item--unknown{font-size:.8125rem;color:var(--text-muted);padding-left:.25rem}.ev-attendee-name{font-size:.9375rem}.ev-attendee-empty{font-size:.8125rem;margin-top:0}.ev-avatar--accepted{background:var(--success-subtle);color:var(--success)}.ev-avatar--declined{background:var(--error-subtle);color:var(--error)}.ev-avatar--unanswered{background:var(--surface-2);color:var(--text-muted)}.cal-ext-short-label{display:none}.cal-dots{display:none;flex-direction:row;gap:3px;padding-top:3px;flex-wrap:wrap}.cal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.cal-dot--spond{background:var(--primary)}.cal-dot--external{background:var(--success)}.cal-dot--more{background:var(--text-muted);opacity:.5}.cal-cell:not(.cal-cell--filler){cursor:pointer;transition:background .1s}.cal-cell--selected:not(.cal-cell--today){background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.cal-cell--selected .cal-day-num{color:var(--primary);font-weight:700}.cal-day-panel{margin-top:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.cal-day-panel-hd{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.cal-day-panel-title{font-size:.9375rem;font-weight:700}.cal-day-panel-empty{padding:1rem;font-size:.875rem;color:var(--text-muted)}.cal-day-panel-list{list-style:none}.cal-day-panel-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);cursor:default;transition:background .12s}.cal-day-panel-item:last-child{border-bottom:none}.cal-day-panel-item--link{cursor:pointer}.cal-day-panel-item--link:hover{background:var(--surface-2)}.cal-day-panel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-day-panel-dot--spond{background:var(--primary)}.cal-day-panel-dot--external{background:var(--success)}.cal-day-panel-time{font-size:.8125rem;font-weight:700;flex-shrink:0;min-width:3.25rem}.cal-day-panel-item--spond .cal-day-panel-time{color:var(--primary)}.cal-day-panel-item--external .cal-day-panel-time{color:var(--success)}.cal-day-panel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.cal-day-panel-name{font-size:.9375rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-panel-loc{font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-panel-arrow{color:var(--text-muted);font-size:1.125rem;flex-shrink:0}@media (max-width: 640px){.content{margin:1rem auto;padding:0 .75rem;gap:1rem}.card{padding:1rem;border-radius:var(--radius)}}@media (max-width: 520px){.header{padding:0 1rem}.user-name{display:none}}@media (max-width: 560px){.cal-ext-full-label{display:none}.cal-ext-short-label{display:inline}.cal-title{min-width:0}}@media (max-width: 640px){.cal-cell{min-height:52px;padding:.3rem .25rem}.cal-day-num{font-size:.75rem;margin-bottom:0}.cal-events{display:none}.cal-dots{display:flex}.cal-weekday{padding:.375rem .125rem}}
