.ocr-actions:empty { display:none }
.ocr-actions { margin-top:8px }
.ocr-details { color:#7c8981; font-size:12px }
.ocr-details summary { cursor:pointer; padding:4px 0; width:fit-content }
.ocr-details[open] { padding-bottom:8px }
.ocr-details .hint { margin:8px 0 }
.ocr-details .btn { margin-top:6px }
.ocr-warnings { padding:16px 16px 16px 32px; background:#fff4df; color:#754000; border-radius:8px }
#blackboard-ocr-loading { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; background:rgba(255,255,255,.72); cursor:wait }
.ocr-loading-card { display:flex; align-items:center; gap:14px; background:#fff; color:#086044; padding:24px 30px; border:1px solid #dce7e0; border-radius:14px; box-shadow:0 6px 30px #12332220; font-size:16px; font-weight:600 }
.ocr-spinner { display:block; width:28px; height:28px; border:3px solid #dbe9e1; border-top-color:#086044; border-radius:50%; animation:ocr-spin .8s linear infinite }
@keyframes ocr-spin { to { transform:rotate(360deg) } }
@media (prefers-reduced-motion:reduce) { .ocr-spinner { animation-duration:2s } }
