:root{--red:#e30613;--dark:#111827;--light:#f5f6f8;--muted:#667085;--line:#e4e7ec}
*{box-sizing:border-box}body{font:16px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--light);color:var(--dark);margin:0}a{color:#b70913;text-decoration:none}a:hover{text-decoration:underline}.wrap{width:min(1140px,100%);margin:auto;padding:20px 18px}.head{background:white;border-bottom:1px solid var(--line)}.head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{font-weight:950;color:var(--red);font-size:1.25rem;letter-spacing:-.035em}.hint{color:var(--muted);font-size:.86rem}.hero{background:linear-gradient(120deg,#131722,#33343b);color:white;border-radius:22px;padding:26px 28px;margin:22px 0 18px}.hero h1{font-size:clamp(1.7rem,4vw,2.6rem);letter-spacing:-.045em;margin:5px 0 7px}.hero p{margin:0;color:#e4e7ec}.eyebrow{color:#ffc2c6;text-transform:uppercase;letter-spacing:.12em;font-weight:850;font-size:.76rem}.tabs{display:flex;gap:8px;overflow:auto;padding:0 0 12px;scrollbar-width:thin}.tabs a{display:inline-flex;gap:7px;align-items:center;background:white;border:1px solid var(--line);color:#344054;border-radius:999px;padding:10px 14px;font-weight:730;white-space:nowrap}.tabs a.active{background:var(--red);color:white;border-color:var(--red)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;min-width:0}.card h2{font-size:1.08rem;margin:0 0 12px}.card h3{font-size:1rem;margin:0 0 6px}.card p{margin:5px 0;color:#4b5565}.stat{font-weight:900;font-size:1.9rem;letter-spacing:-.04em}.sub{font-size:.84rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;background:#e7f7ed;color:#08713f;font-size:.75rem;font-weight:800}.badge.gray{background:#f2f4f7;color:#475467}.badge.bad{background:#fff0f1;color:#aa1821}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:12px;padding:12px 16px;font:inherit;font-weight:800;cursor:pointer;background:var(--red);color:white;text-decoration:none}.btn:hover{text-decoration:none;filter:brightness(.93)}.btn.secondary{background:white;color:#344054;border-color:#d0d5dd}.btn.small{padding:7px 10px;font-size:.82rem}.muted{color:var(--muted)}.list{display:grid;gap:10px}.rowitem{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #eef0f3}.rowitem:last-child{border:0}.rowitem strong{display:block}.rowitem small{color:var(--muted)}label{display:block;font-size:.86rem;font-weight:760;margin:0 0 5px}input,select,textarea{font:inherit;border:1px solid #cbd0d8;border-radius:12px;padding:12px 13px;width:100%;background:white;min-height:47px;color:var(--dark)}textarea{min-height:125px;resize:vertical}.field{margin-bottom:15px}.notice,.error{padding:14px 16px;border-radius:13px;margin:16px 0;font-weight:650}.notice{background:#e8f8f0;color:#086442;border:1px solid #bce9d0}.error{background:#fff0f1;color:#961a22;border:1px solid #ffcbd0}.footer{color:#89919f;text-align:center;padding:35px 0;font-size:.82rem}.stack{display:grid;gap:14px}.login{width:min(470px,100%);margin:45px auto}.login-card{background:white;padding:30px;border-radius:24px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(17,24,39,.07)}.login h1{margin:8px 0 2px;letter-spacing:-.045em;font-size:2rem}.space{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}.hr{height:1px;background:#eceef2;margin:15px 0}.text-right{text-align:right}.empty{color:var(--muted);padding:26px 6px;text-align:center}.logout{margin:0}.logout button{border:0;background:none;cursor:pointer;font:inherit;font-weight:800;color:#475467}.quick-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media(max-width:860px){.grid,.grid.two{grid-template-columns:1fr 1fr}.hero{padding:22px}.wrap{padding:14px 12px}}
@media(max-width:600px){.grid,.grid.two{grid-template-columns:1fr}.head .wrap{gap:6px}.card{padding:17px}.login{margin:17px auto}.login-card{padding:23px}.rowitem{align-items:flex-start;flex-direction:column}.hero{margin:12px 0 16px;padding:22px 20px}.btn{width:100%}.quick-links .btn{width:auto}}

/* Conversaciones seguras y acciones de autoservicio - v1.3.0 */
.activity-card{margin-bottom:18px}.filterbar{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0 10px}
.filter{border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-weight:750;color:#344054;background:#fff}
.filter.selected{background:#242a35;color:#fff;border-color:#242a35}.filter:hover{text-decoration:none}
.request-list{margin-top:14px;max-height:980px;overflow-y:auto;overscroll-behavior:contain}
.ticket{border:1px solid var(--line);border-radius:15px;padding:15px;background:#fff}
.ticket .sub{margin:4px 0 12px}.message{margin:10px 0;border-radius:12px;padding:12px;border:1px solid #e6e9ed}
.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;color:#293342}
.message.staff{background:#eef8f1;border-color:#c9e8d3}.message.customer{background:#f6f7f9}
.message-label{display:block;font-size:.76rem;font-weight:800;color:#475467}.reply-box{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.reply-box summary{color:#a7101b;cursor:pointer;font-weight:800;padding:4px 0}
.reply-box form{padding-top:10px}.reply-box textarea{min-height:90px}
@media(max-width:600px){.request-list{max-height:none;overflow:visible}.filter{flex:1;text-align:center;padding:9px 7px;font-size:.8rem}.ticket{padding:12px}.reply-box .btn{width:100%}}

/* Centro de ayuda y acciones asistidas: PortalTrasterosFS 1.4 */
.help-header{border:1px solid #f1c7ca}.help-eyebrow{color:#b90915}.help-search{margin-top:15px}.help-search .space{align-items:stretch}.help-search input{flex:1;min-width:160px}.help-search button{width:auto}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.service-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:15px;border:1px solid #e4e7ec;background:#fff;border-radius:14px;color:#101828}.service-tile:hover{border-color:#e30613;text-decoration:none;background:#fffafa}.service-tile strong{font-size:.95rem}.service-tile>span:not(.service-tag){font-size:.8rem;color:#667085}.service-tag{font-size:.72rem;font-weight:800;border-radius:7px;background:#fff0ed;color:#a52c23;padding:3px 7px;margin-top:5px}.service-tag.instant{background:#e7f7ed;color:#08713f}.help-faq{display:grid;gap:10px;margin-top:12px}.faq{border:1px solid var(--line);border-radius:14px;overflow:hidden}.faq summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px;font-weight:800}.faq summary:hover{background:#f9fafb}.faq-answer{padding:0 16px 16px}.faq-answer p{white-space:pre-line;overflow-wrap:anywhere;margin:4px 0 12px}.faq .sub{text-align:right;font-weight:500}@media(max-width:600px){.service-grid{grid-template-columns:1fr}.help-search .space{display:grid}.help-search button{width:100%}.faq summary{align-items:flex-start;flex-direction:column}.faq .sub{text-align:left}}

.notice-settings{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}.check-label{display:flex;align-items:center;gap:8px;margin:0}.check-label input{width:18px;height:18px;min-height:auto;accent-color:#e30613}

.help-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;border-top:1px solid #e4e7ec;padding-top:12px}.help-feedback .sub{margin-right:auto}

/* v1.4.1: estilos cache-safe y tarjetas de autogestion responsivas. */
.help-intro{justify-content:space-between;align-items:flex-start}
.help-intro>div{flex:1;min-width:240px}
.help-header h2{font-size:clamp(1.16rem,2.3vw,1.38rem);margin:4px 0 8px;line-height:1.25}
.help-header p{line-height:1.6;max-width:780px}
.help-search{margin-top:22px}
.help-search-line{display:flex;gap:10px;align-items:stretch}
.help-search-line input{flex:1;width:auto;min-width:0}
.help-search-line .btn{flex:0 0 auto;min-width:114px}
.help-actions>.space{margin-bottom:6px}
.help-actions .help-section-heading{display:flex;align-items:baseline;gap:8px 16px;flex-wrap:wrap;margin:19px 0 8px}
.help-section-heading h3{font-size:.98rem;color:#202938;margin:0}
.help-service-section+.help-service-section{border-top:1px solid #edf0f3;margin-top:22px;padding-top:4px}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.service-tile{display:flex;flex-direction:column;gap:9px;min-height:130px;padding:17px 18px;border:1px solid #e0e4eb;border-radius:15px;background:#fff;color:#192333;box-shadow:0 1px 2px rgba(16,24,40,.03);overflow-wrap:anywhere;transition:border-color .13s ease,transform .13s ease,box-shadow .13s ease}
.service-tile:hover{border-color:#e30613;background:#fffafa;box-shadow:0 4px 16px rgba(17,24,39,.06);transform:translateY(-1px);text-decoration:none}
.service-tile:focus-visible,.filter:focus-visible,.faq summary:focus-visible{outline:3px solid #ec5c64;outline-offset:2px}
.service-tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;width:100%}
.service-tile .service-tile-top strong{font-size:1rem;font-weight:800;line-height:1.34;color:#1f2937}
.service-arrow{display:flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:8px;background:#f8f9fa;color:#aa151c;font-size:1.4rem;line-height:1}
.service-tile .service-description{color:#59667a;font-size:.87rem;line-height:1.45}
.service-tile .service-tag{margin-top:auto;align-self:flex-start;font-size:.73rem;padding:4px 8px}
.help-answers .filterbar{margin:16px 0;display:flex;flex-wrap:wrap;gap:8px}
.help-answers .filter{display:inline-flex;align-items:center;padding:9px 13px;border:1px solid #e0e4eb;border-radius:999px;background:#fff;color:#394457;font-size:.83rem;line-height:1.25;text-decoration:none;white-space:nowrap}
.help-answers .filter.selected{background:#222936;border-color:#222936;color:#fff}
.help-answers .filter:hover:not(.selected){background:#f8f9fb}
.help-answers .help-faq{display:grid;gap:10px}
.help-answers .faq{border:1px solid #e1e5eb;border-radius:14px;background:#fff;overflow:hidden}
.help-answers .faq summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 17px;cursor:pointer;list-style:none;font-weight:750;color:#26303e}
.help-answers .faq summary::-webkit-details-marker{display:none}
.help-answers .faq summary::after{content:'+';order:2;flex:0 0 auto;color:#aa101a;font-size:1.4rem;font-weight:500;line-height:1}
.help-answers .faq[open] summary::after{content:'−'}
.help-answers .faq summary:hover{background:#fafbfc}
.help-answers .faq summary .sub{margin-left:auto;margin-right:3px;font-size:.76rem;font-weight:550;white-space:nowrap}
.help-answers .faq[open] summary{border-bottom:1px solid #edf0f3}
.help-answers .faq-answer{padding:16px 18px 18px}
.help-answers .faq-answer p{white-space:pre-line;line-height:1.65;color:#384353}
.help-answers .help-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px solid #eef0f3;padding-top:12px;margin-top:16px}
.help-answers .help-feedback .sub{margin-right:auto}
@media(max-width:760px){.service-grid{grid-template-columns:1fr}.help-search-line input{min-width:0}}
@media(max-width:600px){.help-intro>div{min-width:0}.help-header .badge{margin-left:0}.help-search-line{display:grid;grid-template-columns:1fr}.help-search-line .btn{width:100%;min-width:0}.service-tile{min-height:110px}.help-answers .filter{flex:0 0 auto}.help-answers .faq summary{align-items:flex-start}.help-answers .faq summary .sub{white-space:normal;max-width:90px;text-align:right}.help-answers .faq summary::after{margin-left:0}.help-answers .help-feedback .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.service-tile{transition:none}.service-tile:hover{transform:none}}
@media(max-width:600px){
  .help-answers .faq summary{flex-direction:row;align-items:center;flex-wrap:wrap;gap:7px 10px}
  .help-answers .faq summary>span:first-child{flex:1 1 100%;line-height:1.4}
  .help-answers .faq summary .sub{order:1;margin:0;max-width:none;text-align:left}
  .help-answers .faq summary::after{order:2;margin-left:auto}
}


/* PortalTrasterosFS 1.5.0: pago alojado seguro y disponible desde el movil */
.pay-action{margin:0;display:inline-flex;align-items:center}
.pay-action input[type=hidden]{display:none}
.pay-action button{white-space:nowrap}
.payment-panel{max-width:100%}
.payment-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.payment-metrics>div{border:1px solid #e2e5ec;background:#f9fafb;border-radius:14px;padding:17px;display:grid;gap:5px}
.payment-metrics strong{font-size:1.6rem;line-height:1.1;color:#c81021}
.payment-metrics span{font-size:.84rem;color:#586579}
.payment-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #e9edf3}
.payment-item:last-child{border:0}
.payment-item strong{display:block;font-size:1rem}
.payment-item small{display:block;color:#667085;margin:5px 0 10px}
.payment-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;justify-content:flex-end}
@media(max-width:680px){.payment-metrics{grid-template-columns:1fr}.payment-item{flex-direction:column;align-items:stretch}.payment-actions{justify-content:stretch}.payment-actions>a,.payment-actions>form,.payment-actions>form button{width:100%}.pay-action{max-width:100%}}
/* Área privada de unidad: se mantiene aislada del plano de administración. */
.private-map{width:100%;height:auto;display:block;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}
.private-map .other-unit{fill:#e8eaf0;stroke:#b7bcc8;stroke-width:1.4}
.private-map .own-unit{fill:#e30613;stroke:#9f0711;stroke-width:2.5}
.private-map .own-unit-label{font-family:Arial,sans-serif;font-size:17px;font-weight:bold;fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.private-map-caption{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.private-map-key{display:inline-block;width:16px;height:16px;background:#e30613;border-radius:4px}
.private-code{font-size:1.35rem;letter-spacing:.12em;font-weight:800;overflow-wrap:anywhere;display:inline-block;padding:.35rem .65rem;background:#fff7f7;border:1px solid #f9c3c3;border-radius:8px}
.private-code-form{max-width:550px}
.private-contract-list{display:flex;flex-direction:column;gap:12px}
.private-contract-row{border:1px solid #e0e4ed;border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.contract-text{font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;font-size:.98rem}
@media(max-width:600px){.private-code{font-size:1.15rem;max-width:100%}.private-contract-row>.btn{width:100%;text-align:center}}


/* 1.6.1 - Menu agrupado: seis areas y navegacion contextual accesible. */
.portal-navigation{margin:0 0 10px}
.portal-primary-nav{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0}
.portal-nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:11px 17px;border:1px solid #dce2eb;border-radius:12px;background:#fff;color:#364152;font-weight:750;font-size:.9rem;line-height:1.2;text-align:center;text-decoration:none;white-space:normal;transition:background .12s,border-color .12s}
.portal-nav-link:hover{background:#f9fafb;border-color:#aeb7c5;text-decoration:none}
.portal-nav-link.is-current{background:#1c2431;color:#fff;border-color:#1c2431}
.portal-nav-link.is-current:hover{background:#1c2431;color:#fff}
.portal-nav-link:focus-visible,.portal-subnav-link:focus-visible,.portal-mobile-nav>summary:focus-visible{outline:3px solid #e30613;outline-offset:3px}
.portal-mobile-nav{display:none}
.portal-secondary-nav{display:flex;flex-wrap:wrap;gap:5px 9px;padding:3px 0 12px;margin-bottom:15px;border-bottom:1px solid #dfe4ea}
.portal-subnav-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 11px;border-radius:10px;color:#596579;font-size:.87rem;font-weight:650;text-decoration:none;white-space:normal}
.portal-subnav-link:hover{color:#b70814;background:#fff6f7;text-decoration:none}
.portal-subnav-link.is-current{font-weight:850;color:#b70814;background:#fff1f3}
@media (max-width:720px){
  .portal-primary-nav{display:none}
  .portal-mobile-nav{display:block;position:relative}
  .portal-mobile-nav>summary{display:flex;gap:10px;align-items:center;min-height:48px;padding:10px 14px;cursor:pointer;list-style:none;background:#fff;border:1px solid #dce2eb;border-radius:13px;color:#344054;font-size:.88rem}
  .portal-mobile-nav>summary::-webkit-details-marker{display:none}
  .portal-mobile-nav>summary strong{color:#191f2b;margin-left:auto;text-align:right}
  .portal-mobile-menu-symbol{color:#cf0715;font-size:1.2rem;line-height:1}
  .portal-mobile-chevron{font-size:1.25rem;line-height:1;transition:transform .12s}
  .portal-mobile-nav[open] .portal-mobile-chevron{transform:rotate(180deg)}
  .portal-mobile-nav[open]>summary{border-radius:13px 13px 0 0;border-bottom-color:transparent}
  .portal-mobile-nav-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px;border:1px solid #dce2eb;border-top:0;border-radius:0 0 13px 13px;background:#fff}
  .portal-mobile-nav-items .portal-nav-link{width:100%;padding:10px;min-height:45px;font-size:.82rem}
  .portal-secondary-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:13px;padding:2px 0 12px}
  .portal-subnav-link{background:#fff;border:1px solid #e1e5eb;padding:10px 8px;text-align:center;font-size:.82rem;min-height:43px}
  .portal-subnav-link.is-current{border-color:#efb5b8}
}
@media (max-width:360px){
 .portal-mobile-nav-items .portal-nav-link{font-size:.78rem;padding:9px 5px}
 .portal-subnav-link{font-size:.77rem;padding:9px 5px}
}
@media (prefers-reduced-motion:reduce){.portal-nav-link,.portal-mobile-chevron{transition:none}}
