:root{--color-background:#f6f3ed;--color-surface:#fffaf3;--color-surface-muted:#f2ede4;--color-text:#21312a;--color-text-muted:#526158;--color-primary-h:143;--color-primary-s:27%;--color-primary-l:33%;--color-primary:hsl(var(--color-primary-h) var(--color-primary-s) var(--color-primary-l));--color-primary-text:#fff;--color-success:#2f7a4a;--color-warning:#946a1a;--color-danger:#a33a32;--color-border:#ddd4c7;--color-focus:#2d5c9a;--color-focus-rgb:45 92 154;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:2.5rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-card:0 1px 3px rgba(61,54,43,.06),0 1px 2px rgba(61,54,43,.04);--shadow-card-hover:0 4px 12px rgba(61,54,43,.08),0 2px 4px rgba(61,54,43,.04);--font-family-body:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;--font-family-display:"Outfit",ui-sans-serif,system-ui,-apple-system,sans-serif;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem}@media(prefers-color-scheme:dark){:root{--color-background:#141b17;--color-surface:#1c2621;--color-surface-muted:#24302a;--color-text:#e1e9e4;--color-text-muted:#9eb0a5;--color-primary-l:38%;--color-border:#2a3931;--color-focus:#4b80ca;--color-focus-rgb:75 128 202;--color-success:#4fae74;--color-warning:#c99a3f;--color-danger:#e07468;--shadow-card:0 1px 3px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15);--shadow-card-hover:0 4px 12px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.2)}}:root{color:var(--color-text);background:var(--color-background);font-family:var(--font-family-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{min-width:320px;margin:0;overflow:hidden}#__nuxt,body,html{height:100%}button,input,select,textarea{font:inherit}.auth-page{display:grid;min-height:100dvh;place-items:center;padding:var(--space-6)}.base-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem .85rem;font-size:var(--font-size-md);background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}.base-input:focus{outline:none;border-color:var(--color-focus);box-shadow:0 0 0 3px rgb(var(--color-focus-rgb)/.12)}.base-button:focus-visible,.base-input:focus-visible,.password-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.base-label{display:grid;gap:var(--space-2);font-weight:600}.base-label,.field-error{font-size:var(--font-size-sm)}.field-error{margin:0;color:var(--color-danger)}.auth-form{display:grid;gap:var(--space-4)}.auth-password-hint{margin:calc(var(--space-4)*-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.auth-links{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-sm);margin-top:var(--space-2)}.auth-links a{color:var(--color-primary)}.sheet-backdrop[data-v-cda1d8b7]{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#1f1d195c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .25s ease}.sheet[data-v-cda1d8b7]{width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface,#fffaf2);padding:1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #3d362b1f;transform:translateY(0);transition:transform .25s cubic-bezier(.16,1,.3,1)}.sheet__header[data-v-cda1d8b7]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sheet__eyebrow[data-v-cda1d8b7]{margin:0 0 .25rem;color:var(--color-text-muted,#6f675d);font-size:.8rem}.sheet h2[data-v-cda1d8b7]{margin:0}.sheet__close[data-v-cda1d8b7]{width:2.25rem;height:2.25rem;border:0;border-radius:var(--radius-full);background:var(--color-surface-muted,#efe5d7);color:var(--color-text,#29251f);font-size:1.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.sheet__close[data-v-cda1d8b7]:active{transform:scale(.92)}@media(hover:hover)and (pointer:fine){.sheet__close[data-v-cda1d8b7]:hover{background:var(--color-border,#ddd4c7)}}.sheet__error[data-v-cda1d8b7]{color:var(--color-danger,#9f2d2d)}.sheet__success[data-v-cda1d8b7]{color:var(--color-success,#2f6f4e)}.sheet-enter-from[data-v-cda1d8b7],.sheet-leave-to[data-v-cda1d8b7]{opacity:0}.sheet-enter-from .sheet[data-v-cda1d8b7],.sheet-leave-to .sheet[data-v-cda1d8b7]{transform:translateY(100%)}@media(min-width:48rem){.sheet-backdrop[data-v-cda1d8b7]{align-items:center;padding:1.5rem}.sheet[data-v-cda1d8b7]{width:min(100%,32rem);border-radius:var(--radius-lg);padding-bottom:1.5rem}}@media(prefers-reduced-motion:reduce){.sheet[data-v-cda1d8b7],.sheet-backdrop[data-v-cda1d8b7]{transition:opacity .15s ease}.sheet-enter-from .sheet[data-v-cda1d8b7],.sheet-leave-to .sheet[data-v-cda1d8b7]{transform:translateY(0)}}.base-spinner[data-v-a517dc28]{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em}.base-spinner__ring[data-v-a517dc28]{width:100%;height:100%;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spinner-rotate-a517dc28 .75s linear infinite}@keyframes spinner-rotate-a517dc28{to{transform:rotate(1turn)}}.base-button[data-v-8dd47198]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);padding:.7rem .9rem;font-weight:600;cursor:pointer;transition:transform .1s ease,background-color .15s ease,opacity .15s ease}.base-button[data-v-8dd47198]:active:not(:disabled){transform:scale(.96)}.base-button--primary[data-v-8dd47198]{background:var(--color-primary);color:var(--color-primary-text)}.base-button--secondary[data-v-8dd47198]{background:var(--color-surface-muted);color:var(--color-text);border-color:var(--color-border)}.base-button--danger[data-v-8dd47198]{background:var(--color-danger);color:#fff}.base-button[data-v-8dd47198]:disabled{opacity:.7;cursor:not-allowed}.number-stepper[data-v-b1632bad]{display:grid;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600}.number-stepper__control[data-v-b1632bad]{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:.5rem}.number-stepper__input[data-v-b1632bad]{text-align:center}.number-stepper__button[data-v-b1632bad]{display:grid;place-items:center;width:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:1.1rem;font-weight:700;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .1s ease}.number-stepper__button[data-v-b1632bad]:disabled{opacity:.4;cursor:not-allowed}.number-stepper__button[data-v-b1632bad]:not(:disabled):active{transform:scale(.94)}.number-stepper__button[data-v-b1632bad]:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(hover:hover)and (pointer:fine){.number-stepper__button[data-v-b1632bad]:not(:disabled):hover{border-color:var(--color-primary)}}.student-multi-select[data-v-f08dbe3f]{display:grid;gap:.5rem}.student-multi-select__label[data-v-f08dbe3f]{font-weight:600}.student-multi-select__empty[data-v-f08dbe3f]{margin:0;color:var(--color-text-muted,#6f675d);font-size:var(--font-size-sm)}.student-multi-select__empty a[data-v-f08dbe3f]{color:var(--color-primary);font-weight:600;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s ease}@media(hover:hover)and (pointer:fine){.student-multi-select__empty a[data-v-f08dbe3f]:hover{text-decoration-color:currentColor}}.student-multi-select__list[data-v-f08dbe3f]{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.student-multi-select__chip[data-v-f08dbe3f]{border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);padding:.4rem .9rem;font-size:var(--font-size-sm);cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.student-multi-select__chip[data-v-f08dbe3f]:active{transform:scale(.96)}.student-multi-select__chip--selected[data-v-f08dbe3f]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.student-multi-select__detail[data-v-f08dbe3f]{display:grid;gap:.5rem;padding:.75rem;border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);background:var(--color-surface-muted,transparent)}.student-multi-select__detail-name[data-v-f08dbe3f]{margin:0;font-weight:600}.student-multi-select__field[data-v-f08dbe3f]{display:grid;gap:.3rem;font-size:var(--font-size-sm);font-weight:600}.student-multi-select__field span[data-v-f08dbe3f]{color:var(--color-text-muted,#6f675d);font-weight:400}.student-multi-select__textarea[data-v-f08dbe3f]{min-height:3.5rem;resize:vertical;border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);padding:.6rem;font:inherit;background:var(--color-surface);color:var(--color-text)}.activity-form[data-v-1d076393]{display:grid;gap:1rem;margin-top:1rem}.activity-form__row[data-v-1d076393]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.activity-form__label[data-v-1d076393]{display:grid;gap:.35rem;font-weight:600}.activity-form__label span[data-v-1d076393]{color:var(--color-text-muted,#6f675d);font-weight:400}.activity-form__textarea[data-v-1d076393]{min-height:5rem;resize:vertical;border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);padding:.8rem;font:inherit;background:var(--color-surface);color:var(--color-text)}.activity-form__actions[data-v-1d076393]{display:flex;align-items:stretch;gap:1rem}.toast[data-v-ad4b656b]{position:fixed;left:50%;bottom:calc(6.5rem + env(safe-area-inset-bottom));transform:translate(-50%);z-index:30;max-width:min(100% - 2rem,24rem);padding:.75rem 1.25rem;border-radius:var(--radius-full);background:var(--color-text);color:var(--color-background);font-size:var(--font-size-sm);font-weight:500;text-align:center;box-shadow:0 4px 16px #3d362b2e;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toast__message[data-v-ad4b656b]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-enter-active[data-v-ad4b656b]{transition:opacity .2s ease,transform .2s cubic-bezier(.23,1,.32,1)}.toast-leave-active[data-v-ad4b656b]{transition:opacity .15s ease,transform .15s ease}.toast-enter-from[data-v-ad4b656b]{opacity:0;transform:translate(-50%) translateY(8px)}.toast-leave-to[data-v-ad4b656b]{opacity:0;transform:translate(-50%) translateY(4px)}@media(prefers-reduced-motion:reduce){.toast-enter-active[data-v-ad4b656b],.toast-leave-active[data-v-ad4b656b]{transition:opacity .15s ease}.toast-enter-from[data-v-ad4b656b],.toast-leave-to[data-v-ad4b656b]{transform:translate(-50%)}}.skip-link[data-v-f75c1311]{position:fixed;top:var(--space-3);left:var(--space-3);z-index:30;transform:translateY(-150%);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-text);padding:var(--space-2) var(--space-3);font-weight:700;text-decoration:none;transition:transform .16s cubic-bezier(.23,1,.32,1)}.skip-link[data-v-f75c1311]:focus{transform:translateY(0)}.app-shell[data-v-f75c1311]{display:flex;flex-direction:column;height:100dvh;background:radial-gradient(circle at top left,hsl(var(--color-primary-h) var(--color-primary-s) var(--color-primary-l)/.1),transparent 22rem),var(--color-background);padding-bottom:calc(5.25rem + env(safe-area-inset-bottom));overflow:hidden}.app-shell--plain[data-v-f75c1311]{padding-bottom:0}.app-shell__header[data-v-f75c1311]{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:min(100% - 2rem,70rem);margin-inline:auto;padding:var(--space-4) 0 var(--space-2)}.app-shell__brand[data-v-f75c1311]{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);font-family:var(--font-family-display);font-weight:800;letter-spacing:-.03em;text-decoration:none}.app-shell__brand-mark[data-v-f75c1311]{display:inline-block;width:2.25rem;height:2.25rem;border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover;box-shadow:0 .75rem 1.8rem hsl(var(--color-primary-h) var(--color-primary-s) 20%/.16)}.app-shell__top-nav[data-v-f75c1311]{display:none}.app-shell__profile-link[data-v-f75c1311]{display:inline-grid;flex-shrink:0;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);transition:color .18s ease,background-color .18s ease,transform .14s cubic-bezier(.23,1,.32,1)}.app-shell__profile-link[data-v-f75c1311]:active{transform:scale(.94)}.app-shell__profile-link--active[data-v-f75c1311]{color:var(--color-primary);background:hsl(var(--color-primary-h) var(--color-primary-s) var(--color-primary-l)/.09)}.app-shell__profile-link svg[data-v-f75c1311]{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.app-shell__profile-link svg path[data-v-f75c1311]{fill:currentColor;stroke:none}.app-shell__content[data-v-f75c1311]{flex:1 1 auto;min-height:0;overflow-y:auto;outline:none;scrollbar-color:color-mix(in srgb,var(--color-text-muted) 45%,transparent) transparent;scrollbar-width:thin}.app-shell__content[data-v-f75c1311]::-webkit-scrollbar{width:.5rem}.app-shell__content[data-v-f75c1311]::-webkit-scrollbar-track{background:transparent}.app-shell__content[data-v-f75c1311]::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background-color:color-mix(in srgb,var(--color-text-muted) 45%,transparent)}.bottom-nav[data-v-f75c1311]{position:fixed;right:max(var(--space-3),env(safe-area-inset-right));bottom:calc(var(--space-3) + env(safe-area-inset-bottom));left:max(var(--space-3),env(safe-area-inset-left));z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;height:4.25rem;border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);border-radius:1.4rem;background:color-mix(in srgb,var(--color-surface) 92%,transparent);box-shadow:0 -.5rem 2rem #3d362b14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav__item[data-v-f75c1311]{position:relative;display:flex;height:100%;align-items:center;justify-content:center;flex-direction:column;gap:.2rem;border-radius:1.1rem;color:var(--color-text-muted);font-size:.75rem;font-weight:650;text-decoration:none;transition:color .18s ease,transform .14s cubic-bezier(.23,1,.32,1),background-color .18s ease}.bottom-nav__item[data-v-f75c1311]:active{transform:scale(.96)}.bottom-nav__item--active[data-v-f75c1311]{color:var(--color-primary);background:hsl(var(--color-primary-h) var(--color-primary-s) var(--color-primary-l)/.09)}.bottom-nav__icon[data-v-f75c1311]{display:inline-grid;width:1.35rem;height:1.35rem;place-items:center}.bottom-nav__icon svg[data-v-f75c1311]{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}@media(hover:hover)and (pointer:fine){.app-shell__brand[data-v-f75c1311]:hover,.app-shell__top-link[data-v-f75c1311]:hover,.bottom-nav__item[data-v-f75c1311]:hover{color:var(--color-primary)}}.add-activity-fab[data-v-f75c1311]{position:fixed;right:max(var(--space-3),env(safe-area-inset-right));bottom:calc(6.25rem + env(safe-area-inset-bottom));z-index:11;display:grid;place-items:center;width:3.5rem;height:3.5rem;border:none;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-primary-text);box-shadow:0 .75rem 1.8rem hsl(var(--color-primary-h) var(--color-primary-s) 20%/.28);cursor:pointer;transition:transform .25s cubic-bezier(.23,1,.32,1),opacity .25s ease}.add-activity-fab[data-v-f75c1311]:active{transform:scale(.94)}.add-activity-fab svg[data-v-f75c1311]{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25}@media(hover:hover)and (pointer:fine){.add-activity-fab[data-v-f75c1311]:hover{transform:translateY(-2px)}}.add-activity-fab--hidden[data-v-f75c1311]{transform:translateY(calc(100% + 20rem));opacity:0;pointer-events:none}@media(min-width:48rem){.add-activity-fab[data-v-f75c1311]{right:calc(max(var(--space-3),env(safe-area-inset-right)) + .85rem);bottom:max(var(--space-4),env(safe-area-inset-bottom))}.app-shell[data-v-f75c1311]{padding-bottom:0}.app-shell__header[data-v-f75c1311]{padding-top:var(--space-5)}.app-shell__top-nav[data-v-f75c1311]{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-surface) 88%,transparent);padding:.3rem;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-shell__top-link[data-v-f75c1311]{border-radius:var(--radius-full);color:var(--color-text-muted);padding:.55rem .9rem;font-size:.9rem;font-weight:650;text-decoration:none;transition:color .18s ease,background-color .18s ease,transform .14s cubic-bezier(.23,1,.32,1)}.app-shell__top-link[data-v-f75c1311]:active{transform:scale(.97)}.app-shell__top-link--active[data-v-f75c1311]{background:var(--color-primary);color:var(--color-primary-text);box-shadow:0 .45rem 1rem hsl(var(--color-primary-h) var(--color-primary-s) 22%/.14)}.bottom-nav[data-v-f75c1311]{display:none}}@media(prefers-reduced-motion:reduce){.app-shell__top-link[data-v-f75c1311],.bottom-nav__item[data-v-f75c1311],.skip-link[data-v-f75c1311]{transition:opacity .12s ease,color .12s ease,background-color .12s ease}.add-activity-fab[data-v-f75c1311]{transition:opacity .12s ease}.add-activity-fab--hidden[data-v-f75c1311]{opacity:0;transform:none;pointer-events:none}}
