:root{--ink:#172e38;--ink2:#2e4950;--muted:#657780;--line:#dfe7e4;--white:#fff;--bg:#f5f7f4;--green:#d9ff8c;--green-dark:#7b9d39;--orange:#eaa16c;--shadow:0 16px 42px rgba(14,44,49,.065)}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.52 system-ui,-apple-system,'Segoe UI',Arial,sans-serif;-webkit-text-size-adjust:100%}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.38;cursor:not-allowed}a{color:inherit}.hidden{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em}h1{font-size:clamp(46px,8vw,82px);line-height:1.02;max-width:790px;margin-bottom:23px}h1 i,h2 i{font-style:normal;color:#90b65a}h2{font-size:clamp(33px,5vw,48px);line-height:1.08;margin-bottom:13px}small{font-size:12px}.bar{background:#142d39;color:#fff;position:relative;z-index:20}.bar-inside{max-width:1140px;margin:auto;padding:17px 28px;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:78px}.brand{display:inline-flex;align-items:center;gap:12px;border:0;background:none;color:inherit;padding:0;text-align:left;font-weight:900;font-size:16px;letter-spacing:.06em;line-height:1.15}.brand small{display:block;font-weight:550;color:#a2bdc0;letter-spacing:.16em;font-size:9px;margin-top:5px}.brand-icon{font-size:33px;line-height:1;color:#d6fa88;font-family:Georgia,serif}.bar-right{display:flex;align-items:center;gap:16px}.pill{font-size:10px;font-weight:850;letter-spacing:.12em;border:1px solid rgba(255,255,255,.33);padding:8px 10px;border-radius:2px}.tiny-counter{font-size:11px;color:#94b3ae;font-weight:800;letter-spacing:.12em}.notice{background:#e9f2d9;color:#455b3a;padding:11px max(22px,calc((100% - 1084px)/2));font-size:12px;line-height:1.5}.app{max-width:1140px;padding:42px 28px 95px;margin:auto}.screen{animation:appear .2s ease}@keyframes appear{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;color:#6b8f4f;margin-bottom:16px;display:flex;align-items:center;gap:9px}.dot{height:8px;width:8px;background:#9ec45b;border-radius:50%}.hero{background:#142d39;color:#fff;padding:clamp(32px,7vw,75px);border-radius:6px;overflow:hidden;position:relative}.hero:before{content:'';position:absolute;height:280px;width:280px;right:-55px;top:-95px;border:1px solid rgba(204,249,143,.13);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.02),0 0 0 125px rgba(255,255,255,.017);pointer-events:none}.hero .eyebrow{color:var(--green)}.hero p{max-width:520px;color:#b4cbca;line-height:1.7;margin-bottom:34px}.hero-stats{display:flex;gap:25px;flex-wrap:wrap}.hero-stats span{font-size:11px;color:#b5c7c6;font-weight:600}.hero-stats b{font-size:21px;color:var(--green);margin-right:4px}.quick{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0 53px}.action{border:0;border-radius:5px;padding:23px;display:flex;align-items:center;gap:19px;text-align:left;transition:transform .15s,box-shadow .15s}.action:hover,.action:focus-visible{transform:translateY(-2px);box-shadow:0 13px 20px #173b3920}.action-main{background:var(--green)}.action-dark{background:#e6ebe8}.action-icon{font-size:25px;font-weight:500;align-self:start}.action strong{font-size:17px;display:block;letter-spacing:-.02em}.action small{display:block;margin-top:3px;color:#557068}.action-arrow{margin-left:auto;font-size:22px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:19px}.section-heading h2{margin-bottom:0}.muted{font-size:12px;color:var(--muted)}.catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.topic-card{background:white;border:1px solid var(--line);border-radius:5px;min-height:190px;padding:25px;text-align:left;position:relative;transition:.15s}.topic-card:hover,.topic-card:focus-visible{border-color:#88b552;box-shadow:var(--shadow);transform:translateY(-2px)}.topic-card .number{font-size:11px;font-weight:850;color:#7fa352;letter-spacing:.1em}.topic-card h3{font-size:20px;line-height:1.25;margin:24px 0 22px;max-width:260px}.topic-card .desc{font-size:11px;color:var(--muted)}.topic-card .arr{position:absolute;right:19px;bottom:20px;font-size:22px}.topic-card.feature{background:#f2f7e7}.source-foot{padding-top:32px;color:#71827d;font-size:12px;line-height:1.7}.source-foot a{color:#34594d;font-weight:700}.text-back{background:none;border:0;padding:8px 0 22px;color:#4a7166;font-weight:800;font-size:13px}.text-back:hover{text-decoration:underline}.sub-header{max-width:740px;margin:15px 0 28px}.sub-header p,.under-title{color:#667a7e;max-width:740px;font-size:15px;line-height:1.7}.sub-list{display:grid;gap:11px}.sub-item{background:#fff;border:1px solid var(--line);border-radius:5px;padding:24px;display:flex;text-align:left;align-items:center;justify-content:space-between;gap:15px}.sub-item:hover,.sub-item:focus-visible{border-color:#a3c56b;background:#fafff3}.sub-item h3{margin:0 0 6px;font-size:19px}.sub-item p{margin:0;color:#758382;font-size:12px}.sub-item .index{font-size:12px;color:#82a15f;font-weight:800;letter-spacing:.08em;display:block;margin-bottom:5px}.sub-item .go{background:#edfabd;padding:12px 15px;white-space:nowrap;font-size:12px;font-weight:850;border-radius:4px}.screen-title{max-width:900px}.combined-tools{display:flex;gap:9px;margin:28px 0 14px}.ghost{border:1px solid #bdccc3;border-radius:4px;background:#fff;padding:8px 14px;color:#4d6859;font-weight:750;font-size:12px}.combine-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.combine-option{display:flex;align-items:center;gap:12px;padding:15px 18px;background:white;border:1px solid var(--line);border-radius:5px;cursor:pointer}.combine-option:has(input:checked){background:#f2fbdc;border-color:#a6c46f}.combine-option input{accent-color:#5c8742;width:20px;height:20px;flex:none}.combine-option b{display:block;font-size:14px}.combine-option small{color:var(--muted)}.combine-summary{position:sticky;bottom:16px;margin-top:20px;background:#142d39;color:#fff;border-radius:6px;display:flex;justify-content:space-between;align-items:center;padding:17px 20px;gap:12px;box-shadow:0 15px 32px #102e3540;z-index:9}.combine-summary b{display:block;font-size:18px}.combine-summary small{color:#aec8bf}.btn{padding:15px 21px;border-radius:4px;border:0;font-weight:850;font-size:14px;line-height:1.2;transition:background-color .12s,transform .12s,box-shadow .12s;min-height:50px;touch-action:manipulation}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.985)}.btn-primary{background:var(--green);color:#173327;box-shadow:inset 0 -2px 0 #bfdc82}.btn-primary:hover{background:#c9f27a}.btn-outlined{background:#fff;color:#294448;border:1px solid #ccd6d1}.btn-outlined:hover{background:#f0f5f1}.btn-full{width:100%;display:flex;align-items:center;justify-content:space-between}.test-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0 35px}.test-meta>div{background:#fff;padding:24px 18px;border:1px solid var(--line);border-radius:5px}.test-meta span{display:block;font-size:11px;font-weight:800;color:#758879;letter-spacing:.1em}.test-meta strong{display:block;margin-top:12px;font-size:22px;letter-spacing:-.04em}#start-form{max-width:640px}.form-label{display:block;font-size:12px;letter-spacing:.07em;font-weight:850;margin-bottom:11px}#student-name{display:block;width:100%;font-size:18px;border:1px solid #aebfb4;background:#fff;color:#173330;border-radius:4px;padding:18px;outline:none}#student-name:focus{border-color:#648b4d;box-shadow:0 0 0 3px #d2ecb58a}.input-error{color:#bb5839;font-size:12px;min-height:19px;margin-top:6px}.rules{padding:22px;margin:20px 0 20px;border:1px solid #e2e9df;background:#eff4eb;border-radius:4px}.rules b{font-size:14px}.rules p{font-size:12px;color:#66796e;margin:8px 0 0;line-height:1.75}.exam-top{display:flex;align-items:start;justify-content:space-between;gap:15px}.exam-top .eyebrow{margin-bottom:8px}.exam-top h2{font-size:26px;margin:0 0 5px;letter-spacing:-.025em}.exam-student{font-size:12px;color:#688078}.timer{flex:none;border:1px solid #d8e1d5;background:#fff;border-radius:5px;padding:13px 18px;min-width:132px;text-align:center}.timer span{display:block;font-size:10px;color:#80948a;font-weight:850;letter-spacing:.13em}.timer strong{font-size:27px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer.urgent{border-color:#e9aa94;background:#fff2ea;color:#b84936}.exam-progress{display:flex;justify-content:space-between;font-size:11px;font-weight:900;letter-spacing:.075em;margin-top:30px;margin-bottom:12px;gap:12px}.progress-track{height:5px;background:#e1e8df;border-radius:4px;overflow:hidden}.progress-track>div{width:0;background:#93b955;height:100%;transition:width .15s}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:17px;align-items:start;margin-top:22px}.q-card,.q-aside{background:#fff;border:1px solid var(--line);border-radius:5px}.q-card{padding:clamp(20px,4.3vw,42px);min-width:0;overflow:hidden}.q-kicker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:28px}.q-kicker>span:first-child{background:#eaf4d1;padding:7px 12px;font-size:12px;font-weight:900;color:#476934}.q-subname{font-size:12px;color:#657e74}.q-title{font-size:clamp(17px,2.3vw,21px);font-weight:700;line-height:1.75;overflow-wrap:anywhere}.q-title em{font-style:normal;border-bottom:1px solid #a2b9ab}.q-figure{margin:24px 0 12px;max-width:100%;overflow-x:auto;color:#122e36;overscroll-behavior-x:contain}.q-figure:empty{display:none}.math-block{background:#f8faf7;border:1px solid #edf0ea;border-radius:5px;padding:22px 18px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(23px,3.7vw,34px);line-height:1.7;text-align:center;white-space:normal;overflow-wrap:anywhere}.math-block sup{font-size:.65em}.frac{display:inline-flex;vertical-align:middle;align-items:stretch;flex-direction:column;text-align:center;line-height:1.24;white-space:nowrap;margin:0 .1em}.frac>span:first-child{border-bottom:1.4px solid currentColor;padding:0 .19em .11em}.frac>span:last-child{padding:.12em .19em 0}.q-context{padding:18px 19px;background:#f0f5ec;border-left:3px solid #a1c46d;color:#425b50;line-height:1.65;font-size:14px;margin:-5px 0 26px}.q-context strong{color:#203c31}.context-table,.data-table{border-collapse:collapse;min-width:260px;width:100%;max-width:580px;font-variant-numeric:tabular-nums;margin:12px auto;font-size:clamp(12px,1.6vw,15px)}.context-table th,.context-table td,.data-table th,.data-table td{border:1px solid #bdcfc3;padding:9px;text-align:center}.context-table th,.data-table th{background:#ecf3e5}.q-figure svg{display:block;max-width:100%;height:auto;margin:auto}.q-source{margin:14px 0 0;font-size:11px;color:#75877c}.q-source a{color:#406e54;text-decoration:underline}.answer-area{margin-top:30px;padding-top:24px;border-top:1px solid #e6ebe6}.answer-area label{display:block;font-size:11px;letter-spacing:.14em;font-weight:900;margin-bottom:11px}.answer-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.answer-row input{width:min(100%,290px);max-width:100%;border:2px solid #a8be9a;padding:16px 18px;border-radius:4px;outline:none;background:#fff;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .1s,box-shadow .1s}.answer-row input:focus{border-color:#638f40;box-shadow:0 0 0 4px #b8e48b60}.saved{font-size:11px;color:#7e9f6d}.answer-area>small{display:block;margin-top:11px;color:#7e8984;line-height:1.6}.q-aside{padding:20px;position:sticky;top:20px}.aside-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:850;letter-spacing:.08em;margin-bottom:17px}.aside-title span{font-size:11px;color:#839486}.nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.nav-grid button{min-height:36px;border:1px solid #d6e1d9;border-radius:3px;background:#fff;font-size:12px;font-weight:800;touch-action:manipulation;transition:background .15s,border-color .15s}.nav-grid button.done{background:#d9f6b4;border-color:#a6c98b}.nav-grid button.current{background:#163d36!important;color:#fff;border-color:#163d36!important}.aside-legend{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0;font-size:10px;color:#789080}.legend-dot{display:inline-block;width:10px;height:10px;background:#e1f3bb;margin-right:4px;border-radius:1px}.legend-dot.active{background:#163d36}.finish-link{background:none;border:0;border-top:1px solid #e4ebe6;width:100%;padding:16px 0 2px;text-align:left;font-size:11px;font-weight:850;color:#477354}.exam-actions{display:flex;justify-content:space-between;gap:12px;margin-top:18px;width:calc(100% - 247px);min-height:62px}.exam-actions .btn{min-width:110px}.exam-actions .btn-primary{min-width:220px}.done-card{max-width:620px;margin:35px auto;background:#fff;text-align:center;border:1px solid var(--line);border-radius:6px;padding:clamp(35px,8vw,65px)}.done-card .eyebrow{justify-content:center}.done-card h2{font-size:clamp(40px,6vw,58px)}.done-card p{font-size:14px;color:#758579;line-height:1.8;margin:20px auto 30px}.check-icon{display:flex;align-items:center;justify-content:center;border-radius:100px;height:80px;width:80px;margin:0 auto 25px;background:#d9f6ae;font-size:35px;color:#316241}.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#082a2ed0;padding:18px}.modal-panel{width:min(100%,480px);padding:35px;background:#fff;border-radius:6px;box-shadow:0 30px 70px #0004}.modal-panel h3{font-size:29px}.modal-panel p{font-size:14px;color:#687c76}.modal-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:25px}.grid-bg line{stroke:#dae6dc;stroke-width:1}.diagram-label{font:700 13px system-ui;fill:#294a41}.svg-ink{stroke:#426c5d;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.svg-fill{fill:#e4f5c6;stroke:#426c5d;stroke-width:2}.svg-accent{stroke:#a77b49;stroke-width:2.4;fill:none}.valid-marker{color:#49724b;font-weight:700}button:focus-visible,a:focus-visible{outline:3px solid #7aa350;outline-offset:3px}@media(max-width:940px){.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-layout{grid-template-columns:minmax(0,1fr) 195px}.q-aside{padding:15px}.exam-actions{width:calc(100% - 212px)}}@media(max-width:690px){.app{padding:25px 17px 110px}.bar-inside{padding:13px 17px;min-height:66px}.brand{font-size:14px}.notice{padding:10px 17px;font-size:11px}.hero{padding:33px 25px}.hero:before{opacity:.6}.hero-stats{gap:12px 23px}.quick{grid-template-columns:1fr;gap:9px;margin:12px 0 35px}.action{padding:19px}.catalog{grid-template-columns:1fr 1fr;gap:9px}.topic-card{min-height:160px;padding:18px}.topic-card h3{font-size:16px;margin:22px 0 20px}.topic-card .arr{right:13px;bottom:14px}.section-heading .muted{display:none}.combine-list{grid-template-columns:1fr}.test-meta{gap:6px}.test-meta>div{padding:15px 11px}.test-meta strong{font-size:18px}.exam-layout{grid-template-columns:minmax(0,1fr);gap:13px}.exam-actions{width:100%;position:sticky;bottom:0;z-index:15;padding:12px 0 max(12px,env(safe-area-inset-bottom));background:linear-gradient(0deg,#f5f7f4 85%,#f5f7f4ec 100%);margin-top:8px;transform:translateZ(0)}.exam-actions .btn{flex:1;min-width:0;min-height:54px}.exam-actions .btn-primary{min-width:0;flex:1.5}.q-aside{position:static;order:2}.nav-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.nav-grid button{min-height:35px}.exam-top h2{font-size:22px}.exam-progress{margin-top:22px}.q-card{padding:20px}.q-kicker{margin-bottom:23px}.answer-row input{width:100%}.saved{display:block}.q-context{padding:14px 15px}.q-figure{margin:18px 0}.sub-item{padding:18px}.sub-item h3{font-size:16px}}@media(max-width:400px){.catalog{grid-template-columns:1fr}.topic-card{min-height:120px}.topic-card h3{margin:12px 0 10px}.tiny-counter{display:none}.nav-grid{grid-template-columns:repeat(8,1fr)}.test-meta strong{font-size:16px}.exam-top h2{font-size:19px}.timer{min-width:104px;padding:9px 11px}.timer strong{font-size:23px}.answer-area{margin-top:17px}.math-block{font-size:24px;padding:16px 10px}.btn{padding:13px 11px;font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.q-context{padding:0;border:none;background:none;margin:0 0 26px}.q-context details{border:1px solid #d7e5d4;border-radius:5px;overflow:hidden;background:#f1f7eb}.q-context summary{cursor:pointer;padding:16px 18px;list-style:none;font-size:12px;font-weight:750;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.q-context summary::-webkit-details-marker{display:none}.q-context summary:before{content:'+';background:#d6edae;font-size:18px;width:25px;height:25px;display:inline-flex;justify-content:center;align-items:center;margin-right:6px}.q-context details[open] summary:before{content:'−'}.q-context summary span{color:#71907a;margin-left:auto;font-weight:500;font-size:11px}.shared-text{padding:0 18px 18px;font-size:13px;color:#38584b;line-height:1.7}.shared-figure{padding:4px 12px 15px;overflow:auto}.shared-figure svg{max-width:100%;height:auto;max-height:280px;display:block;margin:auto}.statement-list{background:#f8faf7;border:1px solid #e4ece4;border-radius:5px;padding:19px 22px;font-size:16px;line-height:1.75}.statement-list p{margin:0 0 13px}.statement-list p:last-child{margin:0}@media(max-width:690px){.q-context summary{padding:12px 14px}.q-context summary span{width:100%;padding-left:32px}.shared-text{padding:0 13px 16px}.statement-list{padding:13px 15px}}

.resume{border:1px solid #93b468;background:#f2f9df;border-radius:5px;padding:18px 23px;width:100%;text-align:left;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;align-items:center;margin:-32px 0 38px}.resume span{font-weight:900;font-size:11px;letter-spacing:.07em;color:#4b7552}.resume strong{font-size:15px}.resume small{font-weight:800;color:#426a4b}body.testing #resume{display:none}@media(max-width:690px){.resume{margin:-18px 0 28px;padding:15px}}

/* Настраиваемые количества заданий в сборном тесте */
.combine-option{display:flex;justify-content:space-between;align-items:center;gap:18px;cursor:default;flex-wrap:wrap;min-width:0}
.combine-option.chosen{background:#f2fbdc;border-color:#a6c46f}
.combine-check{display:flex;align-items:center;gap:12px;cursor:pointer;flex:1;min-width:180px}
.combine-check span{min-width:0}
.qty-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.qty-controls>label{font-size:12px;font-weight:750;color:#667971}
.qty-stepper{display:flex;align-items:center;background:#f6f8f3;border:1px solid #d3e1d6;border-radius:5px;overflow:hidden}
.qty-stepper button{background:transparent;border:0;width:38px;height:42px;font-size:22px;color:#315346;touch-action:manipulation}
.qty-stepper button:not(:disabled):active{background:#dce9cb}
.qty-stepper input{border:0;background:#fff;width:48px;height:42px;text-align:center;font-size:16px;font-weight:850;color:#223d34;border-left:1px solid #d3e1d6;border-right:1px solid #d3e1d6;appearance:textfield;-moz-appearance:textfield}
.qty-stepper input::-webkit-inner-spin-button,.qty-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.qty-stepper input:disabled{color:#95a39c;background:#f5f6f4}
@media(max-width:510px){.combine-option{align-items:stretch}.combine-check{flex-basis:100%}.qty-controls{justify-content:space-between;padding-left:33px}.qty-stepper button{width:44px;height:44px}}

/* Cross-platform: iOS safe areas, Windows keyboard focus, compact screens */
:root { color-scheme: light; }
input, button, textarea { font: inherit; }
input { font-size: 16px; } /* iPhone: no Safari zoom when focusing */
button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid #e8a367; outline-offset: 3px; }
.teacher-link { color: #e8eec7; font-size: 12px; text-decoration: none; border: 1px solid #637a7a; border-radius: 6px; padding: 7px 9px; white-space: nowrap; }
.toast { position: fixed; z-index: 400; bottom: calc(22px + env(safe-area-inset-bottom)); left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); padding: 13px 17px; border: 1px solid #b74d45; border-radius: 12px; color: #6b1d17; background: #fff2ee; box-shadow: 0 8px 24px #0002; max-width: 620px; margin: 0 auto; font-size: 15px; }
@media (max-width: 420px) { .teacher-link{font-size:10px;padding:5px 6px} .tiny-counter{display:none} }

/* Review — deliberately distinct from an active exam. */
.review-list{display:grid;gap:14px;margin:20px 0 28px}.review-card{border:1px solid #dce5e2;background:#fff;border-radius:16px;padding:20px;overflow-wrap:anywhere}.review-card h3{font-size:18px;margin:0 0 12px}.review-card p{line-height:1.55}.review-card .btn{margin-top:8px}.review-detail{border-top:1px solid #dce5e2;margin-top:14px;padding-top:14px}.review-detail .q-figure{max-width:600px;overflow:auto}.review-input{display:block;width:100%;max-width:350px;padding:12px;border:1px solid #9baead;border-radius:10px;font-size:18px;margin:8px 0}

/* Three main choices, including visible themed tests */
@media(min-width:691px){.quick{grid-template-columns:repeat(3,minmax(0,1fr))}.quick .action{min-width:0;gap:10px;padding:18px}.quick .action strong{font-size:15px}.quick .action small{font-size:11px}}

/* Student entry and profile */
.bar-right{flex-wrap:wrap;justify-content:flex-end}.bar-right button.teacher-link{background:transparent;cursor:pointer}.welcome-card{max-width:680px;margin:35px auto 70px}.welcome-card h1{font-size:clamp(42px,7vw,72px)}.welcome-card input{width:100%;padding:16px;border:1px solid #b8c9bf;border-radius:8px;margin:10px 0}.profile-progress-card{padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;margin:24px 0}.profile-progress-card strong{display:block;font-size:44px;color:#426b3e}.profile-progress-card progress{display:block;width:100%;height:20px;accent-color:#729f40;margin:12px 0}.profile-progress-card progress::-webkit-progress-bar{background:#e9efdf;border-radius:10px}.profile-progress-card progress::-webkit-progress-value{background:#729f40;border-radius:10px}.profile-topics-panel{padding:18px;border:1px solid var(--line);border-radius:12px;background:white}.profile-topics-panel summary{cursor:pointer;font-weight:700}#profile-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:18px}.profile-topic{padding:10px;font-size:13px;background:#f3f5f2;border-radius:7px}.profile-topic.passed{background:#e5f2d6;color:#36562e}.profile-history-title{font-size:30px;margin-top:30px}#profile-name{overflow-wrap:anywhere}#review-profile{margin:0 10px 12px 0}@media(max-width:480px){.bar-inside{padding:12px;gap:8px}.bar-right{gap:6px}.profile-progress-card{padding:16px}.welcome-card{margin-top:20px}}
.resource-panel{background:#fff;border:1px solid #dbe3e6;border-radius:18px;padding:22px;margin:20px 0}.resource-panel a{display:inline-block;margin:8px 24px 8px 0}.resource-panel details,#student-grants details{padding:10px 0;border-bottom:1px solid #e1e8eb}.resource-panel summary,#student-grants summary{cursor:pointer;padding:8px}.resource-panel button{margin:8px;padding:12px;border:1px solid #cbd9df;border-radius:10px;background:#f4f8fa;color:#142d39;cursor:pointer}.material-viewer{width:min(1000px,94vw);max-height:94vh;overflow:auto;border:0;border-radius:18px;padding:20px;color:#142d39;user-select:none}.material-viewer::backdrop{background:#102631ba}.material-viewer video,.pdf-page{display:block;width:100%;height:auto;background:#eef2f4}.material-viewer video{max-height:65vh;background:#000}.media-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0}.media-controls button,.material-viewer>button,.media-controls select{padding:12px;border-radius:8px;border:1px solid #cbd9df;background:#fff;cursor:pointer}.media-controls input[type=range]{flex:1;min-width:140px}.material-viewer h2{font-size:22px}.material-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0;padding-top:16px;border-top:1px solid #dbe3e6}.material-row input{flex:1;min-width:180px}#student-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}#student-grants input[type=checkbox]{width:auto;margin:0 8px 0 0}#student-grants label{display:block;margin:10px 0}#student-edit-form textarea{width:100%;font:inherit;padding:12px;box-sizing:border-box}#material-upload select,#student-edit-form input{max-width:100%}@media print{.material-viewer{display:none!important}}
#welcome-code{display:block;width:100%;padding:15px;border:1px solid #b9c8c3;border-radius:12px;font:inherit;letter-spacing:.12em;margin:8px 0 16px}.remember-label{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:16px 0}.remember-label input{width:auto;flex:none;margin-top:4px}.code-help{font-size:14px;margin:16px 0}.code-help summary{cursor:pointer}.code-help p{line-height:1.6}

/* Fullscreen video keeps the custom playback controls visible. */
.video-player:fullscreen{box-sizing:border-box;width:100%;height:100%;padding:16px;display:flex;flex-direction:column;background:#000;color:#fff;overflow:auto}
.video-player:-webkit-full-screen{box-sizing:border-box;width:100%;height:100%;padding:16px;display:flex;flex-direction:column;background:#000;color:#fff;overflow:auto}
.material-viewer .video-player:fullscreen video{flex:1;min-height:0;height:0;max-height:none;object-fit:contain}
.material-viewer .video-player:-webkit-full-screen video{flex:1;min-height:0;height:0;max-height:none;object-fit:contain}
.video-player:fullscreen .media-controls,.video-player:-webkit-full-screen .media-controls{flex-shrink:0}
.video-player [role=alert]:empty{display:none}

/* PDF zoom and a shared workspace for PDF + video. */
.study-viewer{width:min(1500px,96vw);box-sizing:border-box}
.study-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.study-layout.paired{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.material-pane{min-width:0;box-sizing:border-box}
.pdf-viewport{overflow:auto;max-height:65vh;background:#e5eaed;overscroll-behavior:contain}
.pdf-viewport .pdf-page{max-width:none;flex:none}
.study-stage:fullscreen,.material-pane:fullscreen{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;border-radius:0;background:#fff;color:#142d39;overflow:auto;box-sizing:border-box}
.study-stage:-webkit-full-screen,.material-pane:-webkit-full-screen{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;background:#fff;color:#142d39;overflow:auto;box-sizing:border-box}
.material-pane:fullscreen .pdf-viewport{max-height:calc(100vh - 180px)}
.study-stage:fullscreen .pdf-viewport{max-height:calc(100vh - 260px)}
@media(max-width:760px){.study-layout.paired{grid-template-columns:minmax(0,1fr)}.study-layout.paired .pdf-viewport{max-height:42vh}.study-layout.paired video{max-height:35vh}.study-viewer{padding:12px}.media-controls{gap:8px}}
