/* apply-modal.css
   Theme + components (NO hard layout overrides here)
   - headshots uniform sizing + ring using :has(input:checked)
   - tapes/audio selection ring using :has(input:checked)
   - cover letter polish
   - section dividers
*/

/* === Apply Modal – theme tokens === */
:root {
  --am-bg: #0f172a;
  --am-panel: #111827;
  --am-border: #2a3446;
  --am-text: #e5e7eb;
  --am-muted: #9ca3af;
  --am-accent: #6289ff;
  --am-chip: #0b1222;
}

/* Modal card */
.am-card {
  background: var(--am-bg);
  color: var(--am-text);
  border: 1px solid var(--am-border);
  border-radius: 16px;
}

.am-strong { color: var(--am-text); font-weight: 600; }
.am-help   { color: var(--am-muted); font-size: 0.9rem; }
.am-muted  { color: var(--am-muted); }
.am-border { border: 1px solid var(--am-border); }

/* Slightly bigger headers */
#applyModal .modal-title { font-size: 1.15rem; font-weight: 700; }
#applyModal h6 { font-size: 1.02rem; font-weight: 700; }

/* Buttons */
.btn-outline-secondary { color: var(--am-text); border-color: var(--am-border); }
.btn-outline-secondary:hover { background: #0b1020; }

/* Inputs/checks on dark background */
#applyModal .form-check-input {
  border-color: var(--am-border);
  background-color: transparent;
}
#applyModal .form-check-input:checked {
  background-color: var(--am-accent);
  border-color: var(--am-accent);
}

/* =========================================================
   SECTION DIVIDERS (professional “panel” feel)
   ========================================================= */
#applyModal section + section {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 16px;
  margin-top: 16px;
}

/* =========================================================
   HEADSHOTS (MATCHES CURRENT EJS: label > input + img)
   ========================================================= */

.am-hs-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 180px));
  gap: 14px;
}

/* Clickable card */
#applyModal #applyHeadshots .am-hs-item {
  position: relative;
  display: inline-block;
  width: 180px;
  height: 180px;
  border-radius: 12px;
  overflow: hidden;
  background: #0b1020;
  border: 2px solid transparent;
  cursor: pointer;
  user-select: none;
}

/* Hide native radio */
#applyModal #applyHeadshots .am-hs-item input[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Uniform image sizing (fixes “3 different sizes”) */
#applyModal #applyHeadshots .am-hs-item img {
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: cover;
}

/* Blue ring when selected (no JS needed) */
#applyModal #applyHeadshots .am-hs-item:has(input[type="radio"]:checked) {
  border-color: var(--am-accent);
  box-shadow: 0 0 0 3px rgba(98,137,255,0.25);
}

/* =========================================================
   SELF TAPES: card selection styling (checkbox hidden)
   ========================================================= */

.am-tape-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  background: #050819;
  border-radius: 0.75rem;
  padding: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
  min-height: 190px;
  box-sizing: border-box;
  position: relative;
}

.am-tape-card:hover {
  border-color: rgba(98,137,255, 0.6);
  box-shadow: 0 0 0 1px rgba(98,137,255, 0.4);
  transform: translateY(-1px);
}

/* Blue ring when selected (no JS needed) */
#applyModal #applySelfTapes .am-tape-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent);
  box-shadow: 0 0 0 2px rgba(98,137,255,0.25);
}

/* Thumb/video */
.am-tape-thumb { border-radius: 0.5rem; overflow: hidden; background: #000; }
.am-tape-video { width: 100%; display: block; max-height: 150px; }
.am-tape-title { font-size: 0.9rem; font-weight: 600; margin-top: 0.25rem; text-align: center; }

/* Hide native checkbox inside tape cards */
#applyModal #applySelfTapes input[type="checkbox"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* =========================================================
   AUDIO: card selection styling
   ========================================================= */
.am-audio-card {
  border-radius: 12px;
  background: var(--am-chip);
}

#applyModal #applyAudio .am-audio-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent) !important;
  box-shadow: 0 0 0 2px rgba(98,137,255,0.20);
}

.am-audio-player { width: 100%; }

/* =========================================================
   RESUME ROW
   ========================================================= */
.am-resume-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--am-chip);
  border-radius: 12px;
}

.am-title { color: var(--am-text); font-weight: 600; }

/* =========================================================
   COVER LETTER: editor feel
   ========================================================= */
#applyCoverBody {
  background: #0b1020;
  color: var(--am-text);
  border: 1px solid var(--am-border);
}
#applyCoverBody:focus {
  border-color: rgba(98,137,255,0.6);
  box-shadow: 0 0 0 3px rgba(98,137,255,0.18);
}

/* Template area readability */
#applySaveTemplateCb + label {
  color: var(--am-text) !important;
  font-weight: 600;
  opacity: 1 !important;
}

#applyTemplateName {
  background: #0b1020;
  color: var(--am-text);
  border: 1px solid var(--am-border);
}
#applyTemplateName::placeholder { color: var(--am-muted); }

#applyTemplateDefault + label {
  color: var(--am-text);
  margin-left: 4px;
}

#applyModal #applyHeadshots .am-hs-item:has(input[type="radio"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applySelfTapes .am-tape-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applyAudio .am-audio-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applyHeadshots .am-hs-item:has(input[type="radio"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applySelfTapes .am-tape-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applyAudio .am-audio-card:has(input[type="checkbox"]:checked) {
  border-color: var(--am-accent) !important;
}

#applyModal #applySaveTemplateRow .col-sm-5 {
  display: flex;
  align-items: center;
  gap: 10px;
}

#applyModal #applySaveTemplateRow .col-sm-5 small {
  margin: 0;
  white-space: nowrap;   /* keeps it on the same line */
}

/* Force a real X close button (prevents “checkbox-looking” square) */
#applyModal .modal-header .btn-close{
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  opacity: 0.9;
  border-radius: 10px;
  background: transparent !important;
  position: relative;
  border: 1px solid rgba(255,255,255,0.12);
}

/* draw the X */
#applyModal .modal-header .btn-close::before,
#applyModal .modal-header .btn-close::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 2px;
  background: rgba(255,255,255,0.9);
  transform-origin: center;
}
#applyModal .modal-header .btn-close::before{
  transform: translate(-50%,-50%) rotate(45deg);
}
#applyModal .modal-header .btn-close::after{
  transform: translate(-50%,-50%) rotate(-45deg);
}

#applyModal .modal-header .btn-close:hover{
  opacity: 1;
  border-color: rgba(98,137,255,0.35);
  box-shadow: 0 0 0 3px rgba(98,137,255,0.12);
}

/* Header layout: push X to the far right */
#applyModal .am-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#applyModal .am-close{
  margin-left: auto;
  background: transparent;
  border: 0;
  color: var(--am-text);
  font-size: 24px;
  line-height: 1;
  padding: 6px 10px;
  opacity: .9;
  border-radius: 10px;
}

#applyModal .am-close:hover{
  opacity: 1;
  box-shadow: 0 0 0 3px rgba(98,137,255,0.12);
}

/* Force the close X to the far-right no matter what */
#applyModal .am-header{
  position: relative;
  padding-right: 52px; /* room for the X */
}

#applyModal .am-close{
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  color: var(--am-text);
  font-size: 24px;
  line-height: 1;
  padding: 6px 10px;
  opacity: .9;
  border-radius: 10px;
}
#applyModal .am-close:hover{
  opacity: 1;
  box-shadow: 0 0 0 3px rgba(98,137,255,0.12);
}

/* Resume section spacing */
.apply-modal .resume-section,
#applyModal .resume-section,
.apply-modal [data-section="resume"] {
  padding: 14px 16px;        /* gives it breathing room */
  margin: 10px 0 0;
  border-radius: 14px;
}

/* If the resume section is a full-width row inside a grid/flex */
.apply-modal .resume-section > * {
  max-width: 100%;
}


.apply-modal .resume-section p,
.apply-modal .resume-section .help-text {
  margin: 6px 0 0;
}

/* Apply Modal — Resume section spacing */
#applyModal .am-resume,
#applyModal .apply-resume,
#applyModal [data-section="resume"],
#applyModal section[data-block="resume"] {
  padding: 12px 14px;
  border-radius: 12px;
}

/* If the resume content is inside a bordered helper row */
#applyModal .am-resume .am-border,
#applyModal .apply-resume .am-border {
  padding: 10px 12px;
}

/* Make the “No résumé on file…” message not slam into the edge */
#applyModal .am-resume small,
#applyModal .apply-resume small {
  display: block;
  margin-top: 4px;
}

/* Apply Modal — Resume spacing */
#applyModal #applyResumeWrap .am-resume-row {
  padding: 12px 16px !important;   /* more breathing room than p-2 */
  border-radius: 12px;
}

/* Give the title/message a touch of left/right comfort + better spacing */
#applyModal #applyResumeWrap .am-title {
  margin-bottom: 4px;
}

#applyModal #applyResumeWrap .am-muted {
  display: block;
  margin: 0;
}

/* Optional: if the row is a flex container somewhere else, keep it aligned */
#applyModal #applyResumeWrap .am-resume-row > div {
  min-width: 0;
}
