/* RevUp Enterprise Visual System · N+1
   This layer normalizes layout and component behavior. It intentionally does not
   change functional IDs, data-* attributes, endpoints or JavaScript contracts. */
/* Content-only palette adapter. The sidebar and its mobile scrim retain their
   existing variables, rules and layout. Dark Mode never enters this scope. */
body[data-theme-mode="branding"] > :not(#portalSidebar):not(#sidebarScrim){
  --bg:var(--theme-background);--panel:var(--theme-surface);--panel2:var(--theme-surfaceSecondary);
  --text:var(--theme-textPrimary);--muted:var(--theme-textSecondary);--line:var(--theme-border);
  --accent:var(--theme-primary);--primary:var(--theme-primary);--ink:var(--theme-textPrimary);
  --surface-page:var(--theme-background);--surface-primary:var(--theme-surface);
  --surface-secondary:var(--theme-surfaceSecondary);--surface-elevated:var(--theme-inputBackground);
  --text-primary:var(--theme-textPrimary);--text-secondary:var(--theme-textSecondary);
  --text-muted:var(--theme-textSecondary);--text-disabled:var(--theme-textDisabled);
  --interactive-primary:var(--theme-primary);--interactive-primary-text:var(--theme-primaryText);
  --interactive-primary-hover:var(--theme-primaryHover);--interactive-primary-active:var(--theme-primaryActive);
  --interactive-primary-disabled:var(--theme-primaryDisabled);
  --border-default:var(--theme-border);--focus-ring:var(--theme-inputFocus);
  --input-background:var(--theme-inputBackground);--input-text:var(--theme-inputText);--input-border:var(--theme-inputBorder);
  --help-background:var(--theme-helpBackground);--help-text:var(--theme-helpText);
  --favorite-background:var(--theme-favoriteBackground);--favorite-active:var(--theme-favoriteActive);
  --card-background:var(--theme-cardBackground);--card-text:var(--theme-cardText);
  --vcard-background:var(--theme-vcardBackground);--vcard-text:var(--theme-vcardText);
  --chart-background:var(--theme-chartBackground);--chart-text:var(--theme-chartText);
  --status-success:var(--theme-success);--status-warning:var(--theme-warning);
  --status-error:var(--theme-error);--status-info:var(--theme-info);
}
/* Surface-local reading tokens keep tenant-customized page colors from leaking
   into independently configured cards. No sidebar or Dark Mode declarations. */
body[data-theme-mode="branding"] :is(.tabPane,.topbar) :is(.panel,.heroCard,.card,.savedKpiCard,.ruPreferenceCard,.clientCard),
body[data-theme-mode="branding"] > .appShell > .topbar,
body[data-theme-mode="branding"] .topbar{
  --text:var(--theme-cardText);--text-primary:var(--theme-cardText);
  --text-secondary:var(--theme-cardSecondaryText);--text-muted:var(--theme-cardSecondaryText);--muted:var(--theme-cardSecondaryText);
  --rv-n1-text:var(--theme-cardText);--rv-n1-muted:var(--theme-cardSecondaryText);
}
body[data-theme-mode="branding"] .tabPane :is(.kpi,.metric,.statMini,.qualityMetric){
  --text:var(--theme-vcardText);--text-primary:var(--theme-vcardText);
  --text-secondary:var(--theme-vcardSecondaryText);--text-muted:var(--theme-vcardSecondaryText);--muted:var(--theme-vcardSecondaryText);
}
:root{
  /* Canonical RevUp design tokens. Product adapters may alias existing theme
     variables to these names without duplicating component rules. */
  --rv-color-brand-700:#0754b8;--rv-color-brand-600:#076ee9;--rv-color-brand-400:#10c9df;
  --rv-color-surface:#fff;--rv-color-canvas:#f5f8ff;--rv-color-text:#0b1d38;--rv-color-muted:#5c6d82;
  --rv-color-success:#1f9d71;--rv-color-warning:#b7791f;--rv-color-danger:#c93c50;
  --rv-space-1:4px;--rv-space-2:8px;--rv-space-3:12px;--rv-space-4:16px;--rv-space-5:20px;--rv-space-6:24px;--rv-space-8:32px;
  --rv-radius-sm:10px;--rv-radius-md:14px;--rv-radius-lg:18px;--rv-control-height:42px;
  --rv-sidebar-expanded:248px;--rv-sidebar-collapsed:72px;--rv-sidebar-width:var(--rv-sidebar-expanded);
  --ru-space-1:4px;--ru-space-2:8px;--ru-space-3:12px;--ru-space-4:16px;--ru-space-5:20px;--ru-space-6:24px;--ru-space-8:32px;
  --ru-radius-sm:10px;--ru-radius-md:14px;--ru-radius-lg:18px;
  --ru-control-h:42px;--ru-touch-h:46px;
  --ru-content-max:1680px;--ru-sidebar-w:256px;
  --ru-shadow:0 14px 32px rgba(0,0,0,.16);
  --ru-focus:0 0 0 3px color-mix(in srgb,var(--accent,#23d5ab) 34%,transparent);
}
html{scroll-behavior:smooth}
body{min-width:0;--rv-sidebar-width:var(--rv-sidebar-expanded)}
body[data-sidebar-collapsed="1"]{--rv-sidebar-width:var(--rv-sidebar-collapsed)}
.shell{width:calc(100% - var(--rv-sidebar-width));max-width:none;margin:0 0 0 var(--rv-sidebar-width);padding:var(--ru-space-5);min-width:0;transition:width .2s ease,margin-left .2s ease}
.panel,.heroCard,.modal,.processModal,.stableWizardCard{box-shadow:none}
.panel,.heroCard{min-width:0;overflow:visible}
.sectionTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ru-space-4);flex-wrap:wrap}
.sectionTitle>div{min-width:0}.sectionTitle h2,.sectionTitle h3{overflow-wrap:anywhere}
.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ru-space-4)}
.formGrid .field{min-width:0}.field.span2{grid-column:1/-1}
.field label{font-weight:650;line-height:1.35}
.field input,.field select,.field textarea{width:100%;min-width:0;min-height:var(--ru-control-h);border-radius:var(--ru-radius-sm)}
.field textarea{min-height:94px;resize:vertical}
.btn,button{min-height:var(--ru-control-h);display:inline-flex;align-items:center;justify-content:center;gap:7px}
.actions{align-items:center}
.tableWrap{width:100%;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--ru-radius-sm)}
.tableWrap table{border-collapse:separate;border-spacing:0;width:100%}
.tableWrap th{position:sticky;top:0;z-index:1}
.masterFilterBar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,240px);gap:var(--ru-space-3);align-items:end}
.userAccordion,.masterRows>details{min-width:0}
.userAccordionSummary{gap:var(--ru-space-4)}
.userAccordionIdentity,.userAccordionMeta{min-width:0}
.userAccordionIdentity span,.userAccordionMeta span{overflow-wrap:anywhere}

/* Official fixed identity: monogram in the portal shell. */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--rv-sidebar-width);height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto!important;transition:width .2s ease,transform .22s ease;z-index:90}
.sidebarControls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 2px 10px}
.sidebarControlBtn,.sidebarMobileToggle{border:1px solid var(--line);background:color-mix(in srgb,var(--panel2) 78%,transparent);color:var(--text);border-radius:10px;cursor:pointer}
.sidebarControlBtn{min-width:0;padding:7px 8px;font-size:13px;white-space:nowrap;overflow:hidden;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}
.sidebarControlBtn:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--panel2));color:var(--text)}
.sidebarControlBtn:active{transform:translateY(1px);background:color-mix(in srgb,var(--accent) 19%,var(--panel2))}
.sidebarControlBtn:focus-visible{border-color:var(--accent);box-shadow:var(--ru-focus)}
.sidebarControlBtn[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel2));color:var(--accent)}
.sidebarControlIcon{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease,fill .18s ease}
body[data-sidebar-collapsed="1"] .sidebarCollapseIcon{transform:rotate(180deg)}
.sidebarControlBtn[aria-pressed="true"] .sidebarPinIcon{fill:color-mix(in srgb,var(--accent) 22%,transparent)}
.sidebarControlBtn:disabled{opacity:.55;cursor:not-allowed}
.sidebarMobileToggle{display:none;flex:0 0 auto;width:44px;padding:8px;font-size:21px}
.sidebarScrim{display:none;position:fixed;inset:0;z-index:89;border:0;background:rgba(2,8,15,.64);backdrop-filter:blur(2px)}
.sideNav{min-width:0}.sideBtn,.sideBottom .btn{width:100%;max-width:100%;justify-content:flex-start;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:clip}
.sideGroup{text-align:left}.masterMenuChevron{margin-left:auto}
body[data-sidebar-collapsed="1"] .sidebarLogo.revupFixedLogoLink{min-height:60px!important;padding:5px!important}
body[data-sidebar-collapsed="1"] .sidebarLogo.revupFixedLogoLink img{width:44px!important;height:44px!important}
body[data-sidebar-collapsed="1"] .sideGroup{height:1px;margin:5px 10px;padding:0;overflow:hidden;color:transparent;border-top:1px solid var(--line)}
body[data-sidebar-collapsed="1"] .sidebarControls{grid-template-columns:1fr}
body[data-sidebar-collapsed="1"] #sidebarPinBtn{display:none}
body[data-sidebar-collapsed="1"] .sideBtn,body[data-sidebar-collapsed="1"] .sideBottom .btn{width:48px;padding-inline:13px}
body[data-sidebar-collapsed="1"] .sideBtnLabel,body[data-sidebar-collapsed="1"] .masterMenuChevron,body[data-sidebar-collapsed="1"] .sideBottom .btn:not(.sideBtn){display:none!important}
body[data-sidebar-collapsed="1"] .sideBtn{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;min-width:48px!important;max-width:48px!important;margin-inline:auto!important;text-indent:0!important;font-size:0!important}
body[data-sidebar-collapsed="1"] .sideBtnIcon{display:block!important;width:20px!important;height:20px!important;min-width:20px!important;margin:0!important;font-size:initial!important}
.sidebarChevronLabel{display:block;font-size:16px;font-weight:900;letter-spacing:-2px;line-height:1;text-align:center}
body[data-sidebar-collapsed="1"] .masterMenuChildren[style*="block"]{position:fixed!important;left:76px!important;bottom:82px!important;z-index:130!important;display:grid!important;width:min(280px,calc(100vw - 92px))!important;max-height:70vh!important;overflow:auto!important;padding:10px!important;border:1px solid var(--line)!important;border-radius:14px!important;background:var(--panel)!important;box-shadow:0 18px 48px rgba(0,0,0,.28)!important}
body[data-sidebar-collapsed="1"] .masterMenuChildren .sideBtn{width:100%!important;max-width:none!important;justify-content:flex-start!important;gap:10px!important;font-size:13px!important;padding:9px 11px!important}
body[data-sidebar-collapsed="1"] .masterMenuChildren .sideBtnLabel{display:inline!important}
body:not([data-is-superadmin="1"]) .portalOperationsNav{display:none!important}
body:not([data-is-superadmin="1"]) .superAdminOnly{display:none!important}
#tab-kpihelp[data-canonical-help="1"]>:not(.canonicalKpiHelp){display:none!important}
.canonicalKpiHelp{display:grid;gap:16px}.canonicalKpiGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.canonicalKpiTile{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:250px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.canonicalKpiTile h3{margin:4px 0 8px}.canonicalKpiTile p{margin:0;color:var(--muted);line-height:1.55}.canonicalKpiTile .canonicalKpiInterpretation{margin-top:12px}.canonicalKpiTile .canonicalKpiInterpretation strong{color:var(--text)}.canonicalKpiTile small{overflow-wrap:anywhere}.canonicalKpiTileActions{display:flex;flex-wrap:wrap;gap:8px}.canonicalKpiTileActions .btn{flex:1 1 140px}.canonicalKpiTarget{outline:3px solid var(--accent2,#39a9ff);outline-offset:5px;transition:outline-color .25s}
@media(max-width:640px){.canonicalKpiHelpRow{grid-template-columns:1fr;gap:3px}.canonicalKpiGrid{grid-template-columns:1fr}}
.topbarLayout{display:flex;align-items:center;gap:10px;min-width:0}

/* Calendar */
.ruCalendarToolbar{display:flex;align-items:end;justify-content:space-between;gap:var(--ru-space-3);flex-wrap:wrap;margin-bottom:var(--ru-space-4)}
.ruCalendarToolbar .ruCalendarNav,.ruCalendarToolbar .ruCalendarViews{display:flex;gap:8px;flex-wrap:wrap}
.ruCalendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:0}
.ruCalendarDay{min-height:126px;border:1px solid var(--line);border-radius:var(--ru-radius-sm);padding:8px;background:color-mix(in srgb,var(--panel2) 72%,transparent);overflow:hidden}
.ruCalendarDay.ruOutside{opacity:.55}.ruCalendarDayHeader{display:flex;justify-content:space-between;gap:6px;margin-bottom:6px;font-size:12px;color:var(--muted)}
.ruCalendarEvent{display:block;width:100%;border:1px solid color-mix(in srgb,var(--accent2,#39a9ff) 38%,var(--line));background:color-mix(in srgb,var(--accent2,#39a9ff) 13%,var(--panel2));border-radius:8px;padding:6px 7px;margin:5px 0;text-align:left;line-height:1.25;min-height:0}
.ruCalendarEvent strong,.ruCalendarEvent small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ruCalendarList{display:grid;gap:8px}.ruCalendarList .ruCalendarEvent{padding:10px 12px}
.ruCalendarEmpty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--ru-radius-md)}
.ruCalendarStatus{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}
.ruCalendarStatus.declined{opacity:.65}.ruCalendarStatus.accepted{border-color:color-mix(in srgb,var(--good,#51d88a) 55%,var(--line))}
.calendarAgendaState.degraded{display:block!important;border-color:color-mix(in srgb,var(--rv-color-warning) 50%,var(--line));background:color-mix(in srgb,var(--rv-color-warning) 10%,var(--panel2));color:var(--text)}

/* Accessible feedback primitives used by shell and P0 flows. */
.portalToast{position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:1300;max-width:min(420px,calc(100vw - 24px));padding:12px 16px;border:1px solid var(--line);border-radius:var(--rv-radius-md);background:var(--panel);color:var(--text);box-shadow:var(--ru-shadow);transform:translateY(18px);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
.portalToast.show{transform:translateY(0);opacity:1}.portalToast.error{border-color:color-mix(in srgb,var(--rv-color-danger) 55%,var(--line))}.portalToast.warning{border-color:color-mix(in srgb,var(--rv-color-warning) 55%,var(--line))}
.revupDialogBackdrop{position:fixed;inset:0;z-index:1400;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(2,8,15,.72);backdrop-filter:blur(4px)}
.revupDialog{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:20px;border:1px solid var(--line);border-radius:var(--rv-radius-lg);background:var(--panel);color:var(--text);box-shadow:0 24px 64px rgba(0,0,0,.4)}
.revupDialog h2{margin:0 0 10px;font-size:20px}.revupDialog p{margin:0;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.revupDialogActions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.revupHelpTrigger{cursor:help}

/* Performance hours */
.performanceHoursSummary{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:var(--ru-space-4);align-items:start;margin-top:var(--ru-space-3)}
.performanceHoursTotal{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:6px;align-items:baseline;min-width:0;padding:var(--ru-space-3);border:1px solid var(--line);border-radius:var(--ru-radius-md);background:color-mix(in srgb,var(--panel2) 72%,transparent)}
.performanceHoursTotal>span{min-width:0;color:var(--text)}.performanceHoursTotal>strong{justify-self:end;white-space:nowrap;font-size:20px}.performanceHoursTotal>small{display:block;grid-column:1/-1;color:var(--muted);overflow-wrap:anywhere}
.performanceHourRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:10px 12px;border:1px solid var(--line);border-radius:var(--ru-radius-md);background:color-mix(in srgb,var(--panel2) 62%,transparent)}
.performanceHourRow>span{min-width:0;overflow-wrap:anywhere}.performanceHourRow>strong{white-space:nowrap}.performanceHourRow>small{color:var(--muted);white-space:nowrap}
.ruHoursSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ru-space-3);margin:var(--ru-space-3) 0}
.ruHoursMetric{border:1px solid var(--line);border-radius:var(--ru-radius-md);padding:var(--ru-space-4);background:color-mix(in srgb,var(--panel2) 72%,transparent)}
.ruHoursMetric span{display:block;color:var(--muted);font-size:12px}.ruHoursMetric strong{display:block;font-size:24px;margin-top:5px}
.ruHoursDaily{display:grid;gap:8px}.ruHoursDay{display:grid;grid-template-columns:minmax(110px,180px) 1fr auto;align-items:center;gap:10px}
.ruHoursBar{height:9px;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}.ruHoursBar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:inherit}

/* Email preferences */
.ruPreferenceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ru-space-3)}
.ruPreferenceCard{border:1px solid var(--line);border-radius:var(--ru-radius-md);padding:var(--ru-space-4);background:color-mix(in srgb,var(--panel2) 62%,transparent)}
.ruPreferenceCard label{display:flex;gap:10px;align-items:flex-start;font-weight:700}.ruPreferenceCard p{margin:6px 0 0;color:var(--muted)}

/* Responsive shell: no content may be covered by navigation. */
@media(max-width:1180px){
  :root{--ru-sidebar-w:226px}.shell{padding:var(--ru-space-4)}
  .ruHoursSummary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1100px){
  body{--rv-sidebar-width:0px!important}
  .shell{width:100%;margin-left:0;padding:12px;padding-bottom:max(18px,env(safe-area-inset-bottom))}
  .formGrid,.ruPreferenceGrid,.masterFilterBar{grid-template-columns:1fr}
  .field.span2{grid-column:auto}
  .grid2,.grid3,.opsGrid,.analyticsGrid,.revenueOsKpis,.licenseSummary,.governanceControlsGrid{grid-template-columns:1fr!important}
  .sidebar{width:min(88vw,320px);max-width:min(88vw,320px);padding-bottom:max(18px,env(safe-area-inset-bottom));overflow-y:auto!important;overscroll-behavior:contain;transform:translateX(-102%);box-shadow:0 20px 52px rgba(0,0,0,.45)}
  body[data-sidebar-mobile-open="1"] .sidebar{transform:translateX(0)}
  body[data-sidebar-mobile-open="1"] .sidebarScrim{display:block}
  .sidebarMobileToggle{display:inline-flex}
  .sidebarControls{display:none}
  body[data-sidebar-collapsed="1"] .sidebarLogo.revupFixedLogoLink{min-height:68px!important;padding:8px!important}
  body[data-sidebar-collapsed="1"] .sidebarLogo.revupFixedLogoLink img{width:52px!important;height:52px!important}
  body[data-sidebar-collapsed="1"] .sideGroup{height:auto;margin:0;padding:10px 10px 5px;overflow:visible;color:inherit;border:0}
  body[data-sidebar-collapsed="1"] .sideBtn,body[data-sidebar-collapsed="1"] .sideBottom .btn{width:100%;padding:10px 11px}
  .topbar{top:6px;gap:8px}
  .topbar .actions{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .topbar .actions .btn{flex:0 0 auto}
  .ruCalendarGrid{grid-template-columns:1fr;gap:7px}.ruCalendarDay{min-height:0}.ruCalendarDayHeader{font-size:13px}.ruCalendarDay:empty{display:none}
  .performanceHoursSummary{grid-template-columns:1fr}
  .ruHoursSummary{grid-template-columns:1fr}.ruHoursDay{grid-template-columns:100px 1fr auto}
  .modal,.modalCard,.processModal,.stableWizardCard{max-height:calc(100dvh - 16px)!important;overflow:auto!important;padding-bottom:max(16px,env(safe-area-inset-bottom))!important}
}
@media(max-width:560px){
  body{font-size:15px}.shell{padding:8px}.panel,.heroCard{padding:14px!important;border-radius:14px!important}
  .btn,button,input,select,textarea{font-size:16px!important;min-height:var(--ru-touch-h)!important}
  .actions{width:100%}.actions>.btn{flex:1 1 auto}
  .tableWrap table{min-width:680px}
  .userAccordionSummary{align-items:flex-start;flex-direction:column}.userAccordionMeta{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .ruCalendarToolbar>*{width:100%}.ruCalendarToolbar .ruCalendarNav,.ruCalendarToolbar .ruCalendarViews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .performanceHourRow{grid-template-columns:minmax(0,1fr) auto}.performanceHourRow>small{grid-column:1/-1;white-space:normal}
  .ruHoursDay{grid-template-columns:1fr auto}.ruHoursBar{grid-column:1/-1;grid-row:2}
}

:focus-visible{outline:none;box-shadow:var(--ru-focus)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* ========================================================================
   RevUp v4.9.7 R8 - capa visual canónica
   Normaliza medidas y corrige gráficos/Kanban sin modificar contratos DOM.
   ======================================================================== */
:root{
  --ru-control-h:42px;
  --ru-card-radius:14px;
  --ru-card-pad:16px;
  --ru-section-gap:18px;
  --ru-row-gap:10px;
  --ru-font-xs:11px;
  --ru-font-sm:12px;
  --ru-font-md:14px;
  --ru-font-lg:18px;
  --ru-font-xl:24px;
}

/* Identidad oficial: siempre el monograma RevUp, sin recorte y sin branding cliente. */
.sidebarLogo.revupFixedLogoLink,
.revupHeaderLogo{background:transparent!important;border:0!important;box-shadow:none!important}
.sidebarLogo.revupFixedLogoLink{display:flex!important;align-items:center!important;justify-content:center!important;padding:10px!important;min-height:78px!important}
.sidebarLogo.revupFixedLogoLink img{width:62px!important;height:62px!important;max-width:62px!important;object-fit:contain!important;object-position:center!important;border-radius:0!important}
.revupHeaderLogo{width:50px!important;height:50px!important;min-width:50px!important;padding:0!important;border-radius:0!important}
.revupHeaderLogo img{width:50px!important;height:50px!important;max-width:50px!important;object-fit:contain!important}

/* Una sola escala para paneles, cards, controles y tablas. */
.panel,.heroCard,.ruPreferenceCard,.clientCard,.masterAccordion,.userAccordion,.savedKpiCard{
  border-radius:var(--ru-card-radius)!important;
}
.panel,.heroCard{padding:var(--ru-card-pad)!important}
.btn,.iconBtn,button,input,select,textarea{font-size:var(--ru-font-md)}
.btn,button{min-height:var(--ru-control-h)!important;border-radius:10px!important}
.field input,.field select{min-height:var(--ru-control-h)!important;padding:9px 11px!important}
.field textarea{padding:10px 11px!important}
.sectionTitle{margin-bottom:14px!important;gap:12px!important}
.sectionTitle h2{font-size:var(--ru-font-xl)!important}
.sectionTitle h3{font-size:var(--ru-font-lg)!important}
.masterRows,.clientAccordion,.performanceHoursRows{display:grid;gap:var(--ru-row-gap)}

/* Los mantenedores se navegan desde el menú Mantenimiento, no duplicados arriba. */
.tabs > .masterAdminNav{display:none!important}

/* Feedback visible de carga. */
.btn.isLoading,[aria-busy="true"]{cursor:progress!important}
.btn.isLoading{opacity:.78!important;position:relative!important}
#goalsConfigGrid[aria-busy="true"]{opacity:.58;pointer-events:none;transition:opacity .15s ease}

/* Gráficos verticales: valores y etiquetas forman parte del flujo; nunca se recortan. */
.chart{
  min-height:280px!important;height:280px!important;
  display:flex!important;align-items:stretch!important;
  gap:12px!important;padding:12px 10px 8px!important;
  overflow-x:auto!important;overflow-y:visible!important;
  border-bottom:0!important;
}
.chartCol{
  flex:1 0 74px!important;min-width:74px!important;height:auto!important;
  display:grid!important;grid-template-rows:26px minmax(150px,1fr) 42px!important;
  align-items:end!important;justify-items:center!important;position:relative!important;
}
.chartVal{position:static!important;display:block!important;font-size:12px!important;font-weight:800!important;color:var(--text)!important;white-space:nowrap!important;align-self:center!important}
.chartBar{align-self:end!important;width:min(48px,72%)!important;min-height:3px!important;max-height:170px!important}
.chartLabel{position:static!important;display:block!important;transform:none!important;max-width:88px!important;white-space:normal!important;overflow:visible!important;text-align:center!important;line-height:1.15!important;font-size:11px!important;color:var(--muted)!important;align-self:start!important}
.barRow{grid-template-columns:minmax(150px,260px) minmax(140px,1fr) minmax(46px,72px)!important;min-height:34px!important}
.barRow>span,.barRow>strong{display:block!important;visibility:visible!important;opacity:1!important;overflow-wrap:anywhere!important}
.barRow>strong{text-align:right!important}
.chartDataPoint{border-radius:10px;transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease}
.chartDataPoint:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.chartDataPoint:focus-visible{box-shadow:var(--ru-focus);background:color-mix(in srgb,var(--accent) 11%,transparent)}
.chartCol.chartDataPoint:focus-visible{transform:translateY(-2px)}
.barRow.chartDataPoint{padding:6px 8px}
.chartEmptyState{align-self:center;width:100%;text-align:center}
@media(prefers-reduced-motion:reduce){.chartDataPoint{transition:none}.chartCol.chartDataPoint:focus-visible{transform:none}}

/* Comentarios ejecutivos: selector + editor contextual único. */
.piCommentEditor{display:grid;gap:14px;min-width:0}
.piCommentToolbar{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:16px;align-items:end}
.piCommentToolbar label,.piCommentBody{display:grid;gap:7px;font-weight:750;color:var(--text)}
.piCommentToolbar select,.piCommentBody textarea{width:100%;min-width:0}
.piCommentMeta{display:flex;justify-content:flex-end;align-items:baseline;gap:10px;min-width:0;text-align:right}.piCommentMeta strong{overflow-wrap:anywhere}.piCommentMeta small,.piCommentHelp,.piCommentFooter>small{color:var(--muted)}
.piCommentHelp{margin:0;font-size:12px}.piCommentBody textarea{min-height:132px;resize:vertical;line-height:1.5}
.piCommentFooter{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.piCommentActions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto}.piCommentStatus{min-height:20px;font-size:12px;font-weight:750;color:var(--muted)}.piCommentStatus.saving{color:var(--accent)}.piCommentStatus.saved{color:var(--success,#63d18a)}.piCommentStatus.dirty{color:var(--warning,#f0b44d)}.piCommentStatus.error{color:var(--danger,#ef6a75)}
@media(max-width:760px){.piCommentToolbar{grid-template-columns:1fr}.piCommentMeta{justify-content:space-between;text-align:left}.piCommentFooter,.piCommentActions{align-items:stretch}.piCommentActions{width:100%;display:grid;grid-template-columns:1fr}.piCommentActions .btn{width:100%}}

/* Performance: content-height cards override legacy equal-height rules. */
#tab-kam360 :is(.pkFeatureGrid,.pkFeatureGrid2,.pkFeatureGrid3){align-items:start!important;grid-auto-rows:auto!important}
#tab-kam360 :is(.pkFeatureGrid,.pkFeatureGrid2,.pkFeatureGrid3)>.pkPanel{height:auto!important;min-height:0!important;align-self:start!important}

/* Kanban: columnas y cards compactas, sin superposición. */
.opportunityKanban{
  grid-auto-columns:minmax(238px,268px)!important;
  gap:10px!important;align-items:start!important;overflow-x:auto!important;
}
.kanbanCol{min-width:238px!important;padding:9px!important;overflow:hidden!important}
.kanbanColCards{display:grid!important;grid-auto-flow:row!important;gap:8px!important;align-content:start!important}
.kanbanCard{
  width:100%!important;min-width:0!important;max-width:100%!important;
  padding:10px!important;margin:0!important;overflow:hidden!important;
  border-radius:11px!important;position:relative!important;
}
.kanbanProject{font-size:13px!important;line-height:1.25!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important}
.kanbanClient,.kanbanMotive,.kanbanProducts,.kanbanNext small,.kanbanCommentsMini p{font-size:10px!important;line-height:1.3!important}
.kanbanMotive,.kanbanProducts{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important;margin:5px 0!important}
.kanbanPrice{padding:6px 7px!important;margin:6px 0!important;display:grid!important;grid-template-columns:1fr!important;gap:2px!important}
.kanbanPrice strong{font-size:14px!important}.kanbanPrice small{text-align:left!important;font-size:9px!important}
.kanbanMeta{margin:5px 0!important;gap:4px!important}.kanbanMeta span{font-size:9px!important;padding:2px 5px!important}
.kanbanAging,.kanbanNext{margin:5px 0!important;padding:5px 6px!important;font-size:10px!important}
.kanbanActions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin-top:6px!important}
.kanbanActions .btn{min-height:32px!important;padding:5px 6px!important;font-size:9px!important;white-space:normal!important}
.kanbanBadgeRow{padding-right:38px!important;margin-bottom:5px!important;gap:4px!important}.kanbanSource,.kanbanStatus,.kanbanApproval{font-size:8px!important;padding:3px 5px!important}

/* Notificaciones detalladas. */
.notificationRowV466{cursor:pointer!important}
.ruNotificationModal{position:fixed;inset:0;z-index:1000;background:rgba(2,8,15,.78);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(5px)}
.ruNotificationModalCard{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 24px 64px rgba(0,0,0,.35)}
.ruNotificationDetail{display:grid;gap:12px}.ruNotificationDetail dl{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0}.ruNotificationDetail dt{color:var(--muted);font-size:12px}.ruNotificationDetail dd{margin:0;overflow-wrap:anywhere}.ruAiSuggestion{border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel2));border-radius:12px;padding:14px}.ruAiSuggestion h4{margin:0 0 7px}.ruAiSuggestion p{margin:0;line-height:1.5}

/* Calendario QA/real. */
.calendarWorkspace{display:block!important;overflow:hidden}.calendarWorkspace[hidden]{display:none!important}
.calendarWorkspaceHeader{align-items:center;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.calendarWorkspaceHeader h3{margin:0 0 3px;font-size:21px}.calendarWorkspaceHeader small{font-size:13px}
.calendarWorkspace{--panel:var(--theme-cardBackground,#0d1b2a);--panel2:var(--theme-cardBackground,#11263a);--text:var(--theme-cardText,#eef6ff);--muted:var(--theme-cardSecondaryText,#b7c9df)}
.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel2) 82%,transparent)}
.calendarNav,.calendarViewSwitch{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.calendarNav #calendarRangeTitle{min-width:170px;margin-left:7px;font-size:16px;text-transform:capitalize;color:var(--text)}
.calendarViewSwitch{padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.calendarViewBtn{min-height:36px!important;padding:7px 12px;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--muted)!important;font-size:13px!important;font-weight:750;cursor:pointer}
.calendarViewBtn:hover{background:color-mix(in srgb,var(--accent) 8%,var(--panel2))!important;color:var(--text)!important}.calendarViewBtn.active{background:var(--accent)!important;color:var(--interactive-primary-text,#04131d)!important;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 24%,transparent)}
.calendarAgendaGrid{min-height:420px;width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.calendarWeekdays,.calendarMonthCells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:840px}
.calendarWeekdays{position:sticky;top:0;z-index:3;background:var(--panel2);border-bottom:1px solid var(--line)}
.calendarWeekday{padding:10px 8px;text-align:center;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.calendarMonthCells{grid-auto-rows:minmax(118px,1fr)}
.calendarMonthDay{min-width:0;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);transition:background-color .15s ease}
.calendarMonthDay:nth-child(7n){border-right:0}.calendarMonthDay:hover{background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.calendarMonthDay.otherMonth{background:color-mix(in srgb,var(--panel2) 70%,var(--panel));opacity:.65}.calendarMonthDay.today{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 62%,transparent);background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.calendarDayNumber{display:flex!important;align-items:center!important;justify-content:center!important;width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;margin:0 0 5px auto;border:0!important;border-radius:50%!important;background:transparent!important;color:var(--text)!important;font-size:12px!important;font-weight:800;cursor:pointer}
.calendarMonthDay.today .calendarDayNumber{background:var(--accent)!important;color:var(--interactive-primary-text,#04131d)!important}.calendarDayNumber:hover{background:color-mix(in srgb,var(--accent) 12%,var(--panel2))!important}
.calendarEventChip{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;min-height:30px!important;margin:4px 0;padding:5px 7px!important;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))!important;border-left:3px solid var(--accent)!important;border-radius:8px!important;background:color-mix(in srgb,var(--accent) 8%,var(--panel2))!important;color:var(--text)!important;text-align:left;cursor:pointer;overflow:hidden}
.calendarEventChip:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))!important;background:color-mix(in srgb,var(--accent) 13%,var(--panel2))!important}.calendarEventChip time{font-size:10px;font-weight:850;color:var(--text)}.calendarEventChip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.calendarEventChip i{font-style:normal;color:var(--text)}.calendarEventChip.declined{opacity:.58;border-left-color:var(--rv-color-danger)!important;text-decoration:line-through}
.calendarMore{width:100%;min-height:26px!important;margin-top:3px;padding:3px 6px!important;border:0!important;background:transparent!important;color:var(--text)!important;font-size:11px!important;font-weight:800;cursor:pointer}
.calendarWeekView{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1050px}.calendarWeekDay{min-height:360px;padding:10px;border-right:1px solid var(--line)}.calendarWeekDay:last-child{border-right:0}.calendarWeekDay>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--line)}.calendarWeekDay>header span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.calendarWeekDay>header strong{font-size:20px}.calendarWeekDay.today{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.calendarDayView{padding:18px}.calendarDayHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.calendarDayEvents{display:grid;gap:8px;margin-top:12px}.calendarDayEvents .calendarEventChip{min-height:48px!important;padding:10px 12px!important}.calendarDayEvents .calendarEventChip time{font-size:12px}.calendarDayEvents .calendarEventChip span{font-size:13px}
.calendarYearGrid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;padding:12px}.calendarMiniMonth{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.calendarMiniMonth header{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;text-transform:capitalize}.calendarMiniMonth header span{color:var(--muted);font-size:11px}.calendarMiniDays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendarMiniDay{position:relative;min-height:30px!important;padding:3px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--text)!important;font-size:11px!important}.calendarMiniDay:hover,.calendarMiniDay.hasEvents{background:color-mix(in srgb,var(--accent) 10%,var(--panel))!important}.calendarMiniDay i{position:absolute;right:2px;bottom:1px;color:var(--text);font-size:8px;font-style:normal;font-weight:900}
.calendarEmpty{padding:36px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;background:var(--panel2)}
body[data-calendar-availability="unavailable"] [data-tab="calendar"]{display:none!important}
body.qa-mode [data-tab="calendar"]{visibility:visible!important}

/* Executive Summary: one canonical card grid. Legacy rules targeted the old
   #tab-executive route and left this view with uneven columns and card tops. */
#tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid){display:grid!important;width:100%!important;gap:20px!important;align-items:stretch!important;grid-auto-rows:1fr!important;margin:20px 0!important;box-sizing:border-box}
#tab-executive-summary .riExecMainGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
#tab-executive-summary .riExecBottomGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
#tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid)>.panel{width:100%!important;height:100%!important;min-width:0!important;margin:0!important;align-self:stretch!important;overflow:hidden!important;box-sizing:border-box!important}
#tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid)>.panel>.sectionTitle{min-height:58px!important;margin:0 0 16px!important;align-items:flex-start!important}
#tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid)>.panel>.sectionTitle h3{margin:0!important;line-height:1.2!important}
#tab-executive-summary .riExecMainGrid>.panel{min-height:390px!important}
#tab-executive-summary .riExecBottomGrid>.panel{min-height:330px!important}
#tab-executive-summary .riExecHeader .eyebrow{color:#67d8ff!important;text-shadow:0 1px 2px rgba(0,0,0,.32)}
#tab-executive-summary .riExecHeader h2{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.42)}
#tab-executive-summary .riExecHeader p{color:#d7e7f5!important;line-height:1.55}
#tab-executive-summary .riMiniDonutWrap{min-height:250px;grid-template-columns:minmax(150px,190px) minmax(0,1fr);justify-content:center;align-items:center}
#tab-executive-summary .riMiniDonut{width:170px;height:170px;margin:auto}
#tab-executive-summary .riTrendChart{height:250px!important;min-height:250px!important}
#tab-executive-summary .riFunnel{min-height:250px;display:flex;flex-direction:column;justify-content:center}
#tab-executive-summary .riFunnelStage{min-height:42px}

@media(max-width:1350px){
  #tab-executive-summary .riExecMainGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #tab-executive-summary .riTrendPanel{grid-column:1/-1}
  #tab-executive-summary .riExecBottomGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:900px){
  .barRow{grid-template-columns:1fr!important;gap:6px!important}.barRow>strong{text-align:left!important}
  .opportunityKanban{grid-auto-columns:minmax(230px,82vw)!important}
  .calendarYearGrid{grid-template-columns:repeat(2,minmax(230px,1fr))}.calendarAgendaGrid{min-height:360px}.calendarWorkspaceHeader .actions{width:100%}.calendarWorkspaceHeader .actions .btn{flex:1}
}
@media(max-width:600px){
  .panel,.heroCard{padding:13px!important}.revupHeaderLogo{width:42px!important;height:42px!important;min-width:42px!important}.revupHeaderLogo img{width:42px!important;height:42px!important}
  .chart{min-height:240px!important;height:240px!important}.chartCol{flex-basis:64px!important;min-width:64px!important;grid-template-rows:24px minmax(125px,1fr) 48px!important}.chartLabel{font-size:10px!important}
  .ruNotificationModal{padding:8px}.ruNotificationModalCard{max-height:calc(100dvh - 16px);padding:14px}.ruNotificationDetail dl{grid-template-columns:1fr;gap:3px}.ruNotificationDetail dd{margin-bottom:8px}
  .calendarWorkspace{margin-inline:-5px}.calendarToolbar{align-items:stretch;padding:8px}.calendarNav,.calendarViewSwitch{width:100%}.calendarNav{display:grid;grid-template-columns:42px 1fr 42px}.calendarNav #calendarRangeTitle{grid-column:1/-1;grid-row:1;margin:0;text-align:center}.calendarNav #calendarTodayBtn{grid-column:2}.calendarViewSwitch{display:grid;grid-template-columns:repeat(4,1fr)}.calendarViewBtn{padding-inline:5px!important}.calendarYearGrid{grid-template-columns:1fr}.calendarAgendaGrid{border-radius:10px}.calendarDayView{padding:12px}
  #tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid){grid-template-columns:1fr!important;grid-auto-rows:auto!important;gap:14px!important;margin:14px 0!important}
  #tab-executive-summary .riTrendPanel{grid-column:auto}
  #tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid)>.panel{height:auto!important;min-height:0!important}
  #tab-executive-summary :is(.riExecMainGrid,.riExecBottomGrid)>.panel>.sectionTitle{min-height:0!important}
  #tab-executive-summary .riMiniDonutWrap{grid-template-columns:130px minmax(0,1fr);min-height:190px}
  #tab-executive-summary .riMiniDonut{width:126px;height:126px}
}

/* Revenue Intelligence uses the same global Portal shell and design tokens. */
#tab-executive.active{max-width:none!important;overflow:visible}
.riCanonicalLayout{--ri-c-blue:var(--rv-n1-blue,#0867e8);--ri-c-cyan:#0faac7;--ri-c-green:#31ad50;--ri-c-orange:#f58a1f;--ri-c-red:#eb3f35;--ri-c-border:var(--rv-n1-line,#dce3ec);--ri-c-muted:var(--rv-n1-muted,#667085);display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:var(--ru-space-5,20px);padding:0;background:transparent;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--rv-n1-text,#111827)}
.riCanonicalWorkspace{min-width:0;display:flex;flex-direction:column;gap:14px}
.riCanonicalHeader{position:relative;display:block;padding:0 0 2px}
.riCanonicalHeader h1{font-size:31px;line-height:1.15;letter-spacing:-.035em;margin:4px 0 16px;color:#0c0f16;font-weight:760}
.riCanonicalFilters{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.riCanonicalFilter{height:38px;display:flex;align-items:center;gap:7px;padding:0 12px;border:1px solid var(--ri-c-border);border-radius:7px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.02);font-size:11px;color:#344054;white-space:nowrap}
.riCanonicalFilter>b{font-size:11px;color:#344054}.riCanonicalFilter>span{font-size:14px;color:#344054}.riCanonicalFilter select{border:0!important;background:transparent!important;color:#111827!important;padding:0 26px 0 0!important;min-height:0!important;height:30px!important;font-size:11px!important;box-shadow:none!important;max-width:205px}
.riCanonicalFilter input[type=date]{width:96px;border:0!important;background:transparent!important;color:#111827!important;padding:0!important;min-height:0!important;height:30px!important;font-size:10px!important;box-shadow:none!important}.riCanonicalDateFilter{padding-right:7px;padding-left:9px}.riCanonicalDateFilter b{font-size:10px}
.riCanonicalAdvancedFilters{position:relative}.riCanonicalAdvancedFilters>summary{height:38px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--ri-c-border);border-radius:7px;background:#fff;color:#344054;font-size:11px;cursor:pointer;list-style:none}.riCanonicalAdvancedFilters>summary::-webkit-details-marker{display:none}.riCanonicalAdvancedFilters>summary:after{content:"⌄";margin-left:12px}.riCanonicalAdvancedFilters[open]>summary{outline:3px solid rgba(8,103,232,.18)}.riCanonicalAdvancedFilters>div{position:absolute;z-index:40;top:45px;left:0;display:grid;gap:8px;min-width:290px;padding:10px;border:1px solid var(--ri-c-border);border-radius:9px;background:#fff;box-shadow:0 12px 30px rgba(16,24,40,.16)}.riCanonicalAdvancedFilters>div .riCanonicalFilter{width:100%;justify-content:space-between}.riCanonicalAdvancedFilters>div select{max-width:175px}
.riCanonicalExport{position:absolute;right:0;top:0;height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border:1px solid #8bb6f5;border-radius:7px;background:#fff;color:var(--ri-c-blue);font-size:13px;font-weight:700;cursor:pointer}
.riCanonicalExport:hover{background:#f2f7ff}.riCanonicalExport:focus-visible,.riCanonicalFilter:focus-within,.riCanonicalRiva button:focus-visible,.riCanonicalAllOpps:focus-visible{outline:3px solid rgba(8,103,232,.25);outline-offset:2px}
.riCanonicalKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.riCanonicalKpi{min-height:188px;padding:20px 20px 17px;border:1px solid var(--ri-c-border);border-radius:8px;background:#fff;box-shadow:0 3px 10px rgba(16,24,40,.08);position:relative;overflow:hidden;display:grid;grid-template-rows:auto auto auto auto minmax(38px,1fr);align-content:start}
.riCanonicalKpiHead{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:700}.riCanonicalKpiIcon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ri-c-blue);color:#fff;font-size:14px}
.riCanonicalKpi>strong{display:block;margin:16px 0 8px;font-size:27px;line-height:1;color:#101318;letter-spacing:-.02em}.riCanonicalKpiDelta{font-size:11px;color:var(--ri-c-green)}.riCanonicalKpiDelta.warn{color:var(--ri-c-orange)}.riCanonicalKpiMeta{display:block;margin-top:13px;font-size:11px;color:var(--ri-c-muted)}
.riCanonicalWorkspace>.n1ExecutiveIntelligence{padding:18px;color:#111827}.riCanonicalWorkspace>.n1ExecutiveIntelligence .sectionTitle{margin-bottom:14px}.riCanonicalWorkspace>.n1ExecutiveIntelligence .sectionTitle h3{color:#111827}.riCanonicalWorkspace>.n1ExecutiveIntelligence .sectionTitle small{color:var(--ri-c-muted)}
.riCanonicalSpark{position:relative;left:auto;right:auto;bottom:auto;width:100%;height:38px;margin-top:12px;align-self:end}.riCanonicalSpark svg{display:block;width:100%;height:100%;overflow:visible}.riCanonicalSpark path{fill:none;stroke:var(--ri-c-blue);stroke-width:2}.riCanonicalSpark .fill{fill:rgba(8,103,232,.06);stroke:none}
.riCanonicalSegment,.riCanonicalProgress{position:relative;left:auto;right:auto;bottom:auto;width:100%;height:13px;margin-top:18px;align-self:end;border-radius:5px;overflow:hidden;background:#e8edf3}.riCanonicalSegment{display:grid;grid-template-columns:1fr 1fr 1fr;background:transparent;overflow:visible}.riCanonicalSegment i{overflow:hidden}.riCanonicalSegment i:first-child{border-radius:5px 0 0 5px}.riCanonicalSegment i:nth-child(3){border-radius:0 5px 5px 0}.riCanonicalSegment i:nth-child(1){background:#f15b2a}.riCanonicalSegment i:nth-child(2){background:#f7b81e}.riCanonicalSegment i:nth-child(3){background:#39ad50}.riCanonicalSegment b{position:absolute;left:68%;top:-7px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #111;transform:translateX(-50%)}.riCanonicalProgress i{display:block;height:100%;background:var(--ri-c-blue);border-radius:5px}
.riCanonicalPanel{border:1px solid var(--ri-c-border);border-radius:8px;background:#fff;box-shadow:0 2px 9px rgba(16,24,40,.06)}.riCanonicalPanelHead{min-height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f4}.riCanonicalPanelHead h2{margin:0;font-size:14px;color:#151922;font-weight:750}.riCanonicalPanelHead select{width:110px!important;min-height:32px!important;padding:4px 26px 4px 10px!important;border:1px solid var(--ri-c-border)!important;border-radius:7px!important;background:#fff!important;color:#344054!important;font-size:11px!important}
.riCanonicalLegend{display:flex;justify-content:center;gap:30px;padding:12px 15px 0;color:#475467;font-size:9px}.riCanonicalLegend span:before{content:"";display:inline-block;width:20px;border-top:2px solid;margin-right:7px;vertical-align:middle}.riCanonicalLegend .isPipeline:before{border-color:var(--ri-c-blue)}.riCanonicalLegend .isCommitted:before{border-color:var(--ri-c-cyan);border-top-style:dashed}.riCanonicalLegend .isBest:before{border-color:var(--ri-c-green);border-top-style:dashed}.riCanonicalLegend .isGoal:before{border-color:#667085;border-top-style:dashed}
.riCanonicalTrend{height:210px;padding:8px 14px 14px}.riCanonicalTrend svg{width:100%;height:100%;overflow:visible}.riCanonicalTrend .grid{stroke:#e8edf3;stroke-width:1}.riCanonicalTrend .pipeline{stroke:var(--ri-c-blue)}.riCanonicalTrend .committed{stroke:var(--ri-c-cyan);stroke-dasharray:7 5}.riCanonicalTrend .best{stroke:var(--ri-c-green);stroke-dasharray:7 5}.riCanonicalTrend .goal{stroke:#667085;stroke-dasharray:7 5}.riCanonicalTrend .series{fill:none;stroke-width:2}.riCanonicalTrend text{fill:#667085;font-size:9px}.riCanonicalTrend circle{stroke:#fff;stroke-width:1.5}
.riCanonicalRiskPanel{min-height:240px}.riCanonicalCount{display:inline-grid;place-items:center;margin-left:7px;min-width:23px;height:21px;border-radius:6px;background:#ee4b35;color:#fff;font-size:11px}.riCanonicalTableWrap{overflow:auto}.riCanonicalTable{width:100%;border-collapse:collapse}.riCanonicalTable th{padding:10px 14px;text-align:left;color:#344054;font-size:9px;font-weight:650;white-space:nowrap}.riCanonicalTable td{padding:10px 14px;border-top:1px solid #edf0f4;color:#344054;font-size:9.5px;white-space:nowrap}.riCanonicalRisk{display:flex;align-items:center;gap:6px}.riCanonicalRisk i{width:8px;height:8px;border-radius:50%;background:var(--ri-c-orange)}.riCanonicalRisk.high i{background:var(--ri-c-red)}.riCanonicalRowAction{padding:6px 11px;border:1px solid #b6cff4;border-radius:6px;background:#fff;color:var(--ri-c-blue);font-size:9px;font-weight:650}.riCanonicalMore{border:0;background:transparent;color:#344054;font-size:16px}.riCanonicalAllOpps{display:block;margin:11px auto 13px;border:0;background:transparent;color:var(--ri-c-blue);font-size:11px;font-weight:700;cursor:pointer}
.riCanonicalRiskPanel .riCanonicalTableWrap{max-width:100%;overflow-x:auto;overflow-y:auto;overscroll-behavior-inline:contain}.riCanonicalRiskPanel .riCanonicalTable{width:100%;min-width:960px;table-layout:fixed}.riCanonicalRiskColumns col:nth-child(1){width:16%}.riCanonicalRiskColumns col:nth-child(2){width:14%}.riCanonicalRiskColumns col:nth-child(3){width:12%}.riCanonicalRiskColumns col:nth-child(4){width:9%}.riCanonicalRiskColumns col:nth-child(5){width:10%}.riCanonicalRiskColumns col:nth-child(6){width:11%}.riCanonicalRiskColumns col:nth-child(7){width:18%}.riCanonicalRiskColumns col:nth-child(8){width:10%}.riCanonicalRiskPanel .riCanonicalTable th{position:sticky;top:0;z-index:2;background:var(--surface-primary,#fff);white-space:normal}.riCanonicalRiskPanel .riCanonicalTable td{vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.35}.riCanonicalRiskPanel .riCanonicalTable td.riCanonicalNoDeform{overflow-wrap:normal;word-break:normal}.riCanonicalCellValue{display:block;min-width:0;max-width:100%}.riCanonicalRiskPanel .riCanonicalRisk{align-items:flex-start;white-space:normal}.riCanonicalRiskPanel .riCanonicalRisk i{flex:0 0 auto;margin-top:.3em}.riCanonicalActionGroup{display:flex;flex-direction:column;align-items:stretch;gap:6px;max-width:100%}.riCanonicalActionGroup .riCanonicalRowAction{width:100%;max-width:100%;white-space:normal;line-height:1.25}.riCanonicalActionGroup .riCanonicalMore{width:100%;min-height:28px;border:1px solid #d0d5dd;border-radius:6px;line-height:1;cursor:pointer}.riCanonicalActionGroup :is(.riCanonicalRowAction,.riCanonicalMore):focus-visible{outline:3px solid rgba(11,99,211,.3);outline-offset:1px}
@media(max-width:700px){.riCanonicalRiskPanel .riCanonicalTableWrap{overflow:visible}.riCanonicalRiskPanel .riCanonicalTable{display:block;min-width:0}.riCanonicalRiskPanel .riCanonicalTable colgroup,.riCanonicalRiskPanel .riCanonicalTable thead{display:none}.riCanonicalRiskPanel .riCanonicalTable tbody{display:grid;gap:12px}.riCanonicalRiskPanel .riCanonicalTable tr{display:grid;grid-template-columns:minmax(96px,34%) minmax(0,1fr);overflow:hidden;border:1px solid var(--border-default,#cfdeed);border-radius:12px;background:var(--surface-primary,#fff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.riCanonicalRiskPanel .riCanonicalTable td{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:start;min-width:0;padding:10px 12px;border-top:1px solid var(--border-default,#e4e7ec);font-size:12px}.riCanonicalRiskPanel .riCanonicalTable td:first-child{border-top:0}.riCanonicalRiskPanel .riCanonicalTable td::before{content:attr(data-label);grid-column:1;min-width:0;padding-right:10px;color:var(--text-muted,#667085);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.riCanonicalRiskPanel .riCanonicalTable td>*:not(.riCanonicalActionGroup){grid-column:2}.riCanonicalRiskPanel .riCanonicalTable td>.riCanonicalActionGroup{grid-column:2}.riCanonicalRiskPanel .riCanonicalEmptyRow{display:block}.riCanonicalRiskPanel .riCanonicalEmptyRow td{display:block}.riCanonicalRiskPanel .riCanonicalEmptyRow td::before{content:none}.riCanonicalActionGroup{align-items:stretch}.riCanonicalActionGroup .riCanonicalRowAction,.riCanonicalActionGroup .riCanonicalMore{min-height:38px}}
.riCanonicalRiva{min-width:0;position:sticky;top:12px;align-self:start;height:calc(100vh - 66px);min-height:760px;display:flex;flex-direction:column;border:1px solid #d4deeb;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(16,24,40,.08);overflow:hidden}.riCanonicalRivaHeader{display:grid;grid-template-columns:128px 1fr 24px 24px;align-items:center;gap:4px;padding:14px 14px 7px}.riCanonicalRivaHeader>img{width:120px;height:120px;object-fit:contain}.riCanonicalRivaHeader h2{font-size:30px;margin:0;color:#0d1118}.riCanonicalRivaHeader p{margin:6px 0 0;font-size:14px;display:flex;align-items:center;gap:7px;color:#17202b}.riCanonicalRivaHeader p i{width:9px;height:9px;border-radius:50%;background:#36b34a}.riCanonicalRivaHeader button{align-self:start;border:0;background:transparent;color:#41618a;font-size:17px;padding:5px;cursor:pointer}
.riCanonicalRivaBody{margin:0 14px 12px;padding:14px;border:1px solid #d4deeb;border-radius:10px;overflow:auto;flex:1}.riCanonicalRivaBubble{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px}.riCanonicalRivaBubble img{width:38px;height:38px;object-fit:contain}.riCanonicalRivaBubble strong{padding:13px 14px;border-radius:10px;background:#f1f4f8;font-size:13px;line-height:1.45;font-weight:500}.riCanonicalRiva section{margin-top:17px}.riCanonicalRiva h3{margin:0 0 8px;color:var(--ri-c-blue);font-size:11px}.riCanonicalRiva section p,.riCanonicalRiva li{font-size:10px;line-height:1.5;color:#2d3642}.riCanonicalRiva ul,.riCanonicalRiva ol{margin:0;padding-left:19px}.riCanonicalSignals li::marker{color:var(--ri-c-orange)}.riCanonicalSignals li.high::marker{color:var(--ri-c-red)}
.riCanonicalTranscript{display:grid;gap:8px;max-height:220px;overflow:auto;overscroll-behavior:contain;margin-bottom:10px;scrollbar-gutter:stable}.riCanonicalTurn{max-width:88%;padding:9px 11px;border-radius:12px;background:#f1f4f8;color:#182230}.riCanonicalTurn.is-user{justify-self:end;background:#0759c7;color:#fff}.riCanonicalTurn strong{display:block;font-size:10px;margin-bottom:3px}.riCanonicalTurn p{margin:0!important;color:inherit!important;font-size:12px!important;white-space:pre-wrap;overflow-wrap:anywhere}
.riCanonicalEvidence{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.riCanonicalEvidence span{min-width:0;padding:7px 6px;border:1px solid #dfe6ef;border-radius:5px;background:#f8fafc;color:var(--ri-c-blue);font-size:8px;font-weight:700;text-align:center}.riCanonicalEvidence small{display:block;margin-top:3px;color:#667085;font-size:6px;font-weight:400}.riCanonicalConfidence{display:flex;align-items:center;gap:12px}.riCanonicalConfidence>div{flex:1;display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.riCanonicalConfidence i{height:6px;border-radius:3px;background:#dfe5ec}.riCanonicalConfidence i.on{background:var(--ri-c-blue)}.riCanonicalConfidence strong{font-size:9px;white-space:nowrap}.riCanonicalRivaActions{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-top:15px}.riCanonicalRivaActions button{height:38px;border:1px solid #9fc1f4;border-radius:7px;background:#fff;color:var(--ri-c-blue);font-size:11px;font-weight:700;cursor:pointer}.riCanonicalRivaActions .primary{background:var(--ri-c-blue);border-color:var(--ri-c-blue);color:#fff}
.riCanonicalComposer{margin:0 14px 14px;display:flex;align-items:center;border:1px solid #dfe5ec;border-radius:8px;background:#fff;padding:5px}.riCanonicalComposer input{flex:1;border:0!important;background:transparent!important;color:#344054!important;box-shadow:none!important;font-size:11px!important;padding:8px!important}.riCanonicalComposer button{width:30px;height:30px;border:0;border-radius:5px;background:#4c92ef;color:#fff;cursor:pointer}.srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.riCanonicalNewConversation{margin:0 14px 8px;border:1px solid #c8d8ee;border-radius:8px;background:#f7faff;color:#0759c7;font-weight:700;padding:8px 12px;cursor:pointer}.riCanonicalNewConversation:hover{background:#eaf3ff}.riCanonicalNewConversation:focus-visible{outline:3px solid rgba(8,103,232,.3);outline-offset:2px}
.riCanonicalVoiceModes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 14px 6px}.riCanonicalVoiceModes button{min-height:34px;border:1px solid #c8d8ee;border-radius:8px;background:#fff;color:#344054;font-weight:700;cursor:pointer}.riCanonicalVoiceModes button[aria-pressed="true"]{background:#0759c7;color:#fff;border-color:#0759c7}.riCanonicalVoiceStatus{margin:0 14px 6px;min-height:18px;font-size:11px;color:#475467}.riCanonicalVoiceStatus[data-state="error"]{color:#b42318}.riCanonicalVoiceStatus[data-state="connected"],.riCanonicalVoiceStatus[data-state="listening"]{color:#067647;font-weight:700}.riCanonicalVoiceStatus[data-state="connecting"],.riCanonicalVoiceStatus[data-state="preparing"],.riCanonicalVoiceStatus[data-state="processing"],.riCanonicalVoiceStatus[data-state="finalizing"],.riCanonicalVoiceStatus[data-state="reconnecting"]{color:#175cd3;font-weight:700}.riCanonicalVoiceStatus[data-state="muted"]{color:#b54708;font-weight:700}.riCanonicalRiva audio{display:none}
.riCanonicalRealtimeEnd{min-height:44px;margin:0 14px 6px;border:1px solid #b42318;border-radius:8px;background:#fff;color:#b42318;font-weight:700;cursor:pointer}.riCanonicalRealtimeEnd[hidden]{display:none!important}.riCanonicalRealtimeEnd:hover{background:#fff1f0}.riCanonicalRealtimeEnd:focus-visible{outline:3px solid rgba(180,35,24,.25);outline-offset:2px}
.riCanonicalLayout.rivaGlobalized{grid-template-columns:minmax(0,1fr)}
.riGlobalRivaLauncher{position:fixed;right:22px;bottom:22px;z-index:1200;display:flex;align-items:center;gap:9px;min-width:112px;height:50px;padding:0 17px;border:1px solid #71a7f4;border-radius:25px;background:#0867e8;color:#fff;font:700 14px/1 inherit;box-shadow:0 12px 30px rgba(8,103,232,.3);cursor:pointer}.riGlobalRivaLauncher img{width:34px;height:34px;object-fit:contain}.riGlobalRivaLauncher:hover{background:#0759c7}.riGlobalRivaLauncher:focus-visible{outline:3px solid rgba(8,103,232,.35);outline-offset:3px}
.riCanonicalRiva.riGlobalRivaPanel{position:fixed;z-index:1190;top:72px;right:22px;bottom:82px;width:min(390px,calc(100vw - 32px));height:auto;min-height:0;transform:translateX(calc(100% + 40px));opacity:0;pointer-events:none;transition:transform .22s ease,opacity .18s ease}.riCanonicalRiva.riGlobalRivaPanel[data-open="1"]{transform:translateX(0);opacity:1;pointer-events:auto}.riGlobalRivaPanel .riCanonicalRivaHeader>button:first-of-type{font-size:22px}.riGlobalRivaPanel .riCanonicalComposer[aria-busy="true"] button{opacity:.55;cursor:wait}
@media(max-width:680px),(max-height:500px){body.rivaPanelOpen{overflow:hidden!important;overscroll-behavior:none}.riGlobalRivaLauncher{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}.riCanonicalRiva.riGlobalRivaPanel{inset:var(--riva-viewport-top,0) 0 auto 0;width:100vw;height:var(--riva-viewport-height,100dvh);max-height:none;min-height:0;border:0;border-radius:0;transform:translateY(102%);padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);box-sizing:border-box;background:#fff}.riCanonicalRiva.riGlobalRivaPanel[data-open="1"]{transform:translateY(0)}.riGlobalRivaPanel .riCanonicalRivaHeader{min-height:64px;padding:8px 12px}.riGlobalRivaPanel .riCanonicalRivaHeader img{width:52px;height:52px}.riGlobalRivaPanel .riCanonicalRivaHeader h2{font-size:28px}.riGlobalRivaPanel .riCanonicalRivaBody{min-height:0;margin:0 10px 8px;padding:12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.riGlobalRivaPanel .riCanonicalVoiceModes{margin:0 10px 6px}.riGlobalRivaPanel .riCanonicalVoiceStatus{margin:0 10px 5px}.riGlobalRivaPanel .riCanonicalNewConversation{margin:0 10px 6px;padding:7px 10px}.riGlobalRivaPanel .riCanonicalComposer{position:sticky;bottom:0;margin:0 10px 8px;padding:6px;flex:0 0 auto}.riGlobalRivaPanel .riCanonicalComposer input{font-size:16px!important}.riGlobalRivaPanel .riCanonicalRivaActions{grid-template-columns:1fr 1fr}.riGlobalRivaPanel .riCanonicalRivaActions button{min-width:0}.riGlobalRivaPanel .riCanonicalRivaBubble strong{font-size:14px}.riGlobalRivaPanel .riCanonicalRiva section p,.riGlobalRivaPanel .riCanonicalRiva li{font-size:13px}}
@media(max-width:1320px){.riCanonicalLayout{grid-template-columns:minmax(0,1fr) 330px;gap:14px;padding-left:18px}.riCanonicalKpi{padding:16px;min-height:174px}.riCanonicalRivaHeader{grid-template-columns:100px 1fr 22px 22px}.riCanonicalRivaHeader>img{width:94px;height:94px}}
@media(max-width:1050px){.riCanonicalLayout{grid-template-columns:1fr}.riCanonicalRiva{position:relative;top:auto;height:auto;min-height:0}.riCanonicalKpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px),(max-height:500px){.riCanonicalLayout{padding:14px;gap:12px}.riCanonicalHeader{flex-direction:column}.riCanonicalHeader h1{font-size:26px;margin-bottom:12px}.riCanonicalFilters{flex-direction:column;align-items:stretch;width:100%}.riCanonicalFilter{justify-content:flex-start}.riCanonicalExport{width:100%;justify-content:center}.riCanonicalKpis{grid-template-columns:1fr}.riCanonicalKpi{min-height:158px}.riCanonicalLegend{gap:10px;flex-wrap:wrap}.riCanonicalTrend{height:180px}.riCanonicalRivaHeader{grid-template-columns:82px 1fr 44px 44px}.riCanonicalRivaHeader>img{width:78px;height:78px}.riGlobalRivaPanel .riCanonicalRivaHeader>button{width:44px;height:44px;display:grid;place-items:center;padding:0}.riCanonicalEvidence{grid-template-columns:repeat(2,1fr)}}

/* RIVA Core v2: one spacious, token-driven surface for text, dictation and realtime. */
.riCanonicalRiva{--riva-bg:var(--panel,#fff);--riva-surface:color-mix(in srgb,var(--riva-accent) 7%,var(--riva-bg));--riva-text:var(--text,#17202b);--riva-muted:var(--muted,#667085);--riva-accent:var(--accent,#0867e8);--riva-border:var(--line,#d4deeb);--riva-user-bubble:var(--riva-accent);--riva-assistant-bubble:var(--riva-surface);color:var(--riva-text);background:var(--riva-bg);font-size:calc(16px * var(--riva-font-scale,1))}
.riCanonicalRiva.riGlobalRivaPanel{width:clamp(480px,38vw,680px);height:min(86dvh,900px);min-height:min(620px,calc(100dvh - 100px));top:auto;bottom:76px}
.riCanonicalRiva.riGlobalRivaPanel[data-expanded="1"]{inset:4dvh 2vw auto 2vw;width:96vw;height:92dvh;max-width:none;max-height:none}
.riCanonicalRivaHeader{grid-template-columns:64px minmax(0,1fr) 48px 48px 48px;gap:8px;padding:10px 14px;border-bottom:1px solid var(--riva-border)}
.riCanonicalRivaHeader>img{width:56px;height:56px}.riCanonicalRivaHeader h2{font-size:22px;color:var(--riva-text)}
.riCanonicalRivaHeader button,.riCanonicalOptions>summary{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--riva-muted);cursor:pointer;list-style:none}
.riCanonicalOptions{position:relative}.riCanonicalOptions>summary::-webkit-details-marker{display:none}.riCanonicalOptions>div{position:absolute;z-index:4;right:0;top:48px;width:240px;display:grid;gap:9px;padding:14px;border:1px solid var(--riva-border);border-radius:12px;background:var(--riva-bg);box-shadow:0 16px 38px rgba(16,24,40,.2)}
.riCanonicalOptions label{font-size:13px;font-weight:700;color:var(--riva-text)}.riCanonicalOptions select{width:100%;min-height:44px}.riCanonicalOptions strong{font-size:15px}
.riCanonicalRivaBody{margin:10px 14px 8px;padding:8px 4px;border:0;background:var(--riva-bg);font-size:inherit}.riCanonicalTranscript{max-height:none;min-height:0;overflow:visible;gap:12px}.riCanonicalTurn{font-size:inherit;background:var(--riva-assistant-bubble);color:var(--riva-text)}.riCanonicalTurn.is-user{background:var(--riva-user-bubble);color:#fff}.riCanonicalTurn p{font-size:1em!important;line-height:1.5}.riCanonicalWelcome{margin:8px!important;font-size:1em!important;color:var(--riva-muted)!important}.riCanonicalFormalReport[hidden]{display:none!important}.riCanonicalRivaActions{display:none!important}
.riCanonicalVoiceModes{display:flex;align-self:center;width:min(420px,calc(100% - 28px));padding:3px;border:1px solid var(--riva-border);border-radius:12px;background:var(--riva-surface)}.riCanonicalVoiceModes button{flex:1;min-height:44px;border:0}.riCanonicalVoiceStatus{font-size:13px}.riCanonicalNewConversation{min-height:44px;font-size:14px}
.riCanonicalComposer{position:sticky;bottom:0;border-color:var(--riva-border);border-radius:14px;padding:7px;background:var(--riva-bg)}.riCanonicalComposer input{font-size:max(16px,1em)!important;color:var(--riva-text)!important}.riCanonicalComposer button{width:44px;height:44px;border-radius:12px;background:var(--riva-accent)}
.riGlobalRivaLauncher{min-width:56px;height:56px;padding:0 12px;border-radius:28px}.riGlobalRivaLauncher img{width:40px;height:40px}
@media(max-width:680px),(max-height:500px){.riCanonicalRiva.riGlobalRivaPanel,.riCanonicalRiva.riGlobalRivaPanel[data-expanded="1"]{inset:var(--riva-viewport-top,0) 0 auto 0;width:100vw;height:var(--riva-viewport-height,100dvh);min-height:0;border-radius:0}.riGlobalRivaPanel .riCanonicalRivaHeader{grid-template-columns:48px minmax(0,1fr) 44px 44px;min-height:60px}.riGlobalRivaPanel .riCanonicalRivaHeader img{width:44px;height:44px}.riGlobalRivaPanel .riCanonicalRivaHeader h2{font-size:20px}.riGlobalRivaPanel .riCanonicalRivaBody{margin:6px 10px;flex:1}.riGlobalRivaPanel .riCanonicalComposer{margin-bottom:max(8px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.riCanonicalRiva.riGlobalRivaPanel{transition:none!important}}

/* N+2 user licensing and bulk-import workspace. */
.userImportPanel{display:grid;gap:16px;overflow:hidden;max-width:100%;min-width:0;box-sizing:border-box}
.userImportPanel *{min-width:0;box-sizing:border-box}
.userImportCapacity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.userImportCapacity>div{display:grid;gap:5px;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.userImportCapacity span{color:var(--muted);font-size:12px;font-weight:750;line-height:1.3}
.userImportCapacity strong{font-size:22px;line-height:1;color:var(--text)}
.userImportCapacity.capacityReady>div:last-child{border-color:color-mix(in srgb,var(--success,#31b778) 42%,var(--line));background:color-mix(in srgb,var(--success,#31b778) 8%,var(--panel2))}
.userImportCapacity.capacityBlocked>div:last-child{border-color:color-mix(in srgb,var(--danger,#e25462) 45%,var(--line));background:color-mix(in srgb,var(--danger,#e25462) 8%,var(--panel2))}
.userImportGrid{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px;align-items:end}
.userImportGrid>.field{min-width:0;max-width:100%;overflow:hidden}
.userImportGrid code{display:block;width:100%;max-width:100%;margin-top:5px;overflow-wrap:anywhere;word-break:break-all;white-space:normal;color:var(--text);font-size:11px}
#userImportCsvHelp{display:block;width:100%;max-width:100%;overflow:hidden}
.userImportActions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.userImportSafetyNote{margin:0!important;line-height:1.45}
.userImportStatus{min-height:20px;color:var(--muted);font-size:13px;font-weight:750}
.userImportStatus.working{color:var(--accent)}
.userImportStatus.success{color:var(--success,#31b778)}
.userImportStatus.warning{color:var(--warning,#d88b12)}
.userImportStatus.error{color:var(--danger,#e25462)}
.userImportResults:empty{display:none}
.userImportResultCard{display:grid;gap:6px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.userImportResultCard.success{border-color:color-mix(in srgb,var(--success,#31b778) 42%,var(--line));background:color-mix(in srgb,var(--success,#31b778) 7%,var(--panel2))}
.userImportResultCard.warning{border-color:color-mix(in srgb,var(--warning,#d88b12) 44%,var(--line));background:color-mix(in srgb,var(--warning,#d88b12) 7%,var(--panel2))}
.userImportResultCard.error{border-color:color-mix(in srgb,var(--danger,#e25462) 44%,var(--line));background:color-mix(in srgb,var(--danger,#e25462) 7%,var(--panel2))}
.userImportResultCard span,.userImportResultCard small{color:var(--muted)}
.userImportErrorList{display:grid;gap:5px;margin:5px 0 0;padding-left:20px;color:var(--text);font-size:12px}
@media(max-width:900px){.userImportCapacity{grid-template-columns:repeat(2,minmax(0,1fr))}.userImportGrid{grid-template-columns:1fr}.userImportActions{justify-content:flex-start}}
@media(max-width:520px){.userImportCapacity{grid-template-columns:1fr}.userImportActions{display:grid;grid-template-columns:1fr}.userImportActions .btn,#downloadUserImportTemplate,#userImportCsv{width:100%;max-width:100%}#downloadUserImportTemplate{white-space:normal}}

/* ========================================================================
   N+1 approved Portal look & feel
   Shared reconciliation layer. It is deliberately scoped so the Website and
   release environments outside this Portal cannot inherit the application UI.
   ======================================================================== */
body[data-visual-system="nplus1"]{
  --rv-n1-navy:#031b3f;
  --rv-n1-blue:#0969e8;
  --rv-n1-cyan:#13bfe8;
  --rv-n1-canvas:#f5f8fc;
  --rv-n1-panel:#ffffff;
  --rv-n1-line:#dce5f0;
  --rv-n1-text:#0b172a;
  --rv-n1-muted:#617086;
  --bg:#f5f8fc;--panel:#ffffff;--panel2:#f7faff;--text:#0b172a;--muted:#617086;--line:#dce5f0;--accent:#0969e8;
  background:var(--rv-n1-canvas);
  color:var(--rv-n1-text);
}
body[data-visual-system="nplus1"] .sidebar{
  background:linear-gradient(180deg,#02152f 0%,var(--rv-n1-navy) 56%,#06244d 100%);
  border-right:1px solid rgba(121,181,255,.18);
  box-shadow:12px 0 32px rgba(3,27,63,.12);
}
body[data-visual-system="nplus1"] .sideBtn{
  border:1px solid transparent;
  border-radius:10px!important;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease;
}
body[data-visual-system="nplus1"] .sideBtn:hover{
  background:rgba(62,143,255,.13);
  border-color:rgba(126,187,255,.2);
}
body[data-visual-system="nplus1"] .sideBtn:active{transform:translateY(1px)}
body[data-visual-system="nplus1"] .sideBtn.active{
  color:#fff;
  background:linear-gradient(135deg,#0759d6,#087bf0);
  border-color:rgba(137,198,255,.55);
  box-shadow:0 8px 20px rgba(0,91,220,.28);
}
body[data-visual-system="nplus1"] .shell{background:var(--rv-n1-canvas)}
body[data-visual-system="nplus1"] .tabPane{color:var(--rv-n1-text)}
body[data-visual-system="nplus1"] :is(h1,h2,h3,h4,strong,label,th){color:var(--rv-n1-text)}
body[data-visual-system="nplus1"] :is(p,small,em,td){color:var(--rv-n1-muted)}
body[data-visual-system="nplus1"] .topbar{
  border:1px solid color-mix(in srgb,var(--rv-n1-line) 90%,transparent);
  border-radius:16px;
  background:color-mix(in srgb,var(--rv-n1-panel) 94%,transparent);
  box-shadow:0 8px 24px rgba(20,47,82,.07);
}
body[data-visual-system="nplus1"] :is(.panel,.heroCard,.ruPreferenceCard,.clientCard,.savedKpiCard){
  border:1px solid var(--rv-n1-line)!important;
  background:var(--rv-n1-panel)!important;
  box-shadow:0 8px 22px rgba(20,47,82,.065)!important;
  color:var(--text)!important;
}
body[data-visual-system="nplus1"] :is(.panel,.heroCard,.ruPreferenceCard,.clientCard,.savedKpiCard):hover{
  border-color:color-mix(in srgb,var(--rv-n1-blue) 24%,var(--rv-n1-line))!important;
}
body[data-visual-system="nplus1"] .tabPane>.heroCard:first-child{
  background:linear-gradient(135deg,#fff 0%,#f7fbff 72%,#eef7ff 100%)!important;
}
body[data-visual-system="nplus1"] :is(.btn.primary,button.primary){
  background:linear-gradient(135deg,#075bd8,var(--rv-n1-blue));
  border-color:#075bd8;
  color:#fff;
  box-shadow:0 6px 14px rgba(9,105,232,.18);
}
body[data-visual-system="nplus1"] :is(.btn.primary,button.primary):hover{filter:brightness(1.04);box-shadow:0 8px 18px rgba(9,105,232,.24)}
body[data-visual-system="nplus1"] :is(.btn,button,input,select,textarea):disabled{opacity:1;cursor:not-allowed;box-shadow:none!important}
body[data-visual-system="nplus1"] :is(.chartEmptyState,.notice:empty){min-height:96px;place-content:center;color:var(--rv-n1-muted)}
body[data-visual-system="nplus1"] .revenueCopilotResult{
  margin-top:12px;padding:14px;border:1px solid #d7e7fb;border-radius:12px;
  background:linear-gradient(135deg,#f7fbff,#eef7ff);line-height:1.55;
}
body[data-visual-system="nplus1"] .revenueCopilotResult.loading{opacity:.72;cursor:progress}
@media(max-width:1279px){
  body[data-visual-system="nplus1"] :is(.grid3,.revenueOsGrid.three){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:767px){
  body[data-visual-system="nplus1"] :is(.grid2,.grid3,.revenueOsGrid.two,.revenueOsGrid.three){grid-template-columns:1fr!important}
  body[data-visual-system="nplus1"] .topbar{border-radius:13px}
  body[data-visual-system="nplus1"] :is(.panel,.heroCard){box-shadow:0 5px 16px rgba(20,47,82,.06)!important}
}

/* Login is an application surface, not a light content panel. Keep its own
   contrast contract when company branding switches the portal to a light
   visual system, and keep every primary action reachable on short screens. */
body[data-visual-system="nplus1"] #loginBackdrop{
  padding:max(8px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom));
  overflow:auto;align-items:flex-start;background:rgba(2,12,27,.88);color:var(--theme-textPrimary,#f5f9ff);
}
body[data-visual-system="nplus1"] #loginBackdrop .loginModal{
  width:min(440px,calc(100vw - 20px))!important;max-width:440px!important;
  max-height:none!important;margin:auto;padding:20px!important;overflow:visible!important;
  border:1px solid #8da9c5!important;background:var(--theme-surface,#0d1b2a)!important;color:var(--theme-textPrimary,#f5f9ff)!important;
}
body[data-visual-system="nplus1"] #loginBackdrop :is(h3,label,strong,summary){color:var(--theme-textPrimary,#f5f9ff)!important}
body[data-visual-system="nplus1"] #loginBackdrop :is(p,small){color:var(--theme-textSecondary,#bdcadb)!important}
body[data-visual-system="nplus1"] #loginBackdrop .eyebrow{color:var(--theme-info,#42b5ff)!important}
body[data-visual-system="nplus1"] #loginBackdrop .field{margin-top:10px!important}
body[data-visual-system="nplus1"] #loginBackdrop .field label{display:block;margin-bottom:5px}
body[data-visual-system="nplus1"] #loginBackdrop :is(input,select){
  min-height:44px!important;border-color:#8da9c5!important;background:var(--theme-inputBackground,#12263b)!important;
  color:var(--theme-inputText,#f8fbff)!important;caret-color:var(--theme-inputText,#fff);
}
body[data-visual-system="nplus1"] #loginBackdrop :is(input,select)::placeholder{color:var(--theme-textSecondary,#aebed1)!important;opacity:1}
body[data-visual-system="nplus1"] #loginBackdrop :is(input,select):focus-visible{border-color:#49b9ff!important;box-shadow:0 0 0 3px rgba(73,185,255,.3)!important}
body[data-visual-system="nplus1"] #loginBackdrop .loginRecoveryLink{color:var(--theme-info,#61e0c3)!important}
body[data-visual-system="nplus1"] #loginBackdrop .loginQaDetails{
  margin-top:10px;padding:0;border-color:#6f8ba7!important;background:var(--theme-surfaceSecondary,#10243a)!important;color:var(--theme-textPrimary,#f5f9ff)!important;
}
body[data-visual-system="nplus1"] #loginBackdrop .loginQaDetails summary{
  min-height:42px;padding:10px 12px;cursor:pointer;font-weight:800;list-style-position:inside;
}
body[data-visual-system="nplus1"] #loginBackdrop .loginQaDetails p{margin:0;padding:0 12px 12px;line-height:1.45}
body[data-visual-system="nplus1"] #loginBackdrop .btn:not(.primary){background:#f4f7fb!important;color:#0b172a!important;border-color:#c6d3e1!important}
body[data-visual-system="nplus1"] #loginBackdrop #loginBtn{margin-top:12px!important}
body[data-visual-system="nplus1"] #loginBackdrop #openQaRegisterBtn{margin-top:10px!important}
@media(max-height:720px), (max-width:560px){
  body[data-visual-system="nplus1"] #loginBackdrop .loginModal{padding:14px!important}
  body[data-visual-system="nplus1"] #loginBackdrop .loginModal h3{margin:4px 0!important;font-size:20px!important}
  body[data-visual-system="nplus1"] #loginBackdrop .loginModal>p{margin:5px 0!important;font-size:13px!important}
  body[data-visual-system="nplus1"] #loginBackdrop .field{margin-top:7px!important}
  body[data-visual-system="nplus1"] #loginBackdrop :is(input,select,.btn,button){min-height:42px!important}
  body[data-visual-system="nplus1"] #loginBackdrop .loginRecoveryLink{margin-top:5px!important;padding:5px!important;min-height:34px!important}
}
/* N+2 · canonical AI consumption administration and zero-data experience */
#tab-ai-consumption{display:none!important}
#tab-ai-consumption.active{display:block!important}
body:not([data-active-tab="ai-consumption"]) #tab-ai-consumption{display:none!important}
.openaiZeroState{width:100%;min-height:170px;box-sizing:border-box;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;align-content:center;gap:16px;padding:24px;border:1px dashed color-mix(in srgb,var(--primary) 34%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--primary) 5%,var(--panel2));color:var(--text);text-align:left}
.openaiZeroState svg{width:48px;height:48px;padding:10px;box-sizing:border-box;border-radius:14px;background:color-mix(in srgb,var(--primary) 13%,var(--panel));stroke:var(--primary);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.openaiZeroState strong,.openaiZeroState p,.openaiZeroState small{display:block}.openaiZeroState strong{font-size:1rem}.openaiZeroState p{margin:5px 0;color:var(--muted)}.openaiZeroState small{color:var(--muted);line-height:1.45}
.openaiSpendGraph:has(.openaiZeroState),.openaiCanonicalChart:has(.openaiZeroState){display:grid!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:8px 0!important;contain:none!important;content-visibility:visible!important}
@media(max-width:620px){.openaiZeroState{grid-template-columns:1fr;min-height:0;padding:20px}.openaiZeroState svg{width:44px;height:44px}}

/* Activity bulk actions are a distinct toolbar, not part of the data grid. */
.activityBulkToolbar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  width:100%;box-sizing:border-box;margin:0;padding:12px 14px;
  border:1px solid var(--line);border-radius:12px;
  background:color-mix(in srgb,var(--panel2) 88%,var(--primary) 12%);
}
.activityBulkToolbar .bulkInfo,
.activityBulkToolbar .bulkActions{display:flex;align-items:center;gap:10px}
.activityBulkGridSpacer{display:block!important;width:100%!important;height:18px!important;min-height:18px!important;flex:0 0 18px!important}
@media(max-width:760px){
  .activityBulkToolbar{align-items:stretch;padding:12px}
  .activityBulkGridSpacer{height:16px!important;min-height:16px!important;flex-basis:16px!important}
  .activityBulkToolbar .bulkInfo{justify-content:space-between;flex-wrap:wrap}
}

#riCanonicalTrendPeriod{width:190px!important}
@media(max-width:680px){#riCanonicalTrendPeriod{width:100%!important}}
