@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_a11773{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_a11773{--font-plus-jakarta:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}:where(:not(.jupytutor-app):not(.jupytutor-app *)){box-sizing:border-box;margin:0;padding:0}.jupytutor-app,.jupytutor-app *{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;background:linear-gradient(145deg,#f0f9ff,#e0f2fe 40%,#f0f4ff);color:#333;line-height:1.6}.login-container,body{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-container{background:rgba(255,255,255,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:44px 40px 36px;border-radius:18px;box-shadow:0 8px 40px rgba(6,182,212,.1),0 2px 12px rgba(15,23,42,.08);border:1px solid rgba(186,230,253,.6);width:100%;max-width:420px;text-align:center;flex-direction:column;margin:0 auto}.login-container form{width:100%;display:flex;flex-direction:column;gap:.75rem}.logo{display:flex;margin-bottom:24px}.icon-button,.logo{align-items:center;justify-content:center}.icon-button{background:transparent;border:none;border-radius:0;padding:8px 16px;cursor:pointer;display:inline-flex;transition:color .2s ease,transform .1s ease}.icon-button:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.icon-button svg{width:20px;height:20px;color:#6b7280;transition:color .2s ease,transform .2s ease}.icon-button:hover svg{color:#4338ca;transform:scale(1.1)}.welcome-heading{font-size:22px;font-weight:600;margin-bottom:8px;color:#111827}.logo-section{height:64px;margin-bottom:20px;position:relative;width:200px}.nus-logo{position:relative!important;object-fit:contain}.subtitle{font-size:13.5px;color:#64748b;margin-bottom:22px}.form-group{margin-bottom:10px}.email-input{width:100%;padding:11px 14px;border:1.5px solid #e2e8f0;border-radius:9px;font-size:15px;font-weight:400;color:#0f172a;background:#f8fafc;transition:border-color .2s ease,box-shadow .2s ease;outline:none}.email-input:focus{border-color:#06b6d4;background:#fff;box-shadow:0 0 0 3px rgba(6,182,212,.12)}.email-input::placeholder{color:#94a3b8;font-weight:400}.continue-button{width:100%;padding:11px 16px;background:linear-gradient(135deg,#06B6D4,#0891B2);color:#fff;border:none;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s ease,box-shadow .2s ease;box-shadow:0 2px 10px rgba(6,182,212,.25);letter-spacing:.01em}.continue-button:hover{opacity:.92;box-shadow:0 4px 16px rgba(6,182,212,.35)}.continue-button:disabled{background:#94a3b8;box-shadow:none;cursor:not-allowed}.or-separator{display:flex;align-items:center;text-align:center;margin:24px 0;color:#9ca3af;font-size:12px}.or-separator .line{flex-grow:1;height:1px;background-color:#e5e7eb}.or-separator .text{padding:0 12px}.share-separator-or{text-align:center;font-size:14px;font-weight:600;color:#4b5563;margin:20px 0;position:relative}.share-separator-or:after,.share-separator-or:before{content:"";display:block;width:40%;height:1px;background-color:#d1d5db;position:absolute;top:50%}.share-separator-or:before{left:0}.share-separator-or:after{right:0}.social-button{width:100%;padding:10px 12px;background-color:#fff;color:#374151;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;margin-bottom:12px}.social-button:last-child{margin-bottom:0}.social-button:hover{background-color:#f9fafb}.social-button svg{margin-right:10px;width:18px;height:18px}.social-button-linkedin svg{fill:#0077B5}.social-button-github svg{fill:#181717}.feedback-message{padding:10px;margin-bottom:16px;border-radius:6px;font-size:14px;text-align:left}.feedback-message.success{background-color:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.feedback-message.error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}@keyframes modal-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9ecef;padding-bottom:15px;margin-bottom:20px}.modal-title{font-size:20px;font-weight:600;color:#343a40}.modal-close-button{font-weight:300;color:#6c757d;padding:0 5px}.modal-close-button:hover{color:#343a40}.modal-body{margin-bottom:25px;font-size:16px;line-height:1.6;color:#495057}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:15px;border-top:1px solid #e9ecef}.modal-button{padding:10px 20px;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.modal-button-confirm{background-color:#007bff;color:#ffffff;border-color:#007bff}.modal-button-confirm:hover{background-color:#0056b3;border-color:#0056b3}.modal-button-cancel{background-color:#ffffff;color:#6c757d;border-color:#ced4da}.modal-button-cancel:hover{background-color:#f8f9fa}.modal-button-danger{background-color:#dc3545;color:#ffffff;border-color:#dc3545}.modal-button-danger:hover{background-color:#c82333;border-color:#bd2130}.social-button:disabled{opacity:.6;cursor:not-allowed}.dashboard-page-container{display:flex;flex-direction:column;align-items:center;height:100vh;overflow-y:auto;padding:20px;background-color:#ffffff;width:100%;max-width:800px;margin:0 auto;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.08);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.dashboard-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:10px}.welcome-title{font-size:28px;font-weight:700;color:#1f2937}.user-actions{display:flex;align-items:center;position:relative}.user-actions .avatar{margin-right:0}.avatar-button{border:none;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease,transform .05s ease}.avatar-button:active{transform:translateY(.5px)}.avatar-button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.35)}.user-actions__menu{position:absolute;top:calc(100% + 10px);right:0;min-width:200px;padding:8px;border-radius:12px;background:rgba(255,255,255,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(6,182,212,.15);box-shadow:0 20px 40px rgba(8,145,178,.15),inset 0 0 0 1px rgba(255,255,255,.8);z-index:9999;animation:dropdownFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.user-actions__identity{padding:8px 14px 10px;display:flex;flex-direction:column;gap:2px;max-width:220px}.user-actions__identity-name{font-size:12.5px;font-weight:600;color:#1c1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-actions__identity-email{font-size:11px;color:#aeaeb2;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-actions__menu-item{width:100%;text-align:left;padding:12px 14px;border-radius:8px;border:none;background:transparent;color:#0f172a;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);letter-spacing:-.01em}.user-actions__menu-item:focus-visible,.user-actions__menu-item:hover{outline:none;background:linear-gradient(135deg,rgba(8,145,178,.08),rgba(6,182,212,.08));transform:translateX(2px)}.user-actions__menu-item--danger{color:#dc2626}.user-actions__menu-item--danger:hover{background:linear-gradient(135deg,rgba(220,38,38,.08),rgba(239,68,68,.08))}.user-actions__divider{height:1px;margin:4px 8px;background:rgba(6,182,212,.12)}.user-actions__role-row{display:flex;gap:4px;padding:4px 8px}.user-actions__role-pill{flex:1;padding:4px 0;border:1px solid rgba(6,182,212,.18);border-radius:5px;background:transparent;color:#475569;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease;text-align:center;line-height:1}.user-actions__role-pill:hover:not(:disabled){background:rgba(6,182,212,.08);border-color:rgba(6,182,212,.35)}.user-actions__role-pill--active{background:linear-gradient(135deg,var(--dash-cyan-500,#06b6d4),var(--dash-cyan-600,#0891b2));color:#fff;border-color:transparent;cursor:default}.user-actions__role-pill:disabled:not(.user-actions__role-pill--active){opacity:.45;cursor:not-allowed}.logout-button{background-color:#ff5757;color:white;padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;margin-right:12px;transition:background-color .2s ease}.logout-button:hover{background-color:#e63946}.avatar{width:44px;height:44px;border-radius:9999px;background:linear-gradient(135deg,var(--dash-cyan-500,#0891B2) 0,var(--dash-cyan-600,#06B6D4) 100%);color:white;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;letter-spacing:-.02em;margin-right:10px;box-shadow:0 6px 18px rgba(8,145,178,.18);transition:all .3s cubic-bezier(.4,0,.2,1)}.avatar:hover{transform:scale(1.05);box-shadow:0 10px 28px rgba(8,145,178,.25)}.dashboard-subtitle{margin-bottom:25px;width:100%;text-align:left}.course-list-container{margin-bottom:30px}.course-item{background-color:#f9fafb;padding:12px 16px;border-radius:8px;justify-content:space-between;border:1px solid #d1d5db;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.course-item:hover{background-color:#eff6ff;box-shadow:0 2px 8px rgba(0,0,0,.08)}.course-item:last-child{margin-bottom:0}.course-name{font-size:16px;font-weight:600;line-height:1.4;margin-right:10px}.course-actions{display:flex;align-items:center;gap:0;flex-shrink:0}.share-invite-content{padding:10px 0}.share-option{margin-bottom:25px}.share-option:last-child{margin-bottom:10px}.share-label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:8px}.share-input-group{display:flex;align-items:center;gap:10px}.share-input-field{flex-grow:1;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;background-color:#f9fafb;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-button{background-color:#8b5cf6;color:#ffffff;border:1px solid #8b5cf6;padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;min-width:80px;text-align:center}.copy-button:hover{background-color:#6d28d9}.copy-button svg{width:18px;height:18px}.notify-teacher-checkbox{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;user-select:none}.notify-teacher-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#0891b2;cursor:pointer}.new-course-button{background:linear-gradient(135deg,#06B6D4,#0EA5E9);color:white;padding:10px 16px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px rgba(6,182,212,.12),0 0 16px rgba(6,182,212,.12);position:relative;overflow:hidden;outline:none}.new-course-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .3s ease}.new-course-button:hover:not(:disabled){opacity:.9;transform:scale(1.03);box-shadow:0 4px 12px rgba(6,182,212,.18),0 0 20px rgba(6,182,212,.2)}.new-course-button:hover:not(:disabled):before{opacity:1}.new-course-button:focus-visible{box-shadow:0 0 0 4px rgba(6,182,212,.15),0 2px 8px rgba(6,182,212,.12)}.new-course-button:active:not(:disabled){transform:scale(.97);box-shadow:0 1px 2px rgba(15,23,42,.05),0 0 12px rgba(6,182,212,.18)}.new-course-button:disabled{background:linear-gradient(135deg,rgba(107,122,153,.3),rgba(107,122,153,.2));color:rgba(255,255,255,.7);cursor:not-allowed;opacity:.6;box-shadow:none}.new-course-button:disabled:before{display:none}.action-button-secondary{background-color:#6c757d;color:white;padding:12px 25px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.action-button-secondary:hover{background-color:#5a6268}.controls-bar{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:500px;margin-bottom:20px;gap:15px}.search-input{flex-grow:1;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline-color:#4f46e5}.search-input::placeholder{color:#9ca3af}.sort-select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background-color:#fff;color:#374151;cursor:pointer;outline-color:#4f46e5;min-width:160px}.course-list-container{background-color:#e5e7eb;border-radius:12px;padding:16px;width:100%;max-width:500px;margin-bottom:25px;box-shadow:0 2px 4px rgba(0,0,0,.05);min-height:150px;display:flex;flex-direction:column}.no-courses-message{text-align:center;color:#6b7280;font-size:15px;padding:20px;margin:auto}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:30px;width:100%;max-width:500px}.pagination-controls button{background-color:#3d3d3d;color:white;padding:8px 14px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.pagination-controls button:hover:not(:disabled){background-color:#000000}.pagination-controls button:disabled{background-color:#cbd5e1;cursor:not-allowed;opacity:.7}.pagination-controls span{font-size:14px;color:#4b5563;padding:0 8px;font-weight:500}.dashboard-subtitle{font-size:18px;color:#4b5563;margin-bottom:20px}body>div:first-child{display:flex;flex-direction:column;min-height:100vh}.create-course-page-container{display:flex;flex-direction:column;align-items:center;padding:20px;background-color:#ffffff;width:100%;max-width:1200px;margin:40px auto;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:18px 24px 14px;margin-bottom:24px;background:rgba(255,255,255,.62);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(6,182,212,.08);border-bottom-color:rgba(6,182,212,.06);border-radius:12px;position:relative;z-index:10;overflow:visible}.page-header .header-left{display:flex;align-items:center;gap:12px;min-width:0}.page-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.header-dashboard-link{background:none;border:none;padding:6px 8px;font-size:15px;font-weight:500;letter-spacing:.02em;color:#0f172a;cursor:pointer;border-radius:8px;transition:color .2s ease}.header-dashboard-link:hover{color:#0ea5e9}.header-dashboard-link:focus-visible{outline:2px solid var(--dash-cyan-500,#06b6d4);outline-offset:2px}.nmg-nav-desktop{display:inline-flex}.nmg-hamburger-wrap{display:none;position:relative}@media (max-width:560px){.nmg-nav-desktop{display:none!important}.nmg-hamburger-wrap{display:block}}.nmg-hamburger-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:none;border:1px solid rgba(6,182,212,.2);border-radius:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.nmg-hamburger-btn:hover{background:rgba(6,182,212,.08);border-color:rgba(6,182,212,.35)}.nmg-hamburger-btn span{display:block;width:100%;height:2px;border-radius:2px;background:#0f172a;transition:background .15s ease}.nmg-mobile-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:white;border:1px solid rgba(6,182,212,.15);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);overflow:hidden;z-index:100;animation:modal-appear .15s ease-out forwards}.nmg-mobile-menu-item{display:block;width:100%;padding:12px 16px;text-align:left;font-size:15px;font-weight:500;color:#0f172a;background:none;border:none;cursor:pointer;transition:background .12s ease}.nmg-mobile-menu-item+.nmg-mobile-menu-item{border-top:1px solid rgba(6,182,212,.08)}.nmg-mobile-menu-item:hover{background:rgba(6,182,212,.07);color:#0891b2}.header-toggle-mode-btn{padding:6px 14px;font-size:13px;font-weight:600;border:1px solid #d1d5db;border-radius:6px;background:#f3f4f6;color:#374151;cursor:pointer;white-space:nowrap;transition:all .15s ease}.header-toggle-mode-btn:hover{background:#e5e7eb;border-color:#9ca3af}.header-toggle-mode-btn--active{background:#6366f1;color:#fff;border-color:transparent}.header-toggle-mode-btn--active:hover{background:#4f46e5}.delete-course-header-button svg{color:#ef4444;width:22px;height:22px}.delete-course-header-button:hover svg{color:#dc2626}.toast-message.error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.back-button{background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.back-button:hover{background-color:#f3f4f6}.back-arrow-icon{width:28px;height:28px;color:#374151}.content-back-row{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:8px}.content-back-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:#fafbfc;border:1px solid #e5e7eb;color:#0f172a;font-weight:500;font-size:14px;line-height:1.2;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.content-back-link:hover{background:#f4f6f8;border-color:#dfe4ea}.content-back-link:focus-visible{outline:2px solid var(--dash-cyan-500,#06b6d4);outline-offset:2px}.content-back-link svg{width:16px;height:16px}.page-title{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,sans-serif;font-size:clamp(22px,2.2vw,28px);font-weight:700;line-height:1.1;letter-spacing:-.035em;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.create-course-form-container{background-color:#f3f4f6;border-radius:12px;padding:30px 40px;width:100%;max-width:600px;box-shadow:0 2px 8px rgba(0,0,0,.06);margin-bottom:30px}.create-course-form-container .form-group{margin-bottom:25px}.create-course-form-container .form-label{display:block;font-size:16px;font-weight:500;color:#374151;margin-bottom:8px}.create-course-form-container .form-input{width:100%;padding:12px 15px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;color:#000000;background-color:#fff}.create-course-form-container .form-input::placeholder{color:#9ca3af}.create-course-form-container .form-input:focus{outline:none;border-color:#EF7C00;box-shadow:0 0 0 2px rgba(239,124,0,.3)}.create-course-form-container .form-textarea{width:100%;padding:12px 15px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;color:#000000;background-color:#fff;resize:vertical}.create-course-form-container .form-textarea::placeholder{color:#9ca3af}.create-course-form-container .form-textarea:focus{outline:none;border-color:#EF7C00;box-shadow:0 0 0 2px rgba(239,124,0,.3)}.create-course-submit-button{background-color:#8b5cf6;color:#ffffff;padding:12px 24px;border-radius:8px;border:rgb(0,0,0);font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease,transform .1s ease,box-shadow .2s ease;width:100%;max-width:300px;display:block;margin:20px auto 0;outline:none}.create-course-submit-button:hover:not(:disabled){background-color:#7c3aed}.create-course-submit-button:focus-visible{box-shadow:0 0 0 3px #c4b5fd}.create-course-submit-button:active:not(:disabled){background-color:#6d28d9;transform:scale(.98)}.create-course-submit-button:disabled{background-color:#c4b5fd;color:#a78bfa;cursor:not-allowed}.form-error-message{background-color:#fee2e2;color:#b91c1c;padding:10px;border-radius:6px;margin-bottom:15px;font-size:14px;border:1px solid #fca5a5}.input-error{border-color:#ef4444!important;box-shadow:0 0 0 2px rgba(239,68,68,.3)!important}.toast-message{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 92px);right:20px;left:auto;transform:none;display:flex;align-items:center;gap:10px;max-width:min(420px,calc(100vw - 40px));padding:10px 14px;border-radius:14px;font-size:13px;font-weight:500;line-height:1.35;color:#0f172a;background:rgba(255,255,255,.92);border:1px solid rgba(148,163,184,.35);border-left:3px solid var(--toast-accent,rgba(148,163,184,.55));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 14px 40px rgba(15,23,42,.14);z-index:20000;animation:toastEnter .18s ease-out}@keyframes toastEnter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast-message.success{--toast-accent:#06b6d4}.configure-course-page-container{display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px 30px;background-color:#ffffff;width:100%;max-width:1200px;margin:0 auto;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.page-header .page-title{font-size:22px}.page-title.clickable{cursor:pointer}.page-title.clickable:focus-visible{outline:2px solid var(--dash-cyan-500,#06b6d4);outline-offset:3px;border-radius:6px}.configure-content-area{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;width:100%;margin-top:10px;margin-bottom:30px}.config-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:20px;display:flex;flex-direction:column;min-width:0;max-width:none}.config-card.resources-card{grid-column:1/-1}.card-title{font-size:18px;font-weight:600;color:#1f2937;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #e5e7eb}.details-card .form-group{margin-bottom:18px}.details-card .form-label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}.details-card .form-input,.details-card .form-textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;background-color:#fff}.details-card .form-textarea{resize:vertical;min-height:80px;max-height:260px;overflow-y:auto}.configure-content-area .config-card.details-card{display:flex;flex-direction:column;max-height:520px;overflow:hidden}.configure-content-area .details-card .form-group:has(textarea#confCourseDesc){display:flex;flex-direction:column;flex:1;min-height:0}.configure-content-area .details-card .form-textarea{min-height:80px;max-height:260px;overflow-y:auto}textarea#confCourseDesc.form-textarea{flex:1;min-height:140px;max-height:none;overflow-y:auto;resize:vertical}.details-card .form-input:focus,.details-card .form-textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px rgba(79,70,229,.2)}.resources-card{display:flex;flex-direction:column;min-height:0}.resources-card .dashboard-resource-list{margin-bottom:20px;max-height:360px;overflow-y:auto;scrollbar-color:#9ca3af #f3f4f6;padding-right:10px;grid-column:1/-1;width:100%;flex:1;min-height:0;counter-reset:resource-counter}.dashboard-resource-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:6px;counter-increment:resource-counter;gap:10px}.dashboard-resource-item[role=button]{cursor:pointer}.dashboard-resource-item:before{content:counter(resource-counter) ".";flex-shrink:0;color:#9ca3af;font-size:13px;font-weight:500;min-width:20px}.resource-name{font-size:14px;color:#374151;white-space:normal;word-break:break-word;overflow:hidden;margin-right:8px}.delete-resource-button .trash-icon{width:18px;height:18px;color:#ef4444}.delete-resource-button:hover .trash-icon{color:#dc2626}.file-drop-zone{border:2px dashed #cbd5e1;border-radius:8px;padding:30px 20px;text-align:center;color:#6b7280;cursor:pointer;transition:border-color .2s ease,background-color .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:10px}.file-drop-zone:hover{border-color:#4f46e5;background-color:#f0f2ff}.drop-zone-icon{width:40px;height:40px;color:#9ca3af;margin-bottom:10px}.file-drop-zone p{font-size:14px;line-height:1.5}.file-drop-zone.empty-state{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px}.file-drop-zone.empty-state .drop-zone-icon{width:48px;height:48px;margin-bottom:15px}.file-drop-zone.empty-state p{font-size:16px}.apps-card{display:flex;flex-direction:column;min-height:0}.apps-card .app-list{max-height:360px;overflow-y:auto;padding-top:4px;padding-bottom:4px;padding-right:10px;flex:1;min-height:0}.app-item{padding:10px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:10px;min-width:0;overflow:hidden}.app-icon-initial,.app-item{display:flex;align-items:center}.app-icon-initial{width:36px;height:36px;border-radius:50%;background-color:#374151;color:white;justify-content:center;font-weight:700;font-size:16px;margin-right:12px;flex-shrink:0}.app-info{flex-grow:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.app-name{font-size:15px;font-weight:500;color:#1f2937}.app-name,.app-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-type{font-size:12px;color:#6b7280}.app-additional-info{font-size:11px;color:gray;font-style:italic;margin-top:2px;white-space:pre-line}.app-checkbox-button{background:none;border:none;padding:0;cursor:pointer;margin-left:auto;display:flex}.app-checkbox-icon{width:28px;height:28px}.app-checkbox-icon.checked{color:#99b83c}.app-checkbox-icon.unchecked{color:#9ca3af}.courses-card .course-list{max-height:250px;overflow-y:auto}.course-item{display:flex;align-items:center;padding:10px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:10px;min-width:0;overflow:hidden}.course-icon-initial{width:36px;height:36px;border-radius:50%;background-color:#007acc;color:white;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;margin-right:12px;flex-shrink:0}.course-info{flex-grow:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.course-name{font-size:15px;font-weight:500;color:#1f2937}.course-description,.course-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-description{font-size:12px;color:#6b7280;cursor:help;width:100%;max-width:none}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px;margin-left:auto;flex-shrink:0}.toggle-mode-button{transition:all .2s ease}.toggle-mode-button:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.1)}.bulk-data-textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;line-height:1.4;tab-size:4}.teacher-preview-item{transition:background-color .2s ease}.teacher-preview-item:hover{background-color:#f9fafb}.toggle-switch-checkbox{opacity:0;width:0;height:0}.toggle-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;border-radius:34px;transition:.2s}.toggle-switch-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:white;border-radius:50%;transition:.2s}.toggle-switch-checkbox:checked+.toggle-switch-slider{background-color:#4f46e5}.toggle-switch-checkbox:checked+.toggle-switch-slider:before{transform:translateX(22px)}.toggle-switch-checkbox:focus+.toggle-switch-slider{box-shadow:0 0 1px #4f46e5}.save-changes-button{background-color:#4f46e5;color:white;padding:12px 30px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease;display:block;margin:0 auto;min-width:150px;outline:none}.save-changes-button:hover:not(:disabled){background-color:#4338ca}.save-changes-button:focus-visible{box-shadow:0 0 0 3px #a5b4fc}.save-changes-button:active:not(:disabled){background-color:#3730a3;transform:scale(.98)}.save-changes-button:disabled{background-color:#a5b4fc;cursor:not-allowed}@media (max-width:1200px) and (min-width:901px){.configure-content-area{gap:15px}.config-card{min-width:0;padding:15px}}@media (max-width:900px){.configure-content-area{grid-template-columns:1fr;gap:16px}.config-card{min-width:0;max-width:none}.config-card.resources-card{grid-column:auto}.configure-course-page-container{max-width:95%;margin:20px auto;padding:15px}}.course-detail-main-content-teacher-view{width:100%}.course-detail-full .config-card.apps-card,.course-detail-full .config-card.details-card,.course-detail-full .config-card.resources-card{max-height:1000px;display:flex;flex-direction:column;overflow:hidden}.course-detail-full .config-card.details-card .form-static-text.description-scroll{max-height:260px;min-height:80px;flex:1 1 auto;overflow-y:auto;padding-right:4px}.course-detail-top-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.manage-button{background-color:#6d28d9;color:white;padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background-color .2s ease}.manage-button:hover:not(:disabled){background-color:#5b21b6}.manage-button:disabled{background-color:#a78bfa;cursor:not-allowed}.manage-button svg{width:18px;height:18px}.manage-teachers-btn{background-color:#f97316;color:white}.manage-teachers-btn:hover:not(:disabled){background-color:#ea580c}.action-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background-color .2s ease}.form-label.static{color:#6b7280;font-size:.9em}.form-static-text{font-size:1em;color:#333;padding:8px 0;word-break:break-word}.manage-students-button svg{color:#007bff}.student-management-content{padding:5px}.student-management-content h4{font-size:16px;font-weight:600;color:#333;margin-top:15px;margin-bottom:10px}.student-management-content h4:first-child{margin-top:0}.modal-divider{border:none;border-top:1px solid #e5e7eb;margin:20px 0}.share-course-invite-button{background-color:#6d28d9;color:white;padding:10px 15px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.share-course-invite-button:hover:not(:disabled){background-color:#5b21b6}.share-course-invite-button:disabled{background-color:#a78bfa;cursor:not-allowed}.enrolled-students-list-section h4,.invite-via-email-section h4,.invite-via-link-section h4{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#333;margin-top:15px;margin-bottom:10px}.enrolled-students-list-section h4:first-child,.invite-via-email-section h4:first-child,.invite-via-link-section h4:first-child{margin-top:5px}.email-invite-container{width:100%}.email-input-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--dash-slate-200,#e2e8f0);border-radius:var(--dash-radius-sm,6px);background-color:#ffffff;cursor:text;transition:border-color .2s ease,box-shadow .2s ease;font-family:SF Mono,Monaco,Courier New,monospace}.email-input-wrapper:focus-within{border-color:var(--dash-cyan-500,#06b6d4);box-shadow:0 0 0 3px rgba(6,182,212,.15)}.email-tag{display:inline-flex;align-items:center;background-color:#ecfeff;color:var(--dash-cyan-700,#0e7490);border-radius:4px;padding:4px 8px;font-size:14px;font-weight:500;white-space:nowrap}.email-tag-remove-button{background:none;border:none;cursor:pointer;margin-left:6px;padding:0;display:flex;align-items:center;justify-content:center;color:var(--dash-cyan-500,#06b6d4)}.email-tag-remove-button:hover{color:var(--dash-cyan-700,#0e7490)}.email-tag-remove-button svg{width:14px;height:14px}.email-input-field{flex-grow:1;border:none;outline:none;background:transparent;padding:4px 0;font-size:15px;min-width:150px;color:#1f2937}.email-invite-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.email-invite-status{font-size:.9em;color:#666;flex-grow:1;margin-right:10px;text-align:left}.email-invite-status.success{color:#059669}.email-invite-status.error{color:#dc2626}.send-email-invites-button{background-color:#6d28d9;color:white;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s ease;padding:8px 16px;font-size:14px;flex-shrink:0}.send-email-invites-button:hover:not(:disabled){background-color:#5b21b6}.send-email-invites-button:disabled{background-color:#a78bfa;cursor:not-allowed}.share-input-group textarea.share-input-field{min-height:60px;resize:vertical}.enrolled-students-list{list-style:none;padding:0;max-height:200px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px}.enrolled-student-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #f3f4f6;font-size:15px}.enrolled-student-item:last-child{border-bottom:none}.enrolled-student-item span{flex-grow:1;margin-left:8px}.remove-student-button svg{color:#ef4444}.remove-student-button:hover svg{color:#dc2626}.course-detail-content-wrapper{width:100%;padding:20px;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;margin-top:20px}.course-detail-header-bar{display:flex;justify-content:flex-end;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.course-detail-section-title{font-size:20px;font-weight:600;color:#1f2937}.course-detail-body{font-size:16px;line-height:1.7;color:#374151}.course-detail-main-content{width:100%;background-color:#e9ecef;border-radius:12px;margin-top:20px;border:1px solid #dee2e6}.course-detail-info-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-size:16px;font-weight:500;color:#343a40}.active-apps-container{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;align-items:flex-start;padding-top:10px}.app-card-item{width:180px;height:120px;border-radius:12px;padding:15px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;color:white;box-shadow:0 4px 8px rgba(0,0,0,.1);cursor:pointer;transition:transform .2s ease-out,box-shadow .2s ease-out;position:relative}.app-card-item:hover{transform:translateY(-3px);box-shadow:0 6px 12px rgba(0,0,0,.15)}.app-card-name{font-size:16px;font-weight:600;line-height:1.3}.app-card-launch-icon{position:absolute;bottom:12px;right:12px}.app-card-launch-icon svg{width:22px;height:22px}.app-container{width:100%;height:100%}.no-active-apps-message{width:100%;text-align:center;font-size:16px;color:#6c757d;padding:30px 0}.student-dashboard-course-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;background-color:transparent;box-shadow:none;padding:0}.student-course-item-clickable{cursor:pointer;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;border:1px solid #e0e0e0;background-color:#ffffff}.student-course-item-clickable:hover{transform:translateY(-3px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.student-course-item-info{flex-grow:1;margin-right:15px;display:flex;flex-direction:column}.student-course-item-instructor{font-size:.8em;color:#555;margin-top:3px}.student-course-item-action{flex-shrink:0;color:#007bff;display:flex;align-items:center}.student-course-item-action svg{width:20px;height:20px}.ai-response{line-height:1.6;font-size:1rem}.ai-response strong{font-weight:600}.ai-response ol,.ai-response ul{padding-left:1.5rem;margin-top:.5rem}.markdown-content ol,.markdown-content ul{padding-left:1.5rem}.markdown-content li{margin-bottom:.3rem}.markdown-content ol ol,.markdown-content ol ul,.markdown-content ul ol,.markdown-content ul ul{margin-left:1rem}.expandable-container{overflow:hidden;transition:max-height 1s ease}.truncate-multiline{-webkit-line-clamp:3;line-clamp:3}.truncate-3-lines,.truncate-multiline{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.truncate-3-lines{-webkit-line-clamp:2;line-clamp:2}.fileupload-progress-label{font-size:12px}.fileupload-progress{display:block;max-width:100%;margin-bottom:6px}.fileupload-filename,.fileupload-progress{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fileupload-filename{max-width:calc(100% - 50px)}.fileupload-filename,.fileupload-percentage{display:inline-block;vertical-align:top}.resource-status-icon{width:18px;height:18px;flex-shrink:0;flex-grow:0}.resource-type-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:600;line-height:1.2;border:1px solid #e0e7ff;white-space:nowrap}.processing-spin{animation:rotate 4s linear infinite;transform-origin:center}@keyframes rotate{to{transform:rotate(1turn)}}.join-course-page-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background-color:#f0f2f5;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.join-course-card{background-color:#ffffff;padding:30px 40px;border-radius:12px;box-shadow:0 5px 25px rgba(0,0,0,.1);width:100%;max-width:480px;text-align:center}.join-course-card h1{font-size:24px;font-weight:600;color:#1f2937;margin-bottom:12px}.join-course-card p{font-size:16px;color:#4b5563;margin-bottom:20px;line-height:1.6}.join-course-name-display{font-size:20px;font-weight:700;color:#4f46e5;margin:15px 0 25px;padding:12px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px}.join-course-actions{display:flex;justify-content:center;gap:15px;margin-top:30px}.feedback-box{padding:15px;margin-top:20px;border-radius:6px;font-weight:500;text-align:center}.feedback-box.success{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.feedback-box.error{--toast-accent:#fb7185}.modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background-color:rgba(0,0,0,.65);justify-content:center;align-items:center;z-index:2000;padding:80px 16px 16px}.modal-backdrop,.modal-content{display:flex;box-sizing:border-box;overflow:hidden}.modal-content{background-color:#ffffff;border-radius:12px;padding:30px;max-width:500px;width:100%;max-height:calc(90vh - 32px);flex-direction:column;box-shadow:0 5px 20px rgba(0,0,0,.2);position:relative;text-align:left;animation:modal-appear .3s ease-out forwards}.modal-content h2{margin-top:0;color:#002D72}.modal-content.policy-modal{max-width:min(700px,calc(100vw - 32px));width:100%;padding:0;overflow:hidden;display:flex;flex-direction:column;height:calc(85vh - 32px);max-height:calc(85vh - 32px);box-sizing:border-box;margin:0 auto}.policy-modal .modal-header{padding:20px 24px;border-bottom:1px solid #e9ecef;flex-shrink:0}.policy-modal .modal-header h2{font-size:22px;font-weight:600;color:#003D7C;margin:0}.policy-text-container{padding:16px 25px;font-size:15px;color:#495057;line-height:1.6;flex:1 1 0;min-height:0;text-align:justify;margin:5px 0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#ced4da #f8f9fa}.policy-text-container::-webkit-scrollbar{width:8px}.policy-text-container::-webkit-scrollbar-track{background:#f8f9fa}.policy-text-container::-webkit-scrollbar-thumb{background-color:#ced4da;border-radius:10px;border:2px solid #f8f9fa}.policy-text-container p{margin-bottom:1.2em}.policy-text-container ul{padding-left:25px;margin-bottom:1.5em}.policy-text-container li{margin-bottom:.5em}.policy-text-container strong{font-weight:600;color:#212529}.policy-text-container a{color:#0d6efd;text-decoration:none;font-weight:500}.policy-text-container a:hover{text-decoration:underline}.modal-footer.policy-footer{padding:20px 24px;border-top:1px solid #e9ecef;display:flex;flex-direction:column;align-items:center;gap:20px;flex-shrink:0}.declaration-container{display:flex;gap:10px;align-items:center;justify-content:center}#accept-policy-checkbox{width:18px;height:18px;flex-shrink:0;accent-color:#4f46e5}.declaration-container label{font-size:15px;color:#495057;cursor:pointer;user-select:none}.modal-button:disabled{background-color:#cccccc;cursor:not-allowed}.modal-close-button{position:absolute;top:10px;right:15px;background:none;border:none;font-size:28px;line-height:1;color:#888;cursor:pointer;padding:0}.modal-close-button:hover{color:#000}@media (max-width:640px){.modal-backdrop{padding:80px 0 10px;align-items:stretch}.modal-content.policy-modal{max-width:100%;width:100%;max-height:100dvh;max-height:100vh;height:100%;border-radius:0;margin-top:auto}.policy-modal .modal-header{padding:16px}.policy-modal .modal-header h2{font-size:18px}.policy-text-container{padding:12px 16px;font-size:14px;line-height:1.5;text-align:left;word-break:break-word;overflow-wrap:break-word;flex:1 1 0;min-height:0}.modal-footer.policy-footer{gap:12px;padding:16px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.declaration-container label{font-size:14px}}body:has(.modal-backdrop){overflow:hidden}body:has([data-centered-modal]){overflow:hidden}.feedback-fab{position:fixed;bottom:24px;right:24px;width:58px;height:58px;color:white;border:none;border-radius:50%;box-shadow:0 2px 8px rgba(8,145,178,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:999;transition:all .2s cubic-bezier(.4,0,.2,1);touch-action:none;user-select:none}.feedback-fab,.feedback-fab.feedback-fab--nusmedgpt{background:#0891B2}@supports (-webkit-touch-callout:none){@media (max-width:768px){.feedback-fab.feedback-fab--nusmedgpt{bottom:calc(var(--nmg-composer-h, 100px) + 16px + env(safe-area-inset-bottom, 0px))}}}.feedback-fab:hover{background:#06B6D4;box-shadow:0 4px 12px rgba(8,145,178,.3)}.feedback-fab:active{transform:translateY(-1px) scale(1.02)}.feedback-fab:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(6,182,212,.3),0 4px 16px rgba(8,145,178,.4)}.feedback-fab svg{width:32px;height:32px;fill:currentColor;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.feedback-fab:before{content:"Send Feedback or Report an Issue";position:absolute;bottom:calc(100% + 12px);right:0;background:rgba(255,255,255,.98);color:#334155;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;z-index:10000;pointer-events:none}.feedback-fab.feedback-fab--left:before{left:0;right:auto}.feedback-fab:after{content:"";position:absolute;bottom:calc(100% + 6px);right:23px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(255,255,255,.98);z-index:10001;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;pointer-events:none}.feedback-fab.feedback-fab--left:after{left:23px;right:auto}.feedback-fab:hover:after,.feedback-fab:hover:before{opacity:1;visibility:visible;transform:translateY(0)}.feedback-fab.is-dragging{cursor:grabbing;transition:none}.feedback-fab.is-dragging:after,.feedback-fab.is-dragging:before{opacity:0;visibility:hidden;transform:translateY(6px)}.button-with-tooltip{position:relative}.floating-tooltip{position:fixed;z-index:2147483647;transform:none;background:rgba(255,255,255,.98);color:#334155;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;line-height:1.35;width:max-content;max-width:min(460px,calc(100vw - 24px));text-align:center;white-space:normal;word-break:normal;overflow-wrap:break-word;box-shadow:0 4px 12px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none}.floating-tooltip:after{content:"";position:absolute;top:-6px;left:var(--floating-tooltip-arrow-left,50%);transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(255,255,255,.98)}@media (max-width:640px){.floating-tooltip{font-size:13px;padding:10px 14px;max-width:calc(100vw - 80px);min-width:min(200px,calc(100vw - 80px));line-height:1.4}}.feedback-type-selector{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.feedback-type-selector button{flex:1 1 0;min-width:0;width:auto;padding:8px 12px;font-size:13px;font-weight:500;border:1px solid rgba(6,182,212,.2);background-color:rgba(255,255,255,.9);color:#334155;border-radius:10px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:8px}.feedback-type-selector button:hover{background-color:rgba(6,182,212,.08);border-color:rgba(6,182,212,.3);transform:translateY(-1px);box-shadow:0 2px 8px rgba(6,182,212,.15)}.feedback-type-selector button.active{background:#0891B2;border-color:#0891B2;color:white;font-weight:600}.feedback-type-selector button svg{width:16px;height:16px}.modal-content.feedback-modal{max-width:620px;padding:0;overflow:hidden;display:flex;flex-direction:column}@media (max-width:480px){.modal-overlay{padding:0;align-items:flex-end}.modal-content.feedback-modal{padding:0;max-height:90vh;width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0}.feedback-modal .modal-header{padding:12px 16px}.feedback-modal .modal-body{padding:6px 16px}.feedback-modal .feedback-type-selector{margin-bottom:10px}.feedback-modal .form-textarea{min-height:80px;margin-bottom:0}.feedback-modal .modal-footer{flex-direction:column;align-items:stretch;padding:12px 16px;gap:8px}.feedback-detail-link,.feedback-modal .modal-footer .feedback-detail-link{text-align:center;font-size:12px}.modal-footer-buttons{flex-direction:column;gap:.5rem}.feedback-modal .modal-footer .action-button-secondary,.feedback-modal .modal-footer .new-course-button,.modal-footer-buttons .action-button-secondary,.modal-footer-buttons .new-course-button{width:100%;text-align:center;box-sizing:border-box}.feedback-type-selector{gap:6px}.feedback-type-selector button{padding:7px 8px;font-size:12px}.form-textarea{font-size:1rem;min-height:80px}}.feedback-modal .form-label{display:block;font-size:13px;font-weight:600;color:#0F172A;margin-bottom:8px;letter-spacing:-.01em}.feedback-modal .form-textarea{width:100%;min-height:100px;padding:10px 14px;border:1px solid rgba(6,182,212,.2);border-radius:12px;font-size:15px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;color:#0F172A;background:rgba(255,255,255,.9);resize:vertical;transition:all .2s cubic-bezier(.4,0,.2,1)}.feedback-modal .form-textarea:focus{outline:none;border-color:#0891B2;background:white;box-shadow:0 0 0 3px rgba(6,182,212,.15),0 2px 8px rgba(6,182,212,.1)}.feedback-modal .modal-header{padding:16px 24px;border-bottom:1px solid rgba(6,182,212,.12);background:linear-gradient(180deg,rgba(6,182,212,.03),transparent);flex-shrink:0}.feedback-modal form{display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden;min-height:0}.feedback-modal .modal-body{padding:16px 24px;font-size:14px;color:#334155;flex:1 1 auto;overflow-y:auto;min-height:0}.feedback-modal .modal-footer{background:rgba(248,250,252,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:14px 24px;border-top:1px solid rgba(6,182,212,.12);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0}.feedback-modal .modal-footer .action-button-secondary{background:rgba(100,116,139,.1);color:#334155;border:1px solid rgba(100,116,139,.2);padding:10px 20px;border-radius:10px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.feedback-modal .modal-footer .action-button-secondary:hover{background:rgba(100,116,139,.15);border-color:rgba(100,116,139,.3);transform:translateY(-1px)}.feedback-modal .modal-footer .new-course-button{background:#0891B2;color:white;border:none;padding:10px 24px;border-radius:10px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.feedback-modal .modal-footer .new-course-button:hover:not(:disabled){background:#06B6D4}.feedback-modal .modal-footer .new-course-button:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.modal-footer-buttons{display:flex;gap:12px}.feedback-detail-link{font-size:13px;color:#64748B;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:500}.feedback-detail-link:hover{color:#0891B2;text-decoration:underline;text-decoration-color:rgba(8,145,178,.4)}.feedback-prompt-text{font-size:14px;color:#6c757d;text-align:center;margin-bottom:15px}.feedback-success-message{padding:60px 30px;text-align:center;animation:fade-in .5s cubic-bezier(.4,0,.2,1)}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.feedback-success-message h4{font-size:26px;font-weight:700;background:linear-gradient(135deg,#0891B2,#06B6D4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px;letter-spacing:-.02em}.feedback-success-message p{font-size:16px;color:#334155;font-weight:500}.wrap-email{max-width:300px;font-size:16px;word-break:break-all;display:inline-block}