/* SoyPuma campus: independent implementation of the existing customized Moodle interface. */
@font-face{font-family:Inter;src:url('assets/inter-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('assets/inter-semibold.woff2') format('woff2');font-weight:600 800;font-display:swap}
@font-face{font-family:Outfit;src:url('assets/outfit-semibold.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Outfit;src:url('assets/outfit-bold.woff2') format('woff2');font-weight:700 900;font-display:swap}
:root{--navy:#101c31;--navy2:#07172a;--ink:#17253b;--muted:#65758b;--gold:#d69b32;--gold2:#ebbd62;--line:#e1e7ef;--green:#387c66;--shadow:0 3px 12px #0f233c0b}
*{box-sizing:border-box}body{margin:0;background:#f5f6fa;color:var(--ink);font:14px/1.55 Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c99b43;outline-offset:3px}img{display:block;max-width:100%}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Outfit,system-ui,sans-serif;line-height:1.3;font-weight:600;letter-spacing:-.01em}h1{font-size:30px}h2{font-size:23px}h3{font-size:18px}p{color:var(--muted)}svg.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-100px;left:15px;padding:12px;background:white;z-index:200}.skip:focus{top:10px}
/* Original horizontal navigation and centered campus canvas. */
.topbar{height:60px;background:#141e30;color:#f4f6fa;display:flex;align-items:center;padding:0 23px;gap:25px;position:sticky;top:0;z-index:40;box-shadow:0 4px 12px #1423390c}.nav-logo{width:34px;flex-shrink:0}.nav-logo img{height:35px;width:29px;object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 15px;border-radius:10px;background:none;font-size:14px;white-space:nowrap}.desktop-nav .nav-link>.icon{display:none}.nav-link:hover{background:#ffffff12}.desktop-nav .active{background:#ffffff15;box-shadow:inset 0 -2px #d5ad59}.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-btn{height:40px;width:40px;display:inline-flex;justify-content:center;align-items:center;background:transparent;color:inherit;border:1px solid var(--line);border-radius:9px;flex-shrink:0}.topbar .icon-btn{border:0}.topbar .icon-btn:hover{background:#ffffff16}.user-menu{display:flex;align-items:center;gap:9px;background:none;color:white;margin-left:8px;border-left:1px solid #ffffff35;padding:0 0 0 18px}.user-menu img{background:#0c192f;border-radius:50%;padding:6px;width:37px;height:37px;object-fit:contain}.user-menu .icon{width:13px}.preview-badge{font-size:9px;font-weight:600;letter-spacing:.7px;border:1px solid #d8b16655;color:#e5c78b;border-radius:5px;padding:4px 7px;white-space:nowrap}.mobile-menu{display:none}.main{max-width:1320px;margin:0 auto;padding:48px 36px 35px;min-height:calc(100dvh - 60px)}.main:focus{outline:none}.index-toggle{position:fixed;left:0;top:73px;width:42px;height:50px;border-radius:0 30px 30px 0;background:#e0e5e9;color:#3c4753;z-index:20;box-shadow:0 3px 6px #182a4009}.sidebar{visibility:hidden;position:fixed;inset:60px auto 0 0;z-index:55;background:white;width:285px;max-width:85vw;padding:24px 16px;overflow:auto;transform:translateX(-105%);transition:transform .2s ease;box-shadow:5px 0 30px #10203915}.sidebar.open{transform:none;visibility:visible}.sidebar .nav-link:hover,.sidebar .active{background:#edf1f6}.drawer-title{display:flex;justify-content:space-between;align-items:center;padding:0 10px 18px;font-family:Outfit;font-size:22px}.nav-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:24px 15px 10px}.mobile-overlay{display:none}.mobile-overlay.open{position:fixed;inset:60px 0 0;background:#0e1e3766;z-index:50;display:block}.help-float{position:fixed;right:22px;bottom:22px;border-radius:50%;width:55px;height:55px;background:#1aca66;color:white;box-shadow:0 5px 20px #14a55835;z-index:30}.help-float .icon{width:29px;height:29px}.footer-note{margin-top:36px;border-top:1px solid var(--line);padding:22px 0 0;display:flex;justify-content:space-between;gap:14px;font-size:10px;color:#7d8997}.footer-note strong{font-weight:600;letter-spacing:.7px}
/* My courses matches the compact, framed cards already used in Moodle. */
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 30px}.overview{background:white;border-radius:9px;padding:0 9px 30px}.overview-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 5px 22px;border-bottom:1px solid #e3e6ea}.overview-title h2{font-size:20px}.course-filters{display:flex;align-items:center;gap:8px;margin:15px 0 19px}.course-filters select{padding:8px 10px;border-radius:8px;background:white;border:1px solid #bdc5ce;font-size:13px;min-height:39px;color:#4b5664;max-width:205px}.course-search{display:flex;align-items:center;border:1px solid #bdc5ce;border-radius:8px;padding-left:12px;flex:1;color:#7f8a97}.course-search .icon{width:17px}.course-search input{border:0;outline-offset:-3px;width:100%;min-width:0;padding:9px 12px;background:none;font-size:13px;color:var(--ink)}.filter-note{font-size:12px;color:#7d8794;padding:0 12px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.course-card{border:1px solid #e6e7eb;background:white;border-radius:22px;box-shadow:0 5px 23px #1a29490b;padding:10px;overflow:hidden}.course-card:hover{border-color:#b7c5d5;box-shadow:0 7px 23px #1a294917}.course-banner{height:auto;aspect-ratio:2.68;object-fit:cover;object-position:50% 53%;width:100%;border-radius:13px;background:#021225}.course-body{padding:22px 12px 4px}.course-body h3{font-family:Inter,sans-serif;font-weight:600;font-size:16px;line-height:1.4}.course-body p{font-size:12px;color:#6b7483;margin-top:5px}.course-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px;color:#77849a;font-size:11px}.course-bottom .icon{height:15px;width:15px}.course-enter{display:flex;gap:7px;align-items:center;padding:10px;background:#f3f5f8;color:#2c3d51;border-radius:11px;font-family:Outfit;font-size:13px}.campus-shortcuts{display:flex;gap:22px;justify-content:center;margin:25px 0}.campus-shortcuts a{display:flex;align-items:center;gap:8px;color:#61718a;font-size:12px}.campus-shortcuts .icon{width:16px;height:16px}.filter-empty{padding:20px;text-align:center}
/* Faithful course, subject and material cards. */
.course-tabs{display:flex;justify-content:center;gap:0;background:#fff;border-bottom:1px solid #dce6f0;overflow-x:auto;white-space:nowrap;margin:0 -22px 38px}.course-tabs a{padding:21px 19px 18px;border-bottom:3px solid transparent;color:#52637e;font-weight:600;font-size:14px}.course-tabs a:hover{background:#f6f8fb}.course-tabs .active{color:#15283e;border-bottom-color:#3078ba}.wide-banner{width:100%;height:auto;aspect-ratio:4.6;object-fit:cover;object-position:50% 53%;border-radius:20px;background:#011125;margin:0 0 24px}.subject-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 16px;align-items:start}.subject-tile{--tile:#07172a;--tile-light:#172635;min-width:0;scroll-margin-top:80px}.tone-gray{--tile:#333a40;--tile-light:#41494d}.tile-cover{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);transition:box-shadow .18s,border-color .18s}.tile-cover:hover{border-color:#b4c3d5;box-shadow:0 10px 26px #0f233c15}.tile-art{height:116px;background:linear-gradient(120deg,var(--tile-light),var(--tile));position:relative;padding:15px;color:#e3e9ef;display:flex;flex-direction:column;align-items:center}.tile-art:before,.resource-cover:before{content:'';position:absolute;left:0;top:0;width:43px;height:3px;background:#efa80f;border-radius:0 0 4px 0}.tile-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;font-size:9px;letter-spacing:.8px;font-weight:600}.year{border:1px solid #ffffff2b;border-radius:20px;padding:4px 8px;background:#ffffff08;font-size:10px;letter-spacing:.4px}.tile-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border:1px solid #ffffff26;background:#ffffff0c;border-radius:18px;display:grid;place-items:center;margin:0}.tile-icon .icon{width:31px;height:31px;stroke-width:1.8}.tile-bottom{padding:16px 16px 14px;min-height:148px;display:flex;flex-direction:column;gap:12px}.tile-bottom h2{font-size:16px;line-height:1.35}.tile-bottom p{font-size:13px;line-height:1.55;color:#63758e;margin-top:8px}.tile-button{margin-top:auto;align-self:flex-end;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 19px;min-height:40px;background:var(--tile);color:white;border-radius:11px;font-family:Outfit;font-size:13px;min-width:111px}.tile-button:hover{filter:brightness(1.2)}.tile-button .icon{height:16px;width:16px}.subject-tile.is-open{grid-column:1/-1}.is-open>.tile-cover{display:grid;grid-template-columns:270px 1fr}.is-open .tile-art{height:145px}.is-open .tile-bottom{min-height:145px;padding:19px 24px}.is-open .tile-bottom h2{font-size:21px}.is-open .tile-bottom p{margin-top:6px}.subject-content{background:white;border:1px solid var(--line);border-radius:16px;margin-top:14px;padding:24px;box-shadow:var(--shadow)}.resource-group{border:1px solid #e3e7ee;border-radius:15px;margin-bottom:18px;overflow:hidden}.resource-group summary{list-style:none;display:flex;align-items:center;gap:12px;padding:19px 22px;cursor:pointer;font-family:Outfit;font-size:21px;color:#162c46}.resource-group summary::-webkit-details-marker{display:none}.resource-group summary>span{font-family:Inter;font-size:11px;color:#77849a;background:#f0f3f7;border-radius:6px;padding:2px 7px}.resource-group summary>.icon{margin-left:auto;width:18px;transition:transform .2s}.resource-group[open] summary>.icon{transform:rotate(180deg)}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,272px));gap:18px;padding:2px 20px 22px}.resource-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white;box-shadow:var(--shadow)}.resource-card:hover{border-color:#b2c2d4}.resource-cover{height:155px;background:linear-gradient(120deg,var(--tile-light),var(--tile));padding:17px 16px;color:#eef3f7;position:relative;display:flex;flex-direction:column}.resource-cover strong{font-family:Outfit;font-size:36px;margin:auto 0;line-height:1;letter-spacing:-.02em}.resource-cover-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1px}.resource-cover-bottom b{height:26px;width:26px;border-radius:50%;background:#ecf3f8;color:#334c69;display:grid;place-items:center;font-size:12px;letter-spacing:0}.resource-body{min-height:177px;padding:20px 16px 17px;display:flex;flex-direction:column;gap:12px}.resource-name{display:flex;gap:9px;align-items:flex-start}.resource-name .icon{height:17px;width:17px;margin-top:1px}.resource-name h3{font-family:Inter;font-weight:600;font-size:13px;line-height:1.5}.resource-body p{font-size:12px}.resource-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.resource-bottom span{font-size:10px;color:#76869d;display:flex;gap:5px;align-items:center}.resource-bottom i{width:5px;height:5px;border-radius:50%;background:#a5b4c7}.resource-bottom b{font-size:12px;background:var(--tile);color:white;border-radius:10px;padding:11px 22px}.resource-practice{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:4px}.resource-practice>div{display:flex;align-items:center;gap:10px;color:#4f637b;font-size:13px}.demo-caption{font-size:11px;margin-top:18px;color:#7b8797}
/* Shared functional components; each is rendered directly, with no Moodle DOM patching. */
.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:42px;padding:10px 18px;border:1px solid transparent;border-radius:10px;font-family:Outfit;font-size:14px;font-weight:500;line-height:1.35}.btn:hover{filter:brightness(1.06)}.btn .icon{height:17px;width:17px}.btn-primary{background:var(--navy);color:white}.btn-secondary{background:white;color:var(--ink);border-color:#ced6e1}.btn-gold{background:#dbb368;color:#152238}.btn-ghost{background:none;color:var(--muted)}.btn-light{background:#ffffff18;color:white;border-color:#ffffff25}.text-link{display:inline-flex;gap:7px;align-items:center;background:none;color:#284b72;font-size:12px;font-weight:600;padding:4px 0}.text-link .icon{width:16px;height:16px}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-size:10px;font-weight:600;background:#edf5ef;color:#40705b;border-radius:6px}.pill.gold{background:#fbf4e5;color:#906e2a}.pill.gray{background:#f0f3f7;color:#65778e}.pill .icon{height:13px;width:13px}.page-head{margin:0 0 27px}.page-head h1{margin:7px 0 9px}.page-head p{font-size:14px}.eyebrow{color:#967235;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;display:flex;gap:7px;align-items:center;margin-bottom:10px}.eyebrow .icon{height:16px;width:16px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 18px}.section-title h2{font-size:22px}.back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#657991;margin-bottom:20px}.back .icon{width:15px;height:15px}.panel{padding:25px;border-radius:16px;border:1px solid var(--line);background:white;box-shadow:var(--shadow)}.callout{display:flex;gap:11px;align-items:flex-start;background:#fbf7ee;border:1px solid #ede3cd;border-radius:11px;padding:16px 18px;margin:20px 0;color:#786649;font-size:12px}.callout .icon{height:18px;width:18px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;font-size:13px}.field label{font-weight:600}.field input,.field textarea,.field select{width:100%;min-height:44px;padding:11px 13px;border:1px solid #d8dfe8;border-radius:9px;background:#fff;color:var(--ink)}.field textarea{min-height:100px;resize:vertical}.field small{font-size:11px;color:var(--muted)}.field input[type=file]{font-size:12px;background:#f8f9fb}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.teacher-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:25px;align-items:start}.step-label{font-size:10px;letter-spacing:1px;color:#8a7041;border-bottom:1px solid var(--line);padding-bottom:13px;margin:10px 0 20px}.lesson-row{padding:20px;display:flex;gap:18px;align-items:center;border:1px solid var(--line);border-radius:12px;background:white;margin:10px 0}.lesson-number{display:grid;place-items:center;width:46px;height:46px;border-radius:10px;background:#eef2f7;font-family:Outfit;font-size:18px;flex-shrink:0}.lesson-content{flex:1;min-width:0}.lesson-content h3{font-size:16px;margin:4px 0}.lesson-content p{font-size:11px}.teacher-item{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;font-size:13px}.teacher-item p{font-size:11px}.upload-status,.form-error{font-size:12px;color:#a2483b;margin-top:12px;min-height:18px}.count{font:12px Inter;background:#edf1f5;padding:4px 8px;border-radius:6px}.empty{padding:30px;text-align:center;border:1px dashed #d4dce6;background:#f9fafc;border-radius:12px}.empty .icon{height:30px;width:30px;color:#7c91a9}.empty h3{margin:12px 0 7px}.empty p{font-size:12px}.empty .btn{margin-top:18px}.list-clean{list-style:none;padding:0;margin:20px 0}.list-clean li{display:flex;gap:10px;align-items:center;font-size:12px;margin:13px 0}.list-clean .icon{height:17px;width:17px;color:#a47e38}.bar-row{display:flex;justify-content:space-between;align-items:center;gap:15px}.full{width:100%}.spaced{margin-top:24px}.small{font-size:12px}.micro{font-size:11px}.muted{color:var(--muted)}.no-margin{margin:0}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin:23px 0;overflow-x:auto;white-space:nowrap}.tabs a,.tabs button{display:flex;align-items:center;gap:8px;padding:0 0 13px;border-bottom:2px solid transparent;background:none;color:#65778e;font-size:13px}.tabs .active{color:#1c3652;border-bottom-color:#347db9;font-weight:600}.tabs .icon{height:17px;width:17px}
/* Class viewer: page-at-a-time PDF and native video, loaded only when opened. */
.viewer-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:start}.viewer{background:#e9edf2;border:1px solid #dce3ec;border-radius:14px;overflow:hidden}.viewer-top{background:white;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px}.viewer-stage{min-height:380px;padding:20px;display:flex;align-items:center;justify-content:center;overflow:auto}.viewer-stage canvas{max-width:100%;height:auto;background:white;box-shadow:0 6px 23px #1b2d4715}.viewer-controls{display:flex;align-items:center;justify-content:center;gap:17px;background:white;padding:12px;font-size:12px}.viewer-controls .icon-btn{height:36px;width:36px}.viewer:fullscreen,.viewer.expanded{display:flex;flex-direction:column;background:#202c3d;overflow:auto}.viewer:fullscreen .viewer-stage,.viewer.expanded .viewer-stage{flex:1;min-height:0}.viewer:fullscreen canvas,.viewer.expanded canvas{max-height:80dvh;object-fit:contain}.viewer.expanded{position:fixed;inset:5px;z-index:90}.demo-slide{width:100%;aspect-ratio:16/9;padding:clamp(24px,4vw,55px);display:flex;flex-direction:column;justify-content:center;background:#10233e;color:white;position:relative}.demo-slide .eyebrow{color:#e2b65e}.demo-slide h2{font-size:clamp(25px,3vw,40px);line-height:1.2;color:white}.demo-slide p{margin-top:15px;font-size:13px;color:#bccbdc}.formula{font-family:Outfit;font-size:clamp(26px,3vw,40px);color:#ebc16e;margin:16px 0}.slide-footer{position:absolute;bottom:15px;left:25px;right:25px;display:flex;justify-content:space-between;gap:12px;font-size:8px;color:#b6c5d9;letter-spacing:1px}.player-wrap{background:#081529;border-radius:13px;overflow:hidden}.player-wrap video{display:block;width:100%;aspect-ratio:16/9;background:#081529}.player-tools{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:15px 0;font-size:12px}.player-tools select{padding:7px;border:1px solid var(--line);border-radius:8px;background:white}.chapter-list h3{font-size:16px;margin-bottom:15px}.chapter{display:flex;align-items:center;gap:10px;padding:13px 10px;margin:5px 0;font-size:12px;border:1px solid transparent;border-radius:9px}.chapter.active{background:#f0f4f8;border-color:#dbe4ef}.chapter span:first-child{font-family:Outfit;color:#8394ac}.chapter small{display:block;color:#8391a5;font-size:10px}.chapter .icon{height:15px;width:15px;margin-left:auto}.notes{margin-top:23px}.notes textarea{min-height:110px}.pdf-error{text-align:center;padding:22px}.pdf-error p{margin:10px 0 18px}.empty-video{aspect-ratio:16/9;background:var(--navy);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.empty-video h3{margin:12px 0}.empty-video p{font-size:12px;color:#b6c6d9}.loading{font-size:12px}.loading:before{content:'';display:inline-block;width:17px;height:17px;border:2px solid #bfcbd8;border-top-color:#92713a;border-radius:50%;margin-right:9px;vertical-align:middle;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Evaluation workspace. */
.exams-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.exam-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;background:white;border:1px solid var(--line);border-radius:16px;padding:25px}.exam-card p{font-size:13px}.exam-card .btn{margin-top:auto;width:100%}.subject-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:12px;background:#edf2f7;color:#34597c}.subject-icon.orange{background:#f6efe1;color:#8a6b32}.exam-meta{display:flex;gap:15px;font-size:12px;color:var(--muted)}.exam-info{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;background:#eef2f7;border-radius:12px;padding:22px;margin:23px 0;font-size:12px}.exam-info strong{display:block;font:600 23px Outfit}.exam-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;background:white;border:1px solid #d8dee4;border-radius:6px;padding:22px 26px}.exam-header h1{font-size:28px}.exam-header p{font-size:12px;margin-top:8px}.timer{display:flex;align-items:center;gap:12px;border:1px solid #c5d3e2;background:white;padding:15px 20px;border-radius:11px;font:600 25px Outfit;font-variant-numeric:tabular-nums;white-space:nowrap}.timer.urgent{color:#ae3838;border-color:#d89393}.exam-layout{display:grid;grid-template-columns:1fr;gap:18px}.question-card{background:white;border:1px solid #d8dee4;border-radius:6px;padding:30px 34px}.question-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.question-top>span{font-size:11px;letter-spacing:1px;color:#698099}.question-card h2{margin:25px 0;font:600 23px/1.5 Outfit}.flag{display:flex;align-items:center;gap:6px;background:#f3f5f8;padding:9px 11px;border-radius:7px;font-size:11px;color:#6a7d92}.flag.flagged{background:#f4deb4;color:#7a5724}.flag .icon{height:14px;width:14px}.answer{display:flex;align-items:center;gap:13px;border:1px solid transparent;border-radius:6px;padding:12px;margin:10px 0;cursor:pointer;font-size:14px}.answer:has(input:checked){border-color:#345b83;background:#edf3f9}.answer input{accent-color:#244d76;width:17px;height:17px;flex-shrink:0}.answer-letter{color:#617894;font-weight:600}.exam-nav{display:flex;justify-content:center;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:25px}.exam-side{order:-1;align-self:start;border-radius:6px;padding:17px 22px;display:grid;grid-template-columns:1fr auto;gap:10px 24px}.exam-side>p{display:none}.exam-side .question-grid{grid-column:1;display:flex;flex-wrap:wrap;margin:0;gap:0}.exam-side .qnum{width:44px;border-radius:0}.exam-side .legend{grid-column:1;margin:0}.exam-side>.btn{grid-column:2;grid-row:1/3}.exam-side .autosave{grid-column:2;margin:0;font-size:9px}.exam-side h3{grid-column:1;margin:0}.exam-side h3{font-size:19px}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:22px 0}.qnum{height:39px;border:1px solid #d5dfe9;border-radius:5px;background:#f6f8fa;color:#49607b;font-size:13px}.qnum.answered{background:#204363;color:white;border-color:#204363}.qnum.current{outline:2px solid #bb9753;outline-offset:2px}.qnum.flagged{box-shadow:inset 0 4px #d7a44c}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#7e8c9e;margin-bottom:23px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;background:#dce2ea;border-radius:2px}.legend .answered{background:#204363}.legend .flagged{background:#d7a44c}.exam-side .btn{width:100%}.autosave{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--green);margin-top:19px}.autosave .icon{width:14px;height:14px}.result-hero{text-align:center;background:var(--navy);border-radius:15px;padding:35px;color:white}.result-hero h1{font-size:30px;margin:14px 0}.result-hero p{font-size:13px;color:#c2d0df}.result-score{font:700 60px Outfit;color:#e8bb68;margin:15px 0}.review-item{border:1px solid var(--line);border-radius:12px;padding:23px;background:white;margin:13px 0;font-size:12px}.review-item h3{margin:10px 0;font-size:18px}.review-item p{font-size:13px}.status-good{color:var(--green)}.status-bad{color:#a05743}.review-item .icon{width:16px;height:16px}
/* Dialogs, notifications and familiar compact login. */
.modal-backdrop{position:fixed;inset:0;background:#081a306f;backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:white;border-radius:20px;padding:29px;width:min(540px,100%);max-height:90dvh;overflow:auto;box-shadow:0 25px 100px #00112730}.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.modal-head h2{font-size:25px}.modal p{font-size:13px;margin-bottom:18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.account-links{display:grid;gap:10px}.search-results{margin-top:20px;max-height:50dvh;overflow:auto}.search-result{display:flex;gap:12px;align-items:center;padding:12px;border-radius:8px}.search-result:hover{background:#f0f3f8}.search-result b{font-size:13px}.search-result small{font-size:11px;display:block;color:var(--muted)}.search-result .icon{color:#8b743f}.notice-row{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.notice-row:last-child{border:0}.notice-icon{width:42px;height:42px;display:grid;place-items:center;background:#eef2f7;border-radius:11px;flex-shrink:0}.notice-date{font-size:10px;letter-spacing:1px;color:#9b7c40}.notice-row h3{margin:6px 0 9px}.notice-row p{font-size:13px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);z-index:130;padding:13px 20px;max-width:min(550px,90vw);border-radius:10px;background:#224a3f;color:white;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){.main{max-width:1440px}.tile-art{height:128px}.tile-bottom{min-height:156px}}
@media(max-width:1100px){.main{padding:35px 28px}.topbar{gap:14px;padding:0 17px}.desktop-nav .nav-link{padding:10px 12px}.course-tabs{margin-left:0;margin-right:0}.course-tabs a{font-size:13px;padding:18px 13px}.subject-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.viewer-grid{grid-template-columns:minmax(0,1fr) 235px}.course-body h3{font-size:14px}.course-body{padding:18px 8px 5px}.filter-note{display:none}.tile-bottom{padding:16px 14px 14px}.resource-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.resource-cover strong{font-size:31px}}
@media(max-width:800px){.desktop-nav .nav-link{font-size:13px;padding:10px}.topbar{gap:12px}.topbar .preview-badge{display:none}.main{padding:28px 22px}.index-toggle{display:none}.mobile-menu{display:flex;order:-1;border:0}.topbar .nav-logo{width:29px}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wide-banner{aspect-ratio:3.9}.course-grid{gap:12px}.course-body h3{font-size:13px}.course-body p{font-size:11px}.course-bottom>span:first-child{display:none}.course-bottom{justify-content:flex-end;margin-top:12px}.course-card{padding:8px;border-radius:17px}.course-banner{border-radius:10px}.campus-shortcuts{gap:16px;flex-wrap:wrap}.teacher-grid,.viewer-grid,.exam-layout{grid-template-columns:1fr}.exams-grid{grid-template-columns:1fr 1fr}.chapter-list{display:flex;flex-wrap:wrap;gap:10px}.chapter-list h3{width:100%}.chapter{flex:1;min-width:180px}.chapter-list .callout{display:none}.exam-side{order:-1}.exam-side .question-grid{display:flex;flex-wrap:wrap;margin:12px 0}.qnum{min-width:39px}.exam-side .legend{margin-bottom:14px}.exam-side .btn{width:auto}.exam-side .autosave{display:inline-flex;margin-left:14px}.exam-side>p{display:none}.is-open>.tile-cover{grid-template-columns:210px 1fr}.subject-content{padding:18px}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-cover strong{font-size:36px}.footer-note{font-size:9px}}
@media(max-width:600px){.topbar{height:58px;padding:0 12px;gap:6px}.desktop-nav{display:none}.top-actions{gap:2px}.topbar .icon-btn{width:36px;height:36px}.user-menu{margin-left:4px;padding-left:8px;gap:5px}.user-menu img{width:33px;height:33px}.nav-logo img{height:32px}.sidebar{top:58px}.mobile-overlay.open{top:58px}.main{padding:24px 15px 25px}.page-heading{margin-bottom:21px;gap:12px}.page-heading h1{font-size:27px}.page-heading .btn{font-size:12px;padding:10px 12px}.overview{padding:0 8px 16px}.overview-title{padding-top:13px;padding-bottom:15px}.overview-title h2{font-size:18px}.overview-title .micro{font-size:9px}.course-filters{gap:7px;margin:13px 0 15px}.course-filters select{font-size:11px;max-width:90px;padding:9px 5px}.course-search input{font-size:12px;padding-left:8px}.course-grid{grid-template-columns:1fr;gap:15px}.course-card{padding:10px;border-radius:20px}.course-banner{aspect-ratio:2.8}.course-body{padding:17px 11px 5px}.course-body h3{font-size:15px}.course-body p{font-size:12px}.course-bottom>span:first-child{display:inline}.course-bottom{justify-content:space-between;margin-top:15px}.campus-shortcuts{justify-content:flex-start;gap:14px;margin:22px 4px}.campus-shortcuts a{font-size:12px}.course-tabs{justify-content:flex-start;margin:-5px 0 21px}.course-tabs a{font-size:12px;padding:16px 13px 13px}.wide-banner{aspect-ratio:3.05;border-radius:14px;margin-bottom:18px}.subject-grid{gap:12px 11px}.tile-art{height:94px;padding:10px 11px}.tile-top{font-size:7px;letter-spacing:.45px;gap:4px}.year{font-size:8px;padding:3px 6px}.tile-icon{width:42px;height:42px;border-radius:13px}.tile-icon .icon{width:25px;height:25px}.tile-bottom{padding:12px 11px 11px;min-height:166px;gap:10px}.tile-bottom h2{font-size:14px}.tile-bottom p{font-size:12px;line-height:1.45;margin-top:7px}.tile-button{min-width:0;min-height:44px;width:100%;font-size:12px;padding:10px 12px}.tile-cover{border-radius:15px}.subject-tile{scroll-margin-top:72px}.is-open>.tile-cover{grid-template-columns:110px 1fr}.is-open .tile-art{height:150px;padding:11px 9px}.is-open .tile-top>span:first-child{display:none}.is-open .tile-top{justify-content:center}.is-open .tile-icon{width:54px;height:54px}.is-open .tile-bottom{min-height:150px;padding:13px 15px;gap:8px}.is-open .tile-bottom h2{font-size:20px}.is-open .tile-bottom p{font-size:11px;margin-top:4px}.is-open .tile-button{width:auto;min-width:85px;padding:7px 13px;min-height:38px}.subject-content{padding:11px;border-radius:14px;margin-top:11px}.resource-group{border-radius:12px;margin-bottom:12px}.resource-group summary{font-size:18px;padding:15px 12px;gap:8px}.resource-group summary>span{font-size:9px}.resource-grid{gap:10px;padding:0 10px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}.resource-cover{height:112px;padding:11px 9px}.resource-cover strong{font-size:23px}.resource-cover .tile-top{font-size:6px;letter-spacing:0}.resource-cover .year{display:none}.resource-cover-bottom{font-size:7px;letter-spacing:.5px}.resource-cover-bottom b{height:22px;width:22px;font-size:9px}.resource-body{padding:13px 10px;min-height:172px;gap:8px}.resource-name{gap:6px}.resource-name h3{font-size:11px}.resource-name .icon{height:14px;width:14px}.resource-body p{font-size:10px}.resource-bottom{align-items:flex-end;gap:5px}.resource-bottom span{font-size:8px;line-height:1.4}.resource-bottom b{font-size:10px;padding:10px 12px}.resource-practice{flex-direction:column;align-items:flex-start;padding:7px 3px}.resource-practice>div{font-size:12px}.resource-practice .btn{font-size:12px;width:100%}.demo-caption{font-size:10px;padding:0 4px}.footer-note{flex-direction:column;gap:7px;padding-right:40px}.help-float{height:47px;width:47px;right:15px;bottom:15px}.help-float .icon{width:24px;height:24px}.page-head h1{font-size:28px}.page-head p{font-size:13px}.eyebrow{font-size:9px}.panel{padding:20px}.field-row{grid-template-columns:1fr;gap:0}.field input,.field select,.field textarea{font-size:16px}.field input[type=file]{font-size:12px}.viewer-stage{min-height:190px;padding:8px}.viewer-top{padding:10px;font-size:10px}.viewer-top .btn{font-size:11px;padding:8px 10px}.demo-slide{aspect-ratio:4/3;padding:25px 20px}.demo-slide h2{font-size:26px}.demo-slide p{font-size:11px}.slide-footer{left:15px;right:15px;font-size:6px;bottom:11px}.demo-slide .eyebrow{font-size:8px}.formula{font-size:25px}.chapter{font-size:11px;min-width:130px}.bar-row{flex-wrap:wrap}.tabs{gap:20px}.tabs a,.tabs button{font-size:12px}.exams-grid{grid-template-columns:1fr}.exam-card{padding:23px}.exam-header{align-items:flex-start;gap:10px}.exam-header h1{font-size:23px}.exam-header p{font-size:10px}.exam-header .eyebrow{font-size:8px}.timer{font-size:20px;padding:11px;gap:7px}.timer .icon{width:16px;height:16px}.exam-side{padding:18px;display:block}.exam-side>.btn{margin-top:10px}.exam-header{padding:17px 15px}.exam-side .legend{margin-top:10px}.exam-side h3{font-size:18px}.exam-side .autosave{display:flex;margin:14px 0 0;font-size:9px}.exam-info{font-size:10px;padding:18px;gap:12px}.exam-info strong{font-size:20px}.question-card{padding:21px 17px}.question-card h2{font-size:20px;margin:23px 0}.question-top{gap:8px}.question-top>span{font-size:9px}.flag{font-size:10px;padding:8px}.answer{font-size:13px;gap:9px;padding:12px}.exam-nav .btn{font-size:12px;padding:11px}.result-hero{padding:28px 20px}.result-hero h1{font-size:26px}.review-item{padding:19px}.modal{padding:23px 20px;border-radius:17px}.modal-head h2{font-size:23px}.modal-actions .btn{font-size:12px}.player-tools{flex-wrap:wrap}.auth-page{padding:20px 18px;background-attachment:scroll}.auth-form{padding:23px;border-radius:22px;max-width:365px}.auth-logo{width:56px;height:56px;margin-bottom:12px}.auth-logo img{height:44px;width:38px}.auth-form h2{font-size:23px}.auth-form .field input{font-size:16px}.auth-form>p{margin-bottom:15px}.auth-form .auth-divider{margin-top:14px}.auth-form .micro{font-size:9px!important}.lesson-row{flex-wrap:wrap}.resource-card{border-radius:11px}.btn{min-height:44px}}
@media(max-width:360px){.main{padding-left:12px;padding-right:12px}.subject-grid{gap:10px}.tile-bottom{padding:12px 10px}.tile-bottom h2{font-size:13px}.tile-bottom p{font-size:11px}.resource-grid{grid-template-columns:1fr}.resource-cover strong{font-size:32px}.resource-cover{height:132px}.resource-body{min-height:140px}.resource-body p{font-size:12px}.resource-name h3{font-size:13px}.resource-bottom span{font-size:10px}.resource-bottom b{font-size:12px}.page-heading .btn{font-size:11px}.top-actions{gap:0}.user-menu{padding-left:6px}.course-tabs a{padding-left:11px;padding-right:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Same diagonal highlight as the SoyPuma website; no card movement. */
.subject-grid .tile-cover::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(110deg,transparent 20%,#ffffff38 48%,transparent 76%);transform:translateX(-130%);pointer-events:none}
@keyframes subject-surface-glint{from{transform:translateX(-130%)}to{transform:translateX(130%)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.subject-grid .tile-cover:hover::after{animation:subject-surface-glint .9s ease-out both}}
@media(prefers-reduced-motion:no-preference){.subject-grid .tile-cover:has(.tile-button:focus-visible)::after{animation:subject-surface-glint .9s ease-out both}}
@media(prefers-reduced-motion:reduce){.subject-grid .tile-cover::after{display:none}}

/* Gentle light reflection across original course banners. */
.course-banner-frame{position:relative;isolation:isolate;overflow:hidden;border-radius:20px;margin:0 0 24px;background:#011125}
.course-banner-frame>.wide-banner{display:block;margin:0;border-radius:inherit}
.course-banner-frame::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,transparent 24%,#fff7e51c 44%,#ffffff30 50%,#fff7e514 56%,transparent 76%);transform:translateX(-130%)}
@keyframes banner-surface-glint{from{transform:translateX(-130%)}to{transform:translateX(130%)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.course-banner-frame:hover::after{animation:banner-surface-glint 1.4s ease-in-out both}}
@media(max-width:600px){.course-banner-frame{border-radius:14px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.course-banner-frame::after{display:none}}
