/**
 * גל כנסים PRO — Public Submission Form v5.1
 * Design: Modern · Deep Navy-Teal gradient (matching Gal Conventions logo)
 * Full RTL · Hebrew-first · Accessible
 */

@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@300;400;500;600;700;800;900&display=swap');

/* ── Brand Palette (from logo: deep navy-blue + mid teal + light powder blue) ── */
:root {
  --gc-dark:        #0d2240;   /* deepest navy — logo shadow */
  --gc-navy:        #153d6f;   /* primary navy */
  --gc-teal:        #1e7fa8;   /* mid teal */
  --gc-sky:         #4ab4d4;   /* light sky blue */
  --gc-powder:      #a8d8ea;   /* pale powder blue */
  --gc-white:       #ffffff;
  --gc-bg:          #f7fafb;
  --gc-surface:     #ffffff;
  --gc-border:      #d6e4ec;
  --gc-border-soft: #ebf3f7;

  --gc-text:        #0d2240;
  --gc-text-2:      #2d5072;
  --gc-text-3:      #6a8fa8;

  --gc-green:       #0d9488;
  --gc-green-bg:    #ccfbf1;
  --gc-red:         #dc2626;
  --gc-red-bg:      #fee2e2;
  --gc-amber:       #d97706;
  --gc-amber-bg:    #fef3c7;

  --gc-grad:        linear-gradient(135deg, var(--gc-dark) 0%, var(--gc-navy) 45%, var(--gc-teal) 100%);
  --gc-grad-light:  linear-gradient(135deg, #e8f4f8 0%, #f0f8fc 100%);

  --gc-r-sm:   8px;
  --gc-r-md:   12px;
  --gc-r-lg:   16px;
  --gc-r-xl:   22px;
  --gc-r-full: 9999px;

  --gc-shadow-sm: 0 2px 8px rgba(13,34,64,.08);
  --gc-shadow-md: 0 6px 24px rgba(13,34,64,.12);
  --gc-shadow-lg: 0 16px 48px rgba(13,34,64,.16);
  --gc-shadow-blue: 0 4px 20px rgba(30,127,168,.3);

  --gc-t: all 0.2s cubic-bezier(0.4,0,0.2,1);
  --gc-font: 'Heebo', 'Arial Hebrew', Arial, sans-serif;
}

/* ── Reset ───────────────────────────────────────────────────────────────────── */
.caspro-form-wrap *, .caspro-form-wrap *::before, .caspro-form-wrap *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}
.caspro-form-wrap {
  font-family: var(--gc-font);
  font-size: 16px;
  line-height: 1.65;
  color: var(--gc-text);
  direction: rtl;
  text-align: right;
  max-width: 800px;
  margin: 0 auto;
  padding: 8px;
}

/* ── Progress indicator ──────────────────────────────────────────────────────── */
.caspro-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 40px;
  padding: 32px 24px 0;
}
.caspro-progress__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.caspro-progress__dot {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid var(--gc-border);
  background: var(--gc-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
  color: var(--gc-text-3);
  transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1);
  position: relative;
  z-index: 1;
}
.caspro-progress__dot.is-active {
  background: var(--gc-grad);
  border-color: transparent;
  color: #fff;
  box-shadow: var(--gc-shadow-blue);
  transform: scale(1.12);
}
.caspro-progress__dot.is-done {
  background: var(--gc-green);
  border-color: transparent;
  color: #fff;
}
.caspro-progress__dot.is-done::after {
  content: '✓'; font-size: 17px;
}
.caspro-progress__label {
  font-size: 12px;
  color: var(--gc-text-3);
  font-weight: 500;
  white-space: nowrap;
}
.caspro-progress__line {
  flex: 1;
  height: 2px;
  background: var(--gc-border);
  margin: 0 -2px;
  margin-top: -22px;
  transition: background 0.4s ease;
  min-width: 48px;
}
.caspro-progress__line.is-done {
  background: linear-gradient(90deg, var(--gc-green), var(--gc-teal));
}

/* ── Step panels ─────────────────────────────────────────────────────────────── */
.caspro-step {
  animation: gc-step-in 0.3s ease;
}
@keyframes gc-step-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
.caspro-step__title {
  font-size: 26px;
  font-weight: 800;
  color: var(--gc-dark);
  margin-bottom: 8px;
  letter-spacing: -0.03em;
}
.caspro-step__desc {
  color: var(--gc-text-3);
  font-size: 15px;
  margin-bottom: 30px;
}

/* ── Skeleton loaders ────────────────────────────────────────────────────────── */
@keyframes gc-skeleton {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}
.caspro-skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
}
.caspro-skeleton-card, .caspro-skeleton-field {
  border-radius: var(--gc-r-lg);
  background: linear-gradient(90deg, #e8f1f5 25%, #d8ecf3 50%, #e8f1f5 75%);
  background-size: 800px 100%;
  animation: gc-skeleton 1.4s ease infinite;
}
.caspro-skeleton-card { height: 170px; }
.caspro-skeleton-form { display: flex; flex-direction: column; gap: 22px; }
.caspro-skeleton-field { height: 56px; }
.caspro-skeleton-field--tall { height: 130px; }

/* ── Conference cards ────────────────────────────────────────────────────────── */
.caspro-conf-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
}
.caspro-conf-card-pub {
  background: var(--gc-white);
  border: 1.5px solid var(--gc-border);
  border-radius: var(--gc-r-xl);
  overflow: hidden;
  cursor: pointer;
  transition: var(--gc-t);
  box-shadow: var(--gc-shadow-sm);
  animation: gc-step-in 0.3s ease both;
  outline: none;
  position: relative;
}
.caspro-conf-card-pub:hover,
.caspro-conf-card-pub:focus-visible {
  border-color: var(--gc-teal);
  box-shadow: var(--gc-shadow-md), 0 0 0 3px rgba(30,127,168,.12);
  transform: translateY(-4px);
}

/* Gradient stripe */
.caspro-conf-card-pub__stripe {
  height: 6px;
  background: var(--gc-grad);
}

.caspro-conf-card-pub__body {
  padding: 22px 20px;
}

.caspro-conf-card-pub__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--gc-dark);
  margin-bottom: 8px;
  line-height: 1.35;
}

.caspro-conf-card-pub__desc {
  font-size: 14px;
  color: var(--gc-text-3);
  margin-bottom: 14px;
  line-height: 1.6;
}

.caspro-conf-card-pub__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  font-size: 13px;
  color: var(--gc-text-3);
}

/* ── Buttons ─────────────────────────────────────────────────────────────────── */
.caspro-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 12px 24px;
  border-radius: var(--gc-r-md);
  font-family: var(--gc-font);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: var(--gc-t);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: -.1px;
}

/* Navy-to-teal gradient — primary action */
.caspro-btn--select {
  background: var(--gc-grad);
  color: #fff;
  width: 100%;
  padding: 13px;
  font-size: 14px;
  font-weight: 700;
  border-radius: var(--gc-r-md);
  box-shadow: var(--gc-shadow-blue);
}
.caspro-btn--select:hover {
  opacity: .9;
  transform: translateY(-1px);
  box-shadow: 0 8px 28px rgba(30,127,168,.4);
}

.caspro-btn--submit {
  background: var(--gc-grad);
  color: #fff;
  padding: 15px 36px;
  font-size: 16px;
  font-weight: 700;
  border-radius: var(--gc-r-md);
  box-shadow: var(--gc-shadow-blue);
  min-width: 200px;
}
.caspro-btn--submit:hover {
  opacity: .92;
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(30,127,168,.45);
}
.caspro-btn--submit:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.caspro-btn--ghost {
  background: transparent;
  color: var(--gc-text-2);
  border: 1.5px solid var(--gc-border);
  padding: 11px 22px;
  font-size: 14px;
}
.caspro-btn--ghost:hover {
  border-color: var(--gc-teal);
  color: var(--gc-navy);
  background: var(--gc-border-soft);
}

.caspro-btn--outline {
  background: transparent;
  color: var(--gc-navy);
  border: 2px solid var(--gc-navy);
  padding: 12px 28px;
}
.caspro-btn--outline:hover {
  background: var(--gc-navy);
  color: #fff;
}

/* ── Form header ─────────────────────────────────────────────────────────────── */
.caspro-form-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1.5px solid var(--gc-border-soft);
}

/* Conference name pill */
#caspro-conf-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--gc-navy);
}
#caspro-conf-deadline {
  font-size: 13px;
  color: var(--gc-text-3);
  margin-top: 2px;
}

/* ── Draft indicator ─────────────────────────────────────────────────────────── */
.caspro-draft-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--gc-green);
  background: var(--gc-green-bg);
  border-radius: var(--gc-r-full);
  padding: 6px 16px;
  margin-bottom: 18px;
  width: fit-content;
  transition: opacity 0.3s;
  font-weight: 500;
}
.caspro-draft-indicator[data-state="saving"] {
  color: var(--gc-teal);
  background: #e0f4fa;
}
.caspro-draft-indicator__icon { font-size: 15px; }

/* ── Form fields ─────────────────────────────────────────────────────────────── */
#caspro-form { display: flex; flex-direction: column; gap: 0; }

.caspro-field-wrap {
  margin-bottom: 24px;
  animation: gc-step-in 0.22s ease;
}

/* ── Paragraph / instructions block ─────────────────────────────────────── */
.caspro-paragraph-block {
  background: linear-gradient(135deg, #f0f7ff 0%, #e8f4fd 100%);
  border: 1.5px solid #bae6fd;
  border-right: 4px solid var(--gc-teal);
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 14px;
  line-height: 1.75;
  color: #1e3a5f;
  margin-bottom: 4px;
}
.caspro-paragraph-block b,
.caspro-paragraph-block strong { color: var(--gc-navy); }
.caspro-paragraph-block a { color: var(--gc-teal); text-decoration: underline; }

.caspro-field-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--gc-text-2);
  margin-bottom: 8px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.caspro-field-required {
  color: var(--gc-red);
  margin-right: 2px;
}

/* Core inputs */
.caspro-input,
.caspro-textarea,
.caspro-select {
  width: 100%;
  background: var(--gc-white);
  border: 1.5px solid var(--gc-border);
  border-radius: var(--gc-r-md);
  padding: 13px 16px;
  font-family: var(--gc-font);
  font-size: 15px;
  color: var(--gc-dark);
  transition: border-color 0.18s, box-shadow 0.18s;
  direction: rtl;
  text-align: right;
}
.caspro-input:focus,
.caspro-textarea:focus,
.caspro-select:focus {
  outline: none;
  border-color: var(--gc-teal);
  box-shadow: 0 0 0 3px rgba(30,127,168,.14);
}
.caspro-input.has-error,
.caspro-textarea.has-error {
  border-color: var(--gc-red);
  box-shadow: 0 0 0 3px var(--gc-red-bg);
}
.caspro-textarea { resize: vertical; min-height: 140px; }

/* Select wrapper */
.caspro-select-wrap { position: relative; }
.caspro-select { appearance: none; padding-left: 38px; }
.caspro-select-arrow {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  pointer-events: none; color: var(--gc-text-3); font-size: 13px;
}

/* Radio / Checkbox */
.caspro-radio-group, .caspro-checkbox-group {
  display: flex; flex-direction: column; gap: 10px;
}
.caspro-radio-item, .caspro-checkbox-item {
  display: flex; align-items: center; gap: 12px;
  cursor: pointer; font-size: 15px; color: var(--gc-text-2);
  padding: 12px 16px;
  border-radius: var(--gc-r-md);
  border: 1.5px solid var(--gc-border);
  transition: var(--gc-t);
  background: var(--gc-white);
}
.caspro-radio-item:hover, .caspro-checkbox-item:hover {
  border-color: var(--gc-teal);
  background: #f0f9fd;
  color: var(--gc-navy);
}
.caspro-radio-item input, .caspro-checkbox-item input {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.caspro-radio-custom, .caspro-checkbox-custom {
  width: 22px; height: 22px;
  border: 2px solid var(--gc-border);
  border-radius: 50%;
  flex-shrink: 0;
  transition: var(--gc-t);
  display: flex; align-items: center; justify-content: center;
  background: var(--gc-white);
}
.caspro-checkbox-custom { border-radius: 6px; }
.caspro-radio-item input:checked ~ .caspro-radio-custom,
.caspro-checkbox-item input:checked ~ .caspro-checkbox-custom {
  border-color: var(--gc-teal);
  background: var(--gc-teal);
}
.caspro-radio-item input:checked ~ .caspro-radio-custom::after {
  content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff;
}
.caspro-checkbox-item input:checked ~ .caspro-checkbox-custom::after {
  content: '✓'; color: #fff; font-size: 13px; font-weight: 700;
}
.caspro-radio-item:has(input:checked),
.caspro-checkbox-item:has(input:checked) {
  border-color: var(--gc-teal);
  background: #f0f9fd;
  color: var(--gc-navy);
}

/* Upload zone */
.caspro-upload-zone {
  border: 2px dashed var(--gc-border);
  border-radius: var(--gc-r-lg);
  background: #f7fbfd;
  transition: var(--gc-t);
  overflow: hidden;
}
.caspro-upload-zone.is-dragging {
  border-color: var(--gc-teal);
  background: #e0f4fa;
}
.caspro-upload-zone.is-uploaded { border-style: solid; border-color: var(--gc-green); }
.caspro-upload-zone__inner {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; padding: 32px 20px; text-align: center; color: var(--gc-text-3);
  font-size: 14px; pointer-events: none;
}
.caspro-upload-icon { font-size: 34px; line-height: 1; }
.caspro-upload-link { color: var(--gc-teal); cursor: pointer; pointer-events: all; text-decoration: underline; font-weight: 600; }
.caspro-upload-hint { font-size: 12px; color: var(--gc-text-3); }
.caspro-file-input  { position: absolute; opacity: 0; width: 0; height: 0; }
.caspro-upload-preview { padding: 0 18px 18px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.caspro-upload-preview img { max-height: 80px; border-radius: 8px; }
.caspro-file-name   { font-size: 14px; color: var(--gc-green); font-weight: 500; }
.caspro-upload-spinner {
  display: flex; align-items: center; gap: 8px; padding: 14px 18px; font-size: 13px; color: var(--gc-teal);
}
.caspro-upload-spinner span {
  width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid #c8eaf3; border-top-color: var(--gc-teal);
  animation: gc-spin 0.7s linear infinite; display: inline-block;
}
@keyframes gc-spin { to { transform: rotate(360deg); } }

/* Button spinner */
.caspro-spinner-sm {
  display: inline-block; width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.3); border-top-color: #fff;
  animation: gc-spin 0.7s linear infinite;
}

/* Field messages */
.caspro-field-error {
  display: block; font-size: 13px; color: var(--gc-red);
  margin-top: 6px; font-weight: 500;
}
.caspro-field-help {
  display: block; font-size: 13px; color: var(--gc-text-3); margin-top: 6px;
}

/* Alert */
.caspro-alert {
  padding: 15px 18px; border-radius: var(--gc-r-md); font-size: 14px; font-weight: 500; margin-bottom: 18px;
}
.caspro-alert--error {
  background: var(--gc-red-bg); color: #7f1d1d; border: 1px solid #fca5a5;
}

/* Form footer */
.caspro-form-footer {
  margin-top: 36px;
  padding-top: 26px;
  border-top: 1.5px solid var(--gc-border-soft);
  display: flex;
  justify-content: flex-start;
  gap: 12px;
  align-items: center;
}

/* ── Step 3: Success ─────────────────────────────────────────────────────────── */
.caspro-success {
  text-align: center;
  padding: 70px 24px;
}
.caspro-success__icon {
  font-size: 72px;
  margin-bottom: 22px;
  animation: gc-bounce 0.5s ease;
  display: block;
}
@keyframes gc-bounce {
  0%   { transform: scale(0.4); opacity: 0; }
  70%  { transform: scale(1.12); }
  100% { transform: scale(1); opacity: 1; }
}
.caspro-success h2 {
  font-size: 28px;
  font-weight: 900;
  color: var(--gc-dark);
  margin-bottom: 12px;
  letter-spacing: -.03em;
}
.caspro-success p {
  font-size: 16px;
  color: var(--gc-text-3);
  max-width: 500px;
  margin: 0 auto 30px;
  line-height: 1.75;
}

/* ── Badges ──────────────────────────────────────────────────────────────────── */
.caspro-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 12px; border-radius: var(--gc-r-full); font-size: 12px; font-weight: 600;
}
.caspro-badge--deadline {
  background: var(--gc-amber-bg); color: #92400e; border: 1px solid #fcd34d;
}

/* ── Toast notifications ─────────────────────────────────────────────────────── */
.caspro-toast {
  position: fixed;
  bottom: 30px; left: 50%;
  transform: translateX(-50%) translateY(80px);
  background: var(--gc-dark);
  color: #fff;
  padding: 14px 26px;
  border-radius: var(--gc-r-full);
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 500;
  box-shadow: var(--gc-shadow-lg);
  z-index: 99999;
  transition: transform 0.32s cubic-bezier(.34,1.56,.64,1), opacity 0.28s;
  opacity: 0;
  white-space: nowrap;
  max-width: 88vw;
  text-align: center;
  border-right: 4px solid var(--gc-sky);
}
.caspro-toast--visible { transform: translateX(-50%) translateY(0); opacity: 1; }
.caspro-toast--error   { background: #7f1d1d; border-right-color: #fca5a5; }
.caspro-toast--success { background: var(--gc-green); border-right-color: #a7f3d0; }

/* ── Empty state ─────────────────────────────────────────────────────────────── */
.caspro-empty-state {
  text-align: center; padding: 56px 24px; color: var(--gc-text-3);
}
.caspro-empty-state__icon { font-size: 52px; display: block; margin-bottom: 16px; opacity: .6; }

/* ── Turnstile / Honeypot ────────────────────────────────────────────────────── */
#caspro-turnstile-wrap { margin-bottom: 22px; }
.caspro-hp-wrap {
  position: absolute !important; width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important;
}

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .caspro-form-wrap    { padding: 4px; font-size: 15px; }
  .caspro-conf-cards   { grid-template-columns: 1fr; }
  .caspro-step__title  { font-size: 22px; }
  .caspro-form-footer  { justify-content: center; flex-wrap: wrap; }
  .caspro-btn--submit  { width: 100%; }
  .caspro-progress__label { font-size: 11px; }
  .caspro-progress__dot   { width: 38px; height: 38px; font-size: 14px; }
  .caspro-progress__line  { min-width: 32px; }
}

/* ── Multi-page navigation ───────────────────────────────────────────────── */
.caspro-page-nav {
  margin: 0 0 20px;
}
.caspro-page-progress {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.caspro-page-label {
  font-size: 13px;
  color: var(--gc-text-2);
  white-space: nowrap;
  direction: rtl;
}
.caspro-page-track {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
}
.caspro-page-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--gc-border);
  border: 2px solid var(--gc-border);
  flex-shrink: 0;
  transition: all .2s;
}
.caspro-page-dot.is-active {
  background: var(--gc-teal);
  border-color: var(--gc-teal);
  box-shadow: 0 0 0 3px rgba(14,165,233,.2);
}
.caspro-page-dot.is-done {
  background: var(--gc-navy);
  border-color: var(--gc-navy);
}
.caspro-page-line {
  flex: 1;
  height: 2px;
  background: var(--gc-border);
  transition: background .3s;
  min-width: 20px;
}
.caspro-page-line.is-done { background: var(--gc-navy); }
.caspro-page-btns {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

/* ── Field limit counter ─────────────────────────────────────────────────── */
.caspro-limit-counter {
  font-size: 12px;
  color: var(--gc-text-3);
  margin-top: 4px;
  text-align: left;
  direction: ltr;
}
.caspro-limit--over { color: #dc2626; font-weight: 700; }
.caspro-input--over-limit {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220,38,38,.15) !important;
}
