:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{color:#142840;background:#f3f7fb;font-synthesis:none;--jcd-navy: #17375e;--jcd-navy-deep: #102944;--jcd-blue: #2d74ac;--jcd-blue-pale: #dbeafb;--jcd-ice: #a9c8e5;--jcd-paper: #f3f7fb;--jcd-ink: #142840;--jcd-muted: #60758b;--jcd-line: #d8e3ee;--motion-instant: 80ms;--motion-fast: .12s;--motion-base: .18s;--motion-medium: .24s;--motion-ease: cubic-bezier(.2, 0, 0, 1);--motion-enter: cubic-bezier(0, 0, .2, 1)}*{box-sizing:border-box}html,body,#root{min-height:100%;width:100%;margin:0;overflow-x:clip}body{min-width:320px;background:var(--jcd-paper)}button,a,input,textarea,select{font:inherit}input,textarea,select{accent-color:var(--jcd-blue)}a{color:var(--jcd-blue)}.boot{min-height:100vh;display:grid;place-content:center;gap:14px;color:var(--jcd-navy);text-align:center}.app-layout{min-height:100vh;min-width:0;background:var(--jcd-paper)}.app-layout>.ant-layout{min-width:0}.workspace-layout{min-width:0;flex:1 1 auto}.desktop-sider{position:sticky!important;top:0;height:100vh;overflow:auto;border-right:1px solid rgba(255,255,255,.08)}.brand-lockup{min-height:84px;padding:18px 20px;display:flex;align-items:center;gap:11px;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.brand-lockup img,.drawer-brand img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#fff}.brand-lockup strong{display:block;font-size:1rem;letter-spacing:.08em}.brand-lockup span{display:block;color:var(--jcd-ice);font-size:.76rem;margin-top:2px}.sidebar-nav{display:grid;gap:5px;padding:18px 12px}.desktop-sider .sidebar-nav>button{appearance:none;border:0;color:#e4f0fb!important;background:transparent;display:flex;align-items:center;gap:12px;border-radius:10px;padding:11px 12px;text-align:left;cursor:pointer;font-weight:650;transition:background var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),transform var(--motion-instant) var(--motion-ease)}.desktop-sider .sidebar-nav>button>span,.desktop-sider .sidebar-nav>button>.anticon{color:inherit!important}.desktop-sider .sidebar-nav>button:hover{background:#ffffff1a;color:#fff!important}.sidebar-nav button:active{transform:scale(.985)}.desktop-sider .sidebar-nav>button.active{background:#2b5e91;color:#fff!important;box-shadow:inset 3px 0 #a9c8e5}.side-footer{position:absolute;bottom:0;left:0;right:0;padding:18px 24px;color:#9ec2e1;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.app-header{height:70px;padding:0 28px;background:#ffffffeb;border-bottom:1px solid var(--jcd-line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-context{margin-right:auto}.mobile-brand{display:none}.account-button{border:0;display:flex;align-items:center;gap:8px;box-shadow:none}.notice-menu{max-width:280px;display:grid;gap:4px;white-space:normal}.notice-menu span{font-size:.8rem;color:var(--jcd-muted)}.app-content{max-width:1460px;width:100%;min-width:0;margin:0 auto;padding:34px 38px 84px}.page-enter{animation:page-enter var(--motion-medium) var(--motion-enter) both}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}.page-heading h1.ant-typography{margin:0 0 6px!important;font-size:clamp(1.7rem,2.8vw,2.45rem)!important;letter-spacing:-.04em;color:var(--jcd-ink)!important}.page-heading .ant-typography{color:var(--jcd-muted);max-width:690px;margin-bottom:0}.course-card{height:100%;overflow:hidden;border-color:var(--jcd-line);transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}.course-card:hover{transform:translateY(-3px);border-color:#9fc3e2;box-shadow:0 18px 36px #1b41681c}.course-card .ant-card-body{min-height:268px;display:flex;flex-direction:column}.course-card-single{max-width:920px}.course-card-cap{height:46px;margin:-24px -24px 20px;padding:12px 18px;display:flex;align-items:center;background:linear-gradient(120deg,var(--jcd-navy),#245684)}.course-card-cap .ant-tag{background:#ffffff26;color:#fff;border-color:#ffffff40;text-transform:capitalize}.course-card h3{margin:0 0 8px!important;color:var(--jcd-navy)}.course-card .ant-progress{margin-top:auto}.course-card-action{margin-top:20px;color:var(--jcd-blue);font-weight:700;display:flex;justify-content:space-between;align-items:center}.course-meta{display:flex;gap:10px;color:var(--jcd-muted);font-size:.88rem;margin:-12px 0 18px;align-items:center;flex-wrap:wrap}.units-stack{display:grid;gap:16px}.unit-card{border-color:var(--jcd-line);overflow:hidden}.unit-card .ant-card-head{background:#fff;border-bottom-color:#e9f0f6;min-height:60px}.unit-card .ant-card-head-title{font-size:1.05rem}.unit-card .ant-card-head-wrapper,.unit-card .ant-card-head-title{min-width:0}.unit-card .ant-card-extra{flex:0 1 auto}.unit-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.unit-intro .ant-typography{margin-bottom:0}.unit-eyebrow{display:block;margin-bottom:5px;color:var(--jcd-blue);font-size:.71rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.unit-count{white-space:nowrap;font-size:.8rem}.draft-unit{border-style:dashed;background:#fbfdff}.unit-index{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--jcd-blue-pale);color:var(--jcd-navy);font-size:.78rem;font-weight:800}.resource-list{display:grid;gap:0;border-top:1px solid #e7eff6;margin-top:18px}.resource-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;padding:16px 2px;border-bottom:1px solid #e7eff6;align-items:start}.resource-row:last-child{border-bottom:0}.resource-icon{width:30px;height:30px;display:grid;place-items:center;color:var(--jcd-blue);background:#eef6fd;border-radius:9px}.resource-main{min-width:0}.resource-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.resource-title strong{color:var(--jcd-ink)}.resource-kind{background:#edf3f8;color:#476681;font-size:.72rem}.resource-worksheet .resource-kind{background:#fff1dc;color:#87521c}.resource-actions{padding-left:6px}.rich-content{line-height:1.65;color:#37516a;margin-top:8px}.rich-content>:last-child{margin-bottom:0}.rich-content h1,.rich-content h2,.rich-content h3,.rich-content h4{color:var(--jcd-navy);margin-top:18px}.rich-content p{margin:8px 0}.video-embed,.native-video{display:block;width:min(100%,650px);aspect-ratio:16 / 9;border:0;border-radius:12px;margin-top:14px;background:#102944}.side-card{border-color:var(--jcd-line)}.side-card .ant-list-item{align-items:flex-start}.upcoming-item{display:flex;gap:10px;padding:9px 0;color:var(--jcd-blue);border-bottom:1px solid #e7eff6}.upcoming-item:last-child{border-bottom:0}.upcoming-item>div{display:grid;gap:1px;color:var(--jcd-ink)}.upcoming-item span{color:var(--jcd-muted);font-size:.8rem}.editor-shell{border:1px solid var(--jcd-line);border-radius:10px;overflow:hidden;background:#fff}.editor-toolbar{padding:8px;display:flex;gap:6px;border-bottom:1px solid var(--jcd-line);background:#f7fbff}.editor-shell .tiptap{min-height:132px;padding:13px;outline:none;line-height:1.6}.editor-shell .tiptap p:first-child{margin-top:0}.assignment-builder{display:grid;gap:12px;margin-bottom:22px}.assignment-builder .ant-form-item{margin-bottom:2px}.assignment-builder-heading{display:flex;align-items:center;justify-content:space-between}.assignment-question{border-color:#dce7f0;background:#fbfdff}.assignment-question .ant-card-body{padding:13px}.assignment-toolbar{margin:4px 0 18px}.assignment-introduction{white-space:pre-wrap;color:#37516a}.native-assignment-form .ant-form-item{margin-bottom:22px}.assignment-help{margin-top:16px}:root{--jcd-field-bg: #ffffff;--jcd-field-border: #b9cad9;--jcd-field-focus: #2d74ac;--jcd-field-placeholder: #7890a4}.ant-form .ant-form-item-label>label{color:var(--jcd-ink);font-weight:650}.ant-form .ant-input:not([disabled]),.ant-form .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form .ant-picker,.ant-form .ant-select,.ant-form .ant-upload-wrapper .ant-btn{color:var(--jcd-ink)!important;background:var(--jcd-field-bg)!important;border-color:var(--jcd-field-border)!important;box-shadow:none;transition:border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}.ant-form .ant-input,.ant-form textarea.ant-input,.ant-form .ant-picker input,.ant-form .ant-select-content,.ant-form .ant-select-selection-item,.ant-form .ant-select-selection-placeholder{color:var(--jcd-ink)!important;-webkit-text-fill-color:var(--jcd-ink)}.ant-form .ant-input::placeholder,.ant-form textarea.ant-input::placeholder,.ant-form .ant-picker input::placeholder,.ant-form .ant-select-selection-placeholder{color:var(--jcd-field-placeholder)!important;opacity:1;-webkit-text-fill-color:var(--jcd-field-placeholder)}.ant-form .ant-input:not([disabled]):hover,.ant-form .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form .ant-picker:hover,.ant-form .ant-select:hover{border-color:#5c94be!important}.ant-form .ant-input:not([disabled]):focus,.ant-form .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus-within,.ant-form .ant-picker-focused,.ant-form .ant-select-focused{border-color:var(--jcd-field-focus)!important;box-shadow:0 0 0 3px #2d74ac29!important;outline:0}.ant-form .ant-select{position:relative;min-height:40px;display:flex;align-items:center}.ant-form .ant-select .ant-select-content{position:relative;z-index:1;width:100%;padding:0 11px;opacity:1!important;color:var(--jcd-ink)!important;background:transparent!important}.ant-form .ant-select .ant-select-input{position:absolute!important;inset:0!important;z-index:0!important;width:100%!important;height:100%!important;opacity:0!important;color:transparent!important;background:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:transparent!important}.ant-form .ant-select .ant-select-suffix{position:relative;z-index:2;color:#627a90!important}.ant-form .ant-picker{min-height:40px}.ant-form .ant-picker input{background:transparent!important}.ant-form .ant-checkbox-wrapper,.ant-form .ant-radio-wrapper{color:var(--jcd-ink)}.ant-form .ant-checkbox .ant-checkbox-inner,.ant-form .ant-radio .ant-radio-inner{border-color:#7890a4;background:#fff}.ant-select-dropdown{background:#fff!important;border:1px solid var(--jcd-line);box-shadow:0 12px 28px #10294429}.ant-select-dropdown .ant-select-item{color:var(--jcd-ink)!important}.ant-select-dropdown .ant-select-item-option-active,.ant-select-dropdown .ant-select-item-option-selected{background:#e8f2fb!important;color:var(--jcd-navy)!important}.ant-form input:-webkit-autofill,.ant-form textarea:-webkit-autofill,.ant-form input:-webkit-autofill:hover,.ant-form input:-webkit-autofill:focus,.ant-form textarea:-webkit-autofill:hover,.ant-form textarea:-webkit-autofill:focus{-webkit-text-fill-color:var(--jcd-ink)!important;-webkit-box-shadow:0 0 0 1000px var(--jcd-field-bg) inset!important;box-shadow:0 0 0 1000px var(--jcd-field-bg) inset!important;caret-color:var(--jcd-ink)}.worksheet-modal .ant-modal-body{max-height:calc(100vh - 150px);overflow:auto}.worksheet-toolbar{min-height:56px;display:flex;gap:16px;align-items:center;justify-content:space-between;margin:14px 0}.pdf-viewer{display:grid;justify-content:center;gap:14px;padding:20px;background:#e8eff6;border-radius:12px;overflow:auto}.pdf-viewer .react-pdf__Document{display:grid;justify-items:center;gap:14px}.pdf-viewer .react-pdf__Page{box-shadow:0 8px 24px #1029442e;max-width:100%}.pdf-viewer canvas{max-width:100%;height:auto!important}.pdf-loading{min-height:380px;display:grid;place-content:center;gap:14px;color:var(--jcd-muted);text-align:center}.worksheet-help{margin-top:12px}.calendar-card .ant-picker-calendar{background:transparent}.calendar-event{margin:2px 0;padding:2px 4px;border-left:3px solid var(--jcd-blue);color:#254b70;font-size:.73rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#ebf4fc}.calendar-event.due{border-left-color:#cc7a24;background:#fff5e9;color:#87521c}.calendar-event span{margin-right:4px;text-transform:uppercase;font-size:.62rem;font-weight:800}.calendar-note{margin-top:14px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#102944;position:relative;overflow:hidden}.auth-backdrop{position:absolute;inset:-30%;background:radial-gradient(circle at 40% 35%,rgba(78,144,198,.6),transparent 34%),radial-gradient(circle at 75% 80%,rgba(169,200,229,.22),transparent 30%)}.auth-card{z-index:1;width:min(460px,100%);padding:clamp(26px,6vw,46px);background:#fffffffa;border:1px solid rgba(255,255,255,.6);border-radius:22px;box-shadow:0 24px 72px #00000047;display:grid;gap:20px;animation:card-enter var(--motion-medium) var(--motion-enter) both}@keyframes card-enter{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card h1{margin:0 0 4px!important;color:var(--jcd-navy);letter-spacing:-.04em}.auth-card h2{margin:0!important;color:var(--jcd-navy)}.auth-card .ant-typography{margin:0;color:var(--jcd-muted)}.auth-mark{width:76px;height:76px;border-radius:50%;background:#fff;box-shadow:0 4px 16px #10294424}.mobile-nav{display:none}.mobile-drawer .ant-drawer-body{display:grid;align-content:start;gap:6px;padding:18px}.drawer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--jcd-navy)}@media(max-width:1599px){.desktop-sider{display:none!important}.app-content{padding:28px 24px 92px}.mobile-brand{display:flex;margin-left:-12px}.mobile-brand img{width:30px;height:30px;border-radius:50%}.header-context{display:none}.mobile-nav{display:grid;position:fixed;bottom:0;z-index:20;left:0;right:0;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--jcd-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-nav button{border:0;background:none;color:#6c7f91;min-width:0;display:grid;place-items:center;gap:3px;font-size:.65rem;padding:4px 2px;cursor:pointer}.mobile-nav button.active{color:var(--jcd-blue);font-weight:750}}@media(max-width:640px){.app-header{height:62px;padding:0 15px}.app-content{padding:22px 14px 90px}.page-heading{display:grid;gap:14px;margin-bottom:20px}.page-heading h1{font-size:1.75rem!important}.page-heading>.ant-space{width:100%}.page-heading>.ant-space .ant-btn{flex:1}.resource-row{grid-template-columns:34px minmax(0,1fr)}.resource-actions{grid-column:2;padding:0}.resource-actions .ant-btn{width:100%}.unit-card .ant-card-head{padding:0 14px}.unit-card .ant-card-head-wrapper{align-items:flex-start;padding:12px 0;gap:8px}.unit-card .ant-card-extra{white-space:normal}.unit-card .ant-card-body{padding:16px}.unit-intro{display:grid;gap:8px}.course-card .ant-card-body{min-height:226px}.worksheet-toolbar{display:grid;gap:10px}.worksheet-toolbar .ant-space{display:grid;grid-template-columns:1fr 1fr}.worksheet-toolbar .ant-space .ant-btn{width:100%}.worksheet-modal .ant-modal{width:calc(100vw - 16px)!important;max-width:none;margin:8px auto;padding-bottom:0;top:0}.worksheet-modal .ant-modal-content{max-height:calc(100vh - 16px);display:grid;grid-template-rows:auto minmax(0,1fr)}.worksheet-modal .ant-modal-body{min-height:0;max-height:calc(100vh - 82px)}.pdf-viewer{padding:8px}.calendar-card{overflow:auto}.calendar-card .ant-picker-calendar{min-width:600px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
