/* Portal STAFF (Inicio, Calendario, Recursos). Solo clases p-* y reglas de body.portal: no toca Cónclave. */
#portal{min-height:100dvh}
body.portal #app>.top,body.portal #contenido{display:none}
body:not(.portal) #portal{display:none}
/* logo = botón de inicio */
.p-logo{background:none;border:0;padding:0;cursor:pointer;display:flex;align-items:center;border-radius:var(--r)}
#app>.top .top-logo[role=button]:focus-visible{outline:3px solid var(--hl);outline-offset:3px;border-radius:4px}
.p-pre{border-color:var(--navy);font-weight:800}
.p-chip.p-pre[aria-pressed="true"]{background:var(--navy);color:#fff}
.p-chip.p-pre[aria-pressed="false"]{opacity:1;text-decoration:none}
#navInicio{background:none;border:2px solid rgba(255,255,255,.35);color:#fff;padding:.35rem .95rem;border-radius:var(--r);cursor:pointer;font-weight:600;min-height:44px}
#navInicio:hover{background:rgba(255,255,255,.12)}
.p-main{padding-bottom:3rem}
.p-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--navy);color:#fff;border-radius:var(--r);padding:clamp(16px,2.6vw,32px);margin-bottom:1rem}
.p-hero h2{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1;font-weight:900}
.p-hero p{margin:.4rem 0 0;color:var(--hl);font-weight:600}
.p-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem;margin-bottom:1rem}
.p-main .panel{margin-bottom:0}
.p-main section.panel+section.panel{margin-top:1rem}
.p-grid .panel{margin:0!important}
.p-prox,.p-lista,.p-avisos{list-style:none;margin:0 0 .6rem;padding:0;display:grid;gap:.45rem}
.p-item{display:grid;grid-template-columns:10px 7.5rem 1fr;gap:.8rem;align-items:center;width:100%;text-align:left;background:var(--mist);border:0;border-radius:var(--r);padding:.6rem .8rem;cursor:pointer;min-height:48px}
.p-item:hover{background:var(--lav)}
.p-item i,.p-dh i,.p-chip i{display:inline-block;width:10px;height:100%;min-height:30px;border-radius:3px}
.p-when{font-weight:700;color:var(--navy);font-size:.92rem}
.p-what b{display:block;color:var(--navy)}
.p-what small,.p-avisos small{display:block;color:var(--ink2);font-size:.85rem}
.p-avisos li{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start;background:var(--mist);border-radius:var(--r);padding:.6rem .8rem}
.p-x{background:none;border:0;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--red);min-width:36px;min-height:36px}
.p-avform{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;margin-top:.6rem}
.p-avform input,.p-form input,.p-form select,.p-form textarea,.p-edrow input,.p-file input,.p-sem input{border:2px solid var(--navy);border-radius:var(--r);padding:.5rem .7rem;min-height:44px;background:#fff;width:100%}
.p-link{background:none;border:0;color:var(--blue);font-weight:700;cursor:pointer;padding:.4rem 0;text-decoration:underline}
.p-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem}
.p-card{display:flex;flex-direction:column;gap:.2rem;justify-content:center;text-align:left;background:var(--white);border:2px solid var(--navy);border-radius:var(--r);padding:.8rem 1rem;min-height:72px;color:var(--navy);text-decoration:none;cursor:pointer;transition:transform .14s,box-shadow .14s}
.p-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--navy)}
.p-card b{font-size:1.05rem}.p-card span{font-size:.85rem;color:var(--ink2)}
.p-calhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.8rem}
.p-calhead h2{font-size:clamp(2rem,4vw,3rem);color:var(--navy)}
.p-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.p-ctl .btn{min-height:40px;padding:.3rem .9rem}
.p-mes{min-width:10.5rem;text-align:center;font-family:var(--display);font-size:1.7rem;color:var(--navy)}
.p-seg{display:inline-flex;border:2px solid var(--navy);border-radius:var(--r);overflow:hidden}
.p-seg button{background:#fff;border:0;padding:.3rem .9rem;min-height:36px;font-weight:700;cursor:pointer}
.p-seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
.p-ley{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}
.p-chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:2px solid var(--line);border-radius:999px;padding:.2rem .8rem .2rem .5rem;font-size:.85rem;font-weight:600;cursor:pointer;min-height:34px}
.p-chip i{width:12px;height:12px;min-height:0;border-radius:50%}
.p-chip[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.p-cal{background:#fff;border:2px solid var(--navy);border-radius:var(--r);overflow:hidden}
.p-cal-h,.p-week{display:grid;grid-template-columns:3rem 1fr}
.p-cal-h{background:var(--navy);color:#fff;font-weight:700;font-size:.85rem;grid-template-columns:3rem repeat(7,1fr)}
.p-cal-h span{padding:.4rem .5rem;text-align:center}
.p-week{border-top:1px solid var(--line)}
.p-wk{display:grid;place-items:center;font-weight:800;color:var(--ink2);font-size:.85rem;background:var(--mist)}
.p-days{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:1.8rem repeat(3,1.6rem) 1.2rem;gap:0 0;position:relative;min-height:7.2rem}
.p-day{border-left:1px solid var(--line);padding:.15rem .4rem;font-size:.82rem;font-weight:700;color:var(--navy)}
.p-day.off{background:var(--paper);color:var(--grey)}
.p-day.hoy span{background:var(--navy);color:#fff;border-radius:999px;padding:0 .45rem}
.p-bar{z-index:1;margin:2px 3px;padding:0 .5rem;border:0;border-radius:5px;font-size:.8rem;font-weight:700;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.3}
.p-bar:hover{filter:brightness(1.12);outline:2px solid var(--navy)}
.p-bar.cl{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}
.p-bar.cr{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}
.p-more{z-index:1;font-size:.75rem;font-weight:700;color:var(--ink2);padding:0 .5rem}
.p-vacio{padding:2rem;text-align:center;background:#fff;border-radius:var(--r)}
.p-lista .p-item{grid-template-columns:10px 8rem 1fr}
.p-colores{margin-bottom:1rem!important}
.p-cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;margin-bottom:.8rem}
.p-cgrid label{display:flex;align-items:center;gap:.6rem;font-weight:600}
.p-cgrid input{width:44px;height:36px;padding:0;border:2px solid var(--navy);border-radius:4px;background:#fff}
.p-sem{display:flex;align-items:center;gap:.6rem;font-weight:600;margin-bottom:.8rem;flex-wrap:wrap}.p-sem input{width:auto}
.p-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.p-edrow{display:grid;grid-template-columns:1fr 1.6fr auto auto;gap:.5rem;margin-bottom:.5rem}
.p-modal{position:fixed;inset:0;background:rgba(1,4,49,.55);display:grid;place-items:center;padding:16px;z-index:20;overflow:auto}
.p-dlg{background:#fff;border:2px solid var(--navy);border-radius:var(--r);box-shadow:8px 8px 0 var(--hl);padding:1.4rem;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto}
.p-dh{display:flex;align-items:center;gap:.6rem;font-size:2rem;line-height:1.05;color:var(--navy);margin-bottom:.8rem}
.p-dh i{width:14px;height:34px}
.p-dl{display:grid;gap:.5rem;margin:0}.p-dl div{display:grid;grid-template-columns:6rem 1fr;gap:.6rem}
.p-dl dt{font-weight:700;color:var(--ink2)}.p-dl dd{margin:0}.p-nt{white-space:pre-line}
.p-form{display:grid;gap:.7rem}.p-form label{display:grid;gap:.25rem;font-weight:700;font-size:.92rem}.p-form small{font-weight:400;color:var(--ink2)}
.p-2{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.p-errs{color:var(--red);font-size:.9rem;padding-left:1.1rem}
@media (max-width:980px){.p-grid{grid-template-columns:1fr}}
@media (max-width:700px){
  .p-hero{flex-direction:column;align-items:flex-start}
  .p-item,.p-lista .p-item{grid-template-columns:8px 5.2rem 1fr;gap:.6rem}
  .p-days{grid-template-rows:1.6rem repeat(3,1.45rem) 1.1rem;min-height:6.4rem}.p-bar{font-size:.68rem;padding:0 .25rem}.p-cal-h span{font-size:.62rem;padding:.3rem 0}.p-cal-h,.p-week{grid-template-columns:1.6rem 1fr}.p-cal-h{grid-template-columns:1.6rem repeat(7,1fr)}.p-wk{font-size:.62rem}
  .p-avform,.p-edrow{grid-template-columns:1fr}
  .p-2{grid-template-columns:1fr}
}

/* Recursos visual */
.p-rhero{display:flex;align-items:center;gap:1.2rem;background:var(--navy);color:#fff;border-radius:var(--r);padding:clamp(18px,3vw,36px);margin-bottom:1.4rem;position:relative;overflow:hidden}
.p-rhero::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:var(--navy2);z-index:0}
.p-rhero>*{position:relative;z-index:1}
.p-rhero>div{flex:1}
.p-rlogo{height:clamp(54px,9vw,88px);width:auto}
.p-rhero h2{font-size:clamp(2rem,5vw,3.4rem);line-height:1;font-weight:900}
.p-rhero p{margin:.4rem 0 0;color:var(--hl);font-weight:600}
.p-grupo{margin-bottom:1.6rem}
.p-gt{display:flex;align-items:center;gap:.6rem;font-size:1.7rem;color:var(--navy);margin-bottom:.8rem}
.p-gt::before{content:"";width:14px;height:28px;border-radius:3px;background:var(--ac)}
.p-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.p-tile{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;background:#fff;border:2px solid var(--navy);border-radius:12px;padding:.9rem 1rem;min-height:84px;color:var(--navy);text-decoration:none;box-shadow:4px 4px 0 var(--line);transition:transform .14s,box-shadow .14s}
.p-tile:hover,.p-tile:focus-visible{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--ac)}
.p-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--ac);color:#fff}
.p-tt b{display:block;font-size:1.08rem;line-height:1.2}
.p-tt small{color:var(--ink2);font-size:.82rem;font-weight:600}
.p-go{font-size:1.3rem;font-weight:800;color:var(--ac)}
.p-tile.g{background:var(--navy);color:#fff;border-color:var(--navy);min-height:96px}
.p-tile.g .p-tt small{color:var(--hl)}.p-tile.g .p-go{color:var(--hl)}
.p-tile.g .p-ic{background:var(--hl);color:var(--navy)}
.p-tile.g:hover,.p-tile.g:focus-visible{box-shadow:7px 7px 0 var(--hl)}
@media (max-width:700px){.p-rhero{flex-wrap:wrap}.p-tiles{grid-template-columns:1fr}.p-rhero::after{display:none}}

button.p-tile{font:inherit;text-align:left;cursor:pointer;width:100%}
.p-tt{min-width:0}.p-tt b{overflow-wrap:anywhere}
.p-tile .p-ic{flex:none}
.p-steps{margin:0 0 12px;padding-left:20px;display:grid;gap:4px}
