/* Visual foundations copied from AnswerKeyHub static/app.css.
   confidence-widget and .check intentionally retain native browser rendering,
   as in portal_exam_take.html (no dedicated rules in the source stylesheet). */
:root { --ink:#182229; --muted:#657078; --paper:#f6f3ec; --card:#fffdfa; --line:#dcd7cc; --accent:#176b5b; --accent-dark:#0f4e43; --warn:#965f17; }
* { box-sizing:border-box; }
html,body { min-height:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, Segoe UI, Arial, sans-serif; line-height:1.55; min-height:100vh; display:flex; flex-direction:column; }
.site-header { display:flex; justify-content:space-between; align-items:center; padding:1rem max(1rem,calc((100% - 1000px)/2)); background:#102d2a; color:white; gap:1rem; }
.site-header a { color:white; text-decoration:none; }
.site-header .brand { font-weight:800; letter-spacing:.02em; }
.site-header nav { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.site-footer { margin-top:auto; padding:.9rem 1rem; text-align:center; font-size:.85rem; color:#6f6a61; background:#e9e4d9; border-top:1px solid #ddd5c8; }
.container { width:min(1000px,calc(100% - 2rem)); margin:2rem auto; }
h1 { font-family:Georgia,serif; font-size:clamp(2rem,5vw,3.25rem); line-height:1.08; margin:.2rem 0 1.25rem; }
h2 { margin-top:2rem; font-size:1.35rem; }
h3 { margin-top:0; }
.eyebrow { color:var(--accent); font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin:0; }
.button { display:inline-block; border:0; border-radius:.4rem; background:var(--accent); color:white; padding:.8rem 1.15rem; font-weight:750; text-decoration:none; cursor:pointer; min-height:44px; font-size:1rem; }
.button:hover { background:var(--accent-dark); }
.button.secondary { background:#dce9e6; color:var(--accent-dark); }
.button:disabled { opacity:.5; cursor:default; }
.small { font-size:.85rem; padding:.55rem .8rem; }
a { color:var(--accent-dark); text-underline-offset:.2em; }
:focus-visible { outline:3px solid #ba720d; outline-offset:3px; }
.muted { color:var(--muted); }
.panel,.question-card { background:var(--card); border:1px solid var(--line); border-radius:.7rem; }
.panel { padding:1.5rem; }
.question-card { padding:1.25rem; margin:1.25rem 0; }
.question-card>header { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:.7rem; font-weight:800; }
.question-card header small { color:var(--muted); }
.question-text { font-size:1.08rem; margin:1rem 0; }
.study-title { font-size:clamp(1.7rem,4vw,2.4rem); }
.section-label { color:var(--muted); font-size:.9rem; }
.back { display:inline-block; margin-bottom:1.5rem; }
.edit-form { display:grid; gap:1rem; }
.edit-form>label,.filter-grid>label { display:flex; flex-direction:column; gap:.35rem; font-weight:700; }
input:not([type]),input[type=text],input[type=email],input[type=password],input[type=number],select,textarea { width:100%; border:1px solid #aaa; border-radius:.35rem; padding:.7rem; font:inherit; background:white; color:var(--ink); }
textarea { resize:vertical; }
.edit-form>.checkbox,.checkbox { display:flex; flex-direction:row; align-items:center; gap:.65rem; padding:1rem 0; }
.login-panel { max-width:440px; margin:2rem auto; }
.book-grid,.mode-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin:1.5rem 0; }
.book-tile { color:var(--ink); text-decoration:none; }
.book-tile:hover { border-color:var(--accent); }
.text-link { color:var(--accent-dark); font-weight:650; }
.mode { display:flex; flex-direction:column; gap:.5rem; }
.mode .button { margin-top:1rem; }
.count { font-size:2.3rem; line-height:1.2; }
.row,.list-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.list-row { border-bottom:1px solid var(--line); padding:1rem 0; }
.list-row:last-child { border:0; }
.button-row { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; margin:1rem 0; }
.admin-section,.admin-card,.mastered-card,.preview-card { margin:1rem 0; }
.admin-section h2,.admin-card h2,.ongoing h2,.preview-card h2,.errors h2 { margin-top:0; }
.filter-grid { display:grid; grid-template-columns:2fr 1fr auto; align-items:end; gap:1rem; margin:2rem 0; }
.section-divider { font-size:1rem; border-bottom:1px solid var(--line); padding-bottom:.5rem; }
.flash { padding:1rem; border-radius:.4rem; background:#dce9e6; margin-bottom:1rem; }
.flash.error,.errors { background:#fff2e6; border-color:#d99a4e; }
.danger { background:var(--warn); }.danger-link { color:#91452b; }
.answer { margin-top:2rem; border-top:3px solid var(--accent); padding-top:.3rem; }
.outcomes { display:grid; gap:.75rem; margin-top:1rem; }
.outcome { text-align:left; padding:1rem; }
.outcome.missed { background:#8a3d30; }.outcome.review_again { background:#e5eade; color:#344a27; }
.self-title { font-size:1.1rem; }
.saved { color:var(--accent-dark); font-size:.85rem; }.reveal,.confidence-save { margin-top:1rem; }
.results { margin:2rem 0; }.results>div { display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--line); }.results dd { font-weight:750; }
.success-rate strong { font-size:1.5rem; color:var(--accent); }
.markdown { overflow-wrap:anywhere; }.markdown p:first-child { margin-top:.5rem; }.markdown h1 { font:700 1.5rem/1.4 Segoe UI,sans-serif; }.markdown h2 { font-size:1.25rem; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; }
details { margin-top:1rem; }summary { cursor:pointer; padding:.5rem 0; font-weight:650; }
[hidden] { display:none !important; }
@media(max-width:650px) { .site-header { align-items:flex-start; }.site-header nav { justify-content:flex-end; gap:.5rem; }.user-name { display:none; }.container { margin:1.5rem auto; }.panel { padding:1.1rem; }.filter-grid { grid-template-columns:1fr; }.mode-grid { grid-template-columns:1fr; }.row { align-items:flex-start; } }
