/* HV312 · ROUND287 · Owner Analytics Filters + Activity + Wheel */
#admin-v78-shell.hv312-owner-scope .v78-period{display:none!important}
.hv312-filter-strip{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:38px;margin:0 0 11px;flex-wrap:wrap}
.hv312-filter-chips{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-right:auto}
.hv312-chip{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid rgba(47,53,104,.08);border-radius:999px;background:#f8f9f5;color:#697286;font-size:.57rem;font-weight:850;line-height:1}
.hv312-filter-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border:1px solid rgba(47,53,104,.1);border-radius:12px;background:#fff;color:var(--brand-navy);font:inherit;font-size:.61rem;font-weight:900;cursor:pointer;box-shadow:0 5px 16px rgba(28,34,68,.035)}
.hv312-filter-button:hover{border-color:rgba(129,146,45,.32);background:#fbfcf7}.hv312-filter-button b{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#eef2de;color:#6b7925;font-size:.55rem}
.hv312-filter-dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none}.hv312-filter-dialog::backdrop{background:rgba(24,29,56,.24);backdrop-filter:blur(2px)}
.hv312-filter-card{width:min(620px,calc(100vw - 32px));max-height:min(80vh,720px);overflow:auto;border:1px solid rgba(47,53,104,.09);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(25,31,63,.18);padding:19px}
.hv312-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}.hv312-filter-head small{display:block;color:#84902c;font-size:.56rem;font-weight:950;letter-spacing:.075em;text-transform:uppercase}.hv312-filter-head h4{margin:4px 0 4px;color:var(--brand-navy);font-size:1.05rem}.hv312-filter-head p{margin:0;color:#88919c;font-size:.65rem;line-height:1.45}.hv312-filter-close{border:0;background:#f3f4ef;color:#6f7785;width:34px;height:34px;border-radius:50%;font-size:1.2rem;cursor:pointer}
.hv312-filter-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:13px}.hv312-filter-presets button{border:1px solid rgba(47,53,104,.09);background:#fafbf7;color:#727b88;border-radius:999px;padding:7px 10px;font-size:.59rem;font-weight:850;cursor:pointer}.hv312-filter-presets button.active{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.hv312-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hv312-filter-grid label{display:grid;gap:5px;color:#737d89;font-size:.58rem;font-weight:900}.hv312-filter-grid input,.hv312-filter-grid select{width:100%;min-height:39px;border:1px solid rgba(47,53,104,.12);border-radius:12px;background:#fff;padding:8px 10px;color:var(--brand-navy);font:inherit;font-size:.67rem}.hv312-filter-wide{grid-column:1/-1}.hv312-filter-hours{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hv312-filter-check{display:flex!important;grid-column:1/-1;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#f8faf2}.hv312-filter-check input{width:17px;height:17px;min-height:0;accent-color:#93a434}.hv312-filter-actions{display:flex;justify-content:space-between;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid #eff1ed}.hv312-filter-actions>div{display:flex;gap:8px}.hv312-filter-actions button{min-height:37px;padding:8px 13px;border-radius:11px;border:1px solid rgba(47,53,104,.1);background:#fff;color:var(--brand-navy);font-weight:900;cursor:pointer}.hv312-filter-actions .primary{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}
.hv312-section{display:grid;gap:13px}.hv312-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.hv312-kpis article{min-width:0;padding:13px;border:1px solid rgba(47,53,104,.08);border-radius:18px;background:#fff}.hv312-kpis small{display:block;color:#838c97;font-size:.55rem;font-weight:900;text-transform:uppercase;line-height:1.2}.hv312-kpis strong{display:block;margin-top:6px;color:var(--brand-navy);font-size:1.12rem;overflow:hidden;text-overflow:ellipsis}.hv312-kpis span{display:flex;gap:5px;align-items:center;margin-top:4px;color:#9299a2;font-size:.55rem;line-height:1.3}.hv312-delta{display:inline-flex!important;width:max-content;padding:3px 6px;border-radius:999px;background:#f1f3eb;color:#697326!important;font-size:.5rem!important;font-weight:900}.hv312-delta.down{background:#f5eeee;color:#94535b!important}.hv312-delta.flat{color:#858d96!important}
.hv312-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.hv312-panel{min-width:0;border:1px solid rgba(47,53,104,.075);border-radius:20px;background:#fff;padding:15px}.hv312-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}.hv312-panel-head small{display:block;color:#8a9636;font-size:.54rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.hv312-panel-head h4{margin:4px 0 4px;color:var(--brand-navy);font-size:.9rem}.hv312-panel-head p{margin:0;color:#8a929c;font-size:.61rem;line-height:1.4}.hv312-empty{padding:20px;text-align:center;color:#8d959e;font-size:.66rem}.hv312-error{color:#a34b55;background:#fbf2f1;border-radius:14px}
.hv312-table-wrap{overflow:auto;max-width:100%;border-radius:12px}.hv312-table{width:100%;min-width:760px;border-collapse:collapse;font-size:.62rem}.hv312-table th{padding:8px 9px;border-bottom:1px solid #e9ece7;color:#7e8792;text-align:left;font-size:.54rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.hv312-table td{padding:9px;border-bottom:1px solid #f0f2ee;color:#6f7783;vertical-align:top}.hv312-table td strong{color:var(--brand-navy)}.hv312-table td small{display:block;margin-top:2px;color:#949ba3}
.hv312-meter{display:grid;grid-template-columns:70px minmax(80px,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #f0f2ed}.hv312-meter:last-child{border-bottom:0}.hv312-meter strong{font-size:.62rem;color:var(--brand-navy);text-transform:capitalize}.hv312-meter i{height:7px;border-radius:99px;background:#eef1e5;overflow:hidden}.hv312-meter i em{display:block;height:100%;border-radius:inherit;background:var(--brand-green);min-width:1px}.hv312-meter span{font-size:.59rem;font-weight:900;color:#697326;text-align:right}
.hv312-heat-wrap{overflow-x:auto;padding-bottom:4px}.hv312-heat{display:grid;grid-template-columns:74px repeat(24,22px);gap:3px;min-width:680px;align-items:center}.hv312-heat .day{font-size:.56rem;font-weight:900;color:#6f7783;text-transform:capitalize}.hv312-heat .hour{font-size:.48rem;color:#9aa1a8;text-align:center}.hv312-heat .cell{height:22px;border-radius:6px;background:rgba(151,168,59,var(--heat,.08));box-shadow:inset 0 0 0 1px rgba(47,53,104,.035)}.hv312-heat .cell[title]{cursor:default}
.hv312-funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hv312-funnel article{position:relative;padding:13px;border-radius:16px;background:#f8faf2;border:1px solid rgba(132,151,42,.12)}.hv312-funnel article:not(:last-child)::after{content:'›';position:absolute;right:-8px;top:50%;transform:translateY(-50%);z-index:2;color:#9aa56a;font-size:1.1rem;font-weight:900}.hv312-funnel small{display:block;color:#87915f;font-size:.54rem;font-weight:900;text-transform:uppercase}.hv312-funnel strong{display:block;margin-top:5px;color:var(--brand-navy);font-size:1.05rem}.hv312-funnel span{display:block;margin-top:3px;color:#92999f;font-size:.54rem}
.hv312-summary-note{padding:11px 13px;border:1px solid rgba(47,53,104,.06);border-radius:14px;background:#fafbf8;color:#858e98;font-size:.59rem;line-height:1.5}.hv312-rank-row{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #f0f2ed}.hv312-rank-row:last-child{border-bottom:0}.hv312-rank-row>b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#f1f3e6;color:#78842d;font-size:.57rem}.hv312-rank-row strong{display:block;color:var(--brand-navy);font-size:.64rem}.hv312-rank-row small{display:block;margin-top:2px;color:#949ba3;font-size:.55rem}.hv312-rank-row>span{color:#707a28;font-size:.58rem;font-weight:900;text-align:right}
@media(max-width:1100px){.hv312-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.hv312-grid2{grid-template-columns:1fr}.hv312-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hv312-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}.hv312-funnel article:nth-child(2)::after{display:none}}
@media(max-width:700px){.hv312-filter-dialog{margin:auto 0 0 0;width:100%}.hv312-filter-card{width:100vw;max-height:86vh;border-radius:24px 24px 0 0;padding:17px 15px calc(17px + env(safe-area-inset-bottom))}.hv312-filter-grid{grid-template-columns:1fr}.hv312-filter-wide,.hv312-filter-check{grid-column:auto}.hv312-filter-strip{align-items:center}.hv312-filter-chips{max-width:calc(100% - 94px);overflow:hidden;flex-wrap:nowrap}.hv312-chip{white-space:nowrap}.hv312-filter-actions{position:sticky;bottom:-17px;background:#fff;padding-bottom:17px}.hv312-table{min-width:720px}}

/* HV313 · ROUND288 · restored HV311 metrics coexist with ROUND287 */
.hv313-quality-panel{background:linear-gradient(180deg,#fff,#fbfcf8)}
.hv313-kpis-quality{grid-template-columns:repeat(6,minmax(0,1fr))}
.hv313-kpis-overview article:nth-child(8) strong{font-size:.88rem;line-height:1.2;white-space:normal}
@media(max-width:1100px){.hv313-kpis-quality{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.hv313-kpis-quality{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* HV316 · ROUND291 · claridad de autoridad/frescura */
.hv316-integrity-note{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;color:#7e8790;font-size:.57rem}
.hv316-integrity-note b{color:#6c7a24}.hv316-integrity-note i{width:7px;height:7px;border-radius:50%;background:#aabd3b;display:inline-block}
@media(max-width:700px){.hv316-integrity-note{font-size:.67rem}}

/* HV317 · ROUND292 · estado transitorio sin destruir datos válidos */
.hv317-transient-note{font-size:.72rem;color:#7a838d;padding:8px 12px;border-radius:12px;background:#f7f8f2;border:1px solid rgba(132,149,47,.14)}


/* HV318 · ROUND293 · refresco visualmente estable */
#hv296-behavior-analytics.hv318-refreshing,
#hv312-wheel-analytics.hv318-refreshing{contain:layout style;}
#hv296-behavior-analytics.hv318-refreshing .hv316-integrity-note i,
#hv312-wheel-analytics.hv318-refreshing .hv316-integrity-note i{animation:hv318Pulse 1s ease-in-out infinite alternate;}
@keyframes hv318Pulse{from{opacity:.45}to{opacity:1}}
