:root{
  --blush:#FBF1F4; --petal:#F3D3DE; --wash:#E8A9BD; --rose:#B84872; --rose-deep:#8F2F55;
  --gold:#B8902F; --gold-soft:#EAD9A6; --ink:#2A1A2E; --mute:#76667A; --ok:#2F7D57; --ok-bg:#DFF2E7;
}
*{-webkit-tap-highlight-color:transparent}
html{background:var(--petal)}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--blush);margin:0}
[x-cloak]{display:none!important}
span[x-html]{display:inline-block;flex:none}
span[x-html]>svg{display:block}
.font-display{font-family:'Cormorant Garamond',Georgia,serif}

/* Marco de móvil en pantallas grandes */
#shell{max-width:440px;margin:0 auto;min-height:100dvh;background:var(--blush);position:relative;
  background-image:radial-gradient(1200px 380px at 50% -120px,rgba(232,169,189,.35),transparent 70%)}
@media(min-width:700px){
  html{background:linear-gradient(160deg,#F3D3DE,#EBC2D1)}
  #shell{box-shadow:0 30px 80px rgba(42,26,46,.28);border-left:1px solid var(--gold-soft);border-right:1px solid var(--gold-soft)}
}

/* Retrato circular con aro dorado: es el sello de la marca */
.crest{border-radius:9999px;overflow:hidden;box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--gold);background:#fff;flex:none}
.crest img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);display:block}

.card{background:#fff;border:1px solid var(--petal);border-radius:20px;box-shadow:0 1px 0 rgba(184,144,47,.12),0 8px 22px -14px rgba(143,47,85,.35)}
.press{transition:transform .12s ease,box-shadow .12s ease;display:block}
.press:active{transform:scale(.985)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:700;border-radius:14px;padding:.8rem 1.1rem;min-height:48px;transition:transform .1s ease,background .15s;text-align:center;line-height:1.15}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--rose);color:#fff;box-shadow:0 8px 18px -10px var(--rose-deep)}
.btn-primary:disabled{opacity:.45}
.btn-dark{background:var(--ink);color:#fff}
.btn-ghost{background:#fff;border:1.5px solid var(--petal);color:var(--ink)}
.btn-gold{background:var(--gold-soft);color:#5b4410}
.btn-ok{background:var(--ok-bg);color:var(--ok)}
.btn-sm{min-height:40px;padding:.5rem .85rem;font-size:.875rem;border-radius:12px}
.chip{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.12rem .6rem;font-size:.75rem;font-weight:700;white-space:nowrap}
.chip-pre{background:#FFF1CF;color:#7A5A00;border:1px dashed var(--gold)}
.chip-conf{background:var(--petal);color:var(--rose-deep)}
.chip-done{background:#ECE7EE;color:#5E5062}
.chip-cancel{background:#F4E3E3;color:#8a3a3a;text-decoration:line-through}
.chip-ok{background:var(--ok-bg);color:var(--ok)}
.chip-due{background:#FCE3EA;color:var(--rose-deep)}
.chip-soon{background:var(--ink);color:var(--gold-soft)}
.chip-extra{background:#fff;color:var(--gold);border:1px solid var(--gold-soft)}

.input{width:100%;background:#fff;border:1.5px solid var(--petal);border-radius:14px;padding:.75rem .9rem;min-height:48px;font-size:1rem;color:var(--ink)}
.input:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--wash);outline-offset:2px;border-color:var(--rose)}
.label{display:block;font-size:.8rem;font-weight:700;color:var(--mute);margin:0 0 .3rem .15rem}
.seg{display:flex;background:var(--petal);border-radius:14px;padding:3px;gap:2px}
.seg button{flex:1;border-radius:11px;padding:.55rem .4rem;font-weight:700;font-size:.85rem;color:var(--rose-deep);min-height:40px}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 2px 6px rgba(42,26,46,.12)}

/* Navegación inferior */
#nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:440px;z-index:30;
  background:rgba(42,26,46,.97);padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-around}
.nb{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:#C9B7CD;font-size:.68rem;font-weight:700;padding:.35rem 0;min-height:52px;justify-content:center}
.nb.on{color:var(--gold-soft)}
.nb svg{width:22px;height:22px}
.fab{width:58px;height:58px;border-radius:9999px;background:var(--rose);color:#fff;display:flex;align-items:center;justify-content:center;margin-top:-26px;box-shadow:0 0 0 4px var(--ink),0 0 0 5.5px var(--gold),0 12px 22px -8px rgba(0,0,0,.5)}
.fab svg{width:26px;height:26px}
.page{padding-bottom:110px}

/* Calendario */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cd{aspect-ratio:1/1.08;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5px;font-weight:700;font-size:.9rem;background:#fff;border:1px solid transparent;position:relative}
.cd.out{opacity:.35;background:transparent}
.cd.today{border-color:var(--gold)}
.cd.sel{background:var(--ink);color:#fff}
.cd.blk{background:repeating-linear-gradient(45deg,#f1e7ea,#f1e7ea 5px,#fff 5px,#fff 10px);color:var(--mute)}
.cd .dots{display:flex;gap:3px;margin-top:4px;flex-wrap:wrap;justify-content:center;max-width:90%}
.cd .dot{width:7px;height:7px;border-radius:9999px;box-shadow:0 0 0 1px rgba(255,255,255,.9)}
.cd.pre-dot .dot{opacity:.55}

/* Hoja inferior */
.sheet-bg{position:fixed;inset:0;background:rgba(42,26,46,.5);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:440px;max-height:88dvh;overflow:auto;background:var(--blush);border-radius:26px 26px 0 0;padding:1rem 1rem calc(1.2rem + env(safe-area-inset-bottom));animation:up .22s ease}
.sheet::before{content:"";display:block;width:44px;height:5px;border-radius:9px;background:var(--wash);margin:0 auto .9rem}
@keyframes up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:14px;padding:.7rem 1rem;font-weight:700;font-size:.9rem;z-index:60;box-shadow:0 10px 24px -8px rgba(0,0,0,.5);max-width:90%;text-align:center;border:1px solid var(--gold)}

/* Tarjeta-pergamino con QR */
.parch{background:radial-gradient(circle at 20% 15%,#fffaf0,#F7E9CC 70%);border:2px solid var(--gold);border-radius:18px;position:relative;overflow:hidden;color:#3b2a14}
.parch::after{content:"";position:absolute;inset:5px;border:1px solid rgba(184,144,47,.55);border-radius:13px;pointer-events:none}
.sheetA4{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qrbox img,.qrbox canvas{display:block;margin:auto}

/* Resumen para WhatsApp */
.summary{background:linear-gradient(170deg,#fff,#FBE4EC);border:2px solid var(--gold);border-radius:22px}

.tag-mock{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:70;width:100%;max-width:440px;background:var(--gold);color:#fff;font-size:.72rem;font-weight:700;text-align:center;padding:.25rem}

@media print{
  body{background:#fff}
  #shell>*:not(.print-area){display:none!important}
  #nav,.toast,.tag-mock,.noprint{display:none!important}
  .print-area{display:block!important;padding:0!important}
  .print-area .sheetA4{gap:8mm}
  .parch{break-inside:avoid;page-break-inside:avoid}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Filas que se desplazan de lado (princesas, filtros): sin barra visible, como en un móvil */
.overflow-x-auto{scrollbar-width:none}
.overflow-x-auto::-webkit-scrollbar{display:none}
