/* ============ Gloossip Girl · sistema de diseño base ============ */
@font-face{font-family:"Montserrat";font-weight:400;font-display:swap;src:url(/static/vendor/fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:500;font-display:swap;src:url(/static/vendor/fonts/montserrat-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:600;font-display:swap;src:url(/static/vendor/fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:700;font-display:swap;src:url(/static/vendor/fonts/montserrat-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-display:swap;src:url(/static/vendor/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:600;font-display:swap;src:url(/static/vendor/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:700;font-display:swap;src:url(/static/vendor/fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(/static/vendor/fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Great Vibes";font-weight:400;font-display:swap;src:url(/static/vendor/fonts/great-vibes-latin-400-normal.woff2) format("woff2")}
/* Los números siempre en Montserrat (en la letra de títulos se veían chuecos) */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;size-adjust:86%;src:url(/static/vendor/fonts/montserrat-latin-400-normal.woff2) format("woff2");unicode-range:U+0024-0025,U+0030-0039}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;size-adjust:86%;src:url(/static/vendor/fonts/montserrat-latin-500-normal.woff2) format("woff2");unicode-range:U+0024-0025,U+0030-0039}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:700;font-display:swap;size-adjust:86%;src:url(/static/vendor/fonts/montserrat-latin-600-normal.woff2) format("woff2");unicode-range:U+0024-0025,U+0030-0039}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;size-adjust:86%;src:url(/static/vendor/fonts/montserrat-latin-400-normal.woff2) format("woff2");unicode-range:U+0024-0025,U+0030-0039}
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;size-adjust:86%;src:url(/static/vendor/fonts/montserrat-latin-400-normal.woff2) format("woff2");unicode-range:U+0024-0025,U+0030-0039}

:root{
  --blush:#F9F0F1; --blush-2:#F4E4E5; --blush-3:#EED5D3; --paper:#fff;
  --ink:#2B1E20; --ink-2:#6B5558; --ink-3:#9C8588;
  --rose-900:#6F3835; --rose-800:#7F423F; --rose-700:#8B4A47; --rose-600:#A5645E; --rose-500:#B87F76; --rose-400:#CF9A8C; --rose-300:#E3A898; --rose-200:#F0C9BD; --rose-100:#F7E1DB;
  --line:#EBD9D6; --line-2:#F2E6E3;
  --ok:#4F8A6F; --ok-bg:#E6F2EC; --warn:#B7772B; --warn-bg:#FBF0DC; --bad:#B5483F; --bad-bg:#FAE6E3; --info:#6B6AA6; --info-bg:#EDECF8;
  --grad:linear-gradient(115deg,#8B4A47 0%,#B87F76 38%,#EDBBA9 66%,#B87F76 100%);
  --grad-text:linear-gradient(100deg,#7F423F 0%,#A5645E 55%,#C27F70 100%);
  --grad-soft:linear-gradient(135deg,#F7E1DB,#F9F0F1 60%,#F4E4E5);
  --shadow-1:0 1px 2px rgba(111,56,53,.06),0 4px 14px rgba(111,56,53,.06);
  --shadow-2:0 2px 4px rgba(111,56,53,.06),0 14px 40px rgba(111,56,53,.12);
  --shadow-3:0 30px 80px rgba(80,36,34,.25);
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px;
  --f-ui:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --f-script:"Great Vibes","Snell Roundhand",cursive;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.22,.8,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--blush);color:var(--ink);font:400 15px/1.55 var(--f-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;min-height:100dvh}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--rose-600);outline-offset:2px;border-radius:6px}
::selection{background:var(--rose-200)}

.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.i.sm{width:16px;height:16px}.i.lg{width:24px;height:24px}.i.xl{width:32px;height:32px}
.i.fill{fill:currentColor;stroke:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s,opacity .2s;white-space:nowrap;position:relative;overflow:hidden}
.btn:active{transform:scale(.97)}
.btn.primary{color:#fff;background:linear-gradient(115deg,#8B4A47,#B87F76 55%,#C9917F);box-shadow:0 8px 22px rgba(139,74,71,.32),inset 0 1px 0 rgba(255,255,255,.25)}
.btn.primary:hover{box-shadow:0 12px 30px rgba(139,74,71,.42),inset 0 1px 0 rgba(255,255,255,.3);transform:translateY(-1px)}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn.primary:hover::after{transform:translateX(120%)}
.btn.ghost{border:1px solid var(--rose-300);color:var(--rose-700);background:rgba(255,255,255,.55)}
.btn.ghost:hover{background:#fff;border-color:var(--rose-500)}
.btn.soft{background:var(--rose-100);color:var(--rose-800)}
.btn.soft:hover{background:var(--rose-200)}
.btn.danger{background:var(--bad-bg);color:var(--bad)}
.btn.sm{min-height:38px;padding:0 16px;font-size:11.5px}
.btn.block{width:100%}
.btn[disabled]{opacity:.45;pointer-events:none}
.icon-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--rose-800);transition:background .2s,transform .2s;position:relative}
.icon-btn:hover{background:var(--rose-100)}
.icon-btn:active{transform:scale(.92)}

/* formularios */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field>label,.lbl{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.input,.select,.textarea{width:100%;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .2s,box-shadow .2s;font-size:16px}
.textarea{min-height:84px;resize:vertical;line-height:1.45}
.input::placeholder,.textarea::placeholder{color:var(--ink-3)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--rose-500);box-shadow:0 0 0 4px rgba(184,127,118,.18)}
.select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B4A47' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:5px;background:var(--blush-2);border-radius:16px}
.seg button,.seg label{min-height:42px;border-radius:12px;font-size:12.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;justify-content:center;gap:7px;text-align:center;transition:all .2s;cursor:pointer;padding:0 8px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg .on,.seg button[aria-pressed="true"]{background:#fff;color:var(--rose-800);box-shadow:var(--shadow-1)}
.seg label span{display:inline-flex;align-items:center;gap:7px}
.seg label:has(input:checked){background:#fff;color:var(--rose-800);box-shadow:var(--shadow-1)}
.hint{font-size:12.5px;color:var(--ink-3);line-height:1.45}
.hint.err{color:var(--bad)}

/* insignias */
.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--rose-100);color:var(--rose-800)}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info)}
.badge.dark{background:var(--ink);color:#fff}

/* toast */
.toast-host{position:fixed;left:0;right:0;bottom:calc(24px + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:8px;z-index:200;pointer-events:none;padding:0 16px}
.toast{background:var(--ink);color:#fff;padding:13px 20px;border-radius:16px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-3);display:flex;align-items:center;gap:10px;max-width:440px;animation:toastIn .35s var(--ease)}
.toast.err{background:var(--bad)}
.toast.ok .i{color:#9fe0c0}
@keyframes toastIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}

/* sparkles decorativos */
.spark{color:var(--rose-300);display:inline-block}
.script{font-family:var(--f-script);font-weight:400}
.display{font-family:var(--f-display);font-weight:600;letter-spacing:-.01em}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}

@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
