/* ============================================================
   Medelion Partners — Web UI Kit component styles
   Pairs with ../../colors_and_type.css (tokens)
   ============================================================ */

*{box-sizing:border-box}
body{margin:0;font-family:var(--font-ui);color:var(--fg1);background:var(--navy-900)}
button{font-family:inherit;cursor:pointer}

/* ---- App shell ---- */
.app{min-height:100vh;display:flex;flex-direction:column;background:var(--navy-900)}
.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}

/* ---- Navbar ---- */
.nav{display:flex;align-items:center;justify-content:space-between;
  padding:18px 40px;border-bottom:1px solid rgba(255,255,255,.08)}
.nav-links{display:flex;align-items:center;gap:28px}
.wordmark{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);
  font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--cream-200)}
.wordmark .dot{width:12px;height:12px;border-radius:50%;background:var(--blue-accent)}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-ui);font-size:16px;line-height:1.2;border:2px solid transparent;
  border-radius:100px;padding:12px 24px;white-space:nowrap;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease}
.btn svg{width:16px;height:16px;flex:none}
.btn:focus-visible{outline:none;border-color:var(--blue-accent)}
.btn:disabled{cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-text);border-color:transparent}

.btn-primary{background:var(--navy-600);color:var(--white-pure)}
.btn-primary:hover{background:var(--navy-650)}
.btn-primary:active{background:var(--navy-800)}
.btn-primary[aria-pressed="true"]{background:var(--navy-550)}

.btn-secondary{background:var(--beige-300);color:var(--navy-900)}
.btn-secondary:hover{background:var(--beige-400)}
.btn-secondary:active{background:var(--beige-500)}

.btn-ghost{background:transparent;color:#fff;border:1px solid var(--cream-100);padding:12px 22px}
.btn-ghost:hover{background:rgba(251,245,233,.10)}
.btn-ghost:active{background:rgba(251,245,233,.18)}
.btn-ghost:focus-visible{border:2px solid var(--blue-accent);padding:12px 22px}

.btn-link{background:none;border:none;padding:0;font-family:var(--font-ui);font-weight:700;
  font-size:16px;color:var(--cream-200);text-decoration:underline;text-underline-offset:3px}
.btn-link:hover{color:#fff}
.btn-link:active{color:var(--text-on-navy-soft)}
.btn-link:focus-visible{outline:2px solid var(--blue-accent);outline-offset:3px;border-radius:4px}

.btn-sm{padding:8px 16px;font-size:15px}
.btn-block{width:100%}

/* ---- Field ---- */
.field{display:flex;flex-direction:column;gap:8px}
.field-label{font-family:var(--font-ui);font-size:14px;color:var(--text-on-navy-soft)}
.field-input{width:100%;border-radius:8px;background:var(--navy-700);border:1px solid transparent;
  padding:12px 16px;font-family:var(--font-display);font-size:16px;letter-spacing:-.02em;
  color:var(--cream-200);transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
.field-input::placeholder{color:var(--text-on-navy-mute)}
.field-input:hover{background:#143372}
.field-input:focus{outline:none;border-color:var(--blue-accent);box-shadow:0 0 0 3px rgba(30,144,255,.25)}
.field.error .field-input{border-color:var(--danger)}
.field-msg{font-family:var(--font-ui);font-size:12px;color:var(--danger)}

/* ---- Role card ---- */
.role-grid{display:flex;gap:16px}
.role-card{flex:1;text-align:left;background:rgba(255,255,255,.04);border:1.5px solid rgba(199,208,227,.18);
  border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:12px;
  transition:border-color .14s ease,background-color .14s ease}
.role-card:hover{border-color:rgba(199,208,227,.4);background:rgba(255,255,255,.06)}
.role-card[aria-pressed="true"]{border-color:var(--blue-accent);background:rgba(30,144,255,.08)}
.role-card .ric{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--navy-600);color:#fff}
.role-card .ric svg{width:22px;height:22px}
.role-card h3{margin:0;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--cream-200)}
.role-card p{margin:0;font-family:var(--font-ui);font-size:13px;line-height:1.5;color:var(--text-on-navy-soft)}
.role-check{position:absolute;top:16px;right:16px;width:20px;height:20px;border-radius:50%;
  background:var(--blue-accent);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .14s}
.role-card[aria-pressed="true"] .role-check{opacity:1}

/* ---- Panel / card ---- */
.panel{width:100%;max-width:440px;background:rgba(255,255,255,.03);
  border:1px solid rgba(199,208,227,.14);border-radius:16px;padding:36px}
.panel-wide{max-width:760px}
.eyebrow{font-family:var(--font-ui);font-size:12px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-on-navy-mute);margin:0 0 12px}
.h-hero{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--cream-200);margin:0}
.lead{font-family:var(--font-ui);font-size:16px;line-height:1.6;color:var(--text-on-navy-soft);margin:12px 0 0}

/* ---- Stepper ---- */
.steps{display:flex;align-items:center;gap:10px;margin-bottom:26px}
.step{display:flex;align-items:center;gap:10px;font-family:var(--font-ui);font-size:13px;color:var(--text-on-navy-mute)}
.step .num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12px;background:rgba(255,255,255,.06);color:var(--text-on-navy-soft)}
.step.active .num{background:var(--navy-600);color:#fff}
.step.active{color:var(--cream-200)}
.step.done .num{background:var(--blue-accent);color:#fff}
.step-bar{width:28px;height:1px;background:rgba(255,255,255,.14)}

.row-between{display:flex;align-items:center;justify-content:space-between;gap:16px}
.stack{display:flex;flex-direction:column}
