:root{
    --ground:#e7edf5;--ground-2:#dde5f0;--surface:#fff;--surface-2:#f4f8fd;
    --ink:#122239;--ink-soft:#4d5f78;--ink-faint:#8394ab;--line:#d5deea;--line-soft:#e6edf5;
    --blue:#1f5fa6;--blue-deep:#123f70;--guinda:#a01f2d;--amber:#e08a1e;--amber-deep:#b96c12;
    --teal:#0e7c6e;--violet:#5b3e9c;--alert:#c62828;
    --shadow:0 2px 4px rgba(18,34,57,.06),0 12px 30px rgba(18,34,57,.10);--radius:18px;color-scheme:light;
  }
  *{box-sizing:border-box;}html,body{height:100%;margin:0;}
  body{background:radial-gradient(120% 80% at 100% 0%,#eef4fb 0%,var(--ground) 55%,var(--ground-2) 100%);
    color:var(--ink);font-family:"Source Sans 3",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden;}
  .board{height:100vh;width:100vw;padding:clamp(12px,1.6vh,22px);display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(12px,1.6vh,22px);}
  .head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(14px,1.6vw,28px);
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
    padding:clamp(10px,1.4vh,18px) clamp(16px,1.8vw,30px);position:relative;overflow:hidden;}
  .head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
    background:linear-gradient(90deg,var(--amber),var(--guinda) 45%,var(--blue));}
  .brand{display:flex;align-items:center;gap:clamp(12px,1.2vw,20px);min-width:0;}
  .brand img{height:clamp(56px,8.2vh,96px);width:auto;filter:drop-shadow(0 3px 6px rgba(18,34,57,.18));}
  .eyebrow{font-family:"Archivo";font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    font-size:clamp(10px,1.15vh,14px);color:var(--guinda);margin:0 0 .15em;}
  .brand-txt h1{font-family:"Archivo";font-weight:800;font-size:clamp(18px,2.5vh,30px);line-height:1.02;margin:0;color:var(--ink);}
  .brand-sub{font-size:clamp(12px,1.5vh,17px);color:var(--ink-soft);margin:.25em 0 0;font-weight:600;}
  .deleg-pill{display:inline-flex;align-items:center;gap:.5em;background:var(--blue-deep);color:#fff;
    font-family:"Archivo";font-weight:700;letter-spacing:.05em;padding:.4em .9em;border-radius:999px;
    font-size:clamp(12px,1.55vh,18px);box-shadow:0 4px 12px rgba(18,63,112,.28);}
  .deleg-pill svg{width:1.05em;height:1.05em;}
  .clockbox{text-align:right;line-height:1;}
  .clock{font-family:"Archivo";font-weight:800;font-variant-numeric:tabular-nums;font-size:clamp(30px,5.6vh,64px);color:var(--ink);line-height:.95;}
  .clock .sec{color:var(--amber);font-size:.55em;font-weight:700;}
  .date{margin-top:.35em;font-weight:600;font-size:clamp(12px,1.7vh,20px);color:var(--ink-soft);text-transform:capitalize;}
  .body{display:grid;grid-template-columns:1fr clamp(280px,26vw,420px);gap:clamp(12px,1.6vh,22px);min-height:0;}
  .stage{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;}
  .stage-accent{height:8px;background:var(--cat,#888);transition:background .5s;}
  .slides{position:relative;flex:1;min-height:0;}
  .slide{position:absolute;inset:0;padding:clamp(20px,3.4vh,44px) clamp(24px,3vw,52px);display:grid;
    grid-template-columns:1fr auto;column-gap:clamp(20px,2.6vw,48px);opacity:0;transform:translateY(14px);
    transition:opacity .6s,transform .6s;--cat:var(--blue);pointer-events:none;}
  .slide.on{opacity:1;transform:none;pointer-events:auto;}
  .slide-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;}
  .slide-top{display:flex;align-items:center;gap:clamp(10px,1vw,16px);margin-bottom:clamp(14px,2.4vh,30px);}
  .chip{display:inline-flex;align-items:center;gap:.55em;background:color-mix(in srgb,var(--cat) 12%,#fff);
    color:var(--cat);border:1.5px solid color-mix(in srgb,var(--cat) 30%,#fff);font-family:"Archivo";font-weight:700;
    text-transform:uppercase;letter-spacing:.09em;font-size:clamp(12px,1.7vh,20px);padding:.45em .95em;border-radius:999px;}
  .chip svg{width:1.25em;height:1.25em;}
  .num{margin-left:auto;font-family:"Archivo";font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:clamp(13px,1.7vh,20px);}
  .slide h2{font-family:"Archivo";font-weight:800;font-size:clamp(26px,5.1vh,56px);line-height:1.03;letter-spacing:-.015em;
    margin:0 0 clamp(12px,2vh,24px);color:var(--ink);text-wrap:balance;}
  .slide p{font-size:clamp(17px,2.9vh,30px);line-height:1.4;color:var(--ink-soft);margin:0;max-width:38ch;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:9;}
  .meta{margin-top:auto;padding-top:clamp(12px,2vh,22px);display:flex;align-items:center;gap:.6em;font-family:"Archivo";
    font-weight:600;font-size:clamp(13px,1.9vh,22px);color:var(--cat);}
  .meta .dot{width:.5em;height:.5em;border-radius:50%;background:var(--cat);}
  .meta .who{color:var(--ink);}.meta .src{color:var(--ink-faint);font-weight:400;}
  .slide-qr{align-self:center;width:clamp(150px,15.5vw,224px);text-align:center;}
  .qr-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--cat);border-radius:16px;
    padding:clamp(10px,1vw,15px);box-shadow:0 8px 20px rgba(18,34,57,.12);}
  .qr-card img,.qr-card>div{width:100%!important;height:auto!important;display:block;}
  .qr-cap{margin-top:.55em;font-family:"Archivo";font-weight:800;color:var(--cat);font-size:clamp(13px,1.7vh,19px);line-height:1.12;text-wrap:balance;}
  .qr-hint{margin-top:.3em;display:inline-flex;gap:.35em;align-items:center;font-size:clamp(11px,1.35vh,15px);
    color:var(--ink-faint);font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
  .qr-hint svg{width:1.15em;height:1.15em;}
  .progress{position:absolute;left:0;bottom:0;height:5px;width:100%;background:var(--line-soft);}
  .progress>i{display:block;height:100%;width:0;background:var(--cat,#888);}
  .progress.run>i{animation:fill var(--dwell,10s) linear forwards;}
  @keyframes fill{from{width:0}to{width:100%}}
  .dots{position:absolute;top:clamp(18px,2.6vh,30px);right:clamp(20px,2.4vw,40px);display:flex;gap:8px;z-index:2;}
  .dots b{position:relative;width:11px;height:11px;border-radius:50%;background:var(--line);transition:.4s;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  .dots b::after{content:"";position:absolute;inset:-8px;border-radius:50%;}
  .dots b:hover{background:var(--ink-faint);}
  .dots b.on{background:var(--cat,#888);transform:scale(1.35);}
  .rail{display:grid;grid-template-rows:auto 1fr;gap:clamp(12px,1.6vh,22px);min-height:0;}
  .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
    display:flex;flex-direction:column;overflow:hidden;min-height:0;}
  .panel-h{display:flex;align-items:center;gap:.55em;padding:clamp(12px,1.7vh,18px) clamp(16px,1.4vw,22px);
    font-family:"Archivo";font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(13px,1.75vh,20px);color:#fff;}
  .panel-h svg{width:1.3em;height:1.3em;}
  .panel.bday .panel-h{background:linear-gradient(100deg,var(--amber),var(--guinda) 120%);}
  .panel.dates .panel-h{background:linear-gradient(100deg,var(--blue),var(--blue-deep) 120%);}
  .panel-body{padding:clamp(6px,1vh,12px) clamp(12px,1.2vw,18px) clamp(10px,1.2vh,16px);overflow:hidden;flex:1;}
  .bday-item{display:flex;align-items:center;gap:clamp(9px,.8vw,13px);padding:clamp(4px,.8vh,8px) 4px;border-bottom:1px solid var(--line-soft);}
  .bday-item:last-child{border-bottom:0;}
  .bday-cake{width:clamp(34px,4.4vh,46px);height:clamp(34px,4.4vh,46px);border-radius:12px;display:grid;place-items:center;
    background:color-mix(in srgb,var(--amber) 16%,#fff);color:var(--amber-deep);}
  .bday-cake svg{width:56%;height:56%;}
  .bday-name{font-weight:700;font-size:clamp(13px,1.65vh,18px);color:var(--ink);line-height:1.1;}
  .bday-nm{display:flex;flex-direction:column;min-width:0;flex:1;}
  .bday-cargo{font-family:"Archivo";font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(9px,1.15vh,13px);color:var(--ink-faint);margin-top:1px;line-height:1.1;}
  .bday-when{margin-left:auto;font-family:"Archivo";font-weight:700;font-size:clamp(12px,1.6vh,18px);color:var(--ink-soft);white-space:nowrap;}
  .bday-item.today .bday-when{color:#fff;background:var(--guinda);padding:.2em .6em;border-radius:999px;}
  .bday-item.today .bday-cake{background:var(--guinda);color:#fff;}
  .date-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(10px,.9vw,16px);
    padding:clamp(6px,.95vh,11px) 4px;border-bottom:1px solid var(--line-soft);}
  .date-item:last-child{border-bottom:0;}
  .date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;width:clamp(46px,5.2vw,60px);height:clamp(46px,6.2vh,60px);flex:0 0 auto;padding:2px;}
  .date-badge .d{font-family:"Archivo";font-weight:800;font-size:clamp(18px,2.7vh,30px);color:var(--blue-deep);line-height:1;}
  .date-badge .m{font-family:"Archivo";font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(9px,1.2vh,13px);color:var(--ink-faint);margin-top:3px;line-height:1;}
  .date-item.hl .date-badge{background:var(--guinda);border-color:var(--guinda);}
  .date-item.hl .date-badge .d,.date-item.hl .date-badge .m{color:#fff;}
  .date-txt{font-weight:600;font-size:clamp(13px,1.8vh,20px);color:var(--ink);line-height:1.15;min-width:0;}
  .date-txt .d-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .date-txt .tag{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:700;font-family:"Archivo";text-transform:uppercase;letter-spacing:.05em;font-size:clamp(9px,1.15vh,12px);color:var(--ink-faint);margin-top:.15em;line-height:1.15;}
  .foot{display:grid;grid-template-columns:auto 1fr;background:var(--blue-deep);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;height:clamp(36px,5vh,54px);}
  .foot-label{display:flex;align-items:center;gap:.5em;background:var(--guinda);color:#fff;font-family:"Archivo";font-weight:800;
    text-transform:uppercase;letter-spacing:.09em;font-size:clamp(13px,2vh,23px);padding:0 clamp(18px,1.8vw,30px);white-space:nowrap;}
  .foot-label svg{width:1.2em;height:1.2em;}
  .ticker{position:relative;overflow:hidden;display:flex;align-items:center;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);}
  .ticker-track{display:inline-flex;align-items:center;white-space:nowrap;flex:0 0 auto;animation:scroll var(--tk-dur,44s) linear infinite;will-change:transform;}
  .ticker-track span{color:#fff;font-size:clamp(14px,2vh,23px);font-weight:700;padding:0 clamp(18px,1.8vw,36px);display:inline-flex;align-items:center;gap:.6em;}
  .ticker-track span::before{content:"";width:.42em;height:.42em;border-radius:2px;transform:rotate(45deg);
    background:var(--amber);flex:0 0 auto;}
  /* Franja: jerarquia por tipo (normal / urgente / fecha) */
  .ticker-track .tk-et{font-family:"Archivo";font-weight:800;text-transform:uppercase;letter-spacing:.06em;
    font-size:.72em;line-height:1;padding:.36em .72em;border-radius:999px;white-space:nowrap;flex:0 0 auto;}
  .ticker-track .t-urgente{color:#ffd9a3;font-weight:800;}
  .ticker-track .t-urgente::before{background:#ffd9a3;}
  .ticker-track .t-urgente .tk-et{background:var(--amber);color:#20160a;}
  .ticker-track .t-fecha::before{background:#e6eef8;}
  .ticker-track .t-fecha .tk-et{background:#e6eef8;color:var(--blue-deep);}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .status{position:fixed;bottom:8px;left:10px;font-size:11px;color:var(--ink-faint);font-family:"Archivo";z-index:50;opacity:.7;}
  .empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-faint);font-family:"Archivo";font-weight:700;font-size:22px;}
.tturno{display:inline-flex;align-items:center;gap:.4em;font-family:"Archivo";font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(11px,1.5vh,17px);padding:.3em .75em;border-radius:999px;color:#fff;background:var(--tc,#888);}
  .panel.bday{position:relative;overflow:hidden;}
  .panel.bday .panel-body{position:relative;z-index:1;}
  .doodle{flex:0 0 auto;width:clamp(38px,5vh,52px);height:clamp(38px,5vh,52px);border-radius:16px 19px 14px 18px;display:grid;place-items:center;color:var(--dc);background:color-mix(in srgb,var(--dc) 14%,#fff);border:2px solid color-mix(in srgb,var(--dc) 34%,#fff);transform:rotate(var(--rot,0));}
  .doodle svg{width:62%;height:62%;}
  .bday-item.today .doodle{background:var(--guinda);color:#fff;border-color:var(--guinda);}
  .panel.bday .panel-h{font-family:"Caveat","Archivo",cursive;text-transform:none;letter-spacing:0;font-weight:700;font-size:clamp(16px,2.4vh,25px);white-space:nowrap;overflow:hidden;padding-top:clamp(3px,.6vh,7px);padding-bottom:clamp(3px,.6vh,7px);}
  .panel.bday .panel-h svg{width:1.05em;height:1.05em;}
  .bday-fiesta{position:absolute;inset:0;z-index:3;display:none;place-items:center;background:linear-gradient(160deg,#fff7ec,#fdeef4);text-align:center;overflow:hidden;padding:10px;}
  .bday-fiesta.show{display:grid;animation:fiestaFade .5s ease;}
  .bday-fiesta .fiesta-in{animation:fpop .6s cubic-bezier(.2,1.4,.4,1);}
  @keyframes fiestaFade{from{opacity:0}to{opacity:1}}
  @keyframes fpop{0%{transform:scale(.6);opacity:0}60%{opacity:1}100%{transform:scale(1)}}
  .fiesta-cake{width:clamp(58px,10vh,110px);height:auto;color:var(--guinda);margin:0 auto .1em;display:block;animation:fbob 1.6s ease-in-out infinite;}
  @keyframes fbob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}
  .fiesta-fel{font-family:"Caveat","Archivo",cursive;font-weight:700;color:var(--guinda);font-size:clamp(30px,6.5vh,66px);line-height:1;}
  .fiesta-nm{font-family:"Archivo";font-weight:800;color:var(--ink);font-size:clamp(17px,3vh,34px);margin-top:.1em;text-wrap:balance;}
  .conf{position:absolute;top:-18px;width:9px;height:14px;border-radius:2px;opacity:0;}
  .bday-fiesta.show .conf{animation:confFall 2.6s linear forwards;}
  @keyframes confFall{0%{opacity:1;transform:translateY(-10px) rotate(0)}100%{opacity:0;transform:translateY(130%) rotate(380deg)}}
  .slide-media{align-self:stretch;justify-self:center;width:clamp(240px,32vw,460px);height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .slide-media img{width:100%;flex:0 1 auto;min-height:0;max-height:100%;object-fit:contain;border-radius:16px;border:1px solid var(--line);box-shadow:0 10px 26px rgba(18,34,57,.16);background:#fff;display:block;}
  .media-qr{position:absolute;right:10px;top:10px;width:clamp(74px,9vw,120px);background:#fff;border-radius:12px;padding:6px;box-shadow:0 6px 16px rgba(0,0,0,.22);}
  .media-qr img{width:100%;height:auto;display:block;image-rendering:pixelated;}
  .media-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(10,20,35,.82),rgba(10,20,35,0));color:#fff;font-family:"Archivo";font-weight:800;font-size:clamp(12px,1.5vh,17px);line-height:1.15;padding:clamp(20px,3vh,34px) clamp(12px,1.2vw,18px) clamp(8px,1.2vh,14px);border-radius:0 0 16px 16px;}
  .cal-slide{padding:clamp(16px,2.6vh,34px) clamp(20px,2.6vw,44px);}
  .cal-wrap{display:flex;flex-direction:column;height:100%;width:100%;}
  .cal-top{display:flex;align-items:center;gap:14px;margin-bottom:clamp(10px,1.8vh,20px);flex-wrap:wrap;}
  .cal-h{font-family:"Archivo";font-weight:800;font-size:clamp(19px,3.2vh,38px);margin:0;color:var(--ink);}
  .cal-months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.6vw,48px);flex:1;min-height:0;}
  .cal-month{display:flex;flex-direction:column;min-height:0;}
  .cal-mh{font-family:"Archivo";font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(15px,2.3vh,26px);color:var(--blue-deep);margin-bottom:.35em;}
  .cal-wk{display:grid;grid-template-columns:repeat(7,1fr);gap:clamp(3px,.5vh,6px);margin-bottom:clamp(3px,.5vh,6px);}
  .cal-wk b{text-align:center;font-family:"Archivo";font-weight:700;font-size:clamp(11px,1.5vh,18px);color:var(--ink-faint);}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:clamp(3px,.5vh,6px);flex:1;min-height:0;}
  .cal-d{display:grid;place-items:center;font-family:"Archivo";font-weight:700;font-size:clamp(12px,2vh,24px);color:var(--ink-soft);border-radius:9px;background:var(--surface-2);}
  .cal-d.has{color:#fff;background:var(--ec);box-shadow:0 3px 8px rgba(18,34,57,.18);}
  .cal-e{}
  .cal-leyenda{display:flex;flex-wrap:wrap;gap:clamp(8px,1.4vw,22px);justify-content:center;margin-top:clamp(10px,1.6vh,20px);}
  .cal-lg{display:inline-flex;align-items:center;gap:.45em;font-family:"Archivo";font-weight:700;font-size:clamp(11px,1.6vh,18px);color:var(--ink-soft);}
  .cal-lg i{width:.95em;height:.95em;border-radius:4px;display:inline-block;}


  .bday-decor{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;}
  .bday-decor i{position:absolute;bottom:-30px;opacity:0;}
  .bday-decor i svg{display:block;}
  @keyframes drift{0%{opacity:0;transform:translateY(0) rotate(-5deg)}12%{opacity:.5}88%{opacity:.5}100%{opacity:0;transform:translateY(-42vh) rotate(8deg)}}

  .flip-clock{display:flex;align-items:center;gap:clamp(2px,.4vw,6px);justify-content:flex-end;}
  .flap{font-family:"Archivo";font-weight:800;font-variant-numeric:tabular-nums;background:#12233b;color:#fff;border-radius:9px;width:clamp(30px,4.6vh,60px);height:clamp(42px,7vh,86px);display:grid;place-items:center;font-size:clamp(26px,5vh,58px);position:relative;box-shadow:inset 0 -2px 0 rgba(255,255,255,.05),0 4px 10px rgba(0,0,0,.28);}
  .flap::after{content:"";position:absolute;left:6%;right:6%;top:50%;height:2px;background:rgba(0,0,0,.55);transform:translateY(-1px);}
  .flap.sec{width:clamp(20px,3.1vh,40px);height:clamp(28px,4.8vh,56px);font-size:clamp(16px,3.2vh,36px);background:#1d3a57;color:var(--amber);}
  .flap.flip{animation:flapf .24s ease;}
  @keyframes flapf{0%{transform:scaleY(1)}45%{transform:scaleY(.04)}100%{transform:scaleY(1)}}
  .colon{font-family:"Archivo";font-weight:800;color:var(--ink);font-size:clamp(24px,4.6vh,52px);padding:0 2px;}
  .head-center{display:flex;justify-content:center;align-items:center;}
  .wx-card{display:inline-flex;align-items:center;gap:.5em;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:.4em .85em;}
  .wx-ic{color:var(--amber);display:grid;place-items:center;}.wx-ic svg{width:clamp(22px,3vh,34px);height:clamp(22px,3vh,34px);}
  .wx-t{font-family:"Archivo";font-weight:800;font-size:clamp(20px,3.2vh,36px);color:var(--ink);}
  .wx-d{display:flex;flex-direction:column;font-family:"Archivo";font-weight:700;font-size:clamp(11px,1.5vh,17px);color:var(--ink-soft);line-height:1.1;}
  .wx-d small{font-weight:600;font-size:.8em;color:var(--ink-faint);}
  .infochip{display:inline-flex;align-items:center;gap:clamp(10px,1.3vw,20px);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(8px,1.2vh,14px) clamp(14px,1.5vw,24px);box-shadow:var(--shadow);}
  .ic-time{font-family:"Archivo";font-weight:800;font-variant-numeric:tabular-nums;font-size:clamp(24px,4.6vh,50px);color:var(--ink);line-height:1;}
  .ic-time small{font-size:.46em;color:var(--ink-faint);font-weight:700;margin-left:.2em;}
  .ic-sep{width:1px;align-self:stretch;background:var(--line);}
  .ic-date{font-family:"Archivo";font-weight:700;font-size:clamp(13px,1.8vh,21px);color:var(--ink-soft);text-transform:capitalize;white-space:nowrap;}
  .ic-wx{display:inline-flex;align-items:center;gap:.4em;font-family:"Archivo";font-weight:700;color:var(--ink-soft);font-size:clamp(13px,1.8vh,21px);white-space:nowrap;}
  .ic-wx .wxi{color:var(--amber);display:inline-grid;place-items:center;}.ic-wx .wxi svg{width:clamp(20px,2.8vh,32px);height:clamp(20px,2.8vh,32px);}
  .ic-wx b{color:var(--ink);}
  .rail .panel.bday{flex:0 0 auto;}
  .rail{display:flex!important;flex-direction:column;}
  .rail .panel{flex:1 1 0;min-height:0;}
  .rail .panel.dates{flex:1.2;}
  .rail .panel.motiv{flex:0 0 auto;}
  .rail[data-mode="bday"] .panel.motiv{display:none;}
  .rail[data-mode="motiv"] .panel.bday{display:none;}
  .rail[data-mode="motiv"] .panel.dates{flex:1.3;}
  .panel.motiv .panel-h{background:linear-gradient(100deg,var(--teal),var(--blue-deep) 120%);}
  #motivBody{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0;gap:.4em;height:100%;overflow:hidden;}
  .motiv-frase{font-family:"Caveat","Archivo",cursive;font-weight:700;color:var(--ink);font-size:clamp(22px,4.4vh,48px);line-height:1.12;text-wrap:balance;}
  .motiv-autor{font-family:"Archivo";font-weight:700;color:var(--guinda);font-size:clamp(13px,1.9vh,22px);}
  .motiv-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;}
  /* ---- Motivacion: entrada suave, cambio de frase y adornos flotando ---- */
  .panel.motiv{position:relative;overflow:hidden;}
  .panel.motiv .panel-body{position:relative;z-index:1;flex:0 0 auto;padding:0;width:100%;aspect-ratio:420/290;max-height:40vh;overflow:hidden;}
  .motiv-decor{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;}
  .motiv-decor i{position:absolute;bottom:-30px;opacity:0;}
  .motiv-decor i svg{display:block;}
  @keyframes motivIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
  .rail[data-mode="motiv"] .panel.motiv{animation:motivIn .6s cubic-bezier(.22,.8,.28,1) both;}
  @keyframes fraseIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  @keyframes fraseOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}
  #motivBody.swap{animation:fraseOut .3s ease both;}
  #motivBody .motiv-frase{animation:fraseIn .55s cubic-bezier(.22,.8,.28,1) both;}
  #motivBody .motiv-autor{animation:fraseIn .55s .14s cubic-bezier(.22,.8,.28,1) both;}
  #motivBody .motiv-img{animation:fraseIn .55s cubic-bezier(.22,.8,.28,1) both;}
  .motiv-frase.larga{font-size:clamp(18px,3.4vh,36px);}
  .motiv-frase.xlarga{font-size:clamp(16px,2.7vh,29px);}

  @media (prefers-reduced-motion:reduce){.slide{transition:none;}.ticker-track{animation:none;padding-left:0;}.progress.run>i{animation:none;width:100%;}.bday-decor,.motiv-decor{display:none;}.rail[data-mode="motiv"] .panel.motiv{animation:none;}#motivBody .motiv-frase,#motivBody .motiv-autor,#motivBody .motiv-img,#motivBody.swap{animation:none;}}
  /* ---- Navegación táctil del carrusel (para cualquiera / touch screen) ---- */
  .brand{cursor:pointer;}
  .navbtn{position:absolute;top:50%;transform:translateY(-50%);z-index:30;width:clamp(44px,4.2vw,60px);height:clamp(60px,12vh,110px);border:1px solid transparent;border-radius:14px;cursor:pointer;background:transparent;color:var(--blue-deep);font-family:"Archivo";font-weight:800;font-size:clamp(30px,4.4vh,50px);line-height:1;display:flex;align-items:center;justify-content:center;opacity:.55;text-shadow:0 1px 4px rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.85);transition:opacity .2s,background .2s,box-shadow .2s,border-color .2s;-webkit-tap-highlight-color:transparent;}
  .navbtn:hover,.navbtn:active{opacity:1;background:#fff;border-color:var(--line);box-shadow:0 6px 18px rgba(18,34,57,.14);text-shadow:none;}
  .nav-prev{left:clamp(8px,1vw,16px);}
  .nav-next{right:clamp(8px,1vw,16px);}
  /* ---- Iconito calendario en cumpleaños ---- */
  .bday-cal{margin-left:auto;flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:clamp(40px,4.2vw,48px);height:clamp(42px,5.2vh,50px);background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 3px 8px rgba(18,34,57,.13),0 1px 2px rgba(18,34,57,.08);padding-top:clamp(5px,.8vh,8px);}
  .bday-cal::before{content:"";position:absolute;top:0;left:0;right:0;height:clamp(4px,.6vh,6px);background:var(--cal-accent,#e5484d);}
  .bday-cal-top{display:flex;align-items:center;justify-content:center;}
  .bday-cal-m{font-family:"Archivo";font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:clamp(8px,1.1vh,11px);color:var(--cal-accent,#e5484d);line-height:1;}
  .bday-cal-d{font-family:"Archivo";font-weight:800;font-size:clamp(18px,2.6vh,26px);color:var(--ink);line-height:.92;letter-spacing:-.01em;}
  .bday-cal.is-soon{--cal-accent:var(--amber-deep);}
  .bday-cal.is-today{--cal-accent:var(--guinda);}
  .bday-cal.is-today .bday-cal-d{color:var(--guinda);}
  /* ---- Lanzador de animaciones (tocar el logo) ---- */
  #reelLauncher{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;background:rgba(15,28,48,.55);backdrop-filter:blur(4px);padding:4vh 4vw;}
  .rlx-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(18,34,57,.4);max-width:min(920px,92vw);width:100%;max-height:92vh;overflow:auto;padding:clamp(16px,2.2vw,28px);}
  .rlx-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:"Archivo";font-weight:800;font-size:clamp(16px,2.4vh,24px);color:var(--ink);}
  .rlx-x{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;width:42px;height:42px;font-size:18px;cursor:pointer;color:var(--ink-soft);flex:0 0 auto;}
  .rlx-sec{font-family:"Archivo";font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(11px,1.4vh,14px);color:var(--guinda);margin:16px 0 8px;}
  .rlx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
  .rlx-btn{display:flex;flex-direction:column;gap:3px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;-webkit-tap-highlight-color:transparent;}
  .rlx-btn:hover,.rlx-btn:active{transform:translateY(-2px);box-shadow:0 8px 20px rgba(18,34,57,.14);border-color:var(--blue);}
  .rlx-btn b{font-family:"Archivo";font-weight:800;font-size:clamp(14px,1.9vh,18px);color:var(--ink);}
  .rlx-btn small{color:var(--ink-faint);font-size:clamp(11px,1.4vh,13px);}
  .rlx-tip{margin-top:16px;color:var(--ink-faint);font-size:clamp(12px,1.5vh,15px);}
  /* ===== Calendario a pantalla completa (clic en Próximas fechas o en un aviso) ===== */
  #panelDates{cursor:pointer;}
  .stage,.slide{cursor:pointer;}
  .fc-hint{display:none;}
  .fcmodal{position:fixed;inset:0;z-index:9000;background:var(--ground);display:none;flex-direction:column;}
  .fcmodal.on{display:flex;}
  /* ---- Detalle del aviso (al tocar una tarjeta) ---- */
  .slide.av-click{cursor:pointer;}
  .avmodal{position:fixed;inset:0;z-index:9500;background:rgba(15,28,48,.55);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:4vh 4vw;}
  .avmodal.on{display:flex;}
  /* ---- PIN + menú secreto de pruebas ---- */
  #pinModal{position:fixed;inset:0;z-index:100050;display:none;align-items:center;justify-content:center;background:rgba(15,28,48,.6);backdrop-filter:blur(4px);}
  .pin-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(18,34,57,.4);padding:clamp(20px,3vh,32px);width:min(320px,90vw);text-align:center;}
  .pin-card.err{animation:pinshake .35s;}
  @keyframes pinshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
  .pin-h{font-family:"Archivo";font-weight:800;font-size:clamp(15px,2vh,20px);color:var(--ink);margin-bottom:14px;}
  .pin-dots{display:flex;justify-content:center;gap:14px;margin-bottom:18px;}
  .pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);background:transparent;transition:.15s;}
  .pin-dots i.on{background:var(--blue);border-color:var(--blue);}
  .pin-card.err .pin-dots i{border-color:var(--alert);}
  .pin-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  .pin-k{font-family:"Archivo";font-weight:800;font-size:clamp(20px,2.8vh,26px);padding:.55em 0;border:1px solid var(--line);background:var(--surface-2);border-radius:14px;cursor:pointer;color:var(--ink);-webkit-tap-highlight-color:transparent;}
  .pin-k:active{background:var(--blue);color:#fff;}
  .pin-cancel{margin-top:16px;background:none;border:0;color:var(--ink-faint);font-weight:700;cursor:pointer;font-size:clamp(13px,1.7vh,16px);}
  #secretMenu{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;background:rgba(15,28,48,.55);backdrop-filter:blur(4px);padding:4vh 4vw;}
  .sm-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(18,34,57,.4);max-width:min(960px,94vw);width:100%;max-height:92vh;overflow:auto;padding:clamp(16px,2.2vw,28px);}
  .sm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:"Archivo";font-weight:800;font-size:clamp(16px,2.4vh,24px);color:var(--ink);}
  .sm-x{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;width:42px;height:42px;font-size:18px;cursor:pointer;color:var(--ink-soft);flex:0 0 auto;}
  .sm-sec{font-family:"Archivo";font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(11px,1.4vh,14px);color:var(--guinda);margin:18px 0 8px;}
  .sm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
  .sm-btn{display:flex;flex-direction:column;gap:3px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;-webkit-tap-highlight-color:transparent;}
  .sm-btn:hover,.sm-btn:active{transform:translateY(-2px);box-shadow:0 8px 20px rgba(18,34,57,.14);border-color:var(--blue);}
  .sm-btn b{font-family:"Archivo";font-weight:800;font-size:clamp(14px,1.9vh,18px);color:var(--ink);}
  .sm-btn small{color:var(--ink-faint);font-size:clamp(11px,1.4vh,13px);}
  .sm-motgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}
  .sm-mot{padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;background:#000;aspect-ratio:420/290;-webkit-tap-highlight-color:transparent;}
  .sm-mot:hover{border-color:var(--blue);box-shadow:0 8px 20px rgba(18,34,57,.16);}
  .sm-tip{margin-top:16px;color:var(--ink-faint);font-size:clamp(12px,1.5vh,15px);}
  #motBig{position:fixed;inset:0;z-index:100060;display:none;align-items:center;justify-content:center;background:rgba(10,18,32,.85);padding:5vh 5vw;}
  .mb-card{width:min(80vw,900px);aspect-ratio:420/290;box-shadow:0 24px 70px rgba(0,0,0,.5);border-radius:16px;overflow:hidden;background:#000;}
  .mb-close{position:absolute;top:20px;right:24px;width:52px;height:52px;border-radius:12px;background:var(--guinda);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:700;cursor:pointer;}
  .av-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(18,34,57,.4);max-width:min(900px,94vw);width:100%;max-height:92vh;overflow:auto;}
  .av-accent{height:8px;background:var(--blue);border-radius:20px 20px 0 0;}
  .av-close{position:absolute;top:16px;right:16px;width:clamp(44px,5vh,58px);height:clamp(44px,5vh,58px);border:0;background:var(--guinda);color:#fff;border-radius:12px;font-size:clamp(18px,2.4vh,26px);font-weight:700;cursor:pointer;display:grid;place-items:center;z-index:2;-webkit-tap-highlight-color:transparent;}
  .av-in{padding:clamp(20px,3vh,40px) clamp(22px,3vw,48px);}
  .av-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(12px,2vh,20px);}
  .av-title{font-family:"Archivo";font-weight:800;font-size:clamp(26px,4.4vh,48px);line-height:1.05;color:var(--ink);margin:0 0 clamp(12px,2vh,20px);text-wrap:balance;}
  .av-body{font-size:clamp(17px,2.5vh,26px);line-height:1.45;color:var(--ink-soft);white-space:pre-wrap;}
  .av-foto{display:block;max-width:100%;max-height:52vh;object-fit:contain;border-radius:14px;border:1px solid var(--line);margin-top:clamp(14px,2.4vh,24px);background:#fff;}
  .av-foto[hidden]{display:none;}
  .av-meta{margin-top:clamp(14px,2.4vh,22px);font-family:"Archivo";font-weight:700;font-size:clamp(15px,2vh,22px);color:var(--blue-deep);}
  .av-act{margin-top:clamp(16px,2.4vh,24px);}
  .av-act:empty{display:none;}
  .av-btn{display:inline-flex;align-items:center;gap:.5em;background:var(--blue);color:#fff;text-decoration:none;font-family:"Archivo";font-weight:800;font-size:clamp(15px,2vh,20px);padding:.7em 1.3em;border-radius:12px;box-shadow:0 6px 16px rgba(31,95,166,.3);-webkit-tap-highlight-color:transparent;}
  .fc-top{display:flex;align-items:center;gap:clamp(8px,1vw,16px);padding:clamp(12px,2vh,22px) clamp(18px,2.4vw,40px);background:#fff;border-bottom:1px solid var(--line-soft);}
  .fc-title{flex:1;text-align:center;font-family:"Archivo";font-weight:800;font-size:clamp(20px,3.2vh,38px);letter-spacing:-.01em;text-transform:capitalize;line-height:1;min-width:0;color:var(--ink);}
  .fc-nav{width:clamp(42px,5vh,58px);height:clamp(42px,5vh,58px);flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:999px;font-family:"Archivo";font-weight:700;font-size:clamp(22px,3vh,34px);line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s,border-color .15s;}
  .fc-nav:hover{background:var(--surface-2);color:var(--blue);border-color:var(--blue);}
  .fc-close{width:clamp(42px,5vh,58px);height:clamp(42px,5vh,58px);flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:999px;font-size:clamp(18px,2.4vh,26px);font-weight:600;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s;}
  .fc-close:hover{background:color-mix(in srgb,var(--guinda) 12%,#fff);color:var(--guinda);}
  .fc-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(10px,1.4vw,24px);padding:clamp(8px,1.2vh,14px) clamp(16px,2vw,32px);background:#fff;border-bottom:1px solid var(--line-soft);font-family:"Source Sans 3",system-ui,sans-serif;font-weight:600;font-size:clamp(13px,1.7vh,20px);color:var(--ink-soft);}
  .fc-legend span{display:inline-flex;align-items:center;gap:7px;}
  .fc-legend i{width:clamp(11px,1.4vh,16px);height:clamp(11px,1.4vh,16px);border-radius:999px;flex:0 0 auto;}
  .fc-body{flex:1;min-height:0;overflow-y:auto;padding:clamp(14px,2.4vh,32px) clamp(18px,2.6vw,44px);}
  .fc-months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,56px);height:100%;min-height:0;}
  .fc-month{display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(18,34,57,.04),0 8px 26px rgba(18,34,57,.06);}
  .fc-mh{font-family:"Archivo";font-weight:800;font-size:clamp(15px,2.2vh,26px);color:var(--ink);letter-spacing:-.01em;text-transform:none;padding:clamp(9px,1.5vh,16px) clamp(14px,1.5vw,22px) clamp(4px,.8vh,8px);}
  .fc-wk{display:grid;grid-template-columns:repeat(7,1fr);padding:0 0 clamp(4px,.7vh,8px);}
  .fc-wk b{text-align:center;font-family:"Source Sans 3",system-ui,sans-serif;font-weight:700;font-size:clamp(10px,1.35vh,15px);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;}
  .fc-weeks{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--line-soft);}
  .fc-week{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:min-content;overflow:hidden;}
  .fc-bg{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);z-index:0;}
  .fc-bgc{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
  .fc-bgc[data-d]{cursor:pointer;}
  .fc-bgc[data-d]:hover{background:color-mix(in srgb,var(--blue) 5%,#fff);}
  .fc-bgc:nth-child(7n){border-right:0;}
  .fc-week:last-child .fc-bgc{border-bottom:0;}
  .fc-bgc.blank{background:var(--surface-2);}
  .fc-dn{position:relative;z-index:1;justify-self:start;margin:clamp(3px,.7vh,8px) 0 0 clamp(5px,.6vw,10px);font-family:"Archivo";font-weight:700;font-size:clamp(12px,1.7vh,21px);color:var(--ink-soft);line-height:1;width:clamp(24px,3.1vh,40px);height:clamp(24px,3.1vh,40px);display:inline-grid;place-items:center;border-radius:999px;pointer-events:none;}
  .fc-dn.today{background:var(--blue);color:#fff;}
  .fc-dn.today::after{content:"";position:absolute;inset:-4px;border-radius:999px;background:var(--blue);opacity:.45;z-index:-1;animation:fcBreath 2.6s ease-in-out infinite;pointer-events:none;}
  @keyframes fcBreath{0%,100%{opacity:.45}50%{opacity:0}}
  @media (prefers-reduced-motion:reduce){.fc-dn.today::after{animation:none;opacity:0;}}
  .fc-bar{position:relative;z-index:1;align-self:start;margin:clamp(1px,.28vh,2px) clamp(3px,.4vw,6px) 0;font-family:"Source Sans 3",system-ui,sans-serif;font-weight:700;font-size:clamp(9px,1.15vh,14px);line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px;padding:clamp(1px,.28vh,3px) clamp(4px,.5vw,8px);pointer-events:none;}
  .fc-bfecha{color:#fff;}
  .fc-bbday{color:var(--guinda);display:flex;align-items:center;gap:5px;padding-left:clamp(3px,.4vw,6px);background:transparent;}
  .fc-bbday svg{width:clamp(11px,1.4vh,15px);height:auto;flex:0 0 auto;}
  .fc-bbday span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .fc-empty{grid-column:1/-1;padding:clamp(30px,6vh,60px);text-align:center;color:var(--ink-faint);font-family:"Archivo";font-weight:700;font-size:clamp(14px,1.8vh,20px);}
  /* Detalle del día (al tocar una celda): muestra TODOS los eventos y cumpleaños */
  .fc-day{position:absolute;inset:0;z-index:40;display:none;align-items:center;justify-content:center;background:rgba(18,34,57,.4);padding:clamp(16px,5vh,60px) clamp(16px,4vw,80px);}
  .fc-day.on{display:flex;}
  .fcd-card{background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.35);width:min(620px,94%);max-height:86%;display:flex;flex-direction:column;overflow:hidden;}
  .fcd-top{display:flex;align-items:center;gap:12px;padding:clamp(14px,2.2vh,22px) clamp(18px,2vw,28px);border-bottom:1px solid var(--line-soft);}
  .fcd-date{flex:1;font-family:"Archivo";font-weight:800;font-size:clamp(17px,2.6vh,28px);color:var(--ink);text-transform:none;line-height:1.15;}
  .fcd-x{width:clamp(38px,4.6vh,50px);height:clamp(38px,4.6vh,50px);flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:999px;font-size:clamp(18px,2.4vh,24px);cursor:pointer;display:grid;place-items:center;}
  .fcd-x:hover{background:var(--surface-2);}
  .fcd-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:clamp(12px,1.8vh,18px) clamp(18px,2vw,28px) clamp(16px,2.4vh,26px);display:flex;flex-direction:column;gap:clamp(9px,1.3vh,14px);}
  .fcd-it{display:flex;gap:12px;align-items:flex-start;}
  .fcd-dot{width:clamp(12px,1.5vh,18px);height:clamp(12px,1.5vh,18px);border-radius:999px;flex:0 0 auto;margin-top:.25em;}
  .fcd-ic{color:var(--guinda);flex:0 0 auto;margin-top:.05em;}
  .fcd-ic svg{width:clamp(20px,2.6vh,28px);height:auto;display:block;}
  .fcd-tx{min-width:0;}
  .fcd-tx b{display:block;font-family:"Archivo";font-weight:800;font-size:clamp(15px,2.1vh,23px);color:var(--ink);line-height:1.2;}
  .fcd-tx span{display:block;font-family:"Source Sans 3",system-ui,sans-serif;font-weight:600;font-size:clamp(12px,1.6vh,18px);color:var(--ink-faint);margin-top:1px;}
  .fcd-empty{text-align:center;color:var(--ink-faint);font-family:"Archivo";font-weight:700;padding:clamp(24px,5vh,50px);font-size:clamp(14px,1.8vh,20px);}
  @media (max-width:900px){.fc-months{grid-template-columns:1fr;height:auto;}.fc-month{min-height:52vh;}}
