
:root{--navy:#153b64;--blue:#285fa5;--lightblue:#e8f0fa;--bg:#f5f7fb;--white:#fff;--ink:#172b44;--muted:#63738a;--line:#e2e9f1;--green:#147c60;--greenbg:#e9f7f0;--red:#b63d47;--redbg:#fff0f0;--gold:#bd7e25;--shadow:0 8px 25px rgba(24,52,87,.045)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:#102f50;color:white;padding:29px 18px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:11px;padding:4px 9px}.brand strong{font-size:22px;letter-spacing:-.7px}.brand small{display:block;color:#b6c8dd;font-size:11px;margin-top:3px;letter-spacing:.3px}.brand-mark{background:linear-gradient(145deg,#76b1ef,#c7e0fa);color:#123f70;border-radius:13px;width:40px;height:40px;display:grid;place-items:center;font-weight:900;font-size:19px;position:relative;flex-shrink:0}.brand-mark span{position:absolute;top:2px;right:3px;font-size:10px;color:#0a447b}.nav-list{display:grid;gap:8px}.nav-item{border:0;background:transparent;color:#bed0e4;text-align:left;border-radius:10px;padding:13px 15px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:13px}.nav-item:hover,.nav-item.active{color:white;background:#23547e}.nav-emoji{font-size:22px;font-weight:400}.sidebar-bottom{margin-top:auto;display:grid;gap:13px;font-size:12px;color:#becfe0;padding:10px}.sidebar-bottom small{opacity:.7}.status-dot{width:8px;height:8px;background:#73e1b0;border-radius:100%;display:inline-block;margin-right:5px}.topbar{height:73px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 37px;gap:16px}.topbar-meta{font-size:13px;color:var(--muted)}.topbar-action{border:1px solid #cfe0f6;background:#ecf4ff;color:#174675;border-radius:9px;padding:9px 13px;font-weight:650;font-size:12px}.mobile-brand,.bottom-nav{display:none}.main{max-width:1190px;width:100%;margin:0 auto;padding:37px 41px 80px}.page-head{display:flex;gap:20px;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.eyebrow{text-transform:uppercase;color:#326fa9;letter-spacing:2px;font-size:10px;font-weight:850;margin:0 0 10px}.page-title{font-size:32px;line-height:1.22;letter-spacing:-.8px;margin:0 0 9px;font-weight:800}.muted{color:var(--muted)}.subline{font-size:14px;line-height:1.6;margin:0;color:var(--muted)}.card{border:1px solid var(--line);border-radius:17px;background:var(--white);box-shadow:var(--shadow);padding:25px}.card h2{font-size:17px;margin:0 0 9px;letter-spacing:-.2px}.card p{line-height:1.55}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.card-head h2{margin:0}.card-stack{display:grid;gap:18px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{padding:21px 22px}.stat-label{font-size:12px;color:var(--muted);font-weight:650}.stat-number{font-size:32px;font-weight:800;margin:10px 0 4px;letter-spacing:-1px}.stat-foot{font-size:11px;color:var(--muted)}.stat-symbol{float:right;color:#7e9dbc;font-weight:800;font-size:20px}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:grid;gap:7px;font-size:12px;font-weight:750;color:#455a71}.field.full{grid-column:1/-1}.input,select,textarea{background:#fbfcff;border:1px solid #d7e2ee;border-radius:10px;padding:12px 12px;width:100%;color:var(--ink);font-size:14px;outline:none;min-height:45px}.input:focus,select:focus,textarea:focus{border-color:#5c98d2;box-shadow:0 0 0 3px #eaf2fc}textarea{resize:vertical;min-height:84px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:12px 17px;font-size:13px;font-weight:750;border:1px solid #d7e2ee;background:white;color:#26435e;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(.97)}.btn-primary{background:var(--navy);color:white;border-color:var(--navy)}.btn-soft{background:var(--lightblue);border-color:var(--lightblue);color:#174c84}.btn-danger{color:var(--red);border-color:#f3cfd2;background:#fffafa}.btn-block{width:100%}.btn-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:20px}.hint{font-size:12px;line-height:1.65;color:var(--muted)}.pill{display:inline-block;padding:6px 10px;font-size:11px;border-radius:90px;background:#edf3fa;color:#2a5d8b;font-weight:700}.pill-green{background:var(--greenbg);color:var(--green)}.pill-red{background:var(--redbg);color:var(--red)}.note{background:#f2f7fd;border:1px solid #dceaf8;border-radius:12px;padding:13px 16px;color:#476783;font-size:12px;line-height:1.6}.mini-list{display:grid;gap:12px;margin-top:17px}.mini-item{display:flex;gap:10px;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:13px}.mini-item:last-child{border-bottom:0}.mini-item strong{display:block;margin-bottom:4px}.mini-item small{color:var(--muted)}.empty-state{text-align:center;color:var(--muted);padding:30px 5px;line-height:1.6}.empty-state .big{font-size:35px;display:block;margin-bottom:8px}.quiz-container{max-width:830px;margin:auto}.quiz-top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:17px}.progress-track{height:7px;background:#e4ebf3;border-radius:99px;overflow:hidden;margin:16px 0 26px}.progress-fill{height:100%;border-radius:99px;background:#2b6aaa;transition:width .25s}.question-card{padding:34px}.question-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.question-text{font-size:23px;line-height:1.48;font-weight:750;letter-spacing:-.25px;margin:20px 0 23px;white-space:pre-wrap}.option-list{display:grid;gap:11px}.option-btn{display:flex;text-align:left;align-items:flex-start;gap:15px;border:1px solid #dce6ef;border-radius:12px;background:#fff;padding:15px;width:100%;color:var(--ink);min-height:56px;font-size:14px;line-height:1.5}.option-btn:not(:disabled):hover{border-color:#8cafce;background:#f6faff}.option-letter{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;border-radius:8px;border:1px solid #d8e4ef;background:#f4f7fb;font-weight:800;color:#567188;font-size:12px}.option-btn.chosen{border:2px solid #295f9b;background:#eef5fd;padding:14px}.option-btn.correct{border-color:#60b79a;background:var(--greenbg)}.option-btn.wrong{border-color:#e7a3a8;background:var(--redbg)}.option-btn:disabled{opacity:1;cursor:default}.feedback{margin-top:21px;padding:19px;background:#f6f9fd;border-radius:12px;border:1px solid #dce7f2;font-size:13px;line-height:1.65}.feedback strong{font-size:15px}.feedback.correct{background:var(--greenbg);border-color:#c5e6d6}.feedback.wrong{background:#fff5f5;border-color:#f4d7dc}.feedback p{margin:10px 0 0}.feedback dl{margin:14px 0 0}.feedback dt{font-weight:760;margin-top:9px}.feedback dd{margin:3px 0 0;color:#53637a}.feedback dt.good{color:var(--green)}.feedback dt.bad{color:var(--red)}.quiz-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px;flex-wrap:wrap}.question-jump{display:flex;gap:6px;flex-wrap:wrap;margin-top:19px}.jump{width:30px;height:30px;border-radius:7px;border:1px solid #dce4ec;background:#fff;color:#586e85;font-size:11px;font-weight:700}.jump.current{border:2px solid #1a4c7f;color:#1a4c7f}.jump.done{background:#dfeefb}.timer{font-variant-numeric:tabular-nums;font-size:14px;font-weight:800;background:#f1f5fa;padding:9px 12px;border-radius:9px}.timer.urgent{background:#ffe7e7;color:var(--red)}.results-hero{text-align:center;background:linear-gradient(135deg,#164975,#11365c);color:#fff;border-radius:17px;padding:35px 25px;margin-bottom:20px}.results-hero .score{font-weight:800;font-size:54px;letter-spacing:-2px;margin:8px 0}.results-hero p{margin:0;color:#d7e5f4}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.results-grid .card{text-align:center;padding:17px}.results-grid strong{display:block;font-size:23px}.answer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:9px}.answer-chip{padding:10px;background:#f4f8fd;border:1px solid #e0e9f2;border-radius:10px;text-align:center;font-size:12px}.answer-chip.wrong{background:#fff2f2;border-color:#f1d4d7}.answer-chip strong{display:block;font-size:14px;margin-top:4px}.review-item{border-top:1px solid var(--line);padding:24px 0}.review-item:first-child{border-top:0;padding-top:4px}.review-item h3{font-size:16px;line-height:1.6;margin:8px 0 15px;white-space:pre-wrap}.review-choice{font-size:13px;padding:9px 11px;border-radius:8px;margin:5px 0;border:1px solid #e7edf4;line-height:1.5}.review-choice.ok{border-color:#b4dfca;background:#effaf3}.review-choice.no{border-color:#efb7bc;background:#fff3f3}.review-why{background:#f6f9fc;border-radius:9px;padding:15px;line-height:1.6;color:#475d73;font-size:13px;margin-top:12px}.review-why p{margin:0 0 8px}.review-why p:last-child{margin-bottom:0}.bank-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px}.bank-controls input{flex:1 1 230px}.bank-controls select{flex:0 1 185px}.bank-row{display:flex;align-items:flex-start;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}.bank-row:last-child{border:0}.bank-row .number{font-size:12px;font-weight:800;background:#edf3f9;padding:7px 9px;border-radius:7px;color:#55728b}.bank-row-main{flex:1;min-width:0}.bank-row-main strong{font-size:14px;line-height:1.55;white-space:pre-wrap;display:block}.bank-row-main small{font-size:11px;color:var(--muted);display:block;margin-top:6px}.bank-row .btn{padding:7px 10px;font-size:11px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border:0}.history-row strong{font-size:14px}.history-row p{font-size:11px;color:var(--muted);margin:5px 0 0}.history-score{font-size:22px;font-weight:800;color:#255b8d}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173e66;color:white;padding:11px 20px;border-radius:10px;box-shadow:0 12px 30px #173e6640;font-size:13px;max-width:95vw;opacity:0;pointer-events:none;transition:opacity .2s;z-index:99}.toast.show{opacity:1}.callout{border:1px solid #e7eaf0;border-radius:12px;background:#fbfcfe;padding:15px;font-size:12px;color:#63738a;line-height:1.7}.divider{height:1px;background:var(--line);margin:24px 0}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px}.checkbox-row input{accent-color:#205787;width:17px;height:17px}.details-reset{border:0;background:none;color:var(--blue);font-weight:700;padding:0}.code-sample{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}
@media(max-width:950px){.app-shell{grid-template-columns:200px 1fr}.sidebar{padding:26px 10px}.main{padding:30px 24px 80px}.two-col{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:18px}.stat-number{font-size:27px}}
@media(max-width:700px){.app-shell{display:block}.sidebar{display:none}.topbar{height:65px;padding:0 17px}.topbar-meta{display:none}.mobile-brand{display:flex;align-items:center;gap:9px}.mobile-brand .brand-mark{width:31px;height:31px;font-size:14px;border-radius:9px}.mobile-brand strong{font-size:17px}.main{padding:22px 16px 105px}.page-title{font-size:28px}.page-head{align-items:initial;flex-direction:column;gap:14px}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:13px}.stat-number{font-size:25px}.stat-label{font-size:10px}.stat-foot{font-size:10px}.card{padding:20px 17px}.field-grid{grid-template-columns:1fr;gap:13px}.field.full{grid-column:1}.question-card{padding:22px 17px}.question-text{font-size:20px;margin:19px 0}.option-btn{padding:13px}.option-btn.chosen{padding:12px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);justify-content:space-around;z-index:15}.bottom-nav button{font-size:10px;font-weight:700;border:0;background:transparent;color:#788ba1;display:grid;justify-items:center;gap:2px;padding:4px 20px}.bottom-nav button.active{color:var(--navy)}.bottom-nav span{font-size:21px}.bank-row{gap:8px}.results-hero{padding:28px 15px}.toast{bottom:78px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Chapter library, filtering and performance indicators */
.library-panel{margin-bottom:18px}.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.library-tile{border:1px solid var(--line);background:#fafdff;border-radius:13px;padding:15px}.library-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:12px}.library-head strong{font-size:14px}.chapter-list{display:grid;gap:6px}.chapter-link{display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid transparent;background:#edf4fc;border-radius:8px;text-align:left;gap:9px;padding:9px 10px;color:#1f4d77;font-size:12px}.chapter-link:hover{border-color:#9bbadc;background:#e3effc}.chapter-link .chapter-label{font-weight:650;overflow-wrap:anywhere}.chapter-count{white-space:nowrap;font-size:11px;color:#5b748e}.filter-grid{display:grid;grid-template-columns:1.1fr 1.1fr 1fr;gap:12px;margin:14px 0}.filter-grid label{min-width:0}.filter-grid select{min-width:0}.filter-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:17px 0}.filter-summary strong{color:var(--navy)}.review-indicator{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:750;padding:4px 8px;border-radius:7px;background:#edf3f9;color:#526d86;margin-top:7px}.review-indicator.missed{background:#fff0f0;color:#ab3f49}.review-indicator.learned{background:#e7f8ee;color:#166e55}.bank-row{align-items:center}.backup-callout{margin-top:13px;padding:13px;border:1px solid #d4e2f3;background:#f3f8fe;border-radius:10px;font-size:12px;line-height:1.65;color:#41627e}
@media(max-width:700px){.filter-grid{grid-template-columns:1fr 1fr}.filter-grid label:first-child{grid-column:1/-1}.library-grid{grid-template-columns:1fr}.bank-row{flex-wrap:wrap}.bank-row .btn{margin-left:auto}}
/* v3: visible quiz cancellation, per-attempt history actions, ChatGPT export */
.quiz-top-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.history-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.history-actions .btn{padding:9px 11px;font-size:12px}
.export-card{border:1px solid #c8def5;background:linear-gradient(125deg,#f2f8ff,#ffffff);border-radius:13px;padding:17px 18px;margin:19px 0}
.export-card p{margin:7px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:700px){.history-row{align-items:flex-start;flex-direction:column}.history-actions{justify-content:flex-start;width:100%}.quiz-top{align-items:flex-start}.quiz-top-actions{flex-direction:column;align-items:flex-end}.quiz-top-actions .btn{padding:8px 10px;font-size:11px}}

.chapter-picker{border:1px solid var(--line);border-radius:12px;background:#fbfcff;padding:13px;display:grid;gap:12px}
.chapter-picker-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}
.chapter-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-height:225px;overflow:auto;padding:3px}
.chapter-option{display:flex;align-items:center;gap:9px;border:1px solid #e0e7f0;border-radius:9px;padding:10px 11px;background:white;font-size:12px;font-weight:650;cursor:pointer;min-width:0}
.chapter-option input,.history-select input{accent-color:var(--blue);width:16px;height:16px;flex-shrink:0}
.chapter-option span{flex:1;min-width:0;overflow-wrap:anywhere}.chapter-option small{color:var(--muted);font-weight:500}
.tiny-action{background:transparent;border:0;color:#1e5a93;padding:5px 6px;font-size:12px;font-weight:750}
.history-select{display:flex;align-items:center;gap:8px;font-weight:650;font-size:12px;cursor:pointer}
.history-bulkbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 18px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}
.backup-status{font-size:12px;padding:10px 12px;border-radius:9px;background:#f5f8fc;color:#435e78;border:1px solid var(--line)}
.backup-status.attention{background:#fff5e8;color:#81511d;border-color:#f1dab6}
.backup-status.ok{background:var(--greenbg);color:var(--green);border-color:#bfe5d2}
.backup-actions .btn{white-space:normal;text-align:center}
/* Result navigation and optional chapter quotas */
button.answer-chip{color:inherit;font-family:inherit;line-height:inherit;width:100%}
.answer-chip:hover{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.answer-chip:focus-visible,.review-item:focus-visible,.review-back:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.review-item{scroll-margin-top:20px;border-radius:8px}
.review-item.review-highlight{background:#fff5d9;box-shadow:0 0 0 4px #e6bd59}
.review-back{display:inline-block;margin-top:14px}
.chapter-quota-panel{margin-top:12px;display:grid;gap:10px}
.chapter-quota-panel[hidden]{display:none}
.chapter-quota-row{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:7px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.chapter-quota-row label{overflow-wrap:anywhere}.chapter-quota-row small{display:block;color:var(--muted);font-weight:500;margin-top:4px}
.chapter-quota-row input{min-width:0}.chapter-quota-error{grid-column:1/-1;color:var(--red);font-size:12px;font-weight:500}
.chapter-quota-error:empty{display:none}.chapter-quota-row input[aria-invalid="true"]{border-color:var(--red)}
.chapter-quota-total{font-size:13px;font-weight:750;margin:0}.chapter-quota-total.invalid{color:var(--red)}
@media(max-width:680px){.chapter-picker-list{grid-template-columns:1fr}.history-bulkbar{align-items:flex-start}.history-actions{flex-wrap:wrap}}
