/* Shared refinements for the Admin working pages: page headings, Add buttons, dialogs
   and feedback. Scoped to body.has-admin-shell so the local prototype and both portals
   are untouched. Loaded only on the pages that have Add/Edit flows. */

/* Page heading ------------------------------------------------------------------ */
body.has-admin-shell .courses-intro,
body.has-admin-shell .students-intro{display:flex;justify-content:space-between;align-items:flex-end;
  gap:20px;flex-wrap:wrap;padding:6px 0 22px;margin-bottom:4px;border-bottom:1px solid var(--line)}
body.has-admin-shell .courses-intro h1,
body.has-admin-shell .students-intro h1{margin:9px 0 0;font:600 clamp(32px,4vw,44px)/1.06 "Cormorant Garamond",Georgia,serif}
body.has-admin-shell .courses-intro .eyebrow,
body.has-admin-shell .students-intro .eyebrow{margin:0;color:var(--orange);font:600 9.5px "Jost",sans-serif;
  letter-spacing:.16em;text-transform:uppercase}
body.has-admin-shell .courses-intro>div>p:not(.eyebrow):not(.staging-indicator),
body.has-admin-shell .students-intro>div>p:not(.eyebrow):not(.staging-indicator){margin:9px 0 0;
  color:var(--muted);font-size:13px;line-height:1.6}

/* The mode badge is information, not an action, so it sits quietly beside the heading. */
body.has-admin-shell .staging-indicator{margin-top:11px}

/* Buttons ----------------------------------------------------------------------- */
body.has-admin-shell .button{border-radius:10px;transition:background .16s ease,box-shadow .16s ease}
body.has-admin-shell .button:hover{box-shadow:0 5px 14px rgba(181,98,46,.24)}
body.has-admin-shell .secondary-button{border-radius:10px}
body.has-admin-shell .button:focus-visible,
body.has-admin-shell .secondary-button:focus-visible,
body.has-admin-shell .text-button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* A destructive action must never look like an ordinary one. Archive and status changes
   deliberately keep the neutral treatment; only true deletions are given the warning
   colour, so the difference is visible before the click rather than after. */
body.has-admin-shell .danger-button,
body.has-admin-shell .remove-session{border:1px solid #e0b7a3;border-radius:9px;background:#fbeee8;
  color:#9b4c25;font-weight:600}
body.has-admin-shell .danger-button:hover,
body.has-admin-shell .remove-session:hover{background:#f7e0d5;border-color:#d3a086}

/* Dialogs ----------------------------------------------------------------------- */
body.has-admin-shell dialog{border:1px solid var(--line);border-radius:18px;
  box-shadow:0 22px 60px rgba(57,48,39,.22);padding:0;max-height:calc(100dvh - 28px);overflow:auto}
body.has-admin-shell dialog::backdrop{background:rgba(57,48,39,.34)}
body.has-admin-shell dialog form,
body.has-admin-shell dialog .profile-inner{padding:26px 28px 24px}
body.has-admin-shell .dialog-heading{align-items:flex-start;padding-bottom:16px;margin-bottom:20px;
  border-bottom:1px solid var(--line)}
body.has-admin-shell .dialog-heading h2{margin:5px 0 0;font:600 27px/1.1 "Cormorant Garamond",Georgia,serif}
body.has-admin-shell .dialog-heading .eyebrow{color:var(--orange);font:600 9px "Jost",sans-serif;
  letter-spacing:.15em;text-transform:uppercase}
body.has-admin-shell .form-grid{gap:16px}
body.has-admin-shell .form-grid label{gap:6px;font-size:11px;font-weight:600;color:var(--muted);
  letter-spacing:.03em}
body.has-admin-shell .form-grid input,
body.has-admin-shell .form-grid select,
body.has-admin-shell .form-grid textarea{padding:10px 12px;border:1px solid var(--line);border-radius:9px;
  background:#fffdf9;font:400 13.5px "Jost",sans-serif;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease}
body.has-admin-shell .form-grid input:focus,
body.has-admin-shell .form-grid select:focus,
body.has-admin-shell .form-grid textarea:focus{outline:none;border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(181,98,46,.13)}
body.has-admin-shell .form-actions{gap:10px;padding-top:20px;margin-top:22px;border-top:1px solid var(--line)}

/* Sessions repeater inside the course form. */
body.has-admin-shell .sessions-section{padding:17px;border:1px solid var(--line);border-radius:13px;
  background:var(--cream)}
body.has-admin-shell .session-entry{padding:15px;border:1px solid var(--line);border-radius:11px;
  background:var(--paper);margin-bottom:11px}

/* Feedback ----------------------------------------------------------------------- */
body.has-admin-shell .courses-load-state,
body.has-admin-shell .students-load-state{margin:16px 0 0;padding:12px 15px;border:1px solid var(--line);
  border-radius:10px;background:var(--paper);color:var(--muted);font-size:12.5px}
body.has-admin-shell .courses-load-state[data-state=""],
body.has-admin-shell .students-load-state[data-state=""]{border-color:#bad8c0;background:#f3faf3;color:#397346}
body.has-admin-shell .courses-load-state[data-state="error"],
body.has-admin-shell .students-load-state[data-state="error"],
body.has-admin-shell .courses-load-state[data-state="denied"],
body.has-admin-shell .students-load-state[data-state="denied"]{border-color:#e3b8a3;background:#fbeee8;color:#9b4c25}

/* Record lists ------------------------------------------------------------------- */
body.has-admin-shell .records-card,
body.has-admin-shell .course-grid,
body.has-admin-shell .empty-state{border-radius:16px}
body.has-admin-shell .course-card{border-radius:15px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.has-admin-shell .course-card:hover{transform:translateY(-2px);border-color:rgba(181,98,46,.34);
  box-shadow:0 12px 26px rgba(91,66,36,.09)}
body.has-admin-shell tbody tr{cursor:pointer;transition:background .14s ease}
body.has-admin-shell tbody tr:hover{background:var(--cream)}

@media(max-width:650px){
  body.has-admin-shell dialog form,
  body.has-admin-shell dialog .profile-inner{padding:20px}
  body.has-admin-shell .courses-intro,
  body.has-admin-shell .students-intro{align-items:flex-start}
  body.has-admin-shell .form-actions>*{min-height:44px}
}
@media(max-width:430px){
  body.has-admin-shell .form-actions{align-items:stretch;flex-direction:column-reverse}
  body.has-admin-shell .form-actions>*{width:100%}
}
body.has-admin-shell .form-error,
.student-dialog .form-error{margin:18px 0 0;padding:12px 15px;border:1px solid #e3b8a3;border-radius:8px;
  background:#fbeee8;color:#9b4c25;font-size:12px;line-height:1.5}
body.has-admin-shell .resource-course-list{display:grid;gap:8px;margin-top:10px}
body.has-admin-shell .resource-course-option{display:flex;align-items:center;gap:9px;font-size:13px}
body.has-admin-shell .resource-course-option input{width:auto;min-height:auto;margin:0}
body.has-admin-shell .resource-courses{margin:10px 0 0;color:var(--muted);font-size:11px;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase}
body.has-admin-shell .form-note{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
body.has-admin-shell .portal-access-state{margin:8px 0 0;padding:9px 12px;border:1px solid var(--line);
  border-radius:7px;background:#fffaf4;font-size:13px}
body.has-admin-shell .portal-access-state[data-access="active"]{border-color:#bad8c0;background:#f3faf3;color:#397346}
body.has-admin-shell .portal-access-state[data-access="inactive"]{border-color:#e3b8a3;background:#fbeee8;color:#9b4c25}
body.has-admin-shell .portal-access-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
