/* Additions on top of the original prototype stylesheet (prototype.css). */
.betaBanner{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;padding:8px 16px;background:#fff7e0;color:#5c4400;font-size:13px;border-bottom:1px solid #f0dfa8;text-align:center}
.linkButton{background:none;border:0;padding:0;color:var(--school-primary);font-weight:750;text-decoration:underline;font-size:13px}
.feedbackFab{position:fixed;right:18px;bottom:18px;z-index:20;background:var(--school-primary,#17365d);color:#fff;border:0;border-radius:999px;padding:12px 18px;font-weight:750;box-shadow:0 6px 18px #17203340}
.portal .feedbackFab{background:var(--school-primary)}

.progress span{transition:width .25s ease}
.answers button.correct{border-color:#16845b;background:#e8f6ef}
.answers button.wrong{border-color:#c8102e;background:#fdecee}
.answers button:disabled{opacity:1;cursor:default}
.explain{margin:0 0 16px;padding:12px 14px;border-radius:11px;font-size:14px;background:#eaf2fb;color:#172033}
.explain.good{background:#e8f6ef}
.explain.bad{background:#fdecee}
.resultScore{font-size:44px;font-weight:800;color:var(--school-primary);margin:8px 0}
.reviewList{display:grid;gap:8px;margin:16px 0 22px}
.reviewList li{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.reviewList b{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#fff}
.reviewList b.ok{background:#16845b}
.reviewList b.miss{background:#c8102e}
.emptyNote{color:#647087;padding:22px;text-align:center;grid-column:1/-1}
.toast{color:#126342;background:#e8f6ef;border-radius:9px;padding:10px 12px;font-size:13px;margin-top:10px}

.book .cover{height:170px}
.cover.hasImg{background:#eef2f7;justify-content:center;align-items:center;padding:12px}
.cover.hasImg img{height:100%;width:auto;max-width:100%;object-fit:contain;border-radius:4px;box-shadow:0 4px 12px #17203333}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge.plain{background:#f1f3f6;color:#4b5568}
.book .summary{color:#3d4759;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.panel .linkButton{margin-left:6px}
.gradePicker{border:0;padding:0;margin:14px 0 8px;display:flex;flex-wrap:wrap;gap:8px}
.gradePicker legend{font-size:13px;font-weight:750;color:#172033;margin-bottom:8px;padding:0}
.gradePicker input{position:absolute;opacity:0;pointer-events:none}
.gradePicker span{display:inline-block;padding:9px 16px;border:1px solid #dfe5ed;border-radius:999px;font-weight:750;font-size:14px;color:#172033;cursor:pointer;background:#fff}
.gradePicker input:checked+span{background:var(--school-primary);border-color:var(--school-primary);color:#fff}
.gradePicker input:checked+span::before{content:"✓ "}
.gradePicker input:focus-visible+span{outline:2px solid var(--school-accent);outline-offset:2px}
.sectionTitle:has(#levelBand){flex-direction:column;align-items:stretch}
.filters:has(#levelBand){display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr}
@media (max-width:900px){.filters:has(#levelBand){grid-template-columns:1fr 1fr 1fr}.filters:has(#levelBand) label:first-child{grid-column:1/-1}}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.book .topics{margin:0;color:var(--school-primary);font-size:12px;font-weight:650}
details.subjects{margin-top:4px;font-size:12px;color:#4b5568}
details.subjects summary{cursor:pointer;color:var(--school-primary);font-weight:650;width:max-content}
details.subjects ul{margin:4px 0 2px;padding-left:18px;columns:2;column-gap:18px}
details.subjects p{margin:4px 0 2px;max-width:56ch}
@media (max-width:620px){details.subjects ul{columns:1}}
.filters:has(#levelBand) input,.filters:has(#levelBand) select{min-width:0;width:100%;box-sizing:border-box}
@media (max-width:620px){.filters:has(#levelBand){grid-template-columns:1fr 1fr}.filters:has(#levelBand) label:first-child{grid-column:1/-1}}
.badge.level{background:var(--school-primary);color:#fff}
.choiceControls{display:flex;flex-wrap:wrap;gap:6px 36px;align-items:flex-start}
.levelRange{border:0;padding:0;margin:14px 0 8px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.levelRange legend{font-size:13px;font-weight:750;color:#172033;margin-bottom:8px;padding:0}
.levelRange label{display:flex;align-items:center;gap:6px;font-size:13px;color:#647087}
.levelRange input{width:84px;font:inherit;font-size:14px;color:#172033;background:#fff;border:1px solid #dfe5ed;border-radius:9px;padding:8px 10px}
.addForm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.addForm label{display:grid;gap:5px;font-size:12px;color:#647087}
.addForm .wide{grid-column:1/-1}
.addForm input,.addForm select,.addForm textarea{font:inherit;font-size:14px;color:#172033;background:#fff;border:1px solid #dfe5ed;border-radius:9px;padding:9px 11px;width:100%;box-sizing:border-box}
.addForm p{margin:0}
.panel a{color:var(--school-primary);font-weight:650}
@media (max-width:620px){.addForm{grid-template-columns:1fr 1fr}}
.bookTable{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}
.bookTable th{text-align:left;color:#647087;font-weight:650;padding:8px;border-bottom:1px solid #dfe5ed}
.bookTable td{padding:8px;border-bottom:1px solid #eef1f5;vertical-align:middle}
.bookTable td label{cursor:pointer}
.bookTable input{width:18px;height:18px;accent-color:var(--school-primary)}
.bookTable tr.off td:not(:first-child):not(:last-child){opacity:.55}

.feedbackDialog{border:0;border-radius:16px;padding:0;width:min(520px,calc(100vw - 32px));color:#172033;box-shadow:0 20px 50px #17203355}
.feedbackDialog::backdrop{background:#17203380}
.feedbackDialog form,.feedbackDialog>div{display:grid;gap:14px;padding:22px}
.feedbackDialog h2{margin:0;font-size:22px}
.feedbackDialog label{display:grid;gap:5px;font-size:13px;color:#647087}
.feedbackDialog textarea,.feedbackDialog input:not([type=radio]){font:inherit;color:#172033;background:#fff;border:1px solid #dfe5ed;border-radius:9px;padding:10px 12px;width:100%}
.rating{border:0;padding:0;margin:0}
.rating legend{font-size:13px;color:#647087;margin-bottom:6px}
.ratingRow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ratingRow label{display:block}
.ratingRow input{position:absolute;opacity:0;pointer-events:none}
.ratingRow span{display:grid;place-items:center;height:42px;border:1px solid #dfe5ed;border-radius:10px;font-weight:750;color:#172033;cursor:pointer}
.ratingRow input:checked+span{background:var(--school-primary,#17365d);border-color:var(--school-primary,#17365d);color:#fff}
.ratingRow input:focus-visible+span{outline:2px solid var(--school-accent,#c8102e);outline-offset:2px}
.ratingEnds{display:flex;justify-content:space-between;color:#647087;margin-top:4px}
.formError{margin:0;color:#a40d26;background:#fdecee;border-radius:9px;padding:9px 12px;font-size:13px}

@media (max-width:480px){.feedbackFab{right:12px;bottom:12px;padding:10px 14px}.quizActions{flex-wrap:wrap}}
