/* France Wealth Check — UI styles (V1, provisional identity) */
.fwc{
  --fwc-bg:#F1F2F0; --fwc-surface:#FFFFFF; --fwc-ink:#14202B; --fwc-muted:#5A6570; --fwc-line:#D8DDE1;
  --fwc-accent:#1E3A5F; --fwc-accent-ink:#FFFFFF; --fwc-accent-soft:#E6ECF3; --fwc-brass:#9A7B4F;
  --fwc-panel:#16283D; --fwc-panel-ink:#EEF2F6; --fwc-panel-muted:#AFBCCB;
  --fwc-ok:#2F6B4F; --fwc-warn:#8A5A12; --fwc-alert:#9B2F2F;
  --fwc-serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --fwc-sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fwc-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  color:var(--fwc-ink); font-family:var(--fwc-sans); font-size:16px; line-height:1.55;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .fwc{
  --fwc-bg:#0E141A; --fwc-surface:#151E27; --fwc-ink:#E6EAEE; --fwc-muted:#9AA6B2; --fwc-line:#27323D;
  --fwc-accent:#9DB9DA; --fwc-accent-ink:#0E141A; --fwc-accent-soft:#1C2A3A; --fwc-brass:#C9A874;
  --fwc-panel:#1B2C40; --fwc-panel-ink:#EEF2F6; --fwc-panel-muted:#AFBCCB; --fwc-ok:#7FC3A0; --fwc-warn:#E0B36A; --fwc-alert:#E89A9A;}}
:root[data-theme="dark"] .fwc{
  --fwc-bg:#0E141A; --fwc-surface:#151E27; --fwc-ink:#E6EAEE; --fwc-muted:#9AA6B2; --fwc-line:#27323D;
  --fwc-accent:#9DB9DA; --fwc-accent-ink:#0E141A; --fwc-accent-soft:#1C2A3A; --fwc-brass:#C9A874;
  --fwc-panel:#1B2C40; --fwc-panel-ink:#EEF2F6; --fwc-panel-muted:#AFBCCB; --fwc-ok:#7FC3A0; --fwc-warn:#E0B36A; --fwc-alert:#E89A9A;}
.fwc *{box-sizing:border-box}
.fwc-shell{background:var(--fwc-bg); min-height:100%; padding-block:0 48px}
.fwc-top{display:flex; justify-content:space-between; align-items:center; gap:12px; max-width:640px; margin-inline:auto; padding-block:20px 8px}
.fwc-mark{font-family:var(--fwc-serif); font-size:1.15rem; letter-spacing:.01em}
.fwc-mark span{color:var(--fwc-brass)}
.fwc-tool{font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--fwc-muted)}
.fwc-card{max-width:640px; margin-inline:auto; background:var(--fwc-surface); border:1px solid var(--fwc-line); border-radius:4px; padding:clamp(22px,5vw,44px)}
.fwc-progress{height:2px; background:var(--fwc-line); margin:-1px 0 28px; position:relative}
.fwc-progress i{position:absolute; inset:0 auto 0 0; background:var(--fwc-brass); transition:width .3s ease}
.fwc-step{font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--fwc-muted); margin:0 0 10px}
.fwc h1,.fwc h2,.fwc h3{font-family:var(--fwc-serif); font-weight:500; letter-spacing:-.01em; text-wrap:balance; margin:0}
.fwc h1{font-size:clamp(2rem,6vw,2.7rem); line-height:1.08}
.fwc h2{font-size:clamp(1.45rem,4.2vw,1.85rem); line-height:1.2}
.fwc h3{font-size:1.2rem; line-height:1.3}
.fwc p{margin:0}
.fwc-sub{color:var(--fwc-muted); margin-top:10px; max-width:52ch}
.fwc-eyebrow{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--fwc-brass); margin-bottom:14px}
.fwc-list{list-style:none; padding:0; margin:26px 0 0; display:grid; gap:12px}
.fwc-list li{display:grid; grid-template-columns:18px 1fr; gap:12px; align-items:start}
.fwc-list li::before{content:""; width:7px; height:7px; margin-top:.55em; background:var(--fwc-brass); transform:rotate(45deg); justify-self:center}
.fwc-options{display:grid; gap:10px; margin-top:24px}
.fwc-opt{display:flex; align-items:center; gap:14px; width:100%; text-align:left; background:var(--fwc-surface); color:var(--fwc-ink);
  border:1px solid var(--fwc-line); border-radius:3px; padding:15px 16px; font:inherit; cursor:pointer; transition:border-color .15s, background .15s}
.fwc-opt:hover{border-color:var(--fwc-accent)}
.fwc-opt:focus-visible,.fwc-btn:focus-visible,.fwc-link:focus-visible,.fwc input:focus-visible,.fwc textarea:focus-visible,.fwc select:focus-visible{outline:2px solid var(--fwc-accent); outline-offset:2px}
.fwc-opt[aria-pressed="true"]{border-color:var(--fwc-accent); background:var(--fwc-accent-soft)}
.fwc-mark-box{flex:none; width:18px; height:18px; border:1px solid var(--fwc-muted); border-radius:50%; display:grid; place-items:center}
.fwc-opt.multi .fwc-mark-box{border-radius:2px}
.fwc-opt[aria-pressed="true"] .fwc-mark-box{border-color:var(--fwc-accent); background:var(--fwc-accent)}
.fwc-opt[aria-pressed="true"] .fwc-mark-box::after{content:""; width:6px; height:6px; background:var(--fwc-accent-ink); border-radius:inherit}
.fwc-actions{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px; flex-wrap:wrap}
.fwc-btn{appearance:none; border:1px solid var(--fwc-accent); background:var(--fwc-accent); color:var(--fwc-accent-ink); font:inherit; font-weight:600;
  padding:14px 22px; border-radius:3px; cursor:pointer; letter-spacing:.01em}
.fwc-btn[disabled]{opacity:.4; cursor:not-allowed}
.fwc-btn.ghost{background:transparent; color:var(--fwc-accent)}
.fwc-btn.light{background:var(--fwc-panel-ink); color:var(--fwc-panel); border-color:var(--fwc-panel-ink)}
.fwc-link{background:none; border:0; padding:6px 0; color:var(--fwc-muted); font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.fwc-fine{font-size:.82rem; color:var(--fwc-muted); margin-top:18px}
.fwc-meta{display:flex; flex-wrap:wrap; gap:6px 16px; font-size:.85rem; color:var(--fwc-muted); margin-top:22px}
.fwc textarea,.fwc input[type=text],.fwc input[type=email],.fwc input[type=tel],.fwc select{width:100%; font:inherit; color:var(--fwc-ink); background:var(--fwc-surface);
  border:1px solid var(--fwc-line); border-radius:3px; padding:12px 14px}
.fwc textarea{min-height:130px; resize:vertical; margin-top:22px}
.fwc-count{font-size:.78rem; color:var(--fwc-muted); text-align:right; margin-top:6px}
.fwc-computing{text-align:center; padding-block:60px}
.fwc-dots{display:inline-flex; gap:6px; margin-top:18px}
.fwc-dots i{width:6px; height:6px; background:var(--fwc-brass); transform:rotate(45deg); animation:fwcpulse 1s infinite ease-in-out}
.fwc-dots i:nth-child(2){animation-delay:.15s}.fwc-dots i:nth-child(3){animation-delay:.3s}
@keyframes fwcpulse{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion: reduce){.fwc-dots i{animation:none}.fwc-progress i{transition:none}}
/* result */
.fwc-cx{margin-top:26px; padding:18px 0; border-block:1px solid var(--fwc-line); display:grid; gap:10px}
.fwc-cx-row{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap}
.fwc-cx-label{font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--fwc-muted)}
.fwc-cx-value{font-family:var(--fwc-serif); font-size:1.35rem}
.fwc-meter{display:grid; grid-template-columns:repeat(4,1fr); gap:4px}
.fwc-meter i{height:4px; background:var(--fwc-line)}
.fwc-meter i.on{background:var(--fwc-brass)}
.fwc-cx-why{font-size:.9rem; color:var(--fwc-muted)}
.fwc-lead{margin-top:22px}
.fwc-blocks{display:grid; gap:0; margin-top:10px}
.fwc-block{padding:22px 0; border-bottom:1px solid var(--fwc-line); display:grid; gap:8px}
.fwc-block .n{font-family:var(--fwc-mono); font-size:.75rem; color:var(--fwc-brass)}
.fwc-block.locked p{color:var(--fwc-muted)}
.fwc-lock{font-size:.8rem; letter-spacing:.04em; color:var(--fwc-brass)}
.fwc-qs{margin:6px 0 0; padding-left:1.1em; color:var(--fwc-muted); font-size:.93rem; display:grid; gap:4px}
.fwc-panel{margin-top:30px; background:var(--fwc-panel); color:var(--fwc-panel-ink); border-radius:4px; padding:clamp(22px,5vw,36px); display:grid; gap:14px}
.fwc-panel h3{color:var(--fwc-panel-ink); font-size:1.45rem}
.fwc-panel p{color:var(--fwc-panel-muted)}
.fwc-panel .fwc-link{color:var(--fwc-panel-muted)}
.fwc-panel label,.fwc-panel .fwc-fine{color:var(--fwc-panel-muted)}
.fwc-panel input,.fwc-panel select,.fwc-panel textarea{background:#fff; color:#14202B; border-color:transparent}
.fwc-note{border-left:2px solid var(--fwc-brass); padding-left:12px; font-size:.92rem}
.fwc-form{display:grid; gap:12px}
.fwc-form .row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:520px){.fwc-form .row{grid-template-columns:1fr}}
.fwc-form label{display:grid; gap:6px; font-size:.88rem}
.fwc-check{display:grid !important; grid-template-columns:18px 1fr; gap:10px; align-items:start; font-size:.85rem}
.fwc-check input{margin-top:3px; width:16px; height:16px}
.fwc-err{color:var(--fwc-alert); font-size:.85rem}
.fwc-panel .fwc-err{color:#F3B4B4}
.fwc-days,.fwc-times{display:flex; flex-wrap:wrap; gap:8px}
.fwc-chip{border:1px solid rgba(255,255,255,.35); background:transparent; color:var(--fwc-panel-ink); font:inherit; padding:9px 12px; border-radius:3px; cursor:pointer; font-variant-numeric:tabular-nums}
.fwc-chip[aria-pressed="true"]{background:var(--fwc-panel-ink); color:var(--fwc-panel)}
.fwc-success{border:1px solid var(--fwc-line); border-left:3px solid var(--fwc-ok); padding:14px 16px; margin-top:22px}
.fwc-docs{margin-top:26px}
.fwc-docs ul{margin:10px 0 0; padding-left:1.1em; display:grid; gap:4px}
.fwc-legal{max-width:640px; margin:18px auto 0; font-size:.78rem; color:var(--fwc-muted)}
/* debug panel (prototype only) */
.fwc-debug{font-family:var(--fwc-mono); font-size:12px; background:var(--fwc-surface); border:1px solid var(--fwc-line); color:var(--fwc-ink)}
.fwc-debug h4{font-family:var(--fwc-sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--fwc-muted); margin:16px 0 8px}
.fwc-debug button{font:inherit; border:1px solid var(--fwc-line); background:var(--fwc-bg); color:var(--fwc-ink); border-radius:3px; padding:6px 8px; cursor:pointer; text-align:left}
.fwc-debug button:hover{border-color:var(--fwc-accent)}
.fwc-debug pre{white-space:pre-wrap; word-break:break-word; margin:0; background:var(--fwc-bg); padding:10px; border-radius:3px; max-height:320px; overflow:auto}
.fwc-kv{display:grid; grid-template-columns:auto 1fr; gap:3px 10px}
.fwc-kv b{font-weight:500; color:var(--fwc-muted)}
.fwc-pill{display:inline-block; padding:2px 6px; border-radius:2px; background:var(--fwc-accent-soft); color:var(--fwc-ink); margin:0 4px 4px 0}
.fwc-scn{display:grid; gap:6px}
.fwc-scn div{display:flex; gap:6px}
.fwc-scn div button:first-child{flex:1}
.fwc-log{display:grid; gap:4px; max-height:260px; overflow:auto}
.fwc-log div{border-bottom:1px dashed var(--fwc-line); padding-bottom:4px}
