:root{color-scheme:light;--accent:#0895a6;--surface:#fff;--surface-muted:#f8fafc;--surface-subtle:#e2e8f0;--text:#0f172a;--text-muted:#475569;--text-soft:#64748b}*{box-sizing:border-box}body{margin:0;min-height:100%;background:radial-gradient(circle at top,rgba(8,149,166,.08),transparent 55%),var(--surface-muted);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3.5rem 1.5rem}.auth-card{width:100%;max-width:28rem;background:var(--surface);border-radius:1.5rem;border:1px solid rgba(148,163,184,.18);box-shadow:0 30px 60px -35px rgba(15,23,42,.45);padding:3rem 2.5rem;gap:1.75rem}.auth-card,.auth-card__header{display:flex;flex-direction:column}.auth-card__header{text-align:center;gap:1.25rem}.auth-card__title{margin:0;font-size:1.9rem;font-weight:700;color:var(--text)}.auth-card__subtitle{margin:0;font-size:.98rem;color:var(--text-muted)}.google-button{border:none;border-radius:.85rem;background:var(--accent);color:#fff;font-weight:600;font-size:1rem;padding:.85rem 1.25rem;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 18px 32px -24px rgba(8,149,166,.85);cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.google-button:hover{background:rgba(8,149,166,.9);transform:translateY(-1px)}.google-button:disabled{opacity:.75;cursor:not-allowed;transform:none;box-shadow:none}.google-button__icon{height:20px;width:20px;display:block}.auth-status{font-size:.95rem}.auth-hint,.auth-status{color:var(--text-soft);text-align:center;margin:0}.auth-hint{font-size:.85rem}.app-shell{min-height:100vh;background:var(--surface-muted);display:flex;flex-direction:column}.app-header{background:var(--surface);border-bottom:1px solid rgba(148,163,184,.16);box-shadow:0 12px 32px -28px rgba(15,23,42,.55)}.app-header__inner{max-width:70rem;margin:0 auto;padding:1rem 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.app-brand__title{margin:0;font-size:1.3rem;font-weight:700}.app-user{gap:1rem;position:relative}.app-user,.app-user__avatar{display:flex;align-items:center}.app-user__avatar{height:2.5rem;width:2.5rem;border-radius:999px;background:rgba(148,163,184,.35);justify-content:center;font-weight:600;color:var(--text)}.app-user__meta{display:flex;flex-direction:column;gap:.15rem}.app-user__email{font-size:.85rem;color:var(--text-soft)}.app-ghost-button,.button{border-radius:999px;border:1px solid rgba(148,163,184,.5);background:#fff;color:var(--text);font-weight:600;padding:.45rem 1.1rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.app-ghost-button:hover,.button:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 12px 32px -26px rgba(8,149,166,.35)}.button--ghost{border:1px solid rgba(148,163,184,.5);background:transparent;color:var(--text)}.app-ghost-button:disabled,.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;pointer-events:none}.app-profile-trigger{border:none;border-radius:999px;background:rgba(8,149,166,.14);color:var(--accent);font-weight:600;padding:.45rem 1rem;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.app-profile-trigger:hover{background:rgba(8,149,166,.22)}.profile-popover{position:absolute;top:calc(100% + .75rem);right:0;width:min(32rem,calc(100vw - 2rem));z-index:20}.profile-popover__card{width:100%;max-height:clamp(20rem,70vh,36rem);overflow-y:auto;background:var(--surface);border-radius:1.25rem;border:1px solid rgba(148,163,184,.2);box-shadow:0 24px 48px -30px rgba(15,23,42,.55);padding:2rem}.profile-panel-card{background:hsla(0,0%,100%,.98);box-shadow:0 35px 60px -40px rgba(126,147,199,.45)}.profile-popover__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.profile-panel-card{width:100%;padding:2rem;background:linear-gradient(180deg,hsla(0,0%,100%,.98),rgba(241,245,249,.6));border-radius:1.75rem;border:1px solid rgba(148,163,184,.35);box-shadow:0 35px 60px -40px rgba(15,23,42,.45)}.profile-panel-card h2{margin:0;font-size:1.45rem}.profile-panel-card p{color:var(--text-soft)}.student-profile-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.student-profile-summary dt{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft)}.student-profile-summary dd{margin:0;font-size:1rem;font-weight:600}.profile-panel-card .form-actions{justify-content:flex-end;margin-top:1.25rem}.status-banner{margin-top:1rem}.profile-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:30}.profile-popup__body{width:min(640px,100%)}.student-stack{gap:1.75rem}.admin-card,.student-stack{display:flex;flex-direction:column}.admin-card{background:var(--surface);border-radius:1.25rem;border:1px solid rgba(148,163,184,.16);box-shadow:0 28px 48px -34px rgba(15,23,42,.4);padding:2rem 2.25rem;gap:1.5rem}.student-card__header h2{margin:0;font-size:1.45rem;font-weight:700}.status-banner{border-radius:.85rem;border:1px solid rgba(148,163,184,.3);padding:.75rem 1rem;font-size:.95rem;line-height:1.5}.status-banner--error{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.status-banner--success{border-color:rgba(16,185,129,.45);background:#ecfdf5;color:#047857}.student-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-gap:1rem;gap:1rem;align-items:end}.student-filters-container{display:flex;flex-direction:column;gap:.75rem}.student-filters__header{display:flex;align-items:center;justify-content:space-between}.student-filters__title{margin:0;font-weight:600}.student-filters__toggle{font-size:.95rem;padding:.35rem .75rem;line-height:1.2}.field{display:flex;flex-direction:column;gap:.25rem}.select-input,.text-input,textarea{border-radius:.85rem;border:1px solid rgba(148,163,184,.45);background:#fff;padding:.55rem .85rem;font-size:.95rem}.form-actions{display:flex;gap:.75rem}.form-actions--inline{justify-content:flex-end;align-items:center}.event-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}.event-card{border-radius:1.25rem;border:1px solid rgba(148,163,184,.25);padding:1.25rem;background:hsla(0,0%,100%,.9)}.event-card__name{font-size:1rem;font-weight:600;margin:0}.muted{color:var(--text-soft)}.user-details--compact{display:grid;grid-gap:.85rem;gap:.85rem}.user-details--compact dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);margin-bottom:.25rem}.user-details--compact dd{margin:0;font-size:1rem}.profile-popover__close{border:none;background:transparent;color:var(--text-soft);font-size:1.5rem;line-height:1;cursor:pointer;border-radius:50%;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center}.profile-popover__close:hover{color:var(--accent)}@media (max-width:640px){.profile-popover{position:fixed;inset:1rem}}.app-main{flex:1 1;padding:3rem 1.75rem 4rem;display:flex;align-items:flex-start;justify-content:center}.portal-container{width:100%;max-width:70rem;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.portal-columns{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);grid-gap:1.5rem;gap:1.5rem}.portal-column{display:flex;flex-direction:column;gap:1.5rem}.portal-column--aside{gap:1rem}.form-grid{display:flex;flex-direction:column;gap:1rem}.app-user__name{font-weight:600}.student-calendar-list{margin-top:2rem}.student-calendar-list h3{margin:0 0 .5rem;font-size:1.1rem}.student-calendar-list ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:1rem;gap:1rem}.student-calendar-list li{background:#fff;gap:.35rem}.calendar-event-group,.student-calendar-list li{border:1px solid rgba(148,163,184,.25);border-radius:1rem;padding:1rem;display:flex;flex-direction:column}.calendar-event-group{background:var(--surface);margin-bottom:1rem;gap:.75rem}.calendar-event-group__header{display:flex;align-items:center;gap:.5rem}.event-grid--compact{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.admin-list__actions{justify-content:flex-end}@media (max-width:900px){.portal-columns{grid-template-columns:1fr}.app-header__inner{flex-direction:column;align-items:flex-start}.app-user{width:100%;justify-content:flex-end}}.admin-section{gap:1rem}.admin-list,.admin-section{display:flex;flex-direction:column}.admin-list{list-style:none;margin:0;padding:0;gap:.75rem}.admin-list__item{border:1px solid rgba(148,163,184,.35);border-radius:1rem;padding:1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.admin-list__title{margin:0;font-size:1rem;font-weight:600}.admin-list__description{margin:.25rem 0 0;color:var(--text-soft);font-size:.9rem}.admin-list__actions{display:flex;gap:.5rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .75rem;font-size:.75rem;gap:.35rem}.badge--muted{background:rgba(148,163,184,.2);color:var(--text-soft)}.badge--accent{background:rgba(8,149,166,.18);color:var(--accent)}.badge--danger{background:hsla(0,91%,71%,.22);color:#b91c1c}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));grid-gap:.5rem;gap:.5rem}.checkbox-item{display:flex;align-items:center;gap:.35rem;font-size:.95rem}.analytics-table table{width:100%;border-collapse:collapse}.analytics-table td,.analytics-table th{text-align:left;border-bottom:1px solid rgba(148,163,184,.3);padding:.45rem .35rem;font-size:.85rem}.profile-panel-card button,.profile-panel-card input,.profile-panel-card select,.profile-panel-card textarea{pointer-events:auto}