:root{--color-black-100:#282627;--color-dark-gray:#3e3b39;--color-white-100:#fff;--color-primary-100:#aa7a47;--color-primary-60:rgba(178,133,85,.6);--color-primary-30:rgba(178,133,85,.3);--color-primary-20:rgba(178,133,85,.2);--color-primary-10:rgba(178,133,85,.1);--color-secondary-100:#857c6d;--color-secondary-20:hsla(38,10%,47%,.2);--color-secondary-10:hsla(38,10%,47%,.1);--color-red-100:#f04f52;--color-red-20:rgba(240,79,82,.2);--color-red-10:rgba(240,79,82,.1);--color-blue-100:#4e82f2;--color-blue-strong:#1d4ed8;--color-blue-16:rgba(78,130,242,.16);--color-green-100:#166534;--color-green-16:rgba(56,161,105,.18);--color-orange:#ef5d36;--color-yellow:#fc9434;--color-background-default:#f5f2ed;--color-primary-dark:#8c6131;--color-text-inverse-warm:#fffaf3;--color-student-card:#ede7e0;--color-curriculum-overlay:hsla(32,27%,90%,.8);--color-text-support:#4f4943;--color-avatar-highlight:#f6c3a0;--color-avatar-mid:#d88765;--color-avatar-start:#ead8c7;--color-avatar-end:#c8d2bd;--color-avatar-border:#efe4d8;--color-curriculum-stripe:rgba(182,129,67,.05);--color-curriculum-bg:#f3eadf;--color-track-bg:#fffaf5;--color-track-rest:#e0dbd3;--color-track-alert:#ef4f5c;--color-track-pin:#e83d45;--color-timeline-glass:hsla(0,0%,100%,.48);--color-timeline-muted-text:#9b9189;--color-timeline-done:#dfd1c2;--color-timeline-current:#d9bfa2;--color-progress-track:#e8ded2;--color-mission-tag:#9f7f5c;--color-mission-bar-rest:#e3d8cc;--color-notice-neutral:#82786f;--color-quote-bg:#2a2826;--color-promo-bg:#3c3128;--color-side-promo-bg:#17130a;--color-side-promo-top:rgba(62,50,26,.12);--color-side-promo-bottom:rgba(23,19,10,.18);--color-insight-image-bg:#d8d0c4;--color-answer-ring:#d8d3ca;--overlay-dark-strong:rgba(0,0,0,.72);--overlay-dark-soft:rgba(0,0,0,.2);--overlay-dark-subtle:rgba(0,0,0,.08);--overlay-dark-chip:rgba(0,0,0,.26);--overlay-light-quote:hsla(0,0%,100%,.34);--overlay-light-divider:hsla(0,0%,100%,.1);--overlay-light-hover-subtle:hsla(0,0%,100%,.06);--overlay-promo-glow:hsla(32,63%,69%,.72);--effect-shadow-color:rgba(78,60,41,.09);--effect-track-shadow:rgba(139,92,44,.24);--effect-pin-shadow:rgba(0,0,0,.5);--effect-menu-shadow:rgba(40,38,39,.2);--effect-card-shadow:rgba(94,78,60,.2);--effect-action-shadow:rgba(140,97,49,.28);--focus-ring:rgba(170,122,71,.45);--font-family-base:Pretendard,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--type-heading-1-size:24px;--type-heading-1-weight:600;--type-heading-1-line-height:1;--type-heading-1-letter-spacing:0;--type-heading-2-size:18px;--type-heading-2-weight:600;--type-heading-2-line-height:1;--type-heading-2-letter-spacing:0;--type-heading-3-size:16px;--type-heading-3-weight:600;--type-heading-3-line-height:1;--type-heading-3-letter-spacing:0;--type-body-size:14px;--type-body-weight:400;--type-body-line-height:1.4;--type-body-letter-spacing:0;--type-label-size:12px;--type-label-weight:600;--type-label-line-height:1;--type-label-letter-spacing:0;--type-caption-size:11px;--type-caption-weight:400;--type-caption-line-height:1;--type-caption-letter-spacing:0;--type-display-size:28px;--type-display-weight:600;--type-display-line-height:1;--type-card-heading-size:25px;--type-card-heading-line-height:1.22;--type-banner-heading-size:20px;--type-banner-heading-line-height:1.25;--type-section-title-size:19px;--type-list-title-size:17px;--type-support-size:13px;--type-action-size:15px;--type-peer-size:16px;--type-strong-weight:900;--type-data-weight:750;--type-page-line-height:1.45;--type-relaxed-line-height:1.25;--lms-mobile-gutter:16px;--lms-tablet-gutter:24px;--lms-mobile-topbar-height:60px;--lms-mobile-nav-height:68px;--page:var(--color-white-100);--surface:var(--color-background-default);--surface-strong:var(--color-white-100);--ink:var(--color-black-100);--muted:var(--color-secondary-100);--line:var(--color-secondary-10);--accent:var(--color-primary-100);--accent-dark:var(--color-primary-dark);--accent-soft:var(--color-primary-20);--rose:var(--color-red-20);--dark:var(--color-black-100);--shadow:none;--shadow-overlay:0 16px 32px var(--effect-menu-shadow);--radius-card:16px;--radius-image:12px;--radius-badge:6px;--sidebar-width:240px;--sidepanel-width:300px;--gap-base:16px;--transition-base:160ms ease}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;min-height:100dvh;width:100%;min-width:0}.sidebar{position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100vh;max-width:240px;padding:48px 32px 32px;background:var(--color-white-100)}.brand{display:flex;justify-content:center;width:100%}.brand img{display:block;width:72px;height:auto}.sidebar-top{display:flex;flex-direction:column;align-items:center;gap:48px;width:100%}.nav-list{display:grid;grid-gap:2px;gap:2px;width:100%;margin-top:0}.nav-item{display:flex;align-items:center;gap:16px;width:100%;min-height:56px;max-height:56px;padding:16px 24px 16px 20px;border-radius:16px;color:var(--color-black-100);font-size:var(--type-heading-2-size);font-weight:var(--type-heading-2-weight);letter-spacing:var(--type-heading-2-letter-spacing);line-height:var(--type-heading-2-line-height);transition:background .16s ease,color .16s ease,transform .16s ease}button.nav-item{background:none;border:0;cursor:pointer;font-family:inherit;text-align:left}button.nav-item:disabled{opacity:.6;cursor:not-allowed}.nav-item.active{background:var(--color-black-100);color:var(--color-white-100)}.nav-item:focus-visible,.nav-item:hover{transform:translateX(2px)}.nav-item:not(.active):focus-visible,.nav-item:not(.active):hover{background:var(--color-primary-10);color:var(--accent-dark)}.nav-item.active:focus-visible,.nav-item.active:hover{background:var(--color-dark-gray)}.nav-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.nav-item.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.nav-icon{width:24px;height:24px;flex:0 0 auto;object-fit:contain;transition:filter .16s ease,opacity .16s ease}.nav-item.active .nav-icon{filter:brightness(0) invert(1)}.nav-item:not(.active):focus-visible .nav-icon,.nav-item:not(.active):hover .nav-icon{filter:brightness(0) saturate(100%) invert(40%) sepia(18%) saturate(1117%) hue-rotate(351deg) brightness(91%) contrast(89%);opacity:1}.sidebar-status{display:grid;justify-items:center;grid-gap:16px;gap:16px;width:100%}.sidebar-progress{position:relative;display:grid;width:162px;justify-items:center;margin:0}.sidebar-progress-graph{display:block;width:162px;height:78px;margin-bottom:-24px;overflow:visible}.sidebar-progress-copy{display:grid;justify-items:center;grid-gap:2px;gap:2px}.sidebar-progress-copy strong{color:var(--color-black-100);font-size:var(--type-display-size);font-weight:var(--type-display-weight);letter-spacing:var(--type-heading-1-letter-spacing);line-height:var(--type-display-line-height)}.sidebar-progress-copy span{color:var(--color-black-100);font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:var(--type-body-letter-spacing);line-height:var(--type-body-line-height)}.sidebar-progress-breakdown{display:grid;justify-items:center;grid-gap:4px;gap:4px;margin-top:12px}.sidebar-progress-breakdown span{font-size:var(--type-support-size);color:var(--muted);line-height:1.4}.sidebar-progress-breakdown strong{color:var(--ink);font-weight:600}.student-info-card{display:grid;grid-gap:2px;gap:2px;width:100%;padding:16px;border-radius:12px;background:var(--color-student-card);color:var(--color-black-100)}.student-info-card strong{font-size:var(--type-heading-2-size);font-weight:var(--type-heading-2-weight);letter-spacing:var(--type-heading-2-letter-spacing);line-height:var(--type-heading-2-line-height);margin-top:2px}.student-info-card p{margin:0;color:var(--color-black-100);font-size:var(--type-support-size);font-weight:var(--type-body-weight);letter-spacing:var(--type-body-letter-spacing);line-height:var(--type-body-line-height)}.workspace{min-width:0;padding:32px 32px 32px 0}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;width:100%;min-height:56px;margin:0}.student-greeting{display:flex;align-items:center;gap:16px;margin-right:auto}.avatar{position:relative;width:56px;height:56px;overflow:hidden;border-radius:50%;background:radial-gradient(circle at 50% 34%,var(--color-avatar-highlight) 0 20%,transparent 21%),radial-gradient(circle at 48% 60%,var(--color-avatar-mid) 0 24%,transparent 25%),linear-gradient(135deg,var(--color-avatar-start),var(--color-avatar-end))}.avatar img{position:absolute;left:0;top:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}.avatar img.avatar-default{left:-22.48%;top:-23.21%;width:145.7%;height:145.7%;max-width:none}.topbar h1{margin:0;font-size:var(--type-heading-1-size);font-weight:var(--type-heading-1-weight);letter-spacing:var(--type-heading-1-letter-spacing);line-height:var(--type-heading-1-line-height)}.topbar p{margin:4px 0 0;color:var(--color-text-support);font-size:var(--type-support-size)}.topbar-actions{position:relative;display:flex;align-items:center;gap:16px}.topbar>.course-select,.topbar>.topbar-actions{align-self:center}.notification-menu{position:relative;display:flex;align-items:center}.icon-button{display:flex;align-items:center;justify-content:center;padding:6px;border:0;border-radius:999px;background:transparent;cursor:pointer;transition:background .16s ease,transform .16s ease}.icon-button img{transition:filter .16s ease,opacity .16s ease}.icon-button:focus-visible,.icon-button:hover{background:var(--color-primary-10);transform:translateY(-1px)}.icon-button:focus-visible img,.icon-button:hover img{filter:saturate(1.12);opacity:.82}.icon-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.notice-toast{top:calc(100% + 10px);right:0;z-index:25;display:flex;align-items:center;gap:2px;padding:2px 2px 2px 4px;border-radius:12px;color:var(--color-text-inverse-warm);box-shadow:0 12px 28px var(--effect-card-shadow);white-space:nowrap;animation:notice-toast-in .2s ease}.notice-toast,.notice-toast:before{position:absolute;background:var(--accent)}.notice-toast:before{top:-6px;right:16px;width:12px;height:12px;content:"";transform:rotate(45deg)}.notice-toast-body{font-size:var(--type-support-size);font-weight:700;padding:8px 6px 8px 10px}.notice-toast-body,.notice-toast-close{border:0;background:transparent;color:inherit;cursor:pointer}.notice-toast-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;font-size:12px;opacity:.85}.notice-toast-close:hover{background:hsla(0,0%,100%,.18);opacity:1}@keyframes notice-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notification-panel{top:calc(100% + 12px);right:0;z-index:30;display:grid;grid-gap:12px;gap:12px;width:min(340px,calc(100vw - 44px));padding:16px;border:1px solid var(--color-secondary-10);border-radius:16px;box-shadow:0 18px 42px var(--effect-card-shadow)}.notification-panel,.notification-panel:before{position:absolute;background:var(--color-white-100)}.notification-panel:before{top:-7px;right:18px;width:14px;height:14px;content:"";border-top:1px solid var(--color-secondary-10);border-left:1px solid var(--color-secondary-10);transform:rotate(45deg)}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-panel-header h2{margin:0;color:var(--color-black-100);font-size:var(--type-heading-2-size);font-weight:var(--type-heading-2-weight);line-height:var(--type-heading-2-line-height)}.notification-panel-header-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.notification-panel-header-meta span{padding:8px;border-radius:4px;background:var(--color-primary-10);color:var(--accent-dark);font-weight:var(--type-label-weight)}.notification-panel-header-meta span,.notification-readall{flex-shrink:0;font-size:var(--type-label-size);line-height:var(--type-label-line-height)}.notification-readall{padding:8px 10px;border:none;border-radius:4px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:background .15s ease}.notification-readall:hover{background:var(--accent-dark)}.notification-list{display:grid;grid-gap:8px;gap:8px;max-height:264px;padding:0;margin:0;overflow-y:auto;list-style:none}.notification-item{border-radius:10px;background:var(--color-secondary-10)}.notification-item.is-unread{background:var(--color-primary-10)}.notification-item-button{display:grid;grid-template-columns:8px minmax(0,1fr);grid-gap:10px;gap:10px;width:100%;padding:12px;border:0;border-radius:inherit;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:background .16s ease,transform .16s ease}.notification-item-button:focus-visible,.notification-item-button:hover{background:var(--color-primary-10);transform:translateY(-1px)}.notification-item-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.notification-item-button:active{transform:translateY(0)}.notification-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:transparent}.notification-item.is-unread .notification-dot{background:var(--accent)}.notification-item-copy{display:block;min-width:0}.notification-empty p,.notification-item-copy>span{display:block;margin:0;color:var(--color-black-100);font-size:var(--type-support-size);line-height:var(--type-body-line-height)}.notification-item-copy time,.notification-item:not(.is-unread) .notification-item-copy>span{color:var(--color-secondary-100)}.notification-item-copy time{display:block;margin-top:6px;font-size:var(--type-caption-size);line-height:var(--type-caption-line-height)}.notification-empty{padding:18px 12px;border-radius:10px;background:var(--color-secondary-10);text-align:center}.course-select{position:relative;z-index:20;display:flex}.course-select>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.course-trigger{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:16px 16px 16px 20px;width:252px;border:0;border-radius:12px;background:var(--color-black-100);color:var(--color-text-inverse-warm);font-size:16px;font-weight:600;letter-spacing:-.32px;line-height:1;cursor:pointer;transition:background .16s ease,transform .16s ease}.course-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-trigger>span:first-child{flex:1 1}.course-menu-head:after,.course-trigger:after{width:12px;height:8px;flex:0 0 auto;content:"";background:url(/assets/icons/course-select-triangle.svg) 50%/contain no-repeat}.course-trigger:focus-visible,.course-trigger:hover{background:var(--color-dark-gray);transform:translateY(-1px)}.course-option:focus-visible,.course-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.course-trigger:disabled{cursor:not-allowed;opacity:.6}.course-select--loading{pointer-events:none}.course-trigger--skeleton{cursor:progress}.course-trigger--skeleton:after{display:none}.course-trigger--skeleton .course-skeleton-status,.course-trigger--skeleton .course-skeleton-title{flex:0 0 auto;height:14px;border-radius:999px;background:linear-gradient(100deg,var(--overlay-light-divider) 25%,var(--overlay-light-quote) 45%,var(--overlay-light-divider) 65%);background-size:220% 100%;animation:course-skeleton-shimmer 1.25s ease-in-out infinite}.course-trigger--skeleton .course-skeleton-title{width:62%}.course-trigger--skeleton .course-skeleton-status{width:42px;height:24px;border-radius:6px}@keyframes course-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.course-menu{position:absolute;top:0;right:0;width:100%;min-width:100%;max-width:min(320px,calc(100vw - 48px));overflow:hidden;border-radius:12px;background:var(--color-black-100);box-shadow:0 16px 32px var(--effect-menu-shadow)}.course-menu-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:16px 16px 16px 20px;color:var(--color-text-inverse-warm);font-size:16px;font-weight:600;letter-spacing:-.32px;line-height:1;white-space:nowrap}.course-option-group{display:flex;flex-direction:column;align-items:stretch;background:var(--color-dark-gray)}.course-option{width:100%;height:52px;padding:16px 16px 16px 20px;border:0;border-bottom:1px solid var(--overlay-light-divider);background:transparent;color:var(--color-text-inverse-warm);font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:-.28px;line-height:var(--type-body-line-height);text-align:left;white-space:nowrap;cursor:pointer}.course-option:last-child{border-bottom:0}.course-option.is-selected,.course-option:focus-visible,.course-option:hover{background:var(--overlay-light-hover-subtle)}.course-option{display:flex;align-items:center;gap:8px}.course-option-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.course-status{flex-shrink:0;padding:1px 8px;border-radius:var(--radius-badge);font-size:var(--type-label-size);font-weight:600;line-height:1.7}.course-trigger .course-status{margin-left:6px}.course-status--active{background:var(--accent);color:var(--color-text-inverse-warm)}.course-status--pending{background:var(--overlay-light-hover-subtle);color:var(--color-text-inverse-warm)}.course-status--ended{background:var(--overlay-light-divider);color:var(--color-text-inverse-warm);opacity:.8}.student-dashboard{min-width:0}.home-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:16px;gap:16px;min-height:calc(100vh - 64px);align-items:stretch}.home-main{display:grid;grid-template-rows:56px auto auto minmax(154px,auto);align-content:start;grid-gap:16px;gap:16px;min-width:0;height:auto;overflow:visible}.home-main--with-notice{grid-template-rows:56px auto auto auto minmax(154px,auto)}.home-empty{display:flex;flex-direction:column;gap:16px;min-width:0}.curriculum-track,.empty-state,.notice-list,.primary-card,.quote-banner{border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.access-empty{flex:1 1;display:flex;flex-direction:column;gap:16px;text-align:center;min-height:340px;padding:56px 32px;background:var(--surface);border-radius:16px}.access-empty,.access-empty-icon{align-items:center;justify-content:center}.access-empty-icon{display:inline-flex;width:76px;height:76px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.access-empty-icon svg{width:38px;height:38px}.course-loading-spinner svg{animation-duration:.9s}.access-empty-text{margin:0;font-size:var(--type-heading-3-size);font-weight:600;color:var(--muted)}.access-empty-copy{display:flex;flex-direction:column;gap:6px}.access-empty-sub{margin:0;font-size:var(--type-support-size);color:var(--muted)}.access-empty-btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 28px;border-radius:10px;background:var(--accent);color:var(--color-text-inverse-warm);font-size:var(--type-action-size);font-weight:600;text-decoration:none;transition:background var(--transition-base)}.access-empty-btn:hover{background:var(--accent-dark)}@media (max-width:760px){.access-empty{min-height:260px;padding:44px 20px}}@media (prefers-reduced-motion:reduce){.course-loading-spinner svg,.course-trigger--skeleton .course-skeleton-status,.course-trigger--skeleton .course-skeleton-title{animation:none}}.lms-modal-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(40,38,39,.45)}.lms-modal{position:relative;width:100%;max-width:360px;padding:30px 26px 24px;border-radius:16px;background:var(--surface-strong);box-shadow:0 16px 48px rgba(40,38,39,.24);text-align:center}.lms-modal-close{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:color var(--transition-base),background var(--transition-base)}.lms-modal-close:hover{color:var(--ink);background:var(--color-secondary-10)}.lms-modal-title{font-size:var(--type-section-title-size);font-weight:700;color:var(--ink)}.lms-modal-desc{margin:10px 0 22px;font-size:var(--type-body-size);color:var(--muted);white-space:pre-line}.lms-modal-actions{display:flex;justify-content:center;gap:10px}.lms-modal-actions button{box-sizing:border-box}.lms-modal-confirm{min-width:140px;height:46px;padding:0 24px;border:0;border-radius:10px;background:var(--accent);color:var(--color-text-inverse-warm);font-size:var(--type-action-size);font-weight:600;cursor:pointer;transition:background var(--transition-base)}.lms-modal-confirm:hover{background:var(--accent-dark)}.lms-modal-confirm:disabled{opacity:.6;cursor:not-allowed}.lms-modal-cancel{min-width:110px;height:46px;padding:0 20px;border:0;border-radius:10px;background:var(--color-secondary-20);color:var(--ink);font-size:var(--type-action-size);font-weight:600;cursor:pointer;transition:background var(--transition-base)}.lms-modal-cancel:hover{background:hsla(38,10%,47%,.32)}.lms-modal-actions .lms-modal-cancel,.lms-modal-actions .lms-modal-cancel~.lms-modal-confirm{flex:1 1;min-width:0;padding:0 14px}.lms-modal-form{gap:12px;margin:2px 0 20px;text-align:left}.lms-modal-field,.lms-modal-form{display:flex;flex-direction:column}.lms-modal-field{gap:6px}.lms-modal-label{font-size:var(--type-support-size);font-weight:600;color:var(--ink)}.lms-modal-input{width:100%;box-sizing:border-box;padding:11px 14px;border:1px solid var(--color-secondary-20);border-radius:10px;background:var(--surface-strong);color:var(--ink);font-size:var(--type-body-size);font-family:inherit}.lms-modal-input:focus{outline:none;border-color:var(--accent)}.lms-modal-input::placeholder{color:var(--muted);font-size:var(--type-support-size)}.lms-modal-error{margin:-8px 0 12px;font-size:var(--type-support-size);color:var(--color-red-100);text-align:left}@media (max-width:768px){.lms-modal-backdrop{padding:28px}.lms-modal{max-width:310px;padding:30px 24px 22px;border-radius:16px}.lms-modal-close{top:10px;right:10px;width:34px;height:34px}.lms-modal-close svg{width:24px;height:24px}.lms-modal-title{font-size:18px}.lms-modal-desc{margin:10px 0 24px;font-size:15px;line-height:1.6}.lms-modal-actions{gap:10px}.lms-modal-actions button{flex:1 1;min-width:0;height:44px;padding:0 12px;font-size:15px;border-radius:10px}}.info-chapter-card{display:flex;flex-direction:column;justify-content:space-between;gap:20px}.info-chapter-body{display:flex;flex-direction:column;gap:12px}.info-chapter-text{margin:0;font-size:var(--type-body-size);line-height:1.7;color:var(--color-text-support);white-space:pre-wrap;word-break:break-word}.linkified{color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px;word-break:break-all;transition:color var(--transition-base)}.linkified:hover{color:var(--accent)}.curriculum-track{position:relative;display:grid;align-content:center;grid-gap:16px;gap:16px;padding:4px 0 32px;overflow:hidden;background:linear-gradient(var(--color-curriculum-overlay),var(--color-curriculum-overlay)),url(/assets/track-background.jpg) 50% /cover no-repeat,var(--color-student-card);background-blend-mode:normal,multiply,normal;box-shadow:none}.timeline-scroller{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.timeline-scroller::-webkit-scrollbar{display:none}.timeline-scroller:active{cursor:-webkit-grabbing;cursor:grabbing}.curriculum-track>*{position:relative;z-index:1}.track-line{margin-left:32px}.track-line--back,.track-line--middle{margin-left:0}.track-line--middle .track-bar{border-radius:0}.track-line--back .track-bar{border-radius:0 999px 999px 0}.track-bar{display:flex;align-items:center;padding:8px 0;background:var(--color-white-100);border-radius:999px 0 0 999px}.track-line--back .track-bar:before,.track-line--middle .track-bar:before{width:32px;height:16px;flex:0 0 auto;content:"";background:var(--color-primary-20)}.track-segment{position:relative;display:flex;align-items:center;flex:1 1;min-width:1px}.track-segment--first{padding-left:8px}.track-segment--last{padding-right:8px}.track-half{flex:1 0;height:16px;min-width:1px;background:var(--color-primary-20)}.track-half--filled{background:var(--color-primary-60)}.track-half--white{background:var(--color-white-100)}.track-segment--first .track-half:first-child{border-radius:999px 0 0 999px}.track-segment--last .track-half:last-child{border-radius:0 999px 999px 0}.track-gap{flex-shrink:0;width:8px;height:16px;background:var(--color-primary-20)}.track-gap--white,.track-tail{background:var(--color-white-100)}.track-tail{flex-shrink:0;width:32px;height:16px}.track-point{position:absolute;left:50%;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:28px;height:28px;transform:translate(-50%,-50%)}.track-point img{display:block;flex-shrink:0}.track-point--miss{top:-6px;transform:translateX(-50%)}.track-pin{position:absolute;top:-23px;left:5px;width:26px;height:38px;filter:drop-shadow(0 4px 4px var(--effect-pin-shadow));pointer-events:none}@keyframes timeline-slide-left{0%{transform:translateX(48px)}to{transform:translateX(0)}}@keyframes timeline-slide-right{0%{transform:translateX(-48px)}to{transform:translateX(0)}}.timeline-content{display:flex;flex-direction:column;gap:16px;will-change:transform}.timeline-grid{position:relative;display:flex;align-items:flex-start;gap:0;padding:28px 32px 0}.timeline-slot{display:flex;flex:1 0 280px;flex-direction:column;gap:16px;min-width:280px}.timeline-slot-bar{position:relative;display:flex;align-items:center;flex-shrink:0;width:100%;padding:8px 0;background:var(--color-white-100)}.timeline-slot-bar--first{border-radius:999px 0 0 999px}.timeline-slot-bar--last{border-radius:0 999px 999px 0}.timeline-track-gap{display:flex;flex:0 0 8px;align-items:center;height:32px;padding:8px 0;background:var(--color-white-100);pointer-events:none}.timeline-track-gap--lead,.timeline-track-gap--tail{flex-basis:32px}.timeline-track-gap-fill{width:100%;height:16px;background:var(--color-primary-20)}.timeline-track-gap-fill--filled{background:var(--color-primary-60)}.timeline-track-gap-fill--white{background:var(--color-white-100)}.timeline-content--slide-left{animation:timeline-slide-left .28s cubic-bezier(.25,.46,.45,.94) both}.timeline-content--slide-right{animation:timeline-slide-right .28s cubic-bezier(.25,.46,.45,.94) both}.timeline-card{position:relative;display:grid;align-content:start;flex:0 0 auto;width:auto;height:149px;min-width:0;padding:16px;border:0;border-radius:16px;background:transparent;color:inherit;cursor:pointer;font:inherit;isolation:isolate;text-align:left;transition:transform .16s ease}.timeline-card-surface{position:absolute;inset:0;z-index:0;border-radius:inherit;background:var(--color-primary-30);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.timeline-card-content{position:relative;z-index:1;display:grid;align-content:start;grid-gap:8px;gap:8px;height:100%;min-width:0;transition:opacity .16s ease}.timeline-card-body{display:grid;grid-gap:4px;gap:4px;min-width:0}.timeline-card:before{position:absolute;top:-10px;left:50%;z-index:0;width:0;height:0;content:"";border-right:7.5px solid transparent;border-bottom:10px solid var(--color-primary-30);border-left:7.5px solid transparent;transform:translateX(-50%)}.timeline-card--default,.timeline-card--default-off{background:transparent}.timeline-card--default:before{border-bottom-color:var(--color-primary-30)}.timeline-card--default-off:before{border-bottom-color:var(--color-primary-10)}.timeline-card--default-off,.timeline-card--miss-off,.timeline-card--scheduled-off{opacity:1}.timeline-card--default .timeline-card-surface{background:var(--color-primary-30)}.timeline-card--default-off .timeline-card-surface{background:var(--color-primary-10)}.timeline-card--default-off .timeline-card-content,.timeline-card--miss-off .timeline-card-content,.timeline-card--scheduled-off .timeline-card-content{opacity:.4}.timeline-card--scheduled-off .timeline-card-content{opacity:.74}.timeline-card--miss,.timeline-card--miss-off{background:transparent}.timeline-card--miss .timeline-card-surface{background:var(--color-red-20)}.timeline-card--miss-off .timeline-card-surface{background:var(--color-red-10)}.timeline-card--miss:before{border-bottom-color:var(--color-red-20)}.timeline-card--miss-off:before{border-bottom-color:var(--color-red-10)}.timeline-card--scheduled,.timeline-card--scheduled-off{background:transparent}.timeline-card--scheduled .timeline-card-surface{background:var(--color-secondary-20)}.timeline-card--scheduled-off .timeline-card-surface{background:var(--color-secondary-10)}.timeline-card--scheduled:before{border-bottom-color:var(--color-secondary-20)}.timeline-card--scheduled-off:before{border-bottom-color:var(--color-secondary-10)}.timeline-card--selected,.timeline-card:focus-visible,.timeline-card:hover{opacity:1}.timeline-card--selected .timeline-card-content,.timeline-card:focus-visible .timeline-card-content,.timeline-card:hover .timeline-card-content{opacity:1}.timeline-card:hover{transform:translateY(-2px)}.timeline-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.timeline-card--default-off:focus-visible .timeline-card-surface,.timeline-card--default-off:hover .timeline-card-surface{background:var(--color-primary-20)}.timeline-card--miss-off:focus-visible .timeline-card-surface,.timeline-card--miss-off:hover .timeline-card-surface{background:var(--color-red-20)}.timeline-card--scheduled-off:focus-visible .timeline-card-surface,.timeline-card--scheduled-off:hover .timeline-card-surface{background:var(--color-secondary-20)}.week-label{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;padding:6px 8px;border-radius:6px;background:var(--accent);color:var(--color-white-100);font-size:var(--type-label-size);font-weight:600;letter-spacing:-.24px}.timeline-card--miss .week-label,.timeline-card--miss-off .week-label{background:var(--color-red-100)}.timeline-card--scheduled .week-label,.timeline-card--scheduled-off .week-label{background:var(--color-secondary-100)}.timeline-card--unit.is-current .week-label{background:var(--accent)}.timeline-card--unit.is-available .week-label,.timeline-card--unit.is-done .week-label,.timeline-card--unit.is-scheduled .week-label{background:var(--color-secondary-100)}.unit-rate{display:flex;align-items:center;gap:8px;margin-top:4px}.unit-rate-bar{flex:1 1;height:5px;border-radius:999px;background:var(--color-primary-10);overflow:hidden}.unit-rate-fill{display:block;height:100%;border-radius:999px;background:var(--accent)}.unit-rate-text{flex-shrink:0;font-size:var(--type-label-size);font-weight:600;color:var(--muted)}.timeline-nav{position:absolute;top:54%;z-index:2;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:999px;background:var(--color-secondary-20);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:background .16s ease,transform .16s ease;transform:translateY(-50%)}.timeline-nav:active,.timeline-nav:focus-visible,.timeline-nav:hover{background:var(--color-secondary-100)}.timeline-nav:focus-visible,.timeline-nav:hover{transform:translateY(-50%) scale(1.05)}.timeline-nav:active{transform:translateY(-50%) scale(.96)}.timeline-nav:focus-visible{outline:2px solid var(--color-white-100);outline-offset:2px}.timeline-prev{left:18px;padding-right:2px}.timeline-next{right:18px;padding-left:2px}.timeline-nav:before{content:"";display:block;width:24px;height:24px;background:var(--color-white-100);-webkit-mask:url(/assets/icons/chevron-right-small.svg) center/contain no-repeat;mask:url(/assets/icons/chevron-right-small.svg) center/contain no-repeat}.timeline-prev:before{transform:rotate(180deg)}.timeline-card small{overflow:hidden;color:var(--color-primary-100);font-size:var(--type-label-size);font-weight:600;letter-spacing:-.24px;text-overflow:ellipsis;white-space:nowrap}.timeline-card--miss small,.timeline-card--miss-off small{color:var(--color-red-100)}.timeline-card--scheduled small,.timeline-card--scheduled-off small{color:var(--color-secondary-100)}.timeline-card h3{min-width:0;margin:0;overflow:hidden;color:var(--color-black-100);font-size:var(--type-heading-2-size);font-weight:var(--type-heading-2-weight);letter-spacing:-.36px;line-height:var(--type-heading-2-line-height);text-overflow:ellipsis;white-space:nowrap}.timeline-card p{margin:0;color:var(--color-secondary-100);font-size:var(--type-body-size);letter-spacing:-.28px;line-height:var(--type-body-line-height)}.study-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;min-width:0}.study-grid--single{grid-template-columns:minmax(0,1fr)}.primary-card{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-width:0;padding:32px}@media (min-width:1025px){.study-grid{align-items:start}.primary-card{gap:16px;padding:22px 28px}.topbar>.course-select .course-trigger{width:clamp(252px,24vw,300px)}.topbar>.course-select .course-menu{max-width:min(360px,calc(100vw - 48px))}}.section-link{display:inline-flex;align-items:center;gap:4px;width:-moz-fit-content;width:fit-content;color:var(--ink);font-size:var(--type-heading-2-size);font-weight:var(--type-heading-2-weight);letter-spacing:-.36px;line-height:var(--type-heading-2-line-height);text-decoration:none;transition:color .16s ease,transform .16s ease}.section-link>span:last-child,.text-arrow{width:20px;height:20px;background:currentColor;-webkit-mask:url(/assets/icons/chevron-right.svg) center/contain no-repeat;mask:url(/assets/icons/chevron-right.svg) center/contain no-repeat;transition:transform .16s ease}.section-link:focus-visible,.section-link:hover{color:var(--color-primary-100)}.section-link:focus-visible>span:last-child,.section-link:hover>span:last-child{transform:translateX(2px)}.section-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.lesson-card-main{gap:24px}.lesson-card-detail,.lesson-card-main{display:flex;flex-direction:column;width:100%;min-width:0}.lesson-card-detail{gap:8px}.lesson-meta,.mission-tags{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.lesson-meta{gap:8px}.lesson-meta span,.mission-tags span,.notice-list strong{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:6px;background:var(--accent);color:var(--color-text-inverse-warm);font-size:var(--type-label-size);font-weight:var(--type-label-weight)}.lesson-meta span{min-height:auto;padding:6px 8px;line-height:var(--type-label-line-height);letter-spacing:-.24px}.lesson-meta strong{color:var(--accent);font-size:var(--type-heading-3-size);font-weight:var(--type-heading-3-weight);letter-spacing:-.32px;line-height:var(--type-heading-3-line-height)}.primary-card h2{margin:0;font-size:var(--type-heading-1-size);font-weight:var(--type-heading-1-weight);letter-spacing:-.48px;line-height:var(--type-heading-1-line-height)}.primary-card p{margin:0;color:var(--muted)}.lesson-facts,.primary-card p{font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:-.28px;line-height:var(--type-body-line-height)}.lesson-facts{display:flex;flex-wrap:wrap;gap:16px;color:var(--ink)}.lesson-fact{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.lesson-fact-icon{width:20px;height:20px;flex-shrink:0}.inline-progress{height:10px;overflow:hidden;border-radius:999px;background:var(--color-progress-track)}.inline-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.primary-action{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:59px;padding:0 18px;border-radius:12px;background:var(--accent);color:var(--color-text-inverse-warm);font-size:var(--type-peer-size);font-weight:var(--type-heading-3-weight);transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.primary-action.is-locked{background:var(--color-curriculum-bg);color:var(--muted);cursor:not-allowed;border:1px solid var(--color-secondary-20)}.primary-action.is-locked:hover{background:var(--color-curriculum-bg);box-shadow:none;transform:none}.primary-action.is-disabled{position:relative;background:var(--color-curriculum-bg);color:var(--muted);cursor:not-allowed;border:1px solid var(--color-secondary-20)}.primary-action.is-disabled:hover{background:var(--color-curriculum-bg);box-shadow:none;transform:none}.primary-action.is-disabled:hover:after{content:attr(data-tooltip);bottom:calc(100% + 9px);padding:7px 12px;border-radius:8px;background:var(--ink);color:var(--color-text-inverse-warm);font-size:var(--type-support-size);font-weight:500;white-space:nowrap;box-shadow:0 6px 16px var(--effect-action-shadow)}.primary-action.is-disabled:hover:after,.primary-action.is-disabled:hover:before{position:absolute;left:50%;transform:translateX(-50%);pointer-events:none;z-index:20}.primary-action.is-disabled:hover:before{content:"";bottom:calc(100% + 3px);border:6px solid transparent;border-top:6px solid var(--ink)}.mission-card--empty{align-items:center;justify-content:center;background:var(--color-curriculum-bg);border:1px dashed var(--color-secondary-20)}.mission-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:16px}.mission-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--surface);color:var(--accent)}.mission-empty-icon svg{width:32px;height:32px}.mission-empty-title{font-size:var(--type-heading-3-size);font-weight:600;color:var(--ink)}.mission-empty-sub{font-size:var(--type-support-size);color:var(--muted)}.primary-action:focus-visible,.primary-action:hover{background:var(--accent-dark);box-shadow:0 12px 24px var(--effect-action-shadow);transform:translateY(-2px)}.primary-action:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.primary-action:active{transform:translateY(0)}.mission-card{justify-content:flex-start;gap:24px;background:var(--surface)}.mission-card .section-link{flex-shrink:0}.mission-card-detail{gap:8px}.mission-card-bottom,.mission-card-detail{display:flex;flex-direction:column;width:100%;min-width:0}.mission-card-bottom{gap:24px;margin-top:auto}@media (min-width:1025px){.lesson-card-main,.mission-card,.mission-card-bottom{gap:14px}.primary-action{min-height:50px}}.mission-done{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}.mission-done-icon{width:56px;height:56px}.mission-done-icon svg{display:block;width:100%;height:100%}.mission-done-text{font-size:var(--type-heading-3-size);font-weight:600;color:var(--ink)}.mission-done-card .primary-action{margin-top:auto}.mission-tags span{background:var(--color-mission-tag)}.mission-tags{align-items:flex-start;gap:4px}.mission-tags span{min-height:auto;padding:6px 8px;line-height:var(--type-label-line-height);letter-spacing:-.24px}.mission-tags span:first-child{background:var(--accent)}.mission-tags span:last-child{background:var(--color-secondary-100)}.mission-deadline{display:inline-flex;align-items:center;gap:4px;color:var(--ink);font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:-.28px;line-height:var(--type-body-line-height);white-space:nowrap}.mission-deadline-icon{width:20px;height:20px;flex-shrink:0}.mission-peer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;width:100%;min-width:0}.mission-progress{display:flex;flex-shrink:1;min-width:0;gap:2px}.mission-progress span{width:8px;height:20px;border-radius:4px;background:var(--color-primary-20)}.mission-progress span.is-filled{background:var(--accent)}.peer-note{flex-shrink:0;color:var(--ink);font-size:var(--type-heading-3-size);font-weight:var(--type-heading-3-weight);letter-spacing:-.32px;line-height:var(--type-heading-3-line-height);text-align:right;white-space:nowrap}.home-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:16px;gap:16px}.notice-list,.promo-banner,.quote-banner{display:grid;align-content:start;grid-gap:16px;gap:16px;min-width:0;padding:32px}.notice-list,.quote-banner{min-height:154px}@media (min-width:1025px){.notice-list{gap:8px;padding:18px 28px}}.notice-list,.primary-card,.quote-banner{background:var(--color-background-default);box-shadow:none}.notice-list p{margin:0;color:var(--ink);font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:-.28px;line-height:var(--type-body-line-height)}.notice-items{display:flex;flex-direction:column;gap:8px;min-width:0}.notice-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:8px;gap:8px;min-width:0}.notice-item-body{min-width:0;display:flex;align-items:baseline;gap:10px}.notice-item-body>p{flex:1 1 auto;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-item-meta{flex-shrink:0;font-size:var(--type-support-size);color:var(--muted);white-space:nowrap}.notice-link{border-radius:6px;color:inherit;text-decoration:none}.notice-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.notice-link:hover p{text-decoration:underline;text-underline-offset:3px}.notice-label{display:inline-flex;align-items:center;justify-content:center;min-height:auto;min-width:48px;padding:6px 8px;border-radius:6px;color:var(--color-text-inverse-warm);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:-.24px;line-height:var(--type-label-line-height)}.notice-label--primary{background:var(--accent)}.notice-label--secondary{background:var(--color-secondary-100)}.notice-item p{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-banner{position:relative;align-content:center;overflow:hidden;padding:0;background:var(--color-curriculum-bg);color:var(--ink)}.quote-banner:before{position:absolute;inset:0 0 0 auto;width:min(58%,300px);content:"";background:var(--quote-banner-image) center 30% /cover no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent,#000 58%);mask-image:linear-gradient(90deg,transparent,#000 58%)}.quote-banner>*{position:relative;z-index:1}.quote-banner-copy{display:grid;align-content:center;grid-gap:10px;gap:10px;height:100%;max-width:66%;min-width:0;padding:0 28px;overflow:hidden}.quote-banner h2{margin:0;font-size:var(--type-banner-heading-size);line-height:var(--type-banner-heading-line-height);font-weight:600;letter-spacing:-.3px;color:var(--ink);word-break:keep-all;white-space:nowrap}.quote-banner p{margin:0;font-size:var(--type-support-size);font-weight:600;color:var(--muted)}.promo-banner{min-height:154px;background:linear-gradient(90deg,var(--overlay-dark-strong),var(--overlay-dark-subtle)),radial-gradient(circle at 82% 58%,var(--overlay-promo-glow),transparent 30%),var(--color-promo-bg);color:var(--color-text-inverse-warm)}.promo-banner span{display:inline-flex;width:-moz-fit-content;width:fit-content;min-height:26px;align-items:center;padding:0 10px;border-radius:4px;background:var(--overlay-dark-chip)}.empty-state{padding:40px}.lms-hamburger,.sidebar-close,.sidebar-overlay,.staff-mobile-topbar,.student-bottom-nav{display:none}@media (max-width:1180px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.home-layout{grid-template-columns:1fr}}@media (min-width:641px) and (max-width:1024px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:28px 12px 24px}.brand img{width:34px}.sidebar-top{gap:28px}.nav-list{gap:6px}.nav-item{justify-content:center;gap:0;padding:16px 0}.nav-item>span,.sidebar-status,.staff-side-label{display:none}.workspace{padding:24px 24px 24px 12px}.student-greeting,.student-greeting>div{min-width:0}.topbar h1,.topbar p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-main{grid-template-rows:none}.home-bottom-grid,.study-grid{grid-template-columns:1fr}}@media (max-width:640px){.app-shell{grid-template-columns:1fr;align-content:start}.sidebar{position:fixed;top:0;right:0;z-index:1200;width:min(84vw,300px);max-width:300px;height:100vh;height:100dvh;padding:20px 24px 28px;transform:translateX(100%);transition:transform .28s ease;overflow-y:auto;overscroll-behavior:contain}.sidebar.is-open{transform:translateX(0);box-shadow:-16px 0 40px rgba(40,38,39,.22)}.sidebar-overlay{display:block;position:fixed;inset:0;z-index:1100;background:rgba(40,38,39,.45);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease}.sidebar-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;width:40px;height:40px;margin:-4px -8px 4px 0;border:0;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer}.sidebar-close:focus-visible,.sidebar-close:hover{background:var(--color-primary-10)}.staff-mobile-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:900;display:flex;grid-column:1/-1;align-items:center;gap:12px;min-height:var(--lms-mobile-topbar-height);height:var(--lms-mobile-topbar-height);padding:8px var(--lms-mobile-gutter);border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.staff-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:12px;color:var(--ink)}.staff-menu-trigger:focus-visible,.staff-menu-trigger:hover{background:var(--color-primary-10)}.staff-mobile-brand{display:flex;min-width:0;flex-direction:column;gap:2px;line-height:1.2}.staff-mobile-brand span{color:var(--muted);font-size:11px;font-weight:600}.staff-mobile-brand strong{overflow:hidden;color:var(--ink);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.student-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:1000;display:flex;min-height:calc(var(--lms-mobile-nav-height) + env(safe-area-inset-bottom));align-items:stretch;padding:6px 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:hsla(0,0%,100%,.97);box-shadow:0 -8px 28px rgba(40,38,39,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-bottom-item{display:flex;min-width:0;min-height:56px;flex:1 1;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 3px;border-radius:12px;color:var(--muted);font-size:11px;font-weight:600;line-height:1.15;white-space:nowrap}.student-bottom-item img{width:22px;height:22px;opacity:.68}.student-bottom-item.is-active{background:var(--color-primary-10);color:var(--accent-dark)}.student-bottom-item.is-active img{opacity:1}.student-bottom-item.is-disabled{opacity:.38;pointer-events:none}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:12px 10px;gap:12px 10px}.student-greeting{min-width:0;gap:12px;margin-right:0}.student-greeting>div{min-width:0}.avatar{width:44px;height:44px;flex-shrink:0}.topbar h1{font-size:18px}.topbar h1,.topbar p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar p{font-size:12px}.topbar-date{display:none}.notification-panel{position:fixed;top:auto;right:var(--lms-mobile-gutter);bottom:calc(var(--lms-mobile-nav-height) + env(safe-area-inset-bottom) + 12px);left:var(--lms-mobile-gutter);width:auto;max-height:min(68dvh,560px);overflow-y:auto;border-radius:18px}.notification-panel:before{display:none}.topbar .course-select{grid-column:1/-1;justify-self:stretch;width:auto;min-width:0;max-width:none}.course-trigger{width:100%}.course-menu{left:0;right:auto;width:100%;max-width:none}.workspace{padding:var(--lms-mobile-gutter)}.staff-mobile-topbar~.workspace{padding:0;min-height:calc(100dvh - var(--lms-mobile-topbar-height))}.student-bottom-nav~.workspace{min-height:100dvh;padding-bottom:calc(var(--lms-mobile-gutter) + var(--lms-mobile-nav-height) + env(safe-area-inset-bottom))}.home-main{grid-template-rows:none}.home-bottom-grid,.study-grid{grid-template-columns:1fr}.timeline-nav{display:none}.peer-note{flex:1 1 100%;min-width:0;text-align:left;white-space:normal}.peer-note br{display:none}.curriculum-track,.notice-list,.primary-card{padding:22px}.notice-items{gap:0}.notice-item{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;padding:12px 0}.notice-item+.notice-item{border-top:1px solid var(--line)}.notice-label{justify-self:start}.notice-item-body{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;grid-gap:6px;gap:6px;width:100%}.notice-item p,.notice-item-body>p{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}.notice-item-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-banner{padding:0}.quote-banner-copy{padding:0 22px}}.lms-toast{position:fixed;bottom:36px;left:50%;transform:translateX(-50%);z-index:2100;max-width:calc(100vw - 48px);padding:13px 22px;border-radius:10px;background:rgba(40,38,39,.82);color:var(--color-white-100);font-size:14px;font-weight:500;line-height:1.4;white-space:nowrap;pointer-events:none;animation:lmsToastIn .2s ease-out}@keyframes lmsToastIn{0%{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%);opacity:1}}@media (max-width:640px){.lms-toast{bottom:calc(var(--lms-mobile-nav-height) + env(safe-area-inset-bottom) + 18px);max-width:calc(100vw - 32px);white-space:normal;text-align:center}}.lms-confetti{position:fixed;inset:0;z-index:2100;overflow:hidden;pointer-events:none}.lms-confetti-piece{position:absolute;top:-24px;opacity:0;animation-name:lms-confetti-fall;animation-timing-function:cubic-bezier(.2,.6,.5,1);animation-fill-mode:forwards}@keyframes lms-confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0deg);opacity:0}10%{opacity:1}85%{opacity:1}to{transform:translate3d(var(--confetti-drift,0),105vh,0) rotate(var(--confetti-rotate,1turn));opacity:0}}@media (prefers-reduced-motion:reduce){.lms-confetti{display:none}}.lms-celebrate{animation:lms-celebrate-flash .7s ease-in-out 3}@keyframes lms-celebrate-flash{0%,to{transform:scale(1);box-shadow:0 0 0 0 hsla(35,79%,72%,0);filter:brightness(1)}35%{transform:scale(1.08);box-shadow:0 0 0 6px hsla(35,79%,72%,.45);filter:brightness(1.15)}70%{transform:scale(1.02);box-shadow:0 0 0 12px hsla(35,79%,72%,0);filter:brightness(1)}}@media (prefers-reduced-motion:reduce){.lms-celebrate{animation:none}}.editor-draft-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid var(--color-primary-30,var(--color-secondary-20));border-radius:12px;background:var(--color-primary-10)}.editor-draft-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.editor-draft-copy strong{color:var(--ink);font-size:var(--type-support-size);font-weight:700}.editor-draft-copy span,.editor-draft-state{color:var(--muted);font-size:var(--type-caption-size)}.editor-draft-actions{display:flex;flex-shrink:0;align-items:center;gap:7px}.editor-draft-discard,.editor-draft-restore{display:inline-flex;height:34px;align-items:center;justify-content:center;padding:0 12px;border-radius:8px;font-size:var(--type-label-size);font-weight:700}.editor-draft-restore{background:var(--accent);color:var(--color-text-inverse-warm)}.editor-draft-restore:hover{background:var(--accent-dark)}.editor-draft-discard{border:1px solid var(--color-secondary-20);background:var(--surface);color:var(--ink)}.editor-draft-discard:hover{border-color:var(--accent);color:var(--accent-dark)}.editor-draft-state{min-height:18px;text-align:right}.editor-draft-state.is-error{color:var(--color-red-100)}@media (max-width:640px){.editor-draft-bar{align-items:flex-start;flex-direction:column}.editor-draft-actions{width:100%}.editor-draft-discard,.editor-draft-restore{flex:1 1}}