.skeleton {
  background: linear-gradient(90deg, rgba(0,0,0,0.06) 25%, rgba(0,0,0,0.10) 37%, rgba(0,0,0,0.06) 63%);
  background-size: 400% 100%; animation: skeleton-shimmer 1.4s ease infinite; border-radius: 0.375rem;
}
@keyframes skeleton-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
:focus-visible { outline: 2px solid #C17F3E; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; } }

.card-hover { transition: transform 0.15s ease, box-shadow 0.15s ease; }
.card-hover:hover { transform: translateY(-1px); box-shadow: 0 6px 18px -8px rgba(22,48,43,0.15); }

.status-badge { font-family: 'IBM Plex Mono', monospace; font-size: 0.7rem; padding: 0.15rem 0.55rem; border-radius: 9999px; border: 1px solid; white-space: nowrap; }
.status-not_submitted { background: rgba(42,42,40,0.05); border-color: rgba(42,42,40,0.15); color: rgba(42,42,40,0.5); }
.status-draft { background: rgba(193,127,62,0.08); border-color: rgba(193,127,62,0.3); color: #C17F3E; }
.status-submitted { background: rgba(22,48,43,0.06); border-color: rgba(22,48,43,0.25); color: #16302B; }
.status-graded, .status-returned { background: rgba(47,111,79,0.1); border-color: rgba(47,111,79,0.4); color: #2F6F4F; }
.status-resubmit_requested { background: rgba(162,62,46,0.08); border-color: rgba(162,62,46,0.35); color: #A23E2E; }

/* ---- Drag and drop zone ---- */
.dropzone {
  border: 2px dashed rgba(22,48,43,0.2); border-radius: 0.75rem; padding: 2rem 1rem;
  text-align: center; transition: all 0.15s ease; cursor: pointer;
}
.dropzone.is-dragover { border-color: #C17F3E; background: rgba(193,127,62,0.06); }
.dropzone:hover { border-color: rgba(193,127,62,0.5); }

.file-chip {
  display: flex; align-items: center; gap: 0.5rem; background: #F2EDE3; border-radius: 0.5rem;
  padding: 0.5rem 0.75rem; font-size: 0.85rem;
}

.modal-backdrop { background: rgba(22,48,43,0.45); }

/* ---- Rubric ---- */
.rubric-row { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; align-items: start; }

.progress-bar-track { height: 8px; border-radius: 9999px; background: rgba(42,42,40,0.08); overflow: hidden; }
.progress-bar-fill { height: 100%; background: #C17F3E; border-radius: 9999px; transition: width 0.4s ease; }
