.cover-page{max-width:1240px;margin:auto;padding:36px 24px 64px}.cover-page h1{font-size:clamp(26px,4vw,40px);margin:20px 0 10px}.cover-help{color:#647075}.cover-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:36px;margin-top:28px;align-items:start}.cover-controls{background:white;border:1px solid #dbe5e3;border-radius:18px;padding:26px}.cover-controls label,.cover-controls legend{font-weight:700}.cover-controls input[type=text],.cover-controls input[type=number]{display:block;width:100%;box-sizing:border-box;border:1px solid #bccbc7;border-radius:9px;padding:12px;margin-top:8px;font:inherit}.cover-controls small{display:block;color:#647075;margin-top:10px}.cover-controls fieldset{border:0;padding:0;margin:24px 0}.cover-controls button,.cover-library-item button{background:#176858;color:white;border:0;border-radius:9px;padding:12px 18px;cursor:pointer;font:inherit;font-weight:700}.cover-cancel{margin-left:18px}.cover-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;max-height:390px;overflow:auto}.cover-choice{border:2px solid #e0e8e6;border-radius:10px;padding:7px;cursor:pointer;overflow:hidden;font-size:12px}.cover-choice:has(input:checked){border-color:#176858;background:#edf7f3}.cover-choice img{width:100%;height:90px;object-fit:contain;display:block}.cover-choice span{overflow-wrap:anywhere}.cover-sheet{position:relative;box-sizing:border-box;aspect-ratio:210/297;width:100%;padding:0;background:#fff;color:#172d28;text-align:center;box-shadow:0 8px 40px #123b2520;container-type:inline-size;overflow:hidden;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.cover-caption{position:absolute;z-index:1;top:6%;left:8%;width:84%;height:25%;box-sizing:border-box;padding:3% 4%;background:rgba(255,255,255,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2cqw;color:#172d28;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.cover-author{width:100%;font-size:2.8cqw;line-height:1.3;margin:0;overflow-wrap:anywhere;white-space:pre-wrap;flex-shrink:0}
.cover-author.cover-author-long{font-size:1.7cqw}
.cover-sheet .cover-title{width:100%;font-size:4.4cqw;line-height:1.2;margin:0;font-weight:700;overflow-wrap:anywhere;flex-shrink:0}
.cover-sheet .cover-title-medium{font-size:3.4cqw}
.cover-sheet .cover-title-long{font-size:2.7cqw}
.cover-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#eeeaf5}
.cover-art img{position:absolute;inset:0;max-width:none;max-height:none;width:100%;height:100%;object-fit:cover;object-position:center}
.cover-art img[hidden]{display:none}.cover-placeholder{color:#69657c;padding:20px;margin-top:60%}
.saved-cover{max-width:520px;margin:24px auto 40px}.cover-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:30px}.cover-library-item{background:#fff;border:1px solid #dbe5e3;padding:20px;border-radius:14px}.cover-library-item>img{width:100%;height:190px;object-fit:contain}.cover-library-item h2{font-size:18px}.cover-library-item label{display:block;margin:14px 0}.cover-library-item input[type=number]{max-width:100px}.errorlist{color:#a42626}.cover-author-value{font-weight:600}.cover-preview{position:sticky;top:24px}
@media(max-width:760px){.cover-layout{grid-template-columns:1fr}.cover-preview{position:static}.cover-page{padding:24px 16px}.cover-library-grid{grid-template-columns:1fr}.cover-controls{padding:20px}.cover-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
@page{size:A4;margin:16mm}
.topbar,.admin-global-header,.textbook-actions,.textbook-editor,.messages,#print-status,.award-notification,.award-modal-backdrop,dialog::backdrop{display:none!important}
html,body{margin:0!important;padding:0!important;background:white!important}.textbook-page{max-width:none!important;width:auto!important;margin:0!important;padding:0!important}@page textbook-cover{size:A4;margin:0}
.saved-cover{page:textbook-cover;width:210mm;height:297mm;max-width:none;margin:0;break-after:page;page-break-after:always}
.saved-cover .cover-sheet{width:210mm;height:297mm;aspect-ratio:auto;padding:0;box-shadow:none;overflow:hidden}
.saved-cover .cover-caption{gap:4.2mm}
.saved-cover .cover-author{font-size:16.67pt;line-height:1.3;margin:0}
.saved-cover .cover-author-long{font-size:10.12pt}
.saved-cover .cover-title{font-size:26.19pt;line-height:1.2;margin:0}
.saved-cover .cover-title-medium{font-size:20.24pt}
.saved-cover .cover-title-long{font-size:16.07pt}
.has-cover .textbook-header{display:none}.textbook-project,.textbook-chapters>article{break-inside:auto}.textbook-chapters{display:block}.textbook-chapters>article{margin-bottom:20px}.course-note-card{break-inside:auto}.textbook-chapters a{color:inherit;text-decoration:none}
}

/* Student editor uses the same design tokens as the course and project forms. */
@media screen {
 .student-cover-editor{color:var(--ink);padding-top:40px}
 .student-cover-editor .page-intro{margin-top:28px}
 .student-cover-editor .page-intro h1{font-family:inherit;font-size:clamp(36px,5vw,56px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:12px 0 18px}
 .student-cover-editor .cover-help,.student-cover-editor .cover-controls small{color:var(--muted);line-height:1.6}
 .student-cover-editor .cover-controls{border:1px solid rgba(101,78,157,.14);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:var(--shadow);padding:30px;min-width:0}
 .student-cover-editor .cover-controls a{color:#6f42d7}
 .student-cover-editor .cover-controls input[type=text]{border:1px solid #dcd6e9;border-radius:15px;background:#fbfaff;color:var(--ink);padding:14px 16px}
 .student-cover-editor input:focus-visible,.student-cover-editor a:focus-visible,.student-cover-editor button:focus-visible{outline:3px solid rgba(138,92,246,.35);outline-offset:3px}
 .student-cover-editor .cover-choice{border-color:#e2daef;border-radius:15px;background:#fbfaff;padding:10px;transition:border-color .15s,background .15s}
 .student-cover-editor .cover-choice:has(input:checked){border-color:var(--violet);background:#f0e9ff}
 .student-cover-editor .cover-choice:hover{border-color:var(--violet)}
 .student-cover-editor .cover-choice input{accent-color:var(--violet)}
 .student-cover-editor input[type=file]{display:block;width:100%;max-width:100%;margin-top:12px;color:var(--muted);font:inherit;font-size:13px}
 .student-cover-editor input[type=file]::file-selector-button{font:inherit;font-weight:700;border:1px solid #dcd6e9;border-radius:999px;padding:11px 15px;margin:0 10px 8px 0;background:#f0e9ff;color:#6f42d7;cursor:pointer}
 .student-cover-editor .cover-controls button{border:0;border-radius:999px;background:var(--button-gradient);box-shadow:0 10px 24px rgba(224,38,132,.2);padding:14px 22px;color:white;font-weight:700}
 .student-cover-editor .cover-controls button:hover{filter:brightness(1.08)}
 .student-cover-editor .cover-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:20px}
 .student-cover-editor .cover-cancel{margin:0}
 .student-cover-editor .cover-preview>.cover-help{font-size:13px;font-weight:600}
 .student-cover-editor .errorlist{color:#98214f}
}
@media screen and (max-width:760px){.student-cover-editor .cover-controls{padding:22px}.student-cover-editor .cover-layout{gap:24px}}

@media screen {
 .student-cover-editor .cover-prompt{margin:24px 0;padding:22px;background:#f3eefb;border:1px solid #e2daef;border-radius:18px}
 .student-cover-editor .cover-prompt h2{font-weight:700;font-family:inherit;font-size:21px;line-height:1.3;margin:0 0 12px;letter-spacing:-.025em}
 .student-cover-editor .cover-prompt p{font-size:14px;line-height:1.65;color:var(--muted)}
 .student-cover-editor .cover-prompt button{max-width:100%;white-space:normal;line-height:1.4}
 .student-cover-editor .cover-prompt summary{color:#6f42d7;cursor:pointer;font-size:14px;font-weight:700;margin-top:16px}
 .student-cover-editor .cover-prompt-label{display:block;font-size:13px;margin:16px 0 8px}
 .student-cover-editor #cover-prompt-text{box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:14px;border:1px solid #dcd6e9;border-radius:12px;background:#fff;color:var(--ink);font-family:inherit;font-size:13px;line-height:1.6;resize:vertical}
 .student-cover-editor #cover-copy-status:empty{display:none}
}
@media print{.cover-prompt{display:none!important}}
