/* ZeroniX Agency OS v1.9 — analytics, consent and communication UX */
:root{--zx-analytics-blue:#2563eb;--zx-analytics-cyan:#06b6d4;--zx-analytics-orange:#f97316;--zx-analytics-ink:#0f172a;--zx-analytics-soft:#f8fafc}
.consent-banner{position:fixed;z-index:1200;left:1rem;right:1rem;bottom:1rem;margin:auto;max-width:980px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.1rem;border:1px solid rgba(148,163,184,.35);border-radius:18px;background:rgba(15,23,42,.97);color:#fff;box-shadow:0 24px 70px rgba(2,6,23,.36);backdrop-filter:blur(18px)}
.consent-banner[hidden],.consent-modal[hidden]{display:none!important}.consent-banner h2{font-size:1.05rem;margin:0 0 .3rem}.consent-banner p{margin:0;color:#dbeafe;line-height:1.55}.consent-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.consent-actions button{min-height:44px}.consent-modal{position:fixed;z-index:1220;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(2,6,23,.72)}.consent-card{width:min(620px,100%);max-height:min(760px,92dvh);overflow:auto;border-radius:20px;background:#fff;color:#0f172a;box-shadow:0 30px 90px rgba(2,6,23,.45);padding:1.35rem}.consent-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.consent-card h2{margin:0}.consent-option{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #e2e8f0}.consent-option small{display:block;color:#64748b;margin-top:.25rem}.consent-toggle{width:46px;height:26px;accent-color:#2563eb}
.analytics-period-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.analytics-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem;margin-bottom:1rem}.analytics-kpi{min-width:0;padding:1rem;border:1px solid #dbe4f0;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbff);box-shadow:0 10px 30px rgba(15,23,42,.05)}.analytics-kpi.live{border-color:#86efac;background:linear-gradient(145deg,#f0fdf4,#ecfeff)}.analytics-kpi span,.analytics-kpi small{display:block;color:#64748b}.analytics-kpi strong{display:block;color:#0f172a;font-size:clamp(1.55rem,2.5vw,2.3rem);margin:.35rem 0;overflow-wrap:normal;word-break:normal}.analytics-chart-panel{overflow:hidden}.analytics-chart{min-height:250px;display:flex;align-items:stretch;gap:min(1vw,.7rem);overflow-x:auto;padding:1rem .25rem .25rem}.analytics-day{display:grid;grid-template-rows:1fr auto;min-width:28px;flex:1;gap:.45rem;text-align:center}.analytics-bars{height:210px;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid #cbd5e1}.analytics-bars i,.analytics-bars b{display:block;width:min(12px,42%);min-height:3px;border-radius:5px 5px 1px 1px}.analytics-bars i{background:linear-gradient(#93c5fd,#2563eb)}.analytics-bars b{background:linear-gradient(#fdba74,#f97316)}.analytics-day small{font-size:.7rem;white-space:nowrap;color:#64748b}.analytics-legend{display:flex;gap:1.25rem;justify-content:flex-end;color:#475569;font-size:.85rem}.analytics-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem}.analytics-legend .pageviews{background:#2563eb}.analytics-legend .visitors{background:#f97316}.analytics-table-grid,.search-console-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.search-console-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-table-grid>.panel,.analytics-table-grid>section,.search-console-grid>section{min-width:0}.analytics-list{display:grid;gap:.55rem}.analytics-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.65rem .7rem;border-radius:10px;background:#f8fafc}.analytics-list-row span{min-width:0;color:#334155;overflow-wrap:anywhere}.analytics-list-row strong{color:#0f172a}.google-insights-panel{margin-top:1rem}.analytics-setup{margin-top:1rem}.analytics-setup>summary{cursor:pointer;list-style:none}.analytics-setup>summary::-webkit-details-marker{display:none}.analytics-config-grid .consent{align-self:end}.analytics-test-actions{margin-top:1rem}.empty-copy{color:#64748b;margin:.25rem 0}.data-table.compact{font-size:.84rem}
.communications-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.communication-status-card{position:relative;min-width:0;padding:1.1rem;border:1px solid #dbe4f0;border-radius:16px;background:#fff}.communication-status-card>span,.communication-status-card>small{display:block;color:#64748b}.communication-status-card>strong{display:block;margin:.35rem 0;color:#0f172a;font-size:1.35rem}.communication-status-card>.badge{position:absolute;top:1rem;right:1rem}.communications-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.communications-log-table small{display:block;margin-top:.25rem;max-width:480px;white-space:normal}.text-danger{color:#b91c1c!important}
.dashboard-content>*{min-width:0}.dashboard-content .panel,.dashboard-content .detail-card{max-width:100%}.field input,.field select,.field textarea{max-width:100%;min-width:0}.data-table td,.data-table th{word-break:normal;overflow-wrap:break-word}.client-main,.dashboard-main{min-width:0}
@media(max-width:1280px){.analytics-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.consent-banner{grid-template-columns:1fr}.consent-actions{justify-content:flex-start}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-table-grid,.search-console-grid,.communications-compose-grid{grid-template-columns:1fr}.analytics-chart{min-height:220px}.analytics-bars{height:180px}}
@media(max-width:560px){.consent-banner{left:.6rem;right:.6rem;bottom:.6rem;padding:.9rem}.consent-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.consent-actions .btn-primary{grid-column:1/-1}.analytics-kpis,.communications-status-grid{grid-template-columns:1fr}.analytics-day{min-width:34px}.analytics-legend{justify-content:flex-start;flex-wrap:wrap}.communication-status-card>.badge{position:static;display:inline-flex;margin-top:.65rem}}
@media(prefers-reduced-motion:reduce){.consent-banner,.consent-modal,.analytics-bars i,.analytics-bars b{animation:none!important;transition:none!important}}
