/* /launch — formulaire + récapitulatif collant (s'ajoute à base.css + site.css) */
.head { padding: 34px 0 22px; }
.head h1 { font: 400 clamp(2.3rem, 4.4vw, 3.8rem)/1.04 var(--f-title); letter-spacing: -.02em; margin: .3em 0 .4em; max-width: 22ch; }
.head h1 em { display: block; font-weight: 400; font-size: .42em; line-height: 1.3; color: var(--ink-2); margin-top: .5em; max-width: 46ch; letter-spacing: 0; }
.closed { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; border: 1px dashed var(--ink); padding: 16px 18px; max-width: 900px; }
.closed ul { margin: .5em 0 0; padding-left: 1.1em; color: var(--ink-2); font-size: .93rem; }
.closed ul li::marker { color: var(--pollen); }

.launch { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 34px; align-items: start; padding-bottom: 50px; }
.sheet.form { background: color-mix(in oklab, var(--paper-2) 75%, var(--paper)); box-shadow: inset 0 0 0 1px var(--rule-strong); padding: 30px 32px; display: grid; gap: 18px; }
.form label { display: grid; gap: 7px; font: 400 .95rem/1.2 var(--f-title); }
.form .hint { font: 400 .72rem/1 var(--f-num); color: var(--ink-2); letter-spacing: .03em; }
.form .hint.bad { color: var(--pollen); }
.form label { grid-template-columns: 1fr auto; }
.form label > input, .form label > select, .form label > textarea, .form label > small { grid-column: 1 / -1; }
.form input, .form select, .form textarea { font: 400 1rem/1.4 var(--f-text); color: var(--ink); background: var(--paper); border: 1px solid var(--rule-strong);
  border-radius: 2px; padding: .7em .8em; width: 100%; }
.form input[name="ticker"] { font-family: var(--f-num); letter-spacing: .06em; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--pollen); box-shadow: 0 0 0 3px var(--pollen-soft); }
.form input::placeholder, .form textarea::placeholder { color: color-mix(in oklab, var(--ink-2) 60%, transparent); }
.form input[type="file"] { padding: .55em; font-size: .88rem; }
.form small { font: italic .84rem/1.4 var(--f-text); color: var(--ink-2); }
.form .two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form .err { margin: 0; min-height: 1.3em; font: italic .92rem/1.4 var(--f-text); color: var(--pollen); }
.form .btn-plant { justify-self: start; }
.form .btn-plant[disabled] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

.recap { position: sticky; top: 18px; }
.recap-in { border: 1px solid var(--rule-strong); padding: 24px 26px; }
.preview { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.preview svg { width: 110px; height: 118px; overflow: visible; }
.preview h2 { font: 400 1.5rem/1.15 var(--f-title); margin: 0; word-break: break-word; }
.preview .tk { margin: .3em 0; color: var(--pollen); font-weight: 700; }
.preview .cap { margin: 0; font: italic .82rem/1.35 var(--f-text); color: var(--ink-2); }
.recap .k { font: 400 .72rem/1 var(--f-num); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); margin: 20px 0 8px; }
.recap .bar.split { height: 40px; margin: 0 0 6px; }
.recap .bar.split span { font-size: .78rem; }
.recap .small { font-size: .88rem; color: var(--ink-2); margin: .4em 0 0; }
.recap .small a { color: var(--ink); }
.recap .honest { border-top: 1px solid var(--rule); padding-top: .8em; margin-top: 1em; font-style: italic; }
ol.steps { margin: 0; padding-left: 1.3em; font-size: .92rem; }
ol.steps li { padding: .22em 0; }
ol.steps li::marker { font-family: var(--f-num); color: var(--pollen); }

@media (max-width: 860px) {
  .head { padding: 18px 0 12px; }
  .launch { grid-template-columns: 1fr; gap: 22px; }
  .sheet.form { padding: 20px 16px; }
  .form .two { grid-template-columns: 1fr; }
  .recap { position: static; }
  .recap-in { padding: 18px 16px; }
  .closed { grid-template-columns: 1fr; }
}
.form input[type="file"]::file-selector-button { font: 400 .85rem/1 var(--f-title); color: var(--ink-on-pollen); background: var(--pollen);
  border: 0; border-radius: 999px; padding: .55em 1em; margin-right: .8em; cursor: pointer; }

/* frais Stonks (04/11 : plus de partage 70/30) et ce que la fleur reçoit dans la prairie */
.recap .fees { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 8px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.recap .fees div { padding: 10px 8px 10px 0; }
.recap .fees div + div { padding-left: 10px; border-left: 1px solid var(--rule); }
.recap .fees dt { font-size: 1.05rem; color: var(--ink); }
.recap .fees div:nth-child(n+3) dt { color: var(--pollen); }
.recap .fees dd { margin: .3em 0 0; font-size: .78rem; color: var(--ink-2); }
.recap ul.gets { margin: 0 0 6px; padding: 0; list-style: none; font-size: .92rem; }
.recap ul.gets li { padding: .35em 0; border-top: 1px solid var(--rule); color: var(--ink-2); }
.recap ul.gets b { color: var(--ink); font-weight: 500; }
.form select { width: 100%; }
@media (max-width: 860px) { .recap .fees { grid-template-columns: repeat(2, minmax(0, 1fr)); } .recap .fees div:nth-child(3) { padding-left: 0; border-left: 0; } }

/* parcours de lancement (04/11) : ligne du wallet, case d'accord, journal des étapes */
.wallet-line{margin:.4em 0 0;font-size:.9rem;color:var(--ink-2)}
.agree{display:flex;gap:.6em;align-items:flex-start;font-size:.9rem;color:var(--ink);margin:.6em 0 0}
.agree input{margin-top:.25em;accent-color:var(--pollen);width:auto}
.launch-log{list-style:none;margin:14px 0 0;padding:0;font:400 .82rem/1.5 var(--f-num)}
.launch-log li{padding:.45em 0;border-top:1px solid var(--rule);color:var(--ink-2);word-break:break-word}
.launch-log li.ok{color:var(--ink)}
.launch-log li.ok::before{content:"✓ ";color:var(--pollen)}
.launch-log li.bad{color:#f0a48a}
.launch-log a{color:var(--pollen)}
.mono-line .num{word-break:break-all}
