:root{
  --indigo:#452D87;--prune:#7A2A76;--framb:#B71962;--cyan:#009DD4;--red:#D6112F;
  --bg:#F0EBE9;--text:#3D3941;--mute:#6B6570;--white:#fff;--ok:#1E9E6A;
  --grad:linear-gradient(120deg,#009DD4 0%,#452D87 50%,#B71962 100%);
  --r:18px;--shadow:0 10px 30px rgba(41,24,90,.14);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:Inter,system-ui,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,.head{font-family:Poppins,Inter,sans-serif;margin:0;color:var(--indigo)}
button{font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.75em 1.4em;font-weight:700;transition:transform .12s,filter .12s,opacity .2s}
button:active{transform:scale(.97)}
button:disabled{opacity:.4;cursor:not-allowed}
.btn{background:var(--indigo);color:#fff}
.btn.framb{background:var(--framb)}
.btn.cyan{background:var(--cyan)}
.btn.ghost{background:transparent;color:var(--indigo);box-shadow:inset 0 0 0 2px var(--indigo)}
.btn.light{background:#fff;color:var(--indigo)}
input,textarea,select{font:inherit;border:2px solid #DDD5D2;border-radius:12px;padding:.7em .9em;background:#fff;color:var(--text);width:100%}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--cyan)}
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.3em .9em;border-radius:999px;font-size:.78em;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#E6E1F3;color:var(--indigo)}
.pill.framb{background:#F7E1EB;color:var(--framb)}
.pill.white{background:#fff;color:var(--indigo)}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow)}
.mute{color:var(--mute)}
.hidden{display:none!important}
.money{font-variant-numeric:tabular-nums}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:#fff;padding:.8em 1.3em;border-radius:12px;font-weight:600;z-index:99;box-shadow:var(--shadow);max-width:90vw;text-align:center}
.toast.err{background:var(--red)}
.conn{position:fixed;top:10px;right:10px;font-size:12px;padding:.25em .7em;border-radius:999px;background:var(--red);color:#fff;z-index:99}
