: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;--color-scan-background:#fff;--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 #0000000f;--shadow-card:0 1px 3px #3d362b0f, 0 1px 2px #3d362b0a;--shadow-card-hover:0 4px 12px #3d362b14, 0 2px 4px #3d362b0a;--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;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}@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 #0003, 0 1px 2px #00000026;--shadow-card-hover:0 4px 12px #0000004d, 0 2px 4px #0003}}*{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{min-height:100dvh;padding:var(--space-6);place-items:center;display:grid}.base-input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-md);background:var(--color-surface);color:var(--color-text);padding:.7rem .85rem;transition:border-color .15s,box-shadow .15s}.base-input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px rgb(var(--color-focus-rgb)/.12);outline:none}.base-button:focus-visible,.base-input:focus-visible,.password-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.base-label{gap:var(--space-2);font-weight:600;display:grid}.auth-links,.auth-password-hint,.base-label,.field-error{font-size:var(--font-size-sm)}.field-error{color:var(--color-danger);margin:0}.auth-form{gap:var(--space-4);display:grid}.auth-password-hint{margin:calc(var(--space-4) * -1) 0 0;color:var(--color-text-muted)}.auth-links{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2);display:flex}.auth-links a{color:var(--color-primary)}.sheet-backdrop[data-v-cda1d8b7]{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f1d195c;justify-content:center;align-items:flex-end;transition:opacity .25s;display:flex;position:fixed;inset:0}.sheet[data-v-cda1d8b7]{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface,#fffaf2);width:100%;max-height:calc(100vh - 2rem);padding:1.25rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));transition:transform .25s cubic-bezier(.16,1,.3,1);overflow-y:auto;transform:translateY(0);box-shadow:0 -4px 20px #3d362b1f}.sheet__header[data-v-cda1d8b7]{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sheet__eyebrow[data-v-cda1d8b7]{color:var(--color-text-muted,#6f675d);margin:0 0 .25rem;font-size:.8rem}.sheet h2[data-v-cda1d8b7]{margin:0}.sheet__close[data-v-cda1d8b7]{border-radius:var(--radius-full);background:var(--color-surface-muted,#efe5d7);width:2.25rem;height:2.25rem;color:var(--color-text,#29251f);cursor:pointer;border:0;justify-content:center;align-items:center;font-size:1.25rem;transition:background-color .15s,transform .1s;display:flex}.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 (width>=48rem){.sheet-backdrop[data-v-cda1d8b7]{align-items:center;padding:1.5rem}.sheet[data-v-cda1d8b7]{border-radius:var(--radius-lg);width:min(100%,32rem);padding-bottom:1.5rem}}@media (prefers-reduced-motion:reduce){.sheet[data-v-cda1d8b7],.sheet-backdrop[data-v-cda1d8b7]{transition:opacity .15s}.sheet-enter-from .sheet[data-v-cda1d8b7],.sheet-leave-to .sheet[data-v-cda1d8b7]{transform:translateY(0)}}.number-stepper[data-v-b1632bad]{gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600;display:grid}.number-stepper__control[data-v-b1632bad]{grid-template-columns:auto 1fr auto;align-items:stretch;gap:.5rem;display:grid}.number-stepper__input[data-v-b1632bad]{text-align:center}.number-stepper__button[data-v-b1632bad]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:2.75rem;color:var(--color-text);cursor:pointer;place-items:center;font-size:1.1rem;font-weight:700;transition:background-color .15s,border-color .15s,transform .1s;display:grid}.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]{gap:.5rem;display:grid}.student-multi-select__label[data-v-f08dbe3f]{font-weight:600}.student-multi-select__empty[data-v-f08dbe3f]{color:var(--color-text-muted,#6f675d);font-size:var(--font-size-sm);margin:0}.student-multi-select__empty a[data-v-f08dbe3f]{color:var(--color-primary);font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s}@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]{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.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);font-size:var(--font-size-sm);cursor:pointer;padding:.4rem .9rem;transition:background-color .15s,color .15s,border-color .15s,transform .1s}.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]{border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);background:var(--color-surface-muted,transparent);gap:.5rem;padding:.75rem;display:grid}.student-multi-select__detail-name[data-v-f08dbe3f]{margin:0;font-weight:600}.student-multi-select__field[data-v-f08dbe3f]{font-size:var(--font-size-sm);gap:.3rem;font-weight:600;display:grid}.student-multi-select__field span[data-v-f08dbe3f]{color:var(--color-text-muted,#6f675d);font-weight:400}.student-multi-select__textarea[data-v-f08dbe3f]{resize:vertical;border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);min-height:3.5rem;font:inherit;background:var(--color-surface);color:var(--color-text);padding:.6rem}.activity-form[data-v-1d076393]{gap:1rem;margin-top:1rem;display:grid}.activity-form__row[data-v-1d076393]{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.activity-form__label[data-v-1d076393]{gap:.35rem;font-weight:600;display:grid}.activity-form__label span[data-v-1d076393]{color:var(--color-text-muted,#6f675d);font-weight:400}.activity-form__textarea[data-v-1d076393]{resize:vertical;border:1px solid var(--color-border,#ded4c4);border-radius:var(--radius-md);min-height:5rem;font:inherit;background:var(--color-surface);color:var(--color-text);padding:.8rem}.activity-form__actions[data-v-1d076393]{align-items:stretch;gap:1rem;display:flex}.toast[data-v-ad4b656b]{left:50%;bottom:calc(6.5rem + env(safe-area-inset-bottom));z-index:30;border-radius:var(--radius-full);background:var(--color-text);max-width:min(100% - 2rem,24rem);color:var(--color-background);font-size:var(--font-size-sm);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.75rem 1.25rem;font-weight:500;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #3d362b2e}.toast__message[data-v-ad4b656b]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.toast-enter-active[data-v-ad4b656b]{transition:opacity .2s,transform .2s cubic-bezier(.23,1,.32,1)}.toast-leave-active[data-v-ad4b656b]{transition:opacity .15s,transform .15s}.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}.toast-enter-from[data-v-ad4b656b],.toast-leave-to[data-v-ad4b656b]{transform:translate(-50%)}}.skip-link[data-v-f75c1311]{top:var(--space-3);left:var(--space-3);z-index:30;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);position:fixed;transform:translateY(-150%)}.skip-link[data-v-f75c1311]:focus{transform:translateY(0)}.app-shell[data-v-f75c1311]{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);height:100dvh;padding-bottom:calc(5.25rem + env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow:hidden}.app-shell--plain[data-v-f75c1311]{padding-bottom:0}.app-shell__header[data-v-f75c1311]{z-index:8;justify-content:space-between;align-items:center;gap:var(--space-4);width:min(100% - 2rem,70rem);padding:var(--space-4) 0 var(--space-2);margin-inline:auto;display:flex;position:sticky;top:0}.app-shell__brand[data-v-f75c1311]{align-items:center;gap:var(--space-2);color:var(--color-text);font-family:var(--font-family-display);letter-spacing:-.03em;font-weight:800;text-decoration:none;display:inline-flex}.app-shell__brand-mark[data-v-f75c1311]{border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover;width:2.25rem;height:2.25rem;box-shadow:0 .75rem 1.8rem hsl(var(--color-primary-h) var(--color-primary-s) 20%/.16);display:inline-block}.app-shell__top-nav[data-v-f75c1311]{display:none}.app-shell__profile-link[data-v-f75c1311]{border-radius:var(--radius-full);background:var(--color-surface-muted);width:2.75rem;height:2.75rem;color:var(--color-text-muted);border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);flex-shrink:0;place-items:center;transition:color .18s,background-color .18s,transform .14s cubic-bezier(.23,1,.32,1);display:inline-grid}.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]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1.35rem;height:1.35rem}.app-shell__profile-link svg path[data-v-f75c1311]{fill:currentColor;stroke:none}.app-shell__content[data-v-f75c1311]{scrollbar-color:color-mix(in srgb,var(--color-text-muted) 45%,transparent) transparent;scrollbar-width:thin;outline:none;flex:auto;min-height:0;overflow-y:auto}.app-shell__content[data-v-f75c1311]::-webkit-scrollbar{width:.5rem}.app-shell__content[data-v-f75c1311]::-webkit-scrollbar-track{background:0 0}.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]{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;border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);background:color-mix(in srgb,var(--color-surface) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:1.4rem;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;height:4.25rem;display:grid;position:fixed;box-shadow:0 -.5rem 2rem #3d362b14}.bottom-nav__item[data-v-f75c1311]{height:100%;color:var(--color-text-muted);border-radius:1.1rem;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.75rem;font-weight:650;text-decoration:none;transition:color .18s,transform .14s cubic-bezier(.23,1,.32,1),background-color .18s;display:flex;position:relative}.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]{place-items:center;width:1.35rem;height:1.35rem;display:inline-grid}.bottom-nav__icon svg[data-v-f75c1311]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.25rem;height:1.25rem}@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]{right:max(var(--space-3),env(safe-area-inset-right));bottom:calc(6.25rem + env(safe-area-inset-bottom));z-index:11;border-radius:var(--radius-full);background:var(--color-primary);width:3.5rem;height:3.5rem;color:var(--color-primary-text);box-shadow:0 .75rem 1.8rem hsl(var(--color-primary-h) var(--color-primary-s) 20%/.28);cursor:pointer;border:none;place-items:center;transition:transform .25s cubic-bezier(.23,1,.32,1),opacity .25s;display:grid;position:fixed}.add-activity-fab[data-v-f75c1311]:active{transform:scale(.94)}.add-activity-fab svg[data-v-f75c1311]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25px;width:1.5rem;height:1.5rem}@media (hover:hover) and (pointer:fine){.add-activity-fab[data-v-f75c1311]:hover{transform:translateY(-2px)}}.add-activity-fab--hidden[data-v-f75c1311]{opacity:0;pointer-events:none;transform:translateY(calc(100% + 20rem))}@media (width>=48rem){.add-activity-fab[data-v-f75c1311]{right:calc(.85rem + max(var(--space-3),env(safe-area-inset-right)));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]{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);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:.3rem;display:inline-flex}.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,background-color .18s,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,color .12s,background-color .12s}.add-activity-fab[data-v-f75c1311]{transition:opacity .12s}.add-activity-fab--hidden[data-v-f75c1311]{opacity:0;pointer-events:none;transform:none}}
