:root {
  --navy: #121833;
  --navy-soft: #172437;
  --panel: #eef1f6;
  --field: #ffffff;
  --field-hover: #f8f9fd;
  --line: #dfe5ef;
  --text: #121833;
  --muted: #536078;
  --quiet: #7a8499;
  --yellow: #ffd21f;
  --yellow-pressed: #e8bf13;
  --success: #27c281;
  --danger: #ff5f5f;
}

* { box-sizing: border-box; }

html {
  min-height: 100%;
  background: #fff;
}

body {
  min-height: 100vh;
  margin: 0;
  font-family: Urbanist, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: #fff;
}

body::before {
  display: none;
}

a { color: inherit; }

.onboarding-account-email {
  position: fixed;
  top: 18px;
  right: 24px;
  z-index: 40;
  max-width: min(360px, calc(100vw - 48px));
  padding: 10px 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--navy);
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 24, 51, .08);
  font-size: 13px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shell {
  width: min(1480px, 100%);
  min-height: 100vh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
}

.aside {
  min-height: 100vh;
  padding: 38px 34px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 44px;
  border-right: 0;
  color: #fff;
  background: var(--navy);
}

.brand {
  width: fit-content;
  min-height: 44px;
  padding: 8px 16px 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 999px;
  color: #07111a;
  background: var(--yellow);
  font-size: 15px;
  font-weight: 900;
}

.brand img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.aside h1 {
  max-width: 340px;
  margin: 36px 0 16px;
  font-size: clamp(38px, 4vw, 58px);
  line-height: .98;
  letter-spacing: 0;
  color: #fff;
}

.aside p {
  max-width: 350px;
  margin: 0;
  color: rgba(255, 255, 255, .72);
  font-size: 16px;
  line-height: 1.55;
}

.steps {
  display: grid;
  gap: 6px;
}

.step {
  min-height: 38px;
  padding: 7px 10px;
  display: flex;
  align-items: center;
  gap: 11px;
  border-radius: 12px;
  color: rgba(255, 255, 255, .52);
  font-size: 14px;
  font-weight: 800;
}

.dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .22);
}

.step.is-active {
  color: #fff;
  background: rgba(255, 255, 255, .09);
}

.step.is-active .dot {
  background: var(--yellow);
  box-shadow: 0 0 0 5px rgba(255, 210, 31, .12);
}

.step.is-done .dot { background: var(--success); }

.step.is-invalid .dot {
  background: var(--danger);
  box-shadow: 0 0 0 5px rgba(255, 95, 95, .1);
}

.main {
  min-width: 0;
  padding: 38px clamp(22px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.panel {
  width: min(100%, 860px);
  padding: clamp(22px, 4vw, 42px);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--panel);
  box-shadow: 0 22px 60px rgba(18, 24, 51, .1);
  animation: panel-in .38s ease both;
}

@keyframes panel-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

.topline {
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.progress {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe5ef;
}

.progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--yellow);
  box-shadow: 0 0 18px rgba(255, 210, 31, .34);
  transition: width .25s ease;
}

h2 {
  margin: 28px 0 12px;
  color: var(--navy);
  font-size: clamp(32px, 4vw, 46px);
  line-height: 1.02;
  letter-spacing: 0;
}

.lead {
  max-width: 720px;
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.55;
}

.grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.field {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.field.full { grid-column: 1 / -1; }

label {
  color: var(--text);
  font-size: 14px;
  font-weight: 800;
}

input,
textarea,
select {
  width: 100%;
  min-height: 56px;
  padding: 15px 16px;
  border: 1px solid #dfe5ef;
  border-radius: 18px;
  outline: none;
  color: var(--text);
  background: var(--field);
  font: inherit;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

input::placeholder,
textarea::placeholder { color: #929bae; }

input:hover,
textarea:hover,
select:hover { background: var(--field-hover); }

input:focus,
textarea:focus,
select:focus {
  border-color: rgba(255, 210, 31, .55);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255, 210, 31, .1);
}

select {
  color-scheme: light;
}

textarea {
  min-height: 120px;
  resize: vertical;
}

.actions {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.btn {
  min-height: 56px;
  padding: 14px 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 18px;
  color: #07111a;
  background: var(--yellow);
  box-shadow: 0 10px 24px rgba(255, 210, 31, .16);
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  text-decoration: none;
  transition: transform .16s ease, background .16s ease, opacity .16s ease;
}

.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); background: var(--yellow-pressed); }

.btn.secondary {
  color: var(--text);
  background: #fff;
  border: 1px solid #dfe5ef;
  box-shadow: none;
}

.btn.secondary:hover { background: #f8f9fd; }

.btn:disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}

.msg {
  min-height: 22px;
  margin-top: 15px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 800;
}

.msg.error { color: var(--danger); }
.msg.success { color: var(--success); }

.list {
  margin: 24px 0;
  display: grid;
  gap: 10px;
}

.item {
  min-height: 72px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}

.item strong { color: var(--navy); }
.item small { color: var(--muted); }
.item input[type="file"] { margin-top: 8px; }

.document-item {
  align-items: flex-start;
}

.document-files {
  margin-top: 8px;
  display: grid;
  gap: 7px;
}

.document-file {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.document-file a {
  color: var(--navy);
  font-weight: 900;
  overflow-wrap: anywhere;
}

.document-remove {
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 95, 95, .25);
  border-radius: 999px;
  color: var(--danger);
  background: rgba(255, 95, 95, .08);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.document-remove:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.document-upload {
  margin-top: 10px;
}

.document-selected {
  margin-top: 7px;
  display: grid;
  gap: 5px;
}

.document-selected span {
  color: var(--navy);
  font-size: 13px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.document-limit {
  display: block;
  margin-top: 10px;
  font-weight: 900;
}

.badge {
  min-height: 34px;
  padding: 7px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--muted);
  background: #e6ebf2;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.badge.sent,
.badge.validated,
.badge.complete {
  color: #8be4bb;
  background: rgba(39, 194, 129, .14);
}

.badge.pending {
  color: var(--yellow);
  background: rgba(255, 210, 31, .12);
}

.badge.refused,
.badge.incomplete {
  color: #ff9999;
  background: rgba(255, 95, 95, .13);
}

.check {
  margin-bottom: 10px;
  padding: 13px 14px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border-radius: 16px;
  color: var(--muted);
  background: #f7f8fe;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.check input {
  width: 22px;
  min-height: 22px;
  height: 22px;
  flex: 0 0 22px;
  margin: 0;
  accent-color: var(--yellow);
}

.notice {
  padding: 18px;
  border: 1px solid rgba(255, 210, 31, .22);
  border-radius: 18px;
  color: var(--text);
  background: #fff2c3;
  font-weight: 800;
  line-height: 1.5;
}

.subscription-grid{display:grid;grid-template-columns:repeat(var(--plan-count,3),minmax(0,1fr));gap:14px}
.subscription-grid.is-unified{max-width:620px;margin:0 auto}
.subscription-card.is-unified{cursor:default;background:#f4fbf5}
.subscription-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px;border:2px solid var(--line);border-radius:22px;background:#fff;cursor:pointer;transition:.18s ease}
.subscription-card:hover{transform:translateY(-2px);border-color:#c5ccda}
.subscription-card.is-selected{border-color:var(--yellow);box-shadow:0 0 0 4px rgba(255,210,31,.16)}
.subscription-card.is-locked{cursor:default}
.subscription-card.is-locked:not(.is-selected){opacity:.62}
.subscription-card.is-featured::before{content:"Recommandé";position:absolute;top:-12px;right:14px;padding:6px 10px;border-radius:999px;background:var(--yellow);font-size:11px;font-weight:900}
.subscription-card input{position:absolute;opacity:0;pointer-events:none}
.subscription-card h3{margin:0;font-size:22px}
.subscription-price{font-size:27px;font-weight:900}
.subscription-price small{font-size:13px;color:var(--muted)}
.subscription-description{min-height:66px;color:var(--muted);font-size:14px;line-height:1.45}
.subscription-features{margin:0;padding:0;display:grid;gap:7px;list-style:none;font-size:13px}
.subscription-features li{display:flex;gap:7px}
.subscription-features .yes{color:#137333}
.subscription-features .no{color:#a02b2b}
.subscription-access-count{padding:10px 12px;border-radius:13px;background:#f7f8fa;color:var(--muted);font-size:13px}
.subscription-access-count b{color:var(--text);font-size:18px}
.subscription-access-link{color:#555;font-size:12px;font-weight:800}
.subscription-billing-note{display:flex;flex-direction:column;gap:5px;margin:18px 0;padding:14px 16px;border:1px solid #d8e5d9;border-radius:16px;background:#f4fbf5;color:#244b2a;font-size:13px;line-height:1.45}
.subscription-comparison{margin-top:20px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.subscription-comparison-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:18px 20px;background:#f8f9fb;border-bottom:1px solid var(--line)}
.subscription-comparison-head>div>span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.subscription-comparison-head h3{margin:4px 0 0;font-size:20px}
.subscription-comparison-head p{margin:0;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}
.subscription-comparison-table{overflow-x:auto}
.comparison-row{display:grid;grid-template-columns:minmax(210px,1.8fr) repeat(var(--plan-count),minmax(90px,1fr));align-items:center;min-width:560px;border-bottom:1px solid var(--line)}
.comparison-row>span,.comparison-row>strong{padding:10px 13px;text-align:center;font-size:13px}
.comparison-row>span:first-child,.comparison-row>strong:first-child{text-align:left}
.comparison-header{position:sticky;top:0;background:#fff;z-index:1}
.comparison-header strong{font-size:12px}
.comparison-section{min-width:560px;padding:9px 13px;background:#f3f5f8;color:#606875;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.comparison-icon{font-size:17px!important;font-weight:900}
.comparison-icon.yes{color:#137333}
.comparison-icon.no{color:#a02b2b}
.subscription-comparison-empty{padding:18px;color:var(--muted)}

.company-autocomplete-list,
.company-autocomplete-results {
  border-color: var(--line) !important;
  color: var(--text) !important;
  background: #fff !important;
}

@media (max-width: 900px) {
  .subscription-grid{grid-template-columns:1fr}
  .subscription-description{min-height:0}
  .subscription-comparison-head{align-items:flex-start;flex-direction:column}
  .shell {
    min-height: 100vh;
    display: block;
  }

  .onboarding-account-email {
    position: absolute;
    top: 78px;
    right: 16px;
    max-width: calc(100vw - 32px);
  }

  .aside {
    min-height: 0;
    padding: 20px 20px 14px;
    display: block;
    border-right: 0;
    background: var(--navy);
  }

  .aside h1 {
    margin: 24px 0 10px;
    font-size: 38px;
  }

  .aside p { font-size: 15px; }

  .steps {
    margin-top: 20px;
    display: flex;
    gap: 5px;
  }

  .step {
    min-width: 0;
    flex: 1;
    min-height: 7px;
    padding: 0;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .2);
    color: transparent;
    font-size: 0;
  }

  .step.is-active { background: var(--yellow); }
  .step.is-done { background: var(--success); }
  .step.is-invalid { background: var(--danger); }
  .dot { display: none; }

  .main {
    padding: 10px 16px 28px;
    display: block;
  }

  .panel {
    padding: 22px 18px;
    border-radius: 24px;
  }
}

@media (max-width: 640px) {
  body { background-attachment: scroll; }

  .grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }

  .actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .btn { width: 100%; }

  .item {
    align-items: stretch;
    flex-direction: column;
  }

  .badge { align-self: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .panel { animation: none; }
  .btn,
  .progress span { transition: none; }
}
