:root{--lms-ink:#203b42;--lms-muted:#788b92;--lms-green:#23695f;--lms-mint:#e6f2ec;--lms-bg:#f5f7f9;--vz-primary:#23695f;--vz-primary-rgb:35,105,95;--vz-link-color:#23695f;--vz-body-font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body{color:var(--lms-ink);font-family:var(--vz-body-font-family);font-size:14px}h1,h2,h3,h4{color:var(--lms-ink);letter-spacing:-.035em}h1{font-size:30px;font-weight:650}h2{font-size:28px}h3{font-size:20px}a{color:var(--lms-green)}.btn{border-radius:8px;min-height:40px;font-weight:550}.btn-primary{background:var(--lms-green);border-color:var(--lms-green)}.btn-primary:hover,.btn-primary:focus{background:#19564e;border-color:#19564e}.btn-light{background:#eef4f2;border-color:#eef4f2;color:#315d55}.btn-white{background:white;color:#245e55;border:0}.btn-outline-danger{color:#b15454;border-color:#e6bebe}.form-control,.form-select{border-radius:8px;min-height:44px;border-color:#dce4e6}.form-control:focus,.form-select:focus{border-color:#6d9b91;box-shadow:0 0 0 3px #23695f18}.form-label{font-weight:550}.card{border:1px solid #e8edef;border-radius:13px;box-shadow:0 3px 10px #223a4503;overflow:hidden}.card-header{background:#fff;border-bottom:1px solid #eef1f3;padding:20px 24px}.card-body{padding:24px}.card-footer{background:#fff;border-top:1px solid #eef1f3;padding:20px 24px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px}.brand{display:flex;gap:12px;align-items:center;font-size:25px;font-weight:650;color:white;letter-spacing:-1px;overflow-wrap:anywhere}.brand:hover{color:white}.brand img{width:40px;height:40px;object-fit:contain}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:#e3f0b8;color:#234c40;border-radius:12px;font-size:34px;line-height:1;font-weight:700}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#173e39!important;color:#b4cbc3;padding:32px 20px;z-index:1040;display:flex;flex-direction:column}.sidebar .brand{padding:0 10px;margin-bottom:42px}.sidebar-caption{font-size:9px;letter-spacing:1.5px;margin:0 12px 15px;color:#85a79d}.nav-entry{display:flex;align-items:center;gap:12px;color:#a7c1b8;padding:11px 13px;border-radius:7px;margin:3px 0;font-size:13px}.nav-entry i{font-size:19px}.nav-entry.active{background:#2d5b50;color:#eff9d8}.nav-entry:hover{color:#fff;background:#244c44}.sidebar nav{overflow-y:auto}.sidebar-bottom{font-size:10px;margin-top:auto;padding-top:30px;display:flex;align-items:center;gap:8px}.status-dot{width:6px;height:6px;border-radius:50%;background:#b1cd79}.main-shell{margin-left:238px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:85px;background:#fff;border-bottom:1px solid #e8edef;display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:15px}.topbar-crumb{font-size:12px;color:#6f8088}.topbar-crumb span{margin:0 12px;color:#c5d0d3}.user-avatar{width:37px;height:37px;border-radius:50%;background:#f0e6d3;color:#89683c;display:grid;place-items:center;font-weight:650;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}#workspace{padding:35px 40px;max-width:1700px;width:100%;margin:0 auto;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}.page-heading h1{margin:7px 0 0}.page-heading .eyebrow{color:#8a999c}.date-chip{font-size:12px;border:1px solid #e0e7e8;padding:10px 14px;border-radius:7px;background:#fff;color:#7f8b92}.welcome-banner{position:relative;overflow:hidden;background:#e6efdf;border:1px solid #dce8d5;border-radius:16px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.welcome-banner .eyebrow{color:#6d8764}.welcome-banner h2{font-size:32px;margin:13px 0 10px;color:#315b43}.welcome-banner p{color:#6d806e;line-height:1.8;margin-bottom:14px}.welcome-icon{font-size:100px;width:180px;height:180px;display:grid;place-items:center;color:#5f8963;border-radius:50%;background:#d5e4ca;transform:rotate(-10deg);flex-shrink:0}.welcome-banner:after{content:"";position:absolute;width:320px;height:320px;border:1px solid #cddfc5;border-radius:50%;right:-160px;top:-110px;pointer-events:none}.stat-card{padding:22px;min-height:150px}.stat-card span{font-size:12px;color:#76868c}.stat-card strong{font-size:32px;color:#2c4d49;margin:12px 0 4px;font-weight:600}.stat-card small{font-size:10px;color:#9aa6a9}.table{--vz-table-color:#496069}.table>thead{background:#f8fafb;font-size:11px;color:#829397;text-transform:uppercase;letter-spacing:.4px}.table>:not(caption)>*>*{padding:16px 20px;border-bottom-color:#eff2f3}.table td{font-size:13px}.table small{font-size:11px}.section-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.page-footer{display:flex;justify-content:space-between;padding:22px 40px;color:#9ba7ac;font-size:11px;border-top:1px solid #e8edef}.filter-tabs{display:flex;gap:8px;border-bottom:1px solid #e0e7e8;margin:10px 0 25px;overflow-x:auto}.filter-tabs a{padding:14px 18px;color:#87979c;white-space:nowrap;border-bottom:2px solid transparent;font-size:13px}.filter-tabs a.active{color:var(--lms-green);border-bottom-color:var(--lms-green);font-weight:600}.course-cover{height:165px;background:linear-gradient(120deg,#dce9e3,#edf2eb);position:relative;display:grid;place-items:center;color:#739589;font-size:55px}.course-cover img{width:100%;height:100%;object-fit:cover}.course-cover .badge{position:absolute;left:18px;top:16px;font-size:10px;padding:7px 10px}.badge{font-weight:500;border-radius:5px;padding:7px 9px}.status-ongoing{background:#e8f1f9;color:#476b8b}.status-completed{background:#e2f1e5;color:#397a4a}.status-overdue{background:#fceddf;color:#a86d32}.status-cancelled{background:#edeef0;color:#7c8591}.progress{height:5px;background:#e9eeeb;border-radius:6px}.progress-bar{background:#619a7d}.learning-card h3{font-size:19px;line-height:1.5}.empty-state{text-align:center;padding:70px 20px;color:#98a8ab}.empty-state>i{font-size:45px}.empty-state h3{margin:15px 0}.back-link{display:inline-block;margin-bottom:25px;font-size:13px}.plan-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:25px}.plan-heading h2{margin:12px 0}.plan-heading p{color:#849397;white-space:normal;overflow-wrap:anywhere}.plan-progress{background:#fff;min-width:130px;text-align:center;border:1px solid #e5ece8;border-radius:12px;padding:15px}.plan-progress strong{font-size:29px;display:block;color:#467d64}.plan-progress span{font-size:11px;color:#8c9b9a}.plan-intro{min-height:350px;justify-content:center;align-items:flex-start}.intro-symbol{width:70px;height:70px;background:#e8f1eb;border-radius:18px;display:grid;place-items:center;font-size:32px;margin-bottom:20px;color:#6a9c82}.plan-intro p{max-width:450px;line-height:1.9}.curriculum-course{font-size:12px;margin:22px 0 8px;color:#638077;font-weight:650}.lesson-step{display:flex;gap:12px;align-items:center;padding:13px 10px;border-radius:8px;margin-bottom:3px;color:#536c69}.lesson-step.selected{background:#eaf3ed;border:1px solid #d7e7dd}.lesson-step:hover{background:#f1f6f2}.lesson-step.locked{color:#aab6b4}.lesson-step strong{font-size:12px;display:block;font-weight:550;overflow-wrap:anywhere}.lesson-step small{display:block;font-size:10px;margin-top:4px;color:#95a49e}.step-icon{font-size:23px;flex-shrink:0}.pdf-frame{width:100%;height:68vh;min-height:420px;border:0;border-radius:8px}.rich-content{font-size:16px;line-height:1.9;overflow-wrap:anywhere}.rich-content table{display:block;overflow:auto;max-width:100%}.rich-content img{max-width:100%}.rich-toolbar{display:flex;gap:5px;padding:7px;background:#f1f5f3;border:1px solid #dce4e6;border-radius:8px 8px 0 0}.rich-toolbar button{background:#fff;border:1px solid #dce4e6;border-radius:4px;padding:5px 10px;color:#46665b}.rich-editor{min-height:180px;max-height:450px;overflow:auto;border-radius:0 0 8px 8px}.recipient-list{max-height:270px;overflow:auto;border:1px solid #e0e7e7;border-radius:8px;padding:5px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.recipient{display:flex;gap:12px;align-items:center;padding:10px;border-radius:6px;cursor:pointer}.recipient:hover{background:#f2f6f4}.recipient small{display:block;font-size:11px;color:#8c9c9a}.recipient input{width:18px;height:18px}.extension-row{padding:18px 0;border-bottom:1px solid #edf1ef;display:flex;justify-content:space-between;gap:20px}.media-preview{height:150px;display:grid;place-items:center;background:#edf3ef;font-size:48px;color:#6c9786}.media-preview img{width:100%;height:100%;object-fit:contain}.toast-message{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#244c41;color:#fff;padding:15px 22px;border-radius:10px;z-index:1100;max-width:90vw;box-shadow:0 6px 24px #0002;opacity:0;pointer-events:none;transition:.2s}.toast-message.visible{opacity:1;transform:translate(-50%,0)}.toast-message.error{background:#9d4f47}.auth-body{background:#f3f6f2}.auth-shell{display:grid;grid-template-columns:46% 54%;min-height:100dvh}.auth-intro{padding:50px 65px;background:#214d40;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-intro:after{content:"";width:500px;height:500px;border:1px solid #487359;border-radius:50%;position:absolute;right:-330px;bottom:-60px}.auth-copy{margin:auto 0;padding:60px 0;position:relative;z-index:1}.auth-copy .eyebrow{color:#afc798}.auth-copy h1{font-size:clamp(42px,4.2vw,65px);color:#edf3dc;line-height:1.15;margin:25px 0}.auth-copy p{color:#adc1ac;font-size:16px;line-height:1.9;max-width:340px}.auth-footer{color:#90ac95;font-size:12px}.auth-lines{display:flex;gap:6px;margin-top:40px}.auth-lines span{display:block;height:4px;width:28px;background:#52785f;border-radius:3px}.auth-lines span:first-child{background:#b6cf8a;width:48px}.auth-form-area{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 25px}.auth-card{width:100%;max-width:470px;border:0;box-shadow:0 12px 65px #2b4f3a09}.auth-card h2{font-size:25px;letter-spacing:-.8px}.auth-card .form-control{height:49px}.auth-card .form-feedback{font-size:13px}button:focus-visible,a:focus-visible{outline:3px solid #a6bf6a;outline-offset:3px}
@media(max-width:1199px){#workspace{padding:28px}.topbar{padding:0 28px}.auth-intro{padding:40px}.welcome-icon{width:135px;height:135px;font-size:75px}}@media(max-width:991px){.sidebar{width:260px!important}.main-shell{margin-left:0}.topbar{height:72px;padding:0 20px}.auth-shell{grid-template-columns:1fr}.auth-intro{padding:22px 28px}.auth-copy,.auth-footer{display:none}.auth-form-area{padding:40px 20px}.auth-shell{min-height:100dvh;grid-template-rows:auto 1fr}.curriculum .card-body{max-height:350px;overflow:auto}}@media(max-width:575px){#workspace{padding:22px 16px}.topbar{padding:0 16px}.topbar-crumb{font-size:11px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-crumb span{margin:0 5px}.topbar .gap-3{gap:10px!important}h1{font-size:25px}.page-heading{margin-bottom:22px}.page-heading .eyebrow{font-size:8px}.welcome-banner{padding:25px 22px;margin-bottom:20px}.welcome-banner h2{font-size:26px}.welcome-banner p{font-size:12px}.welcome-icon{position:absolute;right:-40px;bottom:-30px;opacity:.2;width:145px;height:145px}.welcome-banner>div:first-child{position:relative;z-index:1}.welcome-banner .eyebrow{font-size:8px}.filter-tabs{gap:0}.filter-tabs a{padding:12px 10px;font-size:12px;flex:1;text-align:center}.card-body,.card-header,.card-footer{padding:20px}.plan-heading{gap:15px}.plan-heading h2{font-size:24px}.plan-progress{min-width:85px;padding:10px}.plan-progress strong{font-size:24px}.plan-progress span{font-size:9px}.pdf-frame{height:64dvh;min-height:350px}.lesson-card .card-body{padding:10px}.lesson-actions .btn{width:100%;min-height:48px}.lesson-actions{padding-bottom:max(20px,env(safe-area-inset-bottom))}.page-footer{padding:20px 16px}.page-footer span{display:none}.recipient-list{grid-template-columns:1fr}.extension-row,.section-bar{flex-direction:column;align-items:stretch}.auth-form-area{padding:30px 15px}.stat-card{padding:18px}.modal-dialog{margin:10px}.btn,.form-select{min-height:44px}.table td{white-space:normal}.rich-content{font-size:15px}.plan-intro{min-height:280px}}
.field-help{display:block;color:#7c8f91;font-size:12px;line-height:1.7;margin-top:7px}.media-field{border:1px dashed #ceddd5;border-radius:10px;padding:14px;background:#f9fbfa}.media-selection{display:flex;gap:12px;align-items:center;margin-bottom:12px;overflow-wrap:anywhere}.media-thumb{width:60px;height:60px;object-fit:contain;border-radius:6px;background:#fff}.media-name{font-size:12px;color:#58726a}.editor-explanation{display:flex;gap:15px;padding:20px 24px;background:#eaf2ee;border-radius:12px;margin-bottom:24px;color:#466b5d}.editor-explanation>i{font-size:24px}.editor-explanation p{margin:6px 0 0;line-height:1.8;font-size:13px}.editor-item{border:1px solid #dde6e1;background:#fcfdfc;border-radius:12px;padding:22px;margin-top:18px}.editor-item-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:15px;margin-bottom:18px;border-bottom:1px solid #e5ece8}.editor-savebar{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid #dce8e1;border-radius:12px;box-shadow:0 5px 20px #173e3910;padding:16px 22px;margin-top:24px;z-index:10}.editor-savebar>span{color:#83958d;font-size:12px}.picker-upload{background:#f1f6f3;padding:18px;border-radius:10px}.picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.picker-item{border:1px solid #dfe9e3;border-radius:10px;padding:12px;background:#fff;text-align:left;display:flex;flex-direction:column;gap:8px;color:#355c4b;min-width:0}.picker-item:hover,.picker-item:focus{border-color:#3c8465;background:#f4f9f6}.picker-item img{width:100%;height:100px;object-fit:contain}.picker-item>i{font-size:50px;text-align:center;min-height:100px}.picker-item strong{font-size:12px;overflow-wrap:anywhere}.picker-item small{color:#82978b}.video-preview-output:empty{display:none}.video-preview-controls{margin-bottom:18px}fieldset[disabled] .editor-item{background:#f7f8f7}@media(max-width:767px){.picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-item{padding:15px}.editor-savebar{flex-direction:column;align-items:stretch;bottom:8px}.editor-explanation{padding:16px}.picker-upload .d-flex{flex-wrap:wrap}.picker-upload .btn{width:100%}}

/* Student cards: keep every cover inside its own media box, including wide images. */
.learning-card{display:flex;flex-direction:column;min-width:0;isolation:isolate}
.learning-card .course-cover{position:relative;display:block;flex:0 0 auto;width:100%;height:auto;aspect-ratio:16/9;min-height:0;overflow:hidden;background:#e6eee8;text-align:center}
.learning-card .course-cover-image{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#e6eee8}
.learning-card .course-cover>.badge{z-index:1}
.learning-card .course-cover>i{display:grid;place-items:center;width:100%;height:100%}
.learning-card>.card-body{position:relative;z-index:1;display:flex;flex-direction:column;flex:1 1 auto;min-width:0;background:#fff}
.learning-card>.card-body .btn{margin-top:auto!important}
.lesson-actions-top{padding:14px 24px;border-bottom:1px solid #eef1f3;background:#f8fbf8}
.lesson-actions-top form{display:flex;align-items:center;gap:12px}
.lesson-actions-top .btn{min-height:44px}
@media(max-width:575px){.lesson-actions-top{padding:14px 20px}.lesson-actions-top form,.lesson-actions-top .btn{width:100%}.lesson-actions-top .btn{min-height:48px}}
.pdf-lesson-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pdf-lesson-toolbar .btn{display:inline-flex;align-items:center;gap:6px}@media(max-width:575px){.pdf-lesson-toolbar .btn{flex:1 1 auto;justify-content:center}}
