/* Sora LMS Pro Pack: assignments (learning area, review screens). */
.sora-asg, .sora-asg-admin, .sora-gb, .sora-qio {
	--s-brand: var(--tutor-color-primary, #3E64DE);
	--s-ink: var(--tutor-text-primary, #212327);
	--s-text: var(--tutor-text-secondary, #41454F);
	--s-muted: var(--tutor-text-subdued, #5B616F);
	--s-line: var(--tutor-border-idle, #E3E5EA);
	--s-field: #C3C5CB;
	--s-surface: var(--tutor-surface-base, #FFFFFF);
	--s-subtle: var(--tutor-surface-l1, #F6F7F9);
	--s-ok: #12804A; --s-ok-bg: #E7F6EC;
	--s-warn: #B54708; --s-warn-bg: #FEF0C7;
	--s-bad: #D92D20; --s-bad-bg: #FEE4E2;
}
.sora-asg { max-width: 860px; margin: 0 auto; padding: 32px 0 56px; display: grid; gap: 20px; color: var(--s-text); }
.sora-asg__eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--s-brand); }
.sora-asg__title { margin: 8px 0 16px; color: var(--s-ink); }
.sora-asg__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--s-line); border-radius: 12px; overflow: hidden; background: var(--s-surface); }
.sora-asg__meta > div { padding: 12px 16px; background: var(--s-surface); box-shadow: 0 0 0 .5px var(--s-line); }
.sora-asg__meta dt { font-size: 12px; color: var(--s-muted); }
.sora-asg__meta dd { margin: 2px 0 0 !important; padding: 0; font-weight: 600; color: var(--s-ink); }
.sora-asg__meta .is-late dd { color: var(--s-bad); }
.sora-asg__card { padding: 24px; border: 1px solid var(--s-line); border-radius: 12px; background: var(--s-surface); display: grid; gap: 12px; }
.sora-asg__card h2 { margin: 0; color: var(--s-ink); }
.sora-asg__content > :first-child { margin-top: 0; }
.sora-asg__content > :last-child { margin-bottom: 0; }
.sora-asg__notice { padding: 12px 16px; border-radius: 8px; font-weight: 500; }
.sora-asg__notice.is-success { background: var(--s-ok-bg); color: var(--s-ok); }
.sora-asg__notice.is-error { background: var(--s-bad-bg); color: var(--s-bad); }
.sora-asg__notice.is-info { background: var(--s-subtle); color: var(--s-text); border: 1px solid var(--s-line); }
.sora-asg__notice a { color: var(--s-brand); }
.sora-asg__result-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sora-asg__score { margin: 0; font-size: 15px; }
.sora-asg__score strong { font-size: 28px; color: var(--s-ink); }
.sora-asg__result.is-pass { border-color: #A6E3BD; }
.sora-asg__result.is-fail { border-color: #F9C2BD; }
.sora-asg__feedback { padding: 14px 16px; border-radius: 8px; background: var(--s-subtle); }
.sora-asg__feedback h3 { margin: 0 0 6px; color: var(--s-ink); }
.sora-asg__feedback p:last-child { margin-bottom: 0; }
.sora-asg__mine summary { cursor: pointer; color: var(--s-brand); font-weight: 500; }
.sora-asg__mine[open] summary { margin-bottom: 12px; }
.sora-asg__answer { padding: 12px 16px; border-left: 3px solid var(--s-line); margin-bottom: 12px; }
.sora-asg__form { display: grid; gap: 8px; }
.sora-asg__label { font-size: 14px; font-weight: 500; color: var(--s-ink); margin-top: 6px; }
.sora-asg__textarea { width: 100%; box-sizing: border-box; min-height: 160px; padding: 10px 12px; border: 1px solid var(--s-field); border-radius: 6px; font: 15px/1.6 Inter, sans-serif; color: var(--s-ink); background: var(--s-surface); resize: vertical; }
.sora-asg__textarea:focus { outline: none; border-color: var(--s-brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--s-brand) 20%, transparent); }
.sora-asg__drop { position: relative; display: grid; justify-items: center; gap: 4px; padding: 24px 16px; border: 1.5px dashed var(--s-field); border-radius: 10px; text-align: center; color: var(--s-brand); cursor: pointer; background: var(--s-subtle); }
.sora-asg__drop:hover, .sora-asg__drop:focus-within { border-color: var(--s-brand); }
.sora-asg__drop-t { font-weight: 500; }
.sora-asg__drop-h { font-size: 13px; color: var(--s-muted); }
.sora-asg__drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.sora-asg__picked { margin: 0; padding: 0 0 0 18px; font-size: 14px; color: var(--s-text); }
.sora-asg__err { margin: 0; color: var(--s-bad); font-weight: 500; }
.sora-asg__err[hidden] { display: none; }
.sora-asg__actions { display: flex; justify-content: flex-end; margin-top: 8px; }
.sora-asg__start { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px 24px; border: 1px solid var(--s-line); border-radius: 12px; background: var(--s-surface); }
.sora-asg__start p { margin: 0; }
.sora-asg__btn:disabled { opacity: .6; }

.sora-chip { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.sora-chip--pending { background: var(--s-warn-bg, #FEF0C7); color: var(--s-warn, #B54708); }
.sora-chip--pass { background: var(--s-ok-bg, #E7F6EC); color: var(--s-ok, #12804A); }
.sora-chip--fail { background: var(--s-bad-bg, #FEE4E2); color: var(--s-bad, #D92D20); }

/* Files (also used in wp-admin where front.css is not loaded) */
.sora-asg-admin .sora-files { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.sora-asg-admin .sora-file { display: flex; align-items: center; gap: 14px; padding: 10px 12px; border: 1px solid var(--s-line); border-radius: 10px; background: var(--s-surface); margin: 0; }
.sora-asg-admin .sora-file__ext { flex: none; min-width: 40px; height: 40px; padding: 0 6px; border-radius: 8px; display: grid; place-items: center; font-size: 11px; font-weight: 600; color: var(--s-brand); background: #EBF0FD; }
.sora-asg-admin .sora-file__meta { flex: 1; min-width: 0; display: grid; }
.sora-asg-admin .sora-file__name { color: var(--s-ink); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sora-asg-admin .sora-file__size { font-size: 13px; color: var(--s-muted); }
.sora-asg-admin .sora-file__dl { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; color: var(--s-brand); text-decoration: none; font-weight: 500; }

/* Review screens */
.sora-asg-back { color: var(--s-brand); text-decoration: none; font-weight: 500; display: inline-block; margin-bottom: 6px; }
.sora-asg-alert { justify-self: start; padding: 8px 14px; border-radius: 6px; background: var(--s-bad-bg); color: var(--s-bad); font-weight: 500; }
.sora-asg-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.sora-asg-filters select, .sora-asg-filters input[type=search], .sora-asg-field input, .sora-asg-field textarea { height: 40px; min-width: 180px; padding: 0 12px; border: 1px solid var(--s-field); border-radius: 6px; font: 14px Inter, sans-serif; color: var(--s-ink); background: var(--s-surface); box-sizing: border-box; max-width: 100%; }
.sora-asg-filters input[type=search] { min-width: 240px; flex: 1; }
.sora-asg-filters select:focus, .sora-asg-filters input:focus, .sora-asg-field input:focus, .sora-asg-field textarea:focus { outline: none; border-color: var(--s-brand); box-shadow: 0 0 0 3px rgba(62, 100, 222, .2); }
.sora-asg-tablewrap { overflow-x: auto; border: 1px solid var(--s-line); border-radius: 10px; background: var(--s-surface); }
.sora-asg-table td small { display: block; color: var(--s-muted); font-size: 12px; margin-top: 2px; }
.sora-asg-table .sora-btn { height: 34px; padding: 0 12px; }
.sora-asg-who { display: flex; align-items: center; gap: 10px; }
.sora-asg-who img { border-radius: 50%; flex: none; }
.sora-asg-who > span { display: grid; color: var(--s-ink); font-weight: 500; }
.sora-muted { color: var(--s-muted); }
.sora-asg-pages { display: flex; gap: 6px; flex-wrap: wrap; }
.sora-asg-pages .sora-btn { width: 40px; padding: 0; }
.sora-asg-grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.sora-asg-panel { cursor: default; gap: 12px; padding: 20px; }
.sora-asg-panel:hover { border-color: var(--s-line); }
.sora-asg-panel h2 { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: var(--s-ink); }
.sora-asg-learner { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--s-line); }
.sora-asg-learner img { border-radius: 50%; }
.sora-asg-learner > div { display: grid; }
.sora-asg-learner strong { color: var(--s-ink); }
.sora-asg-learner span { color: var(--s-muted); font-size: 13px; }
.sora-asg-late { color: var(--s-bad); font-style: normal; font-weight: 600; }
.sora-asg-answer { font-size: 15px; line-height: 1.6; color: var(--s-text); }
.sora-asg-answer > :first-child { margin-top: 0; }
.sora-asg-field { display: grid; gap: 6px; }
.sora-asg-field > span:first-child { font-weight: 500; color: var(--s-ink); }
.sora-asg-field small { color: var(--s-muted); }
.sora-asg-field textarea { height: auto; min-height: 140px; padding: 10px 12px; resize: vertical; width: 100%; }
.sora-asg-markrow { display: flex; align-items: center; gap: 8px; color: var(--s-muted); }
.sora-asg-markrow input { min-width: 0; width: 110px; }
.sora-asg-grade__side .sora-btn { width: 100%; }
@media (max-width: 900px) {
	.sora-asg-grade { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.sora-asg { padding: 20px 0 40px; }
	.sora-asg__card { padding: 16px; }
	.sora-asg-table thead { display: none; }
	.sora-asg-table, .sora-asg-table tbody, .sora-asg-table tr, .sora-asg-table td { display: block; width: 100%; box-sizing: border-box; }
	.sora-asg-table tr { border-bottom: 1px solid var(--s-line); padding: 8px 0; }
	.sora-asg-table td { border: 0; padding: 6px 14px; }
	.sora-asg-table td[data-label]::before { content: attr(data-label); display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--s-muted); }
	.sora-asg-filters select, .sora-asg-filters input[type=search] { min-width: 0; width: 100%; }
	.sora-admin.sora-asg-admin { padding-right: 0; }
}
/* Dashboard: let Tutor's dashboard frame handle spacing */
.sora-asg-dash { padding: 0; max-width: none; }
.sora-asg-dash .sora-btn { box-sizing: border-box; }
.sora-asg-dash h1 { font-size: 24px !important; line-height: 1.3 !important; letter-spacing: 0 !important; font-family: Inter, sans-serif !important; margin: 0 !important; }
.sora-asg-dash h2 { font-family: Inter, sans-serif !important; letter-spacing: 0 !important; }
.sora-asg-dash .sora-admin__head p { margin: 4px 0 0; }
.sora-asg-dash .sora-table th { font-size: 12px; font-weight: 500; color: var(--s-muted); text-transform: uppercase; letter-spacing: .05em; }
.sora-asg-dash .sora-table td, .sora-asg-dash .sora-table th { font-size: 14px; vertical-align: middle; }
.sora-asg-dash .sora-table td small { font-size: 12px; }
.sora-asg-dash .sora-btn { font-size: 14px; line-height: 1; }
.sora-asg-dash .sora-asg-filters button { background: #fff; }
.sora-asg-table td:nth-child(2) { min-width: 180px; }
.sora-asg-table td:nth-child(3) { white-space: nowrap; }
.sora-asg-table td:nth-child(4) { white-space: nowrap; }

[class*="sora-"][hidden], .sora-admin [hidden] { display: none !important; }
