:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1f2937;background:#f6f7f9;line-height:1.45}
*{box-sizing:border-box}
body{margin:0}
body.viewer-open{overflow:hidden}
.site-header{position:sticky;top:0;z-index:30;background:#172033;color:#fff;padding:.7rem max(1rem,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 2px 8px #0002}
.brand{font-weight:800;font-size:1.22rem;color:#fff;text-decoration:none;letter-spacing:.01em}
.user-strip{display:flex;justify-content:flex-end;gap:.8rem;padding:.32rem max(1rem,env(safe-area-inset-right));font-size:.78rem;background:#e9edf3;color:#4b5563}
.nav-menu{position:relative}
.nav-menu summary{list-style:none;cursor:pointer;border:1px solid #ffffff55;border-radius:9px;padding:.45rem .75rem;font-weight:700;user-select:none}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu nav{position:absolute;right:0;top:calc(100% + .45rem);min-width:220px;background:#fff;border:1px solid #d7dce3;border-radius:12px;padding:.4rem;box-shadow:0 14px 35px #0003;display:grid;z-index:50}
.nav-menu nav a{color:#172033;text-decoration:none;padding:.65rem .75rem;border-radius:8px;font-size:.93rem}
.nav-menu nav a:hover,.nav-menu nav a:focus{background:#eef2f7}
.container{width:min(100% - 2rem,1120px);margin:1.25rem auto 4rem}
.site-footer{text-align:center;padding:2rem;color:#6b7280}
.panel,.card{background:#fff;border:1px solid #dfe3e8;border-radius:14px;padding:1rem;margin:1rem 0;box-shadow:0 2px 8px #00000008}
.card.deck-card{padding:1.1rem}
.muted{color:#6b7280}
.small{font-size:.88rem}
.required-mark{color:#b91c1c;font-weight:700}
.grid{display:grid;grid-template-columns:1fr;gap:1rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.stat{background:#f3f4f6dd;border-radius:10px;padding:.8rem}
.stat strong{display:block;font-size:1.25rem}
label{display:block;font-weight:650;margin:.9rem 0 .35rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=color],textarea,select{width:100%;font:inherit;padding:.72rem;border:1px solid #c7ccd3;border-radius:9px;background:#fff;color:#111827}
input[type=color]{height:47px;padding:.3rem}
input[type=file]{width:100%;padding:.6rem 0}
textarea{min-height:110px;resize:vertical}
input[readonly],textarea[readonly]{background:#f3f4f6}
.secret-text{-webkit-text-security:disc}
.btn,button{display:inline-block;border:0;border-radius:9px;padding:.72rem 1rem;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;background:#172033;color:#fff}
.btn.secondary,button.secondary{background:#e5e7eb;color:#111827}
.btn.danger,button.danger{background:#b42318}
.btn.success,button.success{background:#177245}
.actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
.deck-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:center;margin:1rem 0}
.deck-nav .next{text-align:right}
.deck-nav .count{text-align:center;color:#6b7280}
.prompt{font-size:1.2rem;font-weight:800;margin:.2rem 0 1rem}
.autosave-status{min-height:1.3em;color:#6b7280;font-size:.9rem}
.autosave-status.save-error{color:#b42318}
.flash{padding:.8rem 1rem;border-radius:9px;margin:.7rem 0}
.flash.success{background:#dcfce7;color:#14532d}
.flash.warning{background:#fef3c7;color:#713f12}
.flash.error{background:#fee2e2;color:#7f1d1d}
.error-list{background:#fff7ed;border-left:4px solid #ea580c;padding:1rem;color:#431407}
.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:#e5e7eb;font-size:.8rem}
.badge.good{background:#dcfce7;color:#14532d}
.badge.warn{background:#fef3c7;color:#713f12}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{text-align:left;padding:.7rem;border-bottom:1px solid #e5e7eb;vertical-align:top}
.table-wrap{overflow-x:auto;border:1px solid #e5e7eb;border-radius:12px}
.image-preview{display:block;max-width:100%;max-height:70vh;object-fit:contain;border-radius:10px;border:1px solid #d1d5db;margin:.7rem 0}
.student-image-preview{max-height:none;width:auto;height:auto}
.review-image{max-height:72vh;margin:.2rem auto}
.image-button{display:block;width:100%;padding:.4rem;background:#f8fafc;color:#172033;border:1px solid #d1d5db}
.image-button img{pointer-events:none}
.login-wrap{max-width:460px;margin:8vh auto}
.preline{white-space:pre-line}
.two-col{display:grid;grid-template-columns:1fr;gap:1rem}
.checkbox-list label{font-weight:500;margin:.45rem 0}
.score{font-variant-numeric:tabular-nums}
.empty{padding:2rem;text-align:center;color:#6b7280}
.hr{height:1px;background:#e5e7eb;margin:1.2rem 0}
.inline-form{display:inline}
.nowrap{white-space:nowrap}
.staff-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.credential-form{margin-top:1rem;border-top:1px solid #e5e7eb;padding-top:.5rem}
.hunt-logo{display:block;max-width:min(280px,70vw);max-height:105px;object-fit:contain;margin:0 auto 1rem}
.hunt-logo-compact{max-height:62px;max-width:190px;margin-bottom:.3rem}
.hunt-logo-preview{max-width:240px;max-height:100px;object-fit:contain;border:1px solid #d1d5db;border-radius:8px;padding:.3rem;background:#fff}
.hunt-deck-logo-wrap{text-align:center}
.photo-quality,.photo-quality-summary{margin:.7rem 0;padding:.75rem;border-radius:9px;background:#eef2f7;font-size:.9rem}
.photo-quality.good{background:#dcfce7;color:#14532d}
.photo-quality.warning,.photo-quality-summary.warning{background:#fef3c7;color:#713f12}
.object-editor{border-left:4px solid #64748b}
.image-viewer[hidden]{display:none}
.image-viewer{position:fixed;inset:0;z-index:100;background:#090b10f2;display:grid;grid-template-rows:auto 1fr;color:#fff}
.image-viewer-toolbar{display:flex;justify-content:center;gap:.55rem;padding:max(.75rem,env(safe-area-inset-top)) .75rem .75rem;background:#111827}
.image-viewer-toolbar button{background:#fff;color:#111827;min-width:52px}
.image-viewer-stage{position:relative;overflow:hidden;touch-action:none;display:flex;align-items:center;justify-content:center;cursor:grab}
.image-viewer-stage:active{cursor:grabbing}
.image-viewer-stage img{max-width:94vw;max-height:84vh;object-fit:contain;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none}
@media(min-width:720px){
.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.two-col{grid-template-columns:1fr 1fr}
.stats{grid-template-columns:repeat(4,1fr)}
.container{margin-top:2rem}
.site-header{padding-left:2rem;padding-right:2rem}
.user-strip{padding-right:2rem}
.review-grid{grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr)}
}
