/* ALFA Student Pass 3.8 — red light theme, violet/black dark theme. */
.asp-root [hidden] { display:none !important; }
.asp-batch-step { align-items:flex-start; }
.asp-batch-step > div,.asp-batch-container { min-width:0;width:100%; }
.asp-batch-heading { display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:20px; }
.asp-batch-heading h2 { margin:0 0 6px; }
.asp-batch-heading p { margin:0;font-size:14px;opacity:.75; }
.asp-batch-heading > span { padding:7px 12px;border:1px solid #efb9bf;border-radius:20px;font-size:12px;font-weight:800;white-space:nowrap; }
.asp-batch-group { display:grid;gap:12px; }
.asp-batch-item { overflow:hidden;border:1px solid #e3b6bd;border-radius:17px;background:#fff;color:#302229; }
.asp-batch-item[open] { border-color:#cf2441;background:#fff; }
.asp-batch-item-summary { display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;padding:16px 18px;list-style-position:inside; }
.asp-batch-item-summary strong { font-size:15px; }
.asp-batch-item-summary span { min-width:0;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;opacity:.78; }
.asp-batch-item-body { padding:4px 18px 18px;border-top:1px solid rgba(188,29,49,.15); }
.asp-batch-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding-top:17px; }
.asp-batch-fields > label { min-width:0;display:grid;align-content:start;gap:8px;font-size:13px;font-weight:700; }
.asp-batch-fields .asp-batch-wide { grid-column:1/-1; }
.asp-batch-fields input:not([type=checkbox]),.asp-batch-fields select { width:100%;min-height:44px;font:inherit;border:1px solid #dcc5ca;border-radius:11px;padding:9px 11px;color:#30262b;background:#fff; }
.asp-batch-fields input:focus-visible,.asp-batch-fields select:focus-visible { outline:2px solid #cc1636;outline-offset:2px; }
.asp-batch-fields input[type=file] { font-size:13px;max-width:100%; }
.asp-batch-fields label small { font-size:12px;opacity:.7;font-weight:400; }
.asp-batch-fields label.asp-referral-consent { display:flex;flex-direction:row;align-items:center;gap:10px;line-height:1.5; }
.asp-batch-fields label.asp-referral-consent input { flex:0 0 auto; }
.asp-batch-fields > label.asp-batch-check-option {
  display:flex;flex-direction:row;align-items:center;justify-content:flex-start;
  gap:12px;margin:0;padding:12px 14px;min-height:48px;box-sizing:border-box;
  border:1px solid #e9c8cf;border-radius:12px;background:#fff;
  line-height:1.45;cursor:pointer;
}
.asp-batch-fields > label.asp-batch-check-option input[type="checkbox"] {
  appearance:auto!important;-webkit-appearance:checkbox!important;
  display:inline-block!important;position:static!important;float:none!important;
  flex:0 0 18px!important;width:18px!important;height:18px!important;
  min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;
  margin:0!important;padding:0!important;transform:none!important;
  border-radius:3px!important;accent-color:#c51e3a;vertical-align:middle;
}
.asp-batch-fields > label.asp-batch-check-option span {min-width:0;flex:1;}
.asp-batch-fields > label.asp-batch-check-option:focus-within {outline:2px solid #c51e3a;outline-offset:2px;}
.asp-batch-fields > label.asp-batch-elsewhere-school {padding:4px 0 4px 14px;border-left:3px solid #c51e3a;}
.asp-batch-fields > label.asp-batch-elsewhere-school span {font-size:12px;font-weight:500;color:#6e5b64;}
.asp-batch-add { margin-top:16px;width:100%;border:1.5px dashed #cb2040;border-radius:14px;padding:13px 16px;background:#fff4f5;color:#322025;font:inherit;font-weight:800;cursor:pointer; }
.asp-batch-add:hover { background:#ffe8eb; }
.asp-batch-add > span { font-size:20px;vertical-align:middle;margin-right:5px; }
.asp-batch-remove { margin-top:18px;border:0;background:transparent;padding:4px 0;color:#ae2442;text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;font-weight:700; }
.asp-batch-limit { display:block;margin-top:10px;opacity:.75; }
.asp-batch-referral-note { margin:0 0 12px;padding:12px 14px;border-radius:12px;background:#fff0f2;font-size:13px; }
.asp-referral-gift-text { display:block;margin-top:6px; }
.asp-batch-social-warning { margin:8px 0 0;padding:12px 14px;border:1px solid rgba(188,29,49,.35);border-radius:12px;background:rgba(188,29,49,.08);line-height:1.5; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-social-warning { border-color:rgba(190,140,255,.5);background:rgba(190,140,255,.1);color:#f7f2ff; }
.asp-batch-rating-note { margin:0 0 14px;padding:12px 14px;border-radius:12px;background:rgba(188,29,49,.08);line-height:1.5; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-rating-note { background:rgba(190,140,255,.1);color:#f7f2ff; }
.asp-batch-review { width:100%;margin:14px 0;padding:10px 13px;border:1px solid rgba(188,29,49,.28);border-radius:12px;min-width:0; }
.asp-batch-review > summary { cursor:pointer;font-weight:800;padding:4px; }
.asp-batch-review > ol { padding-left:24px;margin:12px 0 0;display:grid;gap:12px; }
.asp-batch-review li { min-width:0;padding:12px 8px 12px 4px;border-top:1px solid rgba(188,29,49,.15); }
.asp-batch-review li p { margin:5px 0;overflow-wrap:anywhere; }
.asp-batch-review .asp-batch-url { display:block;overflow-wrap:anywhere;opacity:.7; }
.asp-batch-proof { display:inline-flex;gap:10px;align-items:center;margin-top:10px; }
.asp-batch-proof img { width:74px;height:64px;object-fit:contain;border-radius:6px; }
.asp-batch-warning { color:#a65200; }
.asp-referral-group { flex-wrap:wrap; }
.asp-referral-group .asp-batch-review { flex-basis:100%; }
.asp-referral-group .asp-batch-review li form { margin-top:9px; }
.asp-file-feedback { grid-column:1/-1;display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:4px 0 10px;padding:10px 12px;border:1px solid #e3dce0;border-radius:10px;font-weight:700;font-size:13px;overflow-wrap:anywhere; }
.asp-file-feedback.is-uploading { background:#fff4e9;border-color:#eac48e;color:#9b4f03; }
.asp-file-feedback.is-success { background:#eefbf2;border-color:#a5ddba;color:#11663c; }
.asp-file-feedback.is-error { background:#fff0f0;border-color:#e9afb5;color:#b0293d; }
.asp-file-feedback progress { width:100%;height:9px;accent-color:#c21c37; }
.asp-file-feedback .asp-file-retry { border:1px solid currentColor;border-radius:8px;padding:6px 10px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:700; }
.asp-batch-submit-warning { border-left:4px solid #d71a39;border-radius:7px;padding:10px 13px;background:#fff0f2;color:#a01931;font-size:14px;font-weight:700; }
.asp-submit-request:disabled { opacity:.65;cursor:wait; }
/* Explicitly scope purple to the dashboard's dark mode only. */
.asp-dashboard-view[data-theme="dark"] .asp-batch-item { background:#14101d;border-color:#604878;color:#f8f2ff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-item[open] { background:#1c1428;border-color:#ad79ff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-item-body { border-color:rgba(177,126,245,.2); }
.asp-dashboard-view[data-theme="dark"] .asp-batch-heading > span { border-color:#694e86; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields input:not([type=checkbox]),.asp-dashboard-view[data-theme="dark"] .asp-batch-fields select { color:#fff;background:#14101c;border-color:#68547d; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields input:focus-visible,.asp-dashboard-view[data-theme="dark"] .asp-batch-fields select:focus-visible { outline-color:#b58aff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-add { color:#f8f2ff;background:#21152e;border-color:#a875ff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-add:hover { background:#301e42; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-remove { color:#c6a2ff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-referral-note { background:#291c3a; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-review { border-color:#594173; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-review li { border-color:#463553; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields > label.asp-batch-check-option {background:#2b2038;border-color:#604873;color:#f8f2ff;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields > label.asp-batch-check-option input[type="checkbox"] {accent-color:#a66aff;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields > label.asp-batch-check-option:focus-within {outline-color:#b58aff;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields > label.asp-batch-elsewhere-school {border-left-color:#a66aff;color:#f8f2ff;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields > label.asp-batch-elsewhere-school span {color:#e2d6ed;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields label small {color:#e2d6ed;opacity:1;}
.asp-dashboard-view[data-theme="dark"] .asp-batch-fields input:not([type=checkbox])::placeholder {color:#c8bbd4;opacity:1;}
.asp-dashboard-view[data-theme="dark"] .asp-file-feedback.is-success { background:#10271f;border-color:#27704b;color:#9ff1c2; }
.asp-dashboard-view[data-theme="dark"] .asp-file-feedback.is-uploading { background:#282018;border-color:#826038;color:#f5cf93; }
.asp-dashboard-view[data-theme="dark"] .asp-file-feedback.is-error { background:#321a28;border-color:#90516c;color:#ffc3d5; }
.asp-dashboard-view[data-theme="dark"] .asp-file-feedback progress { accent-color:#b58aff; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-submit-warning { background:#371b32;color:#ffd4e0;border-color:#b58aff; }
@media(max-width:650px) { .asp-batch-fields { grid-template-columns:1fr; } .asp-batch-item-summary { align-items:flex-start;flex-direction:column;gap:4px; } .asp-batch-item-summary span { max-width:100%; } }

/* Batch validation keeps all rows and highlights exactly what needs correction. */
.asp-batch-item.has-errors,.asp-batch-item.has-errors[open] { border:2px solid #be2440; }
.asp-batch-item [data-batch-error-count] { display:inline-block;flex:0 0 auto;max-width:none;border-radius:999px;padding:3px 9px;background:#fee2e5;color:#96223a;font-size:12px;font-weight:800;opacity:1; }
.asp-batch-fields label.asp-batch-invalid-label input:not([type=checkbox]),.asp-batch-fields label.asp-batch-invalid-label select { border-color:#c92443;box-shadow:0 0 0 1px #c92443; }
.asp-batch-field-error { display:block!important;color:#a71935!important;font-size:12px!important;font-weight:700!important;opacity:1!important;line-height:1.45; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-item.has-errors { border-color:#f492ab; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-item [data-batch-error-count] { color:#ffd1de;background:#63253e; }
.asp-dashboard-view[data-theme="dark"] .asp-batch-field-error { color:#ffb6c7!important; }

/* Submission history: students can reopen their own photos/PDFs/links, but not internal checks. */
.asp-request-history .asp-student-proof { display:inline-flex;max-width:100%;align-items:center;gap:10px;margin:10px 0 2px;padding:9px 11px;border:1px solid rgba(188,29,49,.25);border-radius:12px;text-decoration:none;color:#8b1834;overflow-wrap:anywhere; }
.asp-request-history .asp-student-proof img { width:76px;height:68px;object-fit:contain;border-radius:7px;flex-shrink:0; }
.asp-request-history .asp-student-proof span { font-weight:750;font-size:13px; }
.asp-request-history .asp-batch-proof { max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere;color:#8b1834; }
.asp-staff-review-info { flex-basis:100%;min-width:0;border:1px solid rgba(181,92,47,.32);background:rgba(244,193,113,.12);border-radius:12px;padding:12px;overflow-wrap:anywhere; }
.asp-staff-review-info strong { font-size:13px; }
.asp-staff-review-info ul { padding-left:22px;margin:8px 0; }
.asp-staff-review-info p { margin:7px 0; }
.asp-staff-review-info small { display:block;opacity:.78; }
.asp-dashboard-view[data-theme="dark"] .asp-request-history .asp-student-proof,.asp-dashboard-view[data-theme="dark"] .asp-request-history .asp-batch-proof { color:#ffb7c8; }

/* All student submissions: single and batch, images/PDFs and submitted links. */
.asp-request-history .asp-student-file-icon { display:inline-grid;place-items:center;min-width:54px;height:55px;font-size:28px;background:rgba(183,50,74,.07);border-radius:8px; }
.asp-request-history .asp-student-proof,.asp-request-history .asp-student-external-link { justify-self:start;min-width:0; }
.asp-request-history .asp-student-external-link { color:#8b1834;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;font-size:13px;font-weight:700; }
.asp-request-history .asp-student-submission-detail { margin:2px 0 0;font-size:13px;color:#5b5157;overflow-wrap:anywhere; }
.asp-request-history .asp-student-history-hint { margin:0 0 12px;color:#64606a;font-size:13px;line-height:1.5; }
.asp-dashboard-view[data-theme="dark"] .asp-request-history :is(.asp-student-external-link,.asp-student-submission-detail,.asp-student-history-hint) { color:#f5d5e1; }

/* Staff evidence previews: readable on desktop, mobile, and dark panels. */
.asp-staff-table .asp-staff-proof-link,.asp-staff-table .asp-batch-review .asp-staff-proof-link{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;margin:12px 0;border:1px solid #795a9b;border-radius:12px;max-width:100%;overflow-wrap:anywhere;color:inherit;text-decoration:none}
.asp-staff-table .asp-staff-proof-link img{display:block;max-width:min(210px,100%);max-height:180px;width:auto;height:auto;object-fit:contain;border-radius:8px}
.asp-staff-table .asp-staff-proof-link span{min-width:0;overflow-wrap:anywhere}
.asp-staff-table .asp-staff-proof-link small{display:block;opacity:.8;font-size:12px;margin-top:4px;overflow-wrap:anywhere}
.asp-staff-table .asp-staff-proof-file{font-size:20px}
.asp-staff-table .asp-staff-proof-missing{border:1px solid #a86b32;background:rgba(255,174,70,.11);border-radius:8px;padding:10px;overflow-wrap:anywhere}
@media(max-width:600px){.asp-staff-table .asp-staff-proof-link{align-items:flex-start;flex-direction:column}.asp-staff-table .asp-staff-proof-link img{max-width:100%}}
