.theme-toggle{border:1px solid var(--campus-border);background:var(--campus-inset);border-radius:999px;flex:none;gap:2px;padding:3px;display:flex}.theme-toggle-option{width:40px;height:40px;color:var(--color-muted);cursor:pointer;border-radius:50%;place-items:center;transition:background .18s,color .18s,box-shadow .18s;display:grid}.theme-toggle-option:hover{color:var(--color-ink);background:var(--campus-hover)}.theme-toggle-option:has(input:checked){color:var(--color-leaf);background:var(--color-surface);box-shadow:0 1px 4px #0000000c}.theme-toggle-option:has(input:focus-visible){outline:2px solid var(--color-leaf);outline-offset:2px}@media (max-width:480px){.theme-toggle-option{width:36px;height:36px}}@media (prefers-reduced-motion:reduce){.theme-toggle-option{transition:none}}
.campus-app{--campus-gutter:clamp(20px, 4vw, 64px);background:var(--campus-background);min-height:100dvh}.campus-content{padding:42px var(--campus-gutter) 64px}.campus-header{z-index:20;border-bottom:1px solid var(--campus-border);background:var(--campus-header);position:relative}.campus-header-inner{max-width:calc(1320px + var(--campus-gutter) * 2);min-height:86px;padding:14px var(--campus-gutter);justify-content:space-between;align-items:center;gap:16px;margin:auto;display:flex}.campus-identity,.campus-header-actions{align-items:center;gap:24px;display:flex}.campus-identity img{width:126px}.campus-identity-divider{background:var(--campus-divider);width:1px;height:20px}.campus-identity-label{color:var(--color-leaf);font-size:13px;font-weight:600}.campus-header-note{color:var(--color-muted);font-size:12px}.campus-menu-trigger{border:1px solid var(--campus-border);background:var(--color-surface);min-height:48px;color:var(--color-leaf);border-radius:999px;align-items:center;gap:10px;padding:5px 12px 5px 5px;transition:background .18s,box-shadow .18s;display:flex}.campus-menu-trigger:hover{background:var(--campus-hover);box-shadow:0 3px 12px #34483d0c}.campus-avatar{background:var(--campus-avatar);width:36px;height:36px;color:var(--color-leaf);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.campus-account-menu{inset:74px max(var(--campus-gutter), calc((100vw - 1320px) / 2)) auto auto;border:1px solid var(--campus-border);background:var(--campus-menu);width:min(300px,100vw - 40px);max-height:calc(100dvh - 94px);color:var(--color-ink);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:24px;margin:0;padding:8px;position:absolute;overflow-y:auto;box-shadow:0 16px 56px #23342916,0 3px 10px #23342906}.campus-menu-account{align-items:center;gap:12px;padding:14px 12px 18px;display:flex}.campus-menu-links{border-top:1px solid var(--campus-subtle-line);gap:4px;padding:8px 0;display:grid}.campus-menu-links a{min-height:48px;color:var(--color-leaf);border-radius:14px;align-items:center;gap:12px;padding:12px;font-size:13px;font-weight:500;transition:background .18s;display:flex}.campus-menu-links a:hover,.campus-menu-links a[aria-current=page]{background:var(--campus-hover)}.campus-menu-arrow{width:15px;height:15px;color:var(--campus-quiet);margin-left:auto}.campus-menu-footer{border-top:1px solid var(--campus-subtle-line);padding:5px 4px}.campus-menu-footer button{text-align:left;width:100%;padding-inline:12px}@media (max-width:640px){.campus-content{padding-top:30px}.campus-header-inner{min-height:76px}.campus-identity{gap:14px}.campus-identity img{width:105px}.campus-header-actions{gap:12px}.campus-header-note{display:none}.campus-account-menu{top:66px}}@media (max-width:480px){.campus-header-inner{gap:8px}.campus-identity img{width:88px}.campus-identity-divider,.campus-identity-label{display:none}.campus-header-actions{gap:8px}.campus-menu-trigger{padding:5px}.campus-menu-trigger>svg{display:none}}@media (prefers-reduced-motion:no-preference){.campus-account-menu:popover-open{transform-origin:100% 0;animation:.18s cubic-bezier(.2,.8,.2,1) both campus-menu-in}}@keyframes campus-menu-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}
.campus-app{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-campus:var(--lightningcss-light,#faf7f0)var(--lightningcss-dark,#171d19);--color-ink:var(--lightningcss-light,#292b25)var(--lightningcss-dark,#e8ece4);--color-muted:var(--lightningcss-light,#696b60)var(--lightningcss-dark,#a4aea0);--color-leaf:var(--lightningcss-light,#34483d)var(--lightningcss-dark,#bfdbaf);--color-line:var(--lightningcss-light,#e1ded4)var(--lightningcss-dark,#364037);--color-meadow:var(--lightningcss-light,#d3eab3)var(--lightningcss-dark,#2d402b);--color-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202821);--color-action:var(--lightningcss-light,#34483d)var(--lightningcss-dark,#bfdbaf);--color-action-hover:var(--lightningcss-light,#292b25)var(--lightningcss-dark,#d4e8c8);--color-on-action:var(--lightningcss-light,#fff)var(--lightningcss-dark,#17231b);--color-danger:var(--lightningcss-light,#b91c1c)var(--lightningcss-dark,#f5a29b);--campus-background:var(--lightningcss-light,#f6f7f4)var(--lightningcss-dark,#151b17);--campus-header:var(--lightningcss-light,#ffffffad)var(--lightningcss-dark,#1b231ded);--campus-border:var(--lightningcss-light,#e1e6dc)var(--lightningcss-dark,#354034);--campus-divider:var(--lightningcss-light,#d8ddd4)var(--lightningcss-dark,#354034);--campus-hover:var(--lightningcss-light,#f0f3ec)var(--lightningcss-dark,#2b362b);--campus-avatar:var(--lightningcss-light,#e8eedf)var(--lightningcss-dark,#34452e);--campus-menu:var(--lightningcss-light,#fffffff5)var(--lightningcss-dark,#222b23f5);--campus-subtle-line:var(--lightningcss-light,#ebede7)var(--lightningcss-dark,#313c30);--campus-caption:var(--lightningcss-light,#66725f)var(--lightningcss-dark,#a5b39b);--campus-quiet:var(--lightningcss-light,#8c9687)var(--lightningcss-dark,#9cad91);--campus-inset:var(--lightningcss-light,#f3f5ef)var(--lightningcss-dark,#172017);--campus-skeleton:var(--lightningcss-light,#e9ede4)var(--lightningcss-dark,#303c2e);--campus-skeleton-copy:var(--lightningcss-light,#edf0e9)var(--lightningcss-dark,#354132);--campus-empty:var(--lightningcss-light,#ffffff7a)var(--lightningcss-dark,#20282180);--campus-empty-icon:var(--lightningcss-light,#eff4e8)var(--lightningcss-dark,#2b3927);--campus-error-background:var(--lightningcss-light,#fff8f2)var(--lightningcss-dark,#34241d);--campus-error-border:var(--lightningcss-light,#e8d5c7)var(--lightningcss-dark,#634733);--campus-error-text:var(--lightningcss-light,#81472a)var(--lightningcss-dark,#eec0a0);--campus-arrow:var(--lightningcss-light,#f7f9f3)var(--lightningcss-dark,#293628);--campus-hover-border:var(--lightningcss-light,#cbd7c3)var(--lightningcss-dark,#667b5a);color:var(--color-ink)}@media (prefers-color-scheme:dark){.campus-app{--lightningcss-light: ;--lightningcss-dark:initial}}html:has(.campus-app){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html:has(.campus-app){--lightningcss-light: ;--lightningcss-dark:initial}}html[data-campus-theme=light] .campus-app{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-campus-theme=light]:has(.campus-app){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-campus-theme=dark] .campus-app{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-campus-theme=dark]:has(.campus-app){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-campus-theme=dark] .campus-app{--campus-logo-filter:brightness(0) invert(1)}.campus-app .brand-logo{filter:var(--campus-logo-filter,none)}.campus-app ::selection{background:var(--color-action);color:var(--color-on-action)}@media (prefers-color-scheme:dark){html[data-campus-theme=system] .campus-app{--campus-logo-filter:brightness(0) invert(1)}}
body:has(.room-viewport){overflow:hidden}.room-viewport{isolation:isolate;background:var(--color-surface);height:100dvh;position:fixed;inset:0;overflow:hidden}.room-stage{width:100%;height:100%;position:relative;overflow:hidden}.room-iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border:0;width:100%;height:100%;display:block}.room-dock-track{inset:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));z-index:40;pointer-events:none;position:absolute}.room-dock-bubble{-webkit-backdrop-filter:blur(20px)saturate(1.5);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#ffffff45,#faf7f021 62%,#e3d4f21f);border:1px solid #fff6;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;transition:opacity .16s,visibility .16s;display:grid;position:absolute;box-shadow:inset 0 1px 2px #fff6,inset 0 -2px 6px #34483d0a,0 6px 22px #161b2026}.room-dock-bubble[aria-expanded=true]{opacity:0;visibility:hidden;pointer-events:none}.room-dock-bubble img{pointer-events:none;opacity:.65}.room-dock-bubble[data-dragging=true]{cursor:grabbing}.room-dock-bubble:focus-visible{outline:3px solid var(--color-leaf);outline-offset:4px}.room-dock-status{background:var(--color-sun);border:1px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;bottom:4px;right:4px}.room-controls-dialog{--room-top-inset:max(16px, env(safe-area-inset-top));--room-bottom-inset:max(16px, env(safe-area-inset-bottom));--room-control-y:calc(-100% * var(--room-dock-fraction));inset:0;top:calc(var(--room-top-inset) + (100dvh - var(--room-top-inset) - var(--room-bottom-inset)) * var(--room-dock-fraction));width:min(360px,100vw - 32px);max-height:calc(100dvh - var(--room-top-inset) - var(--room-bottom-inset));margin-block:0;margin-inline:auto max(16px, env(safe-area-inset-right));transform:translateY(var(--room-control-y));border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink);border-radius:32px;padding:0;position:fixed;bottom:auto;overflow-y:auto;box-shadow:0 25px 90px #161b2033}.room-controls-dialog[data-side=left]{margin-inline:max(16px, env(safe-area-inset-left)) auto}.room-controls-content{padding:24px}.room-controls-dialog::backdrop{background:#151b2529}
.room-surface{background:var(--color-surface);width:100%;height:100%;overflow:hidden}html:has(.campus-app)::view-transition{pointer-events:none}@media (prefers-reduced-motion:no-preference){::view-transition-group(.room-morph){z-index:30;animation-duration:.56s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-image-pair(.room-morph){isolation:isolate}::view-transition-old(.room-morph){object-fit:cover;height:100%;animation:.22s ease-out both room-fade-out;overflow:clip}::view-transition-new(.room-morph){object-fit:cover;height:100%;animation:.34s ease-out 80ms both room-fade-in;overflow:clip}html:active-view-transition-type(room-enter)::view-transition-image-pair(.room-morph){animation:.56s cubic-bezier(.22,1,.36,1) both room-corners-open}html:active-view-transition-type(room-exit)::view-transition-image-pair(.room-morph){animation:.52s cubic-bezier(.22,1,.36,1) both room-corners-close}::view-transition-image-pair(.room-morph){overflow:clip}::view-transition-new(.room-arrive){animation:.5s cubic-bezier(.22,1,.36,1) both room-arrive}::view-transition-old(.room-leave){animation:.34s cubic-bezier(.22,1,.36,1) both room-leave}::view-transition-old(.campus-away){transform-origin:50%;animation:.28s cubic-bezier(.22,1,.36,1) both campus-away}::view-transition-new(.campus-return){transform-origin:50%;animation:.5s cubic-bezier(.22,1,.36,1) both campus-return}::view-transition-old(.campus-chrome-out){animation:.16s ease-out both room-fade-out}::view-transition-new(.campus-chrome-in){animation:.3s ease-out 80ms both room-fade-in}.room-stage{animation:.36s cubic-bezier(.22,1,.36,1) both room-content-in}}@keyframes room-fade-in{0%{opacity:0}to{opacity:1}}@keyframes room-fade-out{0%{opacity:1}to{opacity:0}}@keyframes room-corners-open{0%{border-radius:24px}to{border-radius:0}}@keyframes room-corners-close{0%{border-radius:0}to{border-radius:24px}}@keyframes room-arrive{0%{opacity:0;border-radius:24px;transform:translateY(18px)scale(.98)}to{opacity:1;border-radius:0;transform:translateY(0)scale(1)}}@keyframes room-leave{0%{opacity:1;transform:scale(1)}to{opacity:0;border-radius:24px;transform:translateY(14px)scale(.96)}}@keyframes campus-away{0%{opacity:1;transform:scale(1)}to{opacity:.15;transform:scale(.97)}}@keyframes campus-return{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes room-content-in{0%{opacity:0}to{opacity:1}}@supports not (view-transition-name:room){@media (prefers-reduced-motion:no-preference){.room-surface{animation:.5s cubic-bezier(.22,1,.36,1) both room-arrive}}}@media (prefers-reduced-motion:reduce){html:has(.campus-app)::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}html:has(.campus-app)::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}html:has(.campus-app)::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}html:has(.campus-app)::view-transition-image-pair(*){animation-duration:0s!important;animation-delay:0s!important}}
