:root{--bg:#fff;--surface:#fff;--surface-2:#f1f6f3;--border:#e2e8e3;--text:#0f3f2c;--text-muted:#556a60;--accent:#0f3f2c;--accent-contrast:#fff;--btn-primary-bg:#7bccac;--btn-primary-bg-hover:#8fd4b5;--btn-primary-text:#0f3f2c;--danger:#c00000;--success:#0d9662;--radius:12px;--shadow:0 1px 2px #0f3f2c0d, 0 4px 16px #0f3f2c0f}html[data-theme=dark]{--bg:#111113;--surface:#18181b;--surface-2:#1d1f24;--border:#2a2d34;--text:#e2e4e9;--text-muted:#9aa1ad;--accent:#7bccac;--accent-contrast:#06281c;--btn-primary-bg:#22a76d;--btn-primary-bg-hover:#28b878;--btn-primary-text:#fff;--danger:#f87171;--success:#10b981;--shadow:0 1px 2px #0000004d, 0 4px 16px #0000004d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0;font-size:1.6rem}h2{font-size:1.15rem}.btn{cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.95rem;font-weight:600;transition:filter .12s,background .12s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:#0f3f2c33}.btn--primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);filter:none}.btn--ghost{border-color:var(--border);background:0 0}.btn--danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn--block{width:100%}.btn--sm{padding:.35rem .7rem;font-size:.85rem}.topnav{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0}.topnav__inner{align-items:center;gap:1.5rem;max-width:1040px;margin:0 auto;padding:.7rem 1rem;display:flex}.topnav__brand{color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1.15rem;font-weight:700}.topnav__brandAccent{color:var(--accent)}.topnav__links{gap:1rem;display:flex}.topnav__links a{color:var(--text-muted);font-size:.95rem;font-weight:600}.topnav__links a.active{color:var(--text)}.topnav__right{align-items:center;gap:.8rem;margin-left:auto;display:flex}.topnav__grades,.topnav__user{color:var(--text-muted);font-size:.9rem}.appMain{max-width:1040px;margin:0 auto;padding:1.5rem 1rem 4rem}.page__head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page--narrow{max-width:640px;margin:0 auto}.section{margin-top:1.5rem}.centeredMessage{text-align:center;color:var(--text-muted);padding:4rem 1rem}.emptyState{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius);padding:3rem 1rem}.emptyState .btn{margin-top:.5rem}.muted{color:var(--text-muted)}.backLink{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.95rem}.filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1.25rem;display:flex}.filters__search{flex:220px}.filters select,.filters input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.5rem .7rem;font-size:.95rem}.cardGrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);color:var(--text);flex-direction:column;gap:.6rem;padding:1rem;display:flex}.card--clickable{cursor:pointer;transition:transform .1s,border-color .1s}.card--clickable:hover{border-color:var(--accent);transform:translateY(-2px)}.card__header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.card__title{margin:0;font-size:1.05rem}.card__badges{flex-wrap:wrap;gap:.4rem;display:flex}.card__meta{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.card__footer{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding-top:.6rem;font-size:.85rem;display:flex}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600}.badge--session{color:#0f3f2c;background:#0f3f2c1a}html[data-theme=dark] .badge--session{color:#7bccac;background:#7bccac29}.badge--request{color:var(--success);background:#0d966224}.badge--exam{color:#7c3aed;background:#7c3aed24}.badge--ambition{color:#b45309;background:#b4530924}.badge--muted{text-transform:capitalize}.tag{color:var(--text-muted);font-size:.75rem;font-weight:600}.tag--joined{color:var(--success)}.formCard,.detailCard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:1rem;padding:1.25rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field>span{color:var(--text-muted);font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.6rem .7rem;font-family:inherit;font-size:.95rem}.field textarea{resize:vertical}.fieldRow{gap:1rem;display:flex}.fieldRow .field{flex:1}.formHint{color:var(--text-muted);margin:0 0 1rem;font-size:.85rem}.formActions{justify-content:flex-end;gap:.6rem;margin-top:.5rem;display:flex}.formError{color:var(--danger);font-size:.9rem}.checkboxField{color:var(--text-muted);align-items:flex-start;gap:.5rem;margin-bottom:1rem;font-size:.9rem;display:flex}.segmented{border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;display:flex;overflow:hidden}.segmented button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:none;flex:1;padding:.55rem;font-weight:600}.segmented button.active{background:var(--accent);color:var(--accent-contrast)}.detailCard__title{font-size:1.4rem}.detailList{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem;margin:1rem 0;display:grid}.detailList dt{color:var(--text-muted);font-size:.8rem}.detailList dd{margin:.15rem 0 0;font-weight:600}.detailCard__notes{background:var(--surface-2);white-space:pre-wrap;border-radius:10px;padding:.8rem}.detailCard__people{margin-top:1rem}.peopleList{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.peopleList li{background:var(--surface-2);border-radius:999px;padding:.25rem .7rem;font-size:.85rem}.detailCard__actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:1.5rem;padding-top:1rem;display:flex}.authPage{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.authCard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:1.75rem}.authCard__title{margin:0 0 .25rem}.authCard__subtitle{color:var(--text-muted);margin:0 0 1.25rem;font-size:.9rem}.authCard__foot{text-align:center;color:var(--text-muted);margin:1rem 0 0;font-size:.9rem}.authCard .field input{width:100%}.authCard .btn{margin-top:.5rem}.toastStack{z-index:100;flex-direction:column;gap:.5rem;width:min(420px,100vw - 2rem);display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.toast{color:#fff;cursor:pointer;box-shadow:var(--shadow);border-radius:10px;padding:.7rem 1rem;font-size:.9rem}.toast--error{background:var(--danger)}.toast--success{background:var(--success)}@media (max-width:560px){.fieldRow{flex-direction:column;gap:0}.topnav__grades{display:none}}.authShell{color:#0f3f2c;background:#fff;flex-direction:column;min-height:100vh;display:flex}[data-theme=dark] .authShell{color:#e2e4e9;background:#111113}.contentFade{opacity:1;animation:.25s authFadeIn}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}.topbar{z-index:10;border-bottom:1px solid #e6e6e6;justify-content:space-between;align-items:center;height:56px;padding:0 18px;display:flex;position:relative;overflow:visible}[data-theme=dark] .topbar{background:#18181b;border-bottom-color:#2a2a2e}.topbar-right{font-weight:500}.topbarBranding{color:inherit;align-items:center;gap:10px;display:inline-flex;text-decoration:none!important}.topbarBranding:hover{text-decoration:none!important}.topbarBrandingLogo{object-fit:contain;flex-shrink:0;width:auto;max-height:36px;display:none}.topbarBrandingText{letter-spacing:.2px;white-space:nowrap;font-weight:600}.topbarBrandingTextLink{color:inherit;transition:opacity .2s;text-decoration:none!important}.topbarBrandingTextLink:hover{opacity:.7;text-decoration:none!important}[data-theme=dark] .topbarBrandingText{color:#e2e4e9}.topbarBrandingAccent{color:#1f9d6b}@media (max-width:768px){.topbarBrandingLogo{display:block}.topbarBrandingText{display:none}}.topbarAuthRow{align-items:center;gap:12px;display:flex}.themeToggleWrap{align-items:center;gap:8px;display:inline-flex}.themeToggleHint{opacity:.9;font-size:18px;line-height:1}[data-theme=dark] .themeToggleHint{opacity:.95}.themeToggle{cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}.themeToggleTrack{background:#e5e7eb;border-radius:12px;align-items:center;width:44px;height:24px;transition:background .3s;display:flex;position:relative;overflow:hidden}.themeToggleTrackDark{background:#374151}.themeToggleThumb{z-index:2;background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.themeToggleThumbDark{transform:translate(20px)}.themeToggleIcon{z-index:1;font-size:13px;line-height:1;transition:opacity .2s;position:absolute;top:50%;transform:translateY(-50%)}.themeToggleIconSun{color:#f59e0b;opacity:1;left:5px}.themeToggleTrackDark .themeToggleIconSun{opacity:.3}.themeToggleIconMoon{color:#9ca3af;opacity:.3;right:5px}.themeToggleTrackDark .themeToggleIconMoon{opacity:1;color:#fbbf24}.topbarAuthDropdown{display:inline-block;position:relative}.topbarAuthTrigger{cursor:pointer;letter-spacing:.01em;color:#0f3f2c;background:0 0;border:none;align-items:center;gap:6px;padding:6px 0;font-size:15px;font-weight:500;transition:opacity .2s;display:inline-flex}.topbarAuthTrigger:hover{opacity:.85}[data-theme=dark] .topbarAuthTrigger{color:#d1d5db}.topbarAuthName{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.topbarAuthArrow{opacity:.75;vertical-align:middle;border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:4px;transition:transform .2s,opacity .2s;display:inline-block}.topbarAuthTrigger:hover .topbarAuthArrow{opacity:1}.topbarAuthTrigger[aria-expanded=true] .topbarAuthArrow{transform:rotate(180deg)}.topbarAuthPortal{z-index:9999;transform-origin:100% 0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;min-width:140px;padding:6px 0;animation:.28s cubic-bezier(.22,1,.36,1) forwards dropdownOpen;position:absolute;top:calc(100% + 8px);left:auto;right:0;overflow:hidden;box-shadow:0 10px 40px #0000001f}@keyframes dropdownOpen{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}[data-theme=dark] .topbarAuthPortal{background:#1f1f23;border-color:#333338;box-shadow:0 10px 40px #00000080}.topbarAuthOption{box-sizing:border-box;text-align:left;cursor:pointer;color:#0f3f2c;background:0 0;border:none;width:100%;padding:10px 18px;font-size:14px;font-weight:500;transition:background .15s;display:block}.topbarAuthOption:hover{background:#0f3f2c14}.topbarAuthOption:active{background:#0f3f2c1f}[data-theme=dark] .topbarAuthOption{color:#d1d5db}[data-theme=dark] .topbarAuthOption:hover{background:#ffffff14}.topbarSignIn{color:#0f3f2c;border:1px solid #0f3f2c59;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s}.topbarSignIn:hover{background:#0f3f2c14;border-color:#0f3f2c}[data-theme=dark] .topbarSignIn{color:#d1d5db;border-color:#fff3}[data-theme=dark] .topbarSignIn:hover{background:#ffffff14;border-color:#ffffff59}.loginLayout{box-sizing:border-box;flex:1;justify-content:center;align-items:center;padding:40px 20px 80px;font-family:Trebuchet MS,Segoe UI,Verdana,sans-serif;display:flex}[data-theme=dark] .loginLayout{background:#111113}.loginCard{text-align:center;box-sizing:border-box;width:min(520px,100%);padding:0 8px}.loginTitle{color:#0f3f2c;margin:0 0 22px;font-size:30px;font-weight:500}[data-theme=dark] .loginTitle{color:#f0f0f0}.loginForm{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;margin:0 auto;display:flex}.loginRow{flex-direction:column;gap:6px;width:100%;display:flex}.loginLabel{text-align:left;color:#1f2937;font-size:13px;font-weight:500}[data-theme=dark] .loginLabel{color:#9ca3af}.loginInput{box-sizing:border-box;background:#fff;border:1px solid #cfcfcf;border-radius:8px;outline:none;width:100%;min-height:42px;padding:10px 12px;font-family:inherit;font-size:15px}.loginInput:focus{border-color:#8fb9a8;box-shadow:0 0 0 2px #0f3f2c14}[data-theme=dark] .loginInput{color:#e2e4e9;background:#1c1c20;border-color:#333338}[data-theme=dark] .loginInput:focus{border-color:#7bccac;box-shadow:0 0 0 2px #7bccac26}.loginButton{color:#0f3f2c;cursor:pointer;background:#7bccac;border:1px solid #0f3f2c33;border-radius:8px;width:100%;margin-top:4px;padding:12px 24px;font-size:16px;font-weight:600;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}.loginButton:hover:not(:disabled){background:#8fd4b5;border-color:#0f3f2c59;transform:translateY(-1px);box-shadow:0 2px 8px #0f3f2c33}.loginButton:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 3px #0f3f2c26}.loginButton:disabled{opacity:.7;cursor:not-allowed}[data-theme=dark] .loginButton{color:#fff;background:#22a76d;border-color:#22a76d66}[data-theme=dark] .loginButton:hover:not(:disabled){background:#28b878;border-color:#22a76d99}.loginConsentRow{text-align:left;color:#1f2937;cursor:pointer;align-items:flex-start;gap:8px;width:100%;font-size:13px;line-height:1.4;display:flex}.loginConsentRow input[type=checkbox]{flex:none;width:18px;height:18px;margin-top:4px}[data-theme=dark] .loginConsentRow{color:#9ca3af}.loginError{color:#c00;margin:0 0 4px;font-size:14px}[data-theme=dark] .loginError{color:#f87171}.loginDivider{background:#d9d9d9;width:100%;max-width:360px;height:1px;margin:14px auto 10px}[data-theme=dark] .loginDivider{background:#333338}.loginLinks{color:#1f2937;flex-direction:column;gap:8px;font-size:13px;display:flex}[data-theme=dark] .loginLinks{color:#9ca3af}.loginLinkRow{justify-content:center;gap:8px;display:flex}.loginLink{color:#0f3f2c;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}[data-theme=dark] .loginLink{color:#7bccac}
