:root{--bg:#f3f1e8;--surface:#fffefa;--surface-raised:#faf8f1;--surface-quiet:#ebe7da;--surface-deep:#ded7c8;--ink:#22221e;--text:#3a3832;--muted:#746f64;--muted-strong:#5e594f;--line:#d9d2c2;--line-strong:#bfb6a4;--accent:#65775b;--accent-soft:#e5eadf;--accent-ink:#2f3f2a;--good:#55704b;--warn:#906f36;--bad:#9a5247;--focus:#4f6047;--event-palette-1:#6f8f72;--event-palette-2:#3f7f9f;--event-palette-3:#816fa8;--event-palette-4:#b0695b;--event-palette-5:#b08a42;--event-palette-6:#7a7469;--event-palette-7:#4f6047;--event-palette-8:#8a5a80;--shadow-card:0 8px 24px #23211c0f;--shadow-popover:0 16px 40px #23211c29;--shadow-modal:0 28px 80px #1e1c183d;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--font-heading:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--type-xs:12px;--type-sm:13px;--type-md:14px;--type-lg:16px;--type-xl:20px;--type-2xl:28px;--leading-tight:1.2;--leading-normal:1.5;--motion-fast:.12s;--motion-standard:.18s;--motion-slow:.24s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--sidebar-width:268px;--sidebar-track:var(--sidebar-width);--control-height-sm:32px;--control-height-md:38px;--settings-content-max:680px;--settings-control-width:clamp(220px, 34vw, 300px);--settings-row-gap:var(--space-4);--settings-row-min-height:48px;--settings-row-padding:var(--space-2) var(--space-3);--settings-calendar-label-width:360px;--settings-profile-label-width:220px;--compact-result-width:520px;--theme-field-width:320px;--theme-editor-width:680px;--week-time-axis-width:40px;--calendar-hour-height:72px;--heading-font:var(--font-heading);color:var(--text);background:var(--bg);font-family:var(--font-body);font-size:var(--type-md);line-height:var(--leading-normal);letter-spacing:0}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);min-width:0;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, opacity var(--motion-fast) ease}button:disabled{cursor:not-allowed;opacity:.52}.boot-screen,.auth-shell{min-height:100vh;padding:var(--space-6);background:var(--bg);place-items:center;display:grid}.auth-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);width:min(390px,100%);box-shadow:var(--shadow-card);padding:var(--space-6)}.auth-heading,.brand{align-items:center;gap:var(--space-3);display:flex}.auth-heading h1,.section-heading h1{color:var(--ink);font-family:var(--font-heading);font-size:var(--type-2xl);line-height:var(--leading-tight);margin:0;font-weight:500}.auth-heading p,.section-heading p,.brand small,.muted{color:var(--muted)}.brand{color:var(--text);text-align:left;background:0 0;border:0;min-width:0;padding:0}.brand-title{color:var(--ink);font-family:var(--font-heading);font-size:var(--type-xl);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;line-height:1}.brand-title:hover{color:var(--text)}.mini-assignment strong{font-family:var(--font-heading);font-weight:500;display:block}.brand small{max-width:380px;margin-top:var(--space-1);text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-xs);display:none;overflow:hidden}.brand-logo-link{border-radius:var(--radius-md);flex:none;display:block}.brand-logo-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.brand-logo{border-radius:var(--radius-md);object-fit:contain;background:var(--ink);flex:none;width:36px;height:36px;display:block}.hub-shell{background:linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%);min-height:100vh;color:var(--text);grid-template-rows:auto 1fr;display:grid}.hub-topbar{z-index:40;align-items:center;gap:var(--space-5);min-height:72px;padding:0 clamp(var(--space-4), 3vw, var(--space-8));border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:auto 1fr auto;display:grid;position:relative;top:0}.hub-brand,.hub-nav,.hub-actions,.hub-auth-link,.product-feature-link,.product-action,.platform-pill{align-items:center;display:flex}.hub-brand{gap:var(--space-2);color:var(--ink);font-family:var(--font-heading);font-size:var(--type-xl);text-decoration:none}.hub-nav{gap:var(--space-3);min-width:0}.hub-nav-menu{position:relative}.hub-nav-menu:after{content:"";height:14px;position:absolute;top:100%;left:-8px;right:-8px}.hub-nav-link,.hub-auth-link{min-height:var(--control-height-sm);border-radius:var(--radius-md);color:var(--muted-strong);padding:0 var(--space-3);font-size:var(--type-sm);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.hub-nav-link{gap:var(--space-1);position:relative}.hub-nav-link:after{left:var(--space-3);right:var(--space-3);content:"";opacity:0;transform-origin:50%;height:1px;transition:opacity var(--motion-fast) ease, transform var(--motion-fast) ease;background:currentColor;position:absolute;bottom:4px;transform:scaleX(.72)}.hub-nav-link:hover,.hub-nav-menu:focus-within .hub-nav-link,.hub-nav-menu:hover .hub-nav-link{color:var(--ink)}.hub-nav-link:hover:after,.hub-nav-link.active:after,.hub-nav-menu:focus-within .hub-nav-link:after,.hub-nav-menu:hover .hub-nav-link:after{opacity:1;transform:scaleX(1)}.hub-nav-link.active{color:var(--ink)}.products-trigger{color:var(--muted-strong);background:0 0;border-color:#0000}.products-trigger:after{display:none}.products-trigger>span{position:relative}.products-trigger>span:after{content:"";opacity:0;transform-origin:50%;height:1px;transition:opacity var(--motion-fast) ease, transform var(--motion-fast) ease;background:currentColor;position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(.72)}.products-trigger:hover>span:after,.products-trigger.active>span:after,.hub-nav-menu:focus-within .products-trigger>span:after,.hub-nav-menu:hover .products-trigger>span:after{opacity:1;transform:scaleX(1)}.products-trigger svg{transition:transform var(--motion-fast) ease;transform:translateY(1px)rotate(0)}.hub-nav-menu:focus-within .products-trigger svg,.hub-nav-menu:hover .products-trigger svg{transform:translateY(1px)rotate(180deg)}.hub-dropdown{z-index:50;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:156px;box-shadow:var(--shadow-popover);padding:var(--space-1);opacity:0;pointer-events:none;transition:opacity var(--motion-fast) ease, transform var(--motion-fast) ease;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px)}.hub-nav-menu:hover .hub-dropdown,.hub-nav-menu:focus-within .hub-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.product-feature-link{color:var(--ink);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--type-sm);background:0 0;border:1px solid #0000;line-height:1.2;text-decoration:none}.product-feature-link:hover{border-color:var(--line);background:var(--surface-raised)}.hub-actions{justify-content:flex-end;gap:var(--space-2)}.hub-auth-link{gap:var(--space-2);border-color:var(--line);background:var(--surface)}.hub-auth-link.primary,.product-action.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}.hub-auth-link:hover{border-color:var(--accent);color:var(--ink)}.hub-auth-link.primary:hover,.product-action.primary:hover{background:var(--accent-ink);color:var(--surface)}.hub-account{position:relative}.hub-profile-menu{left:auto;right:0;top:calc(100% + var(--space-2))}.hub-error{top:84px;right:var(--space-6);z-index:60;max-width:420px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--bad);box-shadow:var(--shadow-popover);font-size:var(--type-sm);background:#fff5f2;border:1px solid #9a524738;margin:0;position:fixed}.hub-hero{justify-self:center;align-items:center;gap:clamp(var(--space-8), 5vw, 64px);width:min(880px,100% - 64px);min-height:calc(100vh - 72px);padding:var(--space-12) 0 88px;grid-template-columns:minmax(220px,320px) minmax(280px,1fr);display:grid;position:relative;overflow:hidden}.hub-copy h1{color:var(--ink);font-family:var(--font-heading);font-weight:500;line-height:.95}.hub-copy{align-self:center;max-width:520px}.hub-copy p,.product-hero p{margin:var(--space-5) 0 0;color:var(--muted-strong);font-size:var(--type-lg);line-height:1.55}.hub-copy h1{margin:0;font-size:clamp(38px,4.6vw,64px);line-height:1.03}.treg-logo-motion{aspect-ratio:1;justify-self:center;place-items:center;width:min(26vw,260px);min-width:220px;display:grid}.logo-motion-logo{border-radius:var(--radius-md);object-fit:contain;width:100%;height:100%}.treg-logo-motion,.hub-copy h1,.hub-copy p{opacity:0;animation:hubHeroReveal .64s var(--ease-standard) forwards;transform:translateY(14px)}.treg-logo-motion{animation-name:hubLogoReveal;animation-duration:.72s;transform:translateY(18px)scale(.96)}.hub-copy h1{animation-delay:.12s}.hub-copy p{animation-delay:.26s}.hub-footer-note{left:50%;bottom:var(--space-8);color:var(--muted);font-size:var(--type-xs);margin:0;position:absolute;transform:translate(-50%)}.product-shell{background:linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%)}.product-hero{width:min(860px,100% - 48px);padding:clamp(var(--space-10), 10vw, 120px) 0;place-self:center}.product-showcase-decal{width:min(760px,100%);height:auto;margin-bottom:var(--space-8);-webkit-user-select:none;user-select:none;max-width:none;display:block}.product-hero h1{max-width:620px;color:var(--ink);font-family:var(--font-heading);margin:0;font-size:clamp(44px,7vw,84px);font-weight:500;line-height:1}.product-hero p{width:min(520px,100%);max-width:520px}.product-benefits{gap:var(--space-4) var(--space-6);width:min(680px,100%);margin:var(--space-6) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.product-benefits li{gap:var(--space-1);border-top:1px solid var(--line);padding-top:var(--space-3);display:grid}.product-benefits strong{color:var(--ink);font-size:var(--type-sm);font-weight:600}.product-benefits span{color:var(--muted-strong);font-size:var(--type-sm);line-height:1.55}.hub-info-page{width:min(720px,100% - 48px);padding:clamp(var(--space-10), 10vw, 120px) 0;place-self:center}.hub-info-page h1{color:var(--ink);font-family:var(--font-heading);margin:0;font-size:clamp(44px,7vw,84px);font-weight:500;line-height:1}.hub-info-page p{max-width:560px;margin:var(--space-5) 0 0;color:var(--muted-strong);font-size:var(--type-lg);line-height:1.55}.hub-info-page .product-action{margin-top:var(--space-6);display:inline-flex}.contact-form{gap:var(--space-4);width:min(620px,100%);margin-top:var(--space-8);display:grid}.contact-form-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contact-form label{gap:var(--space-2);color:var(--ink);font-size:var(--type-sm);font-weight:500;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--text);padding:var(--space-3);box-shadow:none}.contact-form input{min-height:44px}.contact-form textarea{resize:vertical;min-height:156px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #65775b29}.contact-submit{justify-self:start}.product-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.product-action{gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-height:44px;color:var(--ink);padding:0 var(--space-4);text-decoration:none}.product-action:hover{border-color:var(--accent)}.product-platforms{gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.platform-pill{gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-full);min-height:30px;color:var(--muted-strong);padding:0 var(--space-3);font-size:var(--type-xs)}.platform-pill.active{border-color:var(--line-strong);color:var(--text)}.hub-modal-backdrop{z-index:90}.hub-auth-dialog{width:min(430px,100vw - 32px)}.auth-shell-modal{background:0 0;min-height:auto;padding:0}.auth-close-button{margin-left:auto}.hub-settings-panel{width:min(720px,100vw - 32px);max-height:calc(100vh - 48px);overflow:auto}.hub-settings-panel .profile-settings-block{box-shadow:none;border:0;padding:0}.hub-settings-panel .profile-settings-heading{display:none}@media (width<=880px){.hub-topbar{gap:var(--space-3);min-height:auto;padding-block:var(--space-3);grid-template-columns:1fr auto}.hub-nav{order:3;grid-column:1/-1;padding-bottom:2px;overflow-x:auto}.hub-actions{align-self:start}.hub-auth-link span{display:none}.hub-dropdown{top:114px;left:var(--space-4);right:var(--space-4);width:auto;min-width:0;position:fixed}.hub-hero{gap:var(--space-6);width:min(620px,100% - 32px);min-height:calc(100vh - 122px);padding-top:var(--space-8);grid-template-columns:1fr}.treg-logo-motion{width:min(64vw,260px);min-width:180px}.hub-copy{max-width:620px}.hub-copy h1{font-size:clamp(34px,12vw,58px)}}@media (width<=560px){.hub-topbar{padding-inline:var(--space-3)}.hub-brand span{font-size:var(--type-lg)}.hub-nav{gap:var(--space-1)}.hub-nav-link{padding-inline:var(--space-2)}.hub-hero{padding-inline:var(--space-4);padding-bottom:84px}.product-hero{width:calc(100vw - 32px);margin-left:var(--space-4);padding-top:var(--space-8);justify-self:start}.product-showcase-decal{width:min(620px,100%);margin-bottom:var(--space-6)}.product-hero h1,.product-hero p,.product-benefits,.product-actions,.product-platforms{width:min(100vw - 32px,358px);max-width:min(100vw - 32px,358px)}.product-benefits{gap:var(--space-3);grid-template-columns:1fr}.product-actions{display:grid}.contact-form-grid{grid-template-columns:1fr}.product-action{justify-content:center;width:100%}.contact-submit{justify-self:stretch}.hub-settings-panel{width:calc(100vw - 20px)}}.app-shell{width:100%;padding:var(--space-3) var(--space-4) var(--space-4) 0;margin:0}.app-shell.sidebar-collapsed{--sidebar-track:0px}.app-header{align-items:center;gap:var(--space-4);min-height:48px;margin-bottom:var(--space-4);grid-template-columns:auto auto minmax(220px,1fr) auto;display:grid}.has-sidebar .app-header{grid-template-columns:40px calc(var(--sidebar-width) - 40px - var(--space-4)) minmax(220px, 1fr) auto}.header-actions,.toolbar,.button-row,.filters{align-items:center;gap:var(--space-2);display:flex}.header-actions{justify-content:flex-end;gap:var(--space-1);min-width:0}.header-search-slot{justify-content:flex-start;min-width:0;display:flex}.workspace{grid-template-columns:var(--sidebar-track) minmax(0, 1fr);justify-content:stretch;align-items:stretch;gap:var(--space-4);display:grid}.sidebar-collapsed .workspace{grid-template-columns:var(--sidebar-track) minmax(0, 1fr)}.main-surface,.sidebar{background:var(--surface);box-shadow:none;border:0}.main-surface{z-index:1;min-width:0;min-height:calc(100vh - 96px);padding:var(--space-4);contain:layout paint;border-radius:0;position:relative}.sidebar{z-index:5;gap:var(--space-4);width:var(--sidebar-width);min-height:calc(100vh - 76px);padding:var(--space-4);opacity:1;contain:layout;border-left:0;border-right:0;border-radius:0;align-content:start;margin-left:0;display:grid;position:relative;overflow:visible}.sidebar[aria-hidden=true]{pointer-events:none;opacity:0}.sidebar-section h2,.settings-block h2,.assignment-list h2,.modal-header h2{margin:0 0 var(--space-2);color:var(--ink);font-family:var(--font-heading);font-size:var(--type-lg);line-height:var(--leading-tight);font-weight:500}.settings-block h2{margin-bottom:var(--space-1)}.sidebar-section+.sidebar-section{padding-top:var(--space-4);border-top:0}.sidebar-section-heading{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.sidebar-section-heading h2{margin:0}.calendar-add-button{background:0 0;border-color:#0000;flex:none}.section-heading{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.segmented{gap:var(--space-1);margin:var(--space-6) 0;padding:var(--space-1);border-radius:var(--radius-md);background:var(--surface-quiet);border:0;grid-template-columns:1fr 1fr;display:grid}.segmented.compact{min-width:320px;margin:var(--space-2) 0 var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.segmented.no-margin{margin:0}.segmented button{border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--muted);background:0 0;border:0}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #23211c14}.auth-mode-switch{gap:var(--space-5);margin:var(--space-5) 0 var(--space-4);border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:0}.auth-mode-switch button{padding:0 0 var(--space-2);color:var(--muted);border-radius:0;position:relative}.auth-mode-switch button.active{color:var(--ink);box-shadow:none;background:0 0}.auth-mode-switch button.active:after{border-radius:var(--radius-full);background:var(--ink);content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0}.view-switcher{align-items:center;gap:var(--space-4);min-height:40px;padding:0 var(--space-2);display:flex}.view-switcher.is-placeholder{visibility:hidden;pointer-events:none}.view-switcher button.reserved{visibility:hidden;pointer-events:none;width:var(--space-1);overflow:hidden}.view-switcher button{color:var(--muted);padding:var(--space-2) 0;background:0 0;border:0;position:relative}.view-switcher button:hover{color:var(--text)}.view-switcher button:after{left:0;bottom:var(--space-1);opacity:0;content:"";background:currentColor;width:100%;height:1px;position:absolute}.view-switcher button.active{color:var(--ink)}.view-switcher button.active:after{opacity:1}.sync-pill{align-items:center;gap:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-full);max-width:132px;min-height:28px;padding:0 var(--space-2);color:var(--muted-strong);background:var(--surface-raised);font-size:var(--type-xs);white-space:nowrap;display:inline-flex}.sync-pill span{text-overflow:ellipsis;overflow:hidden}.sync-synced{color:var(--good);background:#55704b14;border-color:#55704b4d}.sync-pending{color:var(--warn);background:#906f3617;border-color:#906f3657}.sync-offline{color:var(--bad);background:#9a524714;border-color:#9a52474d}label{gap:var(--space-2);color:var(--muted-strong);font-size:var(--type-xs);font-weight:500;display:grid}input,select,textarea{border:0;border-bottom:1px solid var(--line);width:100%;min-width:0;color:var(--text);min-height:40px;padding:var(--space-2) var(--space-3);background:0 0;border-radius:0;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 1px 0 0 var(--focus)}input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--focus);transition:background-color 9999s ease-out}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--focus);transition:background-color 9999s ease-out}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--focus);transition:background-color 9999s ease-out}input:-webkit-autofill:active{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--focus);transition:background-color 9999s ease-out}.auth-form input:-webkit-autofill{box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--line)}.auth-form input:-webkit-autofill:hover{box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--line)}.auth-form input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--line)}.auth-form input:-webkit-autofill:active{box-shadow:0 0 0 1000px var(--surface) inset, 0 1px 0 0 var(--line)}textarea{resize:vertical;line-height:var(--leading-normal)}.event-description-textarea{min-height:40px;max-height:calc((1em * 1.45 * 4) + (var(--space-2) * 2) + 2px);resize:none;overscroll-behavior:contain;scrollbar-width:thin;transition:height var(--motion-fast) ease;overflow-y:hidden}.primary-button,.text-button,.icon-button,.sidebar-toggle,.profile-button,.avatar-upload,.logout-button,.profile-save-button,.danger-button,.mini-nav,.settings-link,.calendar-switch{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);min-height:36px;padding:0 var(--space-3);background:var(--surface);color:var(--text);display:inline-flex}.primary-button{border-color:var(--ink);background:var(--ink);color:var(--surface)}.text-button.active{border-color:var(--line-strong);background:var(--surface-quiet);color:var(--ink)}.auth-label-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.auth-password-toggle{border-radius:var(--radius-full);width:22px;min-height:22px;color:var(--muted-strong);background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.auth-password-toggle:hover{background:var(--surface-quiet);color:var(--ink)}.auth-password-toggle:focus,.auth-password-toggle:focus-visible{box-shadow:none;border-color:#0000;outline:none}.auth-submit-button{border-radius:var(--radius-md);border-color:var(--line-strong);background:var(--surface-quiet);width:100%;min-height:42px;color:var(--ink);box-shadow:none}.auth-submit-button:hover:not(:disabled){border-color:var(--ink);background:var(--surface-deep)}.icon-button,.mini-nav{width:36px;padding:0}.sidebar-toggle{background:0 0;border-color:#0000;width:40px;min-height:40px;padding:0}.sidebar-toggle:hover{background:var(--surface-quiet);border-color:var(--line)}.profile-button{border-radius:var(--radius-full);background:0 0;border-color:#0000;width:40px;max-width:40px;min-height:40px;padding:0}.profile-button:hover,.profile-button.active{border-color:var(--line);background:var(--surface-quiet)}.profile-button:active{border-color:var(--line-strong);background:var(--surface-deep)}.profile-label{font-size:var(--type-xs);color:var(--text);min-width:0;max-width:clamp(88px,10vw,148px);display:inline-block;position:relative}.profile-label-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.top-search{border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface);width:min(100%,clamp(280px,28vw,420px));min-height:44px;transition:border-color var(--motion-standard) ease, background-color var(--motion-standard) ease, box-shadow var(--motion-standard) ease;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;display:grid;overflow:hidden;box-shadow:0 1px 2px #23211c0a}.top-search.active{background:var(--surface);border-color:var(--ink);box-shadow:0 0 0 3px #24231f14}.top-search .search-trigger{width:42px;min-height:42px;color:var(--ink);background:0 0;border:0}.top-search .search-trigger:focus,.top-search .search-trigger:focus-visible{box-shadow:none;outline:none}.top-search input{min-width:0;min-height:42px;box-shadow:none;text-align:left;background:0 0;border:0;padding:0}.top-search input::placeholder{color:var(--muted);opacity:1}.top-search:not(.active) input{opacity:1}.profile-menu-wrap{display:inline-flex;position:relative}.profile-menu{top:calc(100% + var(--space-2));z-index:30;gap:var(--space-1);width:min(280px,100vw - 24px);padding:var(--space-3) 0;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-modal);border:0;display:grid;position:absolute;right:0}.profile-menu-item{align-items:center;gap:var(--space-3);width:100%;min-height:38px;color:var(--text);padding:var(--space-3) var(--space-5);text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:36px minmax(0,1fr);display:grid}.profile-menu-item>svg,.profile-menu-item>.avatar{justify-self:center}.profile-menu-item>svg{width:19px;height:19px}.profile-menu-item:hover{background:#22221e0d}.profile-menu-item:active{background:#22221e14}.profile-menu-item.danger{color:var(--bad)}.profile-menu-account{align-items:center;gap:var(--space-3);grid-template-columns:36px minmax(0,1fr);min-height:68px}.profile-menu-account-text{gap:2px;min-width:0;display:grid}.profile-menu-account-text>span{color:var(--text)}.profile-menu-account-text small{color:var(--muted-strong);font-size:var(--type-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-menu-separator{height:1px;margin:var(--space-2) 0;background:var(--line)}.mini-nav{background:0 0;border-color:#0000;width:28px;min-height:28px}.mini-nav:hover,.calendar-add-button:hover{background:var(--surface-quiet);border-color:#0000}.calendar-navigation .icon-button{background:0 0;border-color:#0000}.calendar-navigation .icon-button:hover{background:var(--surface-quiet);border-color:#0000}.auth-form,.settings-block,.assignment-detail{gap:var(--space-4);display:grid}.settings-block{gap:var(--space-3)}.theme-tool-section{justify-items:start;gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-4);display:grid}.theme-tool-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.theme-tool-section h3,.theme-token-group h4{color:var(--ink);font-size:var(--type-sm);margin:0;font-weight:500}.theme-actions{gap:var(--space-2);padding-bottom:var(--space-2);flex-wrap:wrap;display:flex}.theme-studio-toggle{min-height:36px}.theme-studio-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.theme-studio{gap:var(--space-3);width:100%;display:grid}.theme-studio-topline{max-width:min(100%, var(--theme-field-width));display:grid}.theme-token-group{gap:var(--space-2);display:grid}.theme-token-grid{max-width:min(100%, var(--theme-editor-width));gap:var(--space-1);grid-template-columns:minmax(0,1fr);display:grid}.theme-token-row{align-items:center;gap:var(--space-2);grid-template-columns:minmax(128px,180px) 34px minmax(88px,116px) minmax(190px,1fr);min-width:0;min-height:40px;display:grid}.theme-token-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.theme-token-row input[type=color]{border:0;width:34px;min-height:30px;padding:2px}.theme-token-hex,.theme-rgb-editor input{min-height:32px;padding-inline:var(--space-2);border-radius:var(--radius-sm);background:var(--surface-quiet);border-bottom-color:#0000}.theme-rgb-editor{gap:var(--space-1);grid-template-columns:repeat(3,minmax(54px,1fr));min-width:0;display:grid}.settings-block .theme-rgb-editor label{min-width:0;color:var(--muted);font-size:var(--type-xs);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px;display:grid}.settings-block .theme-rgb-editor span{font-size:11px;font-weight:600}.settings-block .theme-rgb-editor input{text-align:center;min-width:0;padding-inline:6px}.theme-message{margin:0}.settings-block .theme-save-button{border:1px solid var(--ink);border-radius:var(--radius-md);background:var(--ink);min-height:36px;color:var(--surface);padding:0 var(--space-3);justify-self:start;text-decoration:none}.settings-block .theme-save-button:hover{background:var(--ink);box-shadow:none;text-decoration:none}.settings-block label,.settings-block select,.settings-block input,.settings-block textarea,.settings-block button{font-size:14px}.settings-block select{width:var(--settings-control-width);min-width:0;max-width:100%;min-height:var(--control-height-md);border:1px solid var(--line);border-radius:var(--radius-md);appearance:none;background-color:var(--surface);padding:8px 38px 8px var(--space-3);text-align:left;text-align-last:left;vertical-align:middle;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;line-height:20px}.settings-block select option{text-align:center}.settings-block select:focus{border-color:var(--line-strong);box-shadow:0 0 0 2px #24231f14}.checkbox-row{align-items:center;gap:var(--space-2);min-height:28px;color:var(--text);grid-template-columns:none;display:flex}.calendar-membership{gap:var(--space-2);border:0;min-width:0;margin:0;padding:0;display:grid}.calendar-membership legend{margin:0 0 var(--space-1);color:var(--muted-strong);font-size:var(--type-xs);font-weight:500}.calendar-membership label{align-items:center;gap:var(--space-2);min-height:28px;color:var(--text);display:flex}.calendar-membership span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.checkbox-row input,.calendar-membership input{appearance:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:18px;height:18px;box-shadow:none;color:var(--ink);transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease;flex:none;position:relative;overflow:hidden}.settings-toggle-row>input{appearance:none;width:1px;height:1px;box-shadow:none;color:var(--ink);opacity:0;background:0 0;border:0;border-radius:0;flex:none;margin:0;position:absolute;overflow:hidden}.checkbox-row input:focus,.calendar-membership input:focus{outline:none;box-shadow:0 0 0 3px #24231f1f}.checkbox-row input:before,.calendar-membership input:before,.calendar-select-box:before{opacity:0;content:"";border-radius:calc(var(--radius-sm) - 1px);transform-origin:50%;transition:opacity var(--motion-fast) ease, transform var(--motion-fast) ease;background:currentColor;border:0;position:absolute;inset:4px;transform:scale(.45)}.checkbox-row input:checked,.calendar-membership input:checked,.calendar-select-box.selected{border-color:var(--line-strong);background:var(--surface-quiet)}.checkbox-row input:checked:before,.calendar-membership input:checked:before,.calendar-select-box.selected:before{opacity:1;transform:scale(1)}.mini-month{gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-2);background:var(--surface-raised);margin:0;display:grid}.mini-month-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mini-month-header strong,.year-month h2{font-family:var(--font-heading);font-weight:500}.mini-month-header span{gap:var(--space-1);display:flex}.mini-weekdays,.mini-month-grid{gap:var(--space-1);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mini-weekdays span{padding:var(--space-1) 0;color:var(--muted);text-align:center;font-size:var(--type-xs);font-weight:500}.mini-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text);font-size:var(--type-xs);background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.mini-day.dim{color:var(--line-strong)}.mini-day.today{border-color:var(--line-strong);background:var(--surface-quiet)}.mini-day.selected{background:var(--ink);color:var(--surface)}.mini-day i{border-radius:var(--radius-full);opacity:.78;background:currentColor;width:12px;height:2px;position:absolute;bottom:3px}.mini-day.selected i{background:var(--surface);opacity:.9}.calendar-row,.calendar-switch,.settings-link{width:100%;position:relative}.calendar-row{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);grid-template-columns:18px minmax(0,1fr);display:grid}.calendar-switch,.settings-link{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;min-height:36px;padding:0}.calendar-switch{cursor:pointer;-webkit-user-select:none;user-select:none}.calendar-switch:active{cursor:grabbing;background:#22221e14}.calendar-row:hover,.calendar-switch:hover,.settings-link:hover{background:#22221e0a}.calendar-row:active,.settings-link:active{background:#22221e14}.calendar-row:hover .calendar-switch{background:0 0}.calendar-switch.active,.settings-link.active{background:0 0;border-color:#0000}.calendar-switch:after,.settings-link:after{display:none}.nav-label{position:relative}.nav-label:after{content:none;display:none}.calendar-switch.selected .nav-label:after,.settings-link.active .nav-label:after{display:none}.calendar-select-box{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:18px;height:18px;color:var(--ink);cursor:pointer;transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease;flex:none;padding:0;display:inline-block;position:relative;overflow:hidden}.calendar-select-box:focus-visible{outline:none;box-shadow:0 0 0 3px #24231f1f}.calendar-drop-line{left:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);background:var(--ink);opacity:0;height:2px;transition:opacity var(--motion-fast) ease, transform var(--motion-fast) ease;pointer-events:none;position:absolute;top:-2px;transform:scaleX(.82)}.calendar-switch:hover .calendar-drop-line{opacity:.45;transform:scaleX(1)}.calendar-context-menu{z-index:80;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:148px;box-shadow:var(--shadow-popover);padding:var(--space-1);display:grid;position:absolute}.calendar-context-menu button{border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--text);text-align:left;background:0 0;border:0;justify-content:flex-start}.calendar-context-menu button:hover{background:var(--surface-quiet)}.calendar-context-menu button.danger{color:var(--bad)}.calendar-swatch{border-radius:var(--radius-sm);background:var(--muted);width:10px;height:10px}.calendar-swatch.canvas{background:var(--accent)}.filters{margin-bottom:var(--space-4)}.search-box{flex:1;min-width:210px;position:relative}.search-box svg{left:var(--space-3);bottom:var(--space-3);color:var(--muted);position:absolute}.search-box input{padding-left:var(--space-10)}.calendar-workspace{gap:var(--space-3);overflow-anchor:none;grid-template-rows:auto minmax(0,1fr);min-height:calc(100vh - 180px);display:grid}.week-calendar{border:0;border-top:1px solid var(--line);background:var(--surface);contain:layout paint;isolation:isolate;overflow-anchor:none;border-radius:0;flex-direction:column;min-height:0;display:flex;overflow:hidden}.week-header{z-index:2;grid-template-columns:var(--week-time-axis-width) repeat(7, minmax(0, 1fr));border-bottom:1px solid var(--line);background:var(--surface);display:grid;position:relative}.week-day-heading{min-width:0;padding:var(--space-3);text-align:center;border-left:1px solid #d9d2c294}.week-day-heading strong,.week-day-heading span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.week-day-heading strong{color:var(--ink);font-size:var(--type-xs);font-weight:500}.week-day-heading span{color:var(--muted);font-size:var(--type-xs)}.week-day-heading.today{background:#22221e0a}.week-scroll{flex:1;min-height:0;max-height:none;overflow-y:visible}.week-grid-body{grid-template-columns:var(--week-time-axis-width) repeat(7, minmax(0, 1fr));min-height:calc(var(--calendar-hour-height) * 24);display:grid}.week-calendar.day-mode .week-header,.week-calendar.day-mode .week-grid-body{grid-template-columns:var(--week-time-axis-width) minmax(0, 1fr)}.week-time-axis{grid-template-rows:repeat(24, var(--calendar-hour-height));display:grid}.week-time-axis time{padding:0 var(--space-1);color:var(--muted);font-size:var(--type-xs);text-align:right;position:relative}.week-time-axis time span{top:0;right:var(--space-2);line-height:1;position:absolute;transform:translateY(-50%)}.week-time-axis time:first-child span{display:none}.week-day-column{background:var(--surface);touch-action:none;-webkit-user-select:none;user-select:none;border-left:1px solid #d9d2c294;min-width:0;position:relative}.week-grid-line{height:var(--calendar-hour-height);pointer-events:none;border-top:1px solid #d9d2c28a;display:block}.week-hour-row{grid-template-columns:var(--week-time-axis-width) repeat(7, minmax(0, 1fr));min-height:var(--calendar-hour-height);display:grid}.week-hour-row time{padding:var(--space-2) var(--space-1);color:var(--muted);font-size:var(--type-xs);text-align:center;border-top:1px solid #d9d2c28a;place-items:start center;display:grid}.week-slot{min-width:0;padding:var(--space-1);background:var(--surface);border-top:1px solid #d9d2c28a;border-left:1px solid #d9d2c28a;position:relative}.draft-event-card{z-index:4;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);min-height:24px;color:var(--text);padding:var(--space-2);text-align:left;font-size:var(--type-xs);align-items:center;font-weight:500;display:flex;position:absolute}.draft-event-card.drag-selection{border-color:var(--ink);background:var(--accent-soft);pointer-events:none;box-shadow:inset 0 0 0 1px #22221e29}.week-event-block{z-index:3;min-height:var(--event-min-height,28px);border:0;border-left:4px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text);padding:var(--space-1) var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;contain:layout paint;grid-template-columns:minmax(0,1fr);align-items:center;display:grid;position:absolute;overflow:hidden;box-shadow:0 2px 8px #23211c14}.week-event-block:active{cursor:grabbing}.week-event-block.completed{border-color:var(--line);background:var(--surface-quiet);color:var(--muted);box-shadow:none}.week-event-content{pointer-events:none;gap:0;min-width:0;display:grid}.week-event-content strong,.week-event-content span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.week-event-content strong{color:var(--ink);font-size:var(--type-xs);font-weight:500}.week-event-course{color:var(--muted-strong);font-size:11px}.week-event-block.completed .week-event-content strong,.week-event-block.completed .week-event-content span{color:var(--muted)}.completed-strike .week-event-block.completed:before,.completed-strike .assignment-card.completed:before{content:"";inset:var(--space-1);z-index:1;border-radius:calc(var(--radius-md) - 2px);pointer-events:none;background:linear-gradient(to bottom right,#0000 calc(50% - 1px),#5e594f9e calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(to top right,#0000 calc(50% - 1px),#5e594f9e calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px));position:absolute}.week-event-content span{color:var(--muted);font-size:var(--type-xs)}.week-event-block.short{padding-top:var(--space-1);align-items:start}.week-event-block.short .week-event-content{gap:0}.week-event-block.short .week-event-content strong{font-size:var(--type-xs)}.week-event-block.tiny{--event-min-height:36px;padding-top:var(--space-1);padding-bottom:var(--space-2);align-items:center}.week-event-block.tiny .week-event-content{align-content:center;gap:1px;min-width:0;display:grid}.week-event-block.tiny .week-event-content strong{font-size:var(--type-xs);min-width:0}.week-event-block.tiny .week-event-content .week-event-time{min-width:0;font-size:var(--type-xs);text-overflow:clip;white-space:normal;line-height:1.15;display:block;overflow:visible}.week-event-block.tiny .week-event-course{display:none}.week-event-resize{cursor:ns-resize;height:13px;position:absolute;left:0;right:0}.week-event-resize-top{top:0}.week-event-resize-bottom{bottom:0}.event-menu-backdrop{z-index:28;background:0 0;position:fixed;inset:0}.event-context-menu{z-index:31}.event-color-palette{gap:var(--space-2);padding:var(--space-2) var(--space-3);grid-template-columns:repeat(4,24px);display:grid}.event-color-swatch{border-radius:var(--radius-full);border:2px solid #0000;width:24px;min-height:24px;padding:0;box-shadow:inset 0 0 0 1px #22221e2e}.event-color-swatch.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px #fffefacc,0 0 0 1px #22221e29}.event-color-reset{border-radius:var(--radius-sm);min-height:28px;color:var(--muted-strong);padding:var(--space-1) 0;text-align:left;background:0 0;border:0;grid-column:1/-1}.year-overview{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.year-month{border:0;border-top:1px solid var(--line);padding:var(--space-3);background:0 0;border-radius:0}.year-month h2{margin:0 0 var(--space-2);color:var(--ink);font-size:var(--type-lg)}.schedule-view{align-content:start;gap:var(--space-3);display:grid}.schedule-day{gap:var(--space-4);border:0;border-top:1px solid var(--line);padding:var(--space-3);background:0 0;border-radius:0;grid-template-columns:minmax(88px,120px) minmax(0,1fr);display:grid}.schedule-view.compact-results .schedule-day{align-items:start}.schedule-view.compact-results .schedule-items{max-width:min(100%, var(--compact-result-width))}.schedule-date strong,.schedule-date span{font-weight:400;display:block}.schedule-date strong{color:var(--ink);font-family:var(--font-heading);font-size:var(--type-xl)}.schedule-date span{margin-top:var(--space-1);color:var(--muted);font-size:var(--type-xs)}.schedule-items{align-content:start;gap:var(--space-2);display:grid}.month-agenda{border:0;border-top:1px solid var(--line);border-radius:0;display:grid;overflow:hidden}.month-agenda-day{gap:var(--space-3);min-height:72px;padding:var(--space-3);border-bottom:1px solid var(--line);background:0 0;grid-template-columns:88px minmax(0,1fr);display:grid}.month-agenda-day:last-child{border-bottom:0}.month-agenda-day.has-items{background:0 0}.month-agenda-date strong,.month-agenda-date span{display:block}.month-agenda-date strong{color:var(--ink);font-size:var(--type-xl);font-weight:400;line-height:1}.month-agenda-date span{margin-top:var(--space-1);color:var(--muted);font-size:var(--type-xs)}.month-agenda-items,.assignment-list>div,.calendar-list{gap:var(--space-2);display:grid}.below-calendar{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.assignment-list,.settings-block{border:0;border-top:1px solid var(--line);padding:var(--space-4);background:0 0;border-radius:0}.assignment-card{align-items:start;gap:var(--space-2);padding:var(--space-2);color:var(--text);background:0 0;border:0;border-left:4px solid;border-radius:0;grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.assignment-card.compact{align-items:center;gap:var(--space-2);padding:var(--space-2);grid-template-columns:minmax(0,1fr) auto}.assignment-card.compact .status-badges{grid-column:auto;justify-content:flex-start}.assignment-content{gap:var(--space-1);min-width:0;display:grid}.assignment-content strong,.assignment-content span,.calendar-item strong,.calendar-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.assignment-content strong{color:var(--ink);font-size:var(--type-sm);font-weight:500}.assignment-content span,.assignment-detail span,.calendar-item span{color:var(--muted);font-size:var(--type-xs)}.assignment-content .assignment-course{color:var(--muted-strong)}.completed-strike .assignment-card.completed .assignment-content strong,.completed-strike .assignment-card.completed .assignment-content span{color:var(--muted)}.completed-strike .assignment-card.completed{border-color:var(--line);color:var(--muted);background:#22221e08}.check-button{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);width:22px;height:22px;color:var(--surface);place-items:center;display:grid}.check-button.done{border-color:var(--good);background:var(--good);animation:.34s cubic-bezier(.2,.9,.32,1.2) bounce}.status-badges{justify-content:flex-end;gap:var(--space-1);flex-wrap:wrap;display:flex}.status-badges span{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:var(--surface-raised);color:var(--muted);font-size:var(--type-xs)}.notice{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);display:flex}.desktop-update-floating{z-index:95;top:var(--space-4);pointer-events:none;width:min(640px,100vw - 32px);position:fixed;left:50%;transform:translate(-50%)}.desktop-update-floating .notice{background:var(--surface);box-shadow:var(--shadow-popover);pointer-events:auto;margin-bottom:0}.notice span{flex:1}.notice button{color:inherit;background:0 0;border:0}.notice-action{border-radius:var(--radius-sm);min-height:30px;padding:0 var(--space-2);font-weight:600}.notice-action:hover,.notice-dismiss:hover{text-underline-offset:3px;text-decoration:underline}.notice-error{color:#7d3e35;background:#9a524717;border-color:#9a52475c}.notice-ok{color:#385c34;background:#55704b1a;border-color:#55704b52}.notice-offline,.notice-warning{color:#6f5127;background:#906f361a;border-color:#906f3657}.settings-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.settings-layout{background:0 0;border:0;border-radius:0;grid-template-columns:clamp(220px,24%,260px) minmax(0,1fr);align-items:stretch;gap:0;display:grid;overflow:hidden}.settings-view{grid-template-rows:auto minmax(0,1fr);min-height:100%;display:grid}.settings-view .section-heading{border-bottom:1px solid var(--line);padding:0 var(--space-4) var(--space-3);margin:0 calc(var(--space-4) * -1)}.settings-close{background:0 0;border-color:#0000}.settings-layout{min-height:100%;margin:0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);background:0 0;position:relative}.settings-nav,.settings-content{min-width:0}.settings-nav{align-content:start;gap:var(--space-4);border:0;border-right:1px solid var(--line);margin-left:calc(var(--space-4) * -1);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-8);background:0 0;align-self:stretch;display:grid;position:relative}.settings-nav section{gap:var(--space-1);display:grid}.settings-nav h2{margin:var(--space-1) 0;color:var(--muted);font-family:var(--font-heading);font-size:var(--type-xs);font-weight:500}.settings-nav button{justify-content:flex-start;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);color:var(--text);padding:var(--space-2);text-align:left;background:0 0;border:0;display:flex}.settings-nav button.active,.settings-nav button:hover{background:#22221e0d}.settings-nav .settings-logout-button{margin-top:var(--space-1);color:var(--bad)}.settings-nav .settings-logout-button:hover{background:#9a524714}.settings-search{position:relative}.settings-search svg{left:var(--space-3);bottom:var(--space-3);color:var(--muted);position:absolute}.settings-search input{padding-left:var(--space-10);border-radius:var(--radius-md);background:#22221e0a;border-bottom-color:#0000}.settings-content{align-content:start;gap:var(--space-3);padding:var(--space-3);z-index:1;background:0 0;display:grid;position:relative}.settings-content .settings-block{border:0;border-top:1px solid var(--line);padding:var(--space-4) 0 0;background:0 0}.settings-content .settings-block:first-child{border-top:0;padding-top:0}.general-settings-block{max-width:min(100%, var(--settings-content-max));align-content:start;gap:0}.general-settings-block>h2{margin-bottom:var(--space-3)}.settings-toggle-row{align-items:center;gap:var(--settings-row-gap);min-height:var(--settings-row-min-height);border-top:1px solid var(--line);padding:var(--settings-row-padding);color:var(--muted-strong);font-size:var(--type-xs);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;font-weight:500;display:grid;position:relative}.settings-select-row{align-items:center;gap:var(--settings-row-gap);min-height:var(--settings-row-min-height);border-top:1px solid var(--line);padding:var(--settings-row-padding);grid-template-columns:minmax(0,1fr) auto;max-width:100%;display:grid}.settings-select-row-single{grid-template-columns:minmax(0,1fr) auto}.general-settings-block>.settings-select-row:first-of-type,.general-settings-block>.settings-toggle-row:first-of-type{border-top:0}.theme-select,.theme-select option{color:#3a3832;background:#fffefa}.theme-select:focus{border-color:var(--line);box-shadow:none}.settings-select-row span,.settings-toggle-row>span:last-child{min-width:0;color:var(--muted-strong)}.settings-toggle-row>span:last-child{grid-area:1/1}.settings-toggle-row .switch-control{grid-area:1/2}.settings-select-row input{width:min(var(--theme-field-width), 100%)}.switch-control{border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface-quiet);width:42px;height:24px;transition:background-color var(--motion-standard) ease, border-color var(--motion-standard) ease;display:inline-block;position:relative}.switch-control:after{box-sizing:border-box;border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface);width:18px;transition:transform var(--motion-standard) var(--ease-standard), border-color var(--motion-standard) ease;content:"";position:absolute;top:2px;bottom:2px;left:2px;transform:translate(0);box-shadow:0 1px 2px #23211c1a}.settings-toggle-row>input:checked+.switch-control{border-color:var(--accent);background:var(--accent-soft)}.settings-toggle-row>input:checked+.switch-control:after{border-color:var(--accent);transform:translate(18px)}.settings-toggle-row>input:focus-visible+.switch-control{box-shadow:0 0 0 3px #24231f1f}.settings-toggle-row>input:disabled+.switch-control,.settings-toggle-row>input:disabled~span:last-child{opacity:.58}.profile-toggle-row{width:fit-content}.profile-section .settings-toggle-row{padding:var(--settings-row-padding);border-top:0}.profile-settings-block{gap:var(--space-4)}.profile-settings-heading h2{margin-bottom:0}.calendar-add-block{align-content:start;gap:var(--space-3)}.calendar-add-block>.text-button{justify-self:start;min-height:34px}.calendar-settings-list{padding:var(--space-4) 0 0}.calendar-settings-list h2{margin-bottom:var(--space-2)}.calendar-settings-list .calendar-list{background:0 0;border:0;border-radius:0;gap:0;overflow:hidden}.settings-wide{grid-column:1/-1}.choice-list{gap:var(--space-2);display:grid}.choice-list label{align-items:center;gap:var(--space-2);border:0;border-top:1px solid var(--line);padding:var(--space-3);color:var(--text);background:0 0;border-radius:0;display:flex}.choice-list input{width:auto}.calendar-item{grid-template-columns:minmax(0, var(--settings-calendar-label-width)) auto;justify-content:start;align-items:center;gap:var(--space-2);border:0;border-top:1px solid var(--line);padding:var(--space-3);background:0 0;border-radius:0;display:grid}.calendar-settings-list .calendar-item{padding:var(--space-2) 0;background:0 0;border:0;border-radius:0}.calendar-settings-list .calendar-item+.calendar-item{padding-top:var(--space-1)}.calendar-item-actions{align-items:center;gap:var(--space-1);display:flex}.calendar-item-actions .text-button{min-height:var(--control-height-sm);padding-inline:var(--space-2)}.calendar-item span{color:var(--text)}.settings-rename-form input,.calendar-rename-form input{width:auto;max-width:100%;min-height:21px;color:var(--text);font:inherit;font-size:14px;font-weight:400;line-height:var(--leading-normal);box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.settings-rename-form input:focus,.calendar-rename-form input:focus{box-shadow:none;border:0}.calendar-rename-form{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);grid-template-columns:10px minmax(0,1fr);display:grid}.calendar-remove{color:var(--bad);background:0 0;border-color:#0000}.modal-backdrop{z-index:70;padding:var(--space-6);animation:fadeIn var(--motion-standard) ease;overscroll-behavior:contain;background:#22221e47;place-items:center;display:grid;position:fixed;inset:0}.modal-panel{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:min(520px,100%);max-height:min(720px,100vh - 48px);box-shadow:var(--shadow-modal);padding:var(--space-5);animation:modalIn var(--motion-standard) var(--ease-standard);overflow:auto}.assignment-modal{width:min(560px,100%)}.confirm-panel{width:min(420px,100%)}.quick-event-backdrop{background:0 0;animation:none}.quick-event-panel{width:min(430px,100%);animation:none}.quick-event-form{gap:var(--space-3);display:grid}.confirm-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3);display:flex}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.modal-header h2{font-size:var(--type-xl);margin:0}.profile-form{gap:0;display:grid}.profile-form>.profile-save-button{border:1px solid var(--ink);border-radius:var(--radius-md);background:var(--ink);min-height:36px;color:var(--surface);padding:0 var(--space-3);text-decoration:none}.profile-form>.profile-save-button:hover{background:var(--ink);text-decoration:none}.profile-section{gap:var(--space-4);padding:var(--space-4) 0;background:0 0;border:0;border-radius:0;display:grid}.profile-section+.profile-section{padding-top:var(--space-3)}.profile-section h3{color:var(--ink);font-size:var(--type-sm);margin:0;font-weight:500}.profile-row{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;min-height:44px;display:grid}.profile-setting-row{grid-template-columns:minmax(160px, var(--settings-profile-label-width)) minmax(0, auto);justify-content:start;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);width:fit-content;max-width:100%;min-height:58px;color:var(--text);padding:var(--space-2);text-align:left;background:0 0;border:0;display:grid}.profile-setting-row:hover{background:#22221e0a}.profile-setting-row:active{background:#22221e14}.profile-setting-main,.profile-setting-side{gap:2px;min-width:0;display:grid}.profile-setting-side{color:var(--text);font-size:var(--type-xs);grid-template-columns:minmax(0,auto) 18px;justify-content:start;align-items:center}.profile-setting-side>span{text-overflow:ellipsis;white-space:nowrap;max-width:min(34vw,280px);overflow:hidden}.profile-setting-side svg{justify-self:end}.profile-setting-row strong{color:var(--text);font-size:var(--type-sm);font-weight:500}.profile-setting-row small{color:var(--muted);font-size:var(--type-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-muted{color:var(--muted-strong);font-size:var(--type-xs)}.profile-avatar-row{align-items:center;gap:var(--space-4);padding-bottom:var(--space-5);display:flex}.avatar{background:var(--surface-quiet);color:var(--ink);font-family:var(--font-heading);border:0;border-radius:50%;place-items:center;font-weight:500;display:grid;overflow:hidden}.avatar-small{width:32px;height:32px;font-size:12px}.avatar-large{width:72px;height:72px;font-size:var(--type-xl)}.avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.avatar-upload{width:fit-content;color:var(--text);transition:background-color var(--motion-standard) ease, box-shadow var(--motion-standard) ease, transform var(--motion-standard) ease;background:0 0;border:0;padding-inline:0;position:relative}.avatar-upload:hover{box-shadow:none;color:var(--ink);background:0 0}.avatar-upload:active{animation:.22s avatarPulse;transform:translateY(1px)}.avatar-upload input{opacity:0;position:absolute;inset:0}.avatar-crop-panel{background:var(--surface);width:min(472px,100vw - 32px);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-modal)}.avatar-cropper{width:432px;max-width:100%;height:336px;margin:var(--space-1) auto var(--space-4);border-radius:var(--radius-md);background:var(--surface-deep);border:1px solid var(--line-strong);cursor:move;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.avatar-cropper img{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;max-width:none;position:absolute}.avatar-crop-dim{pointer-events:none;background:#22221e61;position:absolute;inset:0}.avatar-crop-ring{left:50%;top:var(--space-4);pointer-events:none;border:4px solid #fffefaeb;border-radius:50%;width:312px;height:312px;position:absolute;transform:translate(-50%);box-shadow:0 0 0 1px #22221e24}.avatar-crop-controls{align-items:center;gap:var(--space-3);margin:0 auto var(--space-5);width:min(310px,100%);color:var(--muted-strong);overscroll-behavior:contain;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.avatar-crop-controls input{accent-color:var(--ink)}.avatar-crop-controls input:focus{box-shadow:none;outline:none}.avatar-rotate-button{border-color:var(--line);background:var(--surface-quiet);width:32px;min-height:32px;color:var(--text);padding:0}.avatar-crop-actions{align-items:center;gap:var(--space-2);grid-template-columns:auto 1fr auto auto;display:grid}.avatar-reset-button{color:var(--ink);background:0 0;border:0;padding:0}.avatar-crop-panel .text-button,.avatar-crop-panel .profile-save-button{border-color:var(--line-strong);background:var(--surface-quiet);min-width:92px;color:var(--text)}.avatar-crop-panel .profile-save-button{border-color:var(--ink);background:var(--ink);color:var(--surface)}.profile-message{color:var(--muted);font-size:var(--type-xs);margin:0}.logout-button{width:100%;margin-top:var(--space-5);color:var(--bad);border-color:#9a524752;justify-content:center}.profile-save-button{border-radius:var(--radius-sm);min-height:32px;color:var(--ink);font-size:var(--type-sm);background:0 0;border:0;justify-content:center;justify-self:start;align-items:center;padding:0;font-weight:500;display:inline-flex}.profile-dialog{border:1px solid var(--line);border-radius:calc(var(--radius-md) + 6px);background:var(--surface);width:min(420px,100vw - 32px);box-shadow:var(--shadow-modal);padding:var(--space-5)}.profile-dialog-body{gap:var(--space-4);display:grid}.profile-dialog-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.profile-dialog .text-button,.profile-dialog .profile-save-button{border-radius:var(--radius-full);min-height:40px;padding:0 var(--space-4);text-decoration:none}.profile-dialog .text-button{background:var(--surface-quiet);border:0}.profile-dialog .profile-save-button{border:1px solid var(--ink);background:var(--ink);color:var(--surface);justify-self:end}.profile-save-button:hover,.logout-button:hover,.danger-button:hover{box-shadow:none;text-underline-offset:3px;background:0 0;text-decoration:underline}.avatar-crop-panel .profile-save-button{border:1px solid var(--ink);border-radius:var(--radius-md);background:var(--ink);min-width:92px;min-height:36px;color:var(--surface);padding:0 var(--space-3);justify-self:auto}.avatar-crop-panel .profile-save-button:hover{background:var(--ink);box-shadow:none;text-decoration:none}.danger-button{color:var(--bad);border-color:#9a524757}.edit-note{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface-raised)}.edit-note p{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--type-xs);line-height:var(--leading-normal)}.inspector-actions{justify-content:flex-start;gap:var(--space-3);margin-top:var(--space-1);display:flex}.inspector-actions .danger-button,.inspector-actions .text-button,.inspector-actions .primary-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;display:inline-flex}.custom-date-picker{position:relative}.date-time-row{align-items:center;gap:var(--space-2);grid-template-columns:minmax(132px,1.2fr) minmax(82px,.75fr) auto minmax(82px,.75fr);display:grid}.date-picker-trigger{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--text);padding:var(--space-2) var(--space-3);text-align:left;justify-content:flex-start}.time-range-separator{color:var(--muted-strong);text-align:center}.time-select{min-width:0;position:relative}.time-select-trigger{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);width:100%;min-height:40px;color:var(--text);padding:var(--space-2) var(--space-3);justify-content:flex-start}.time-select-trigger:hover,.date-picker-trigger:hover{border-color:var(--line-strong)}.time-select-menu{left:0;top:calc(100% + var(--space-2));z-index:34;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:100%;max-height:216px;box-shadow:var(--shadow-popover);padding:var(--space-1);display:grid;position:absolute;overflow-y:auto}.time-select-menu button{border-radius:var(--radius-sm);color:var(--text);padding:var(--space-2) var(--space-3);text-align:left;background:0 0;border:0;justify-content:flex-start}.time-select-menu button:hover,.time-select-menu button.active{background:var(--surface-quiet)}.custom-date-popover{left:0;top:calc(100% + var(--space-2));z-index:32;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:252px;box-shadow:var(--shadow-popover);padding:var(--space-3);position:absolute}.assignment-detail a{color:var(--ink)}.inline-error{color:var(--bad);margin:0}.particle-burst{pointer-events:none;z-index:10;position:fixed;top:72px;left:50%}.particle-burst span{border-radius:var(--radius-sm);width:8px;height:12px;position:absolute}.spin{animation:.8s linear infinite spin}.shake body,.shake .auth-panel,.shake .main-surface{animation:.42s cubic-bezier(.36,.07,.19,.97) shake}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%{transform:scale(.94)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes hubHeroReveal{to{opacity:1;transform:translateY(0)}}@keyframes hubLogoReveal{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}@keyframes avatarPulse{0%{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 0 #24231f00}70%{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 4px #24231f1a}to{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 0 #24231f00}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.treg-logo-motion,.hub-copy h1,.hub-copy p{opacity:1;animation:none;transform:none}}@media (width<=820px){.app-shell{padding:var(--space-3)}.app-header,.has-sidebar .workspace,.has-sidebar .app-header{grid-template-columns:1fr}.header-actions,.section-heading,.filters{flex-wrap:wrap;align-items:stretch}.header-actions{justify-content:flex-start}.header-search-slot,.top-search{width:100%}.settings-view .section-heading{padding:0 var(--space-3) var(--space-3);margin:0 calc(var(--space-3) * -1)}.settings-layout{margin:0 calc(var(--space-3) * -1) calc(var(--space-3) * -1)}.settings-nav{margin-left:calc(var(--space-3) * -1);padding-left:var(--space-6)}.main-surface{min-height:auto;padding:var(--space-3)}.sidebar{width:100%}.sidebar-collapsed .sidebar{display:none}.week-header,.week-hour-row{grid-template-columns:var(--week-time-axis-width) repeat(7, minmax(0, 1fr))}.week-event-block.short{--event-min-height:40px}.week-event-block.tiny{--event-min-height:44px;padding-inline:var(--space-1)}.below-calendar,.settings-grid,.settings-layout,.theme-studio-topline,.theme-token-grid,.year-overview,.schedule-day{grid-template-columns:1fr}.theme-tool-header{align-items:flex-start}.theme-token-row{grid-template-columns:34px minmax(0,1fr)}.theme-token-label,.theme-rgb-editor{grid-column:1/-1}.settings-block .theme-save-button{justify-self:start}.segmented.compact{min-width:100%}.month-agenda-day,.assignment-card,.date-time-row,.settings-select-row{grid-template-columns:1fr}.calendar-item,.profile-setting-row{grid-template-columns:1fr;width:100%}.calendar-item-actions,.profile-setting-side{justify-content:start}.time-range-separator{display:none}.assignment-card.compact{grid-template-columns:22px minmax(0,1fr)}.status-badges{justify-content:flex-start}}
