/* URSA / Graphite. Shared workspace and dialog system, scoped away from A4 and login. */
.skip-link { position:fixed; top:12px; left:12px; z-index:2000; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus-visible { width:auto; height:auto; padding:12px 18px; clip-path:none; background:#252528; color:#fff; border-radius:9px; text-decoration:none; outline:2px solid #b7b7c0; outline-offset:3px; }
:root { --us-ink:#252528; --us-muted:#74747d; --us-line:#e3e3e7; --us-paper:#fff; --us-soft:#f6f6f8; --us-dark:#222225; }
body { --bg-body:#ffffff; --bg-subtle:#ffffff; --bg-hover:#f8f9fa; --border-card:#e3e3e7; --graphite-950:#252528; --graphite-900:#303034; --graphite-800:#414147; --graphite-700:#55555e; --graphite-600:#666670; --graphite-500:#777781; --graphite-400:#95959f; --graphite-300:#d6d6dc; --graphite-200:#e5e5e9; --graphite-100:#f3f3f5; background:#ffffff !important; overflow-y:auto !important; }
body.us-dialog-open,html:has(body.us-dialog-open) { overflow:hidden !important; }
/* Keep the navigation attached to the viewport, independent of body scrolling. */
#appSidebar { position:fixed !important; top:0 !important; bottom:0 !important; left:0 !important; height:100dvh !important; margin:0 !important; }
#appSidebar .sidebar-header,#appSidebar .sidebar-footer { flex-shrink:0 !important; }
#appSidebar .sidebar-nav { flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; }
@media (min-width:769px) and (max-height:850px) {
  #appSidebar .sidebar-nav { padding-top:8px !important; padding-bottom:8px !important; gap:2px !important; }
  #appSidebar .sidebar-nav-item { min-height:42px !important; padding-top:9px !important; padding-bottom:9px !important; }
  #appSidebar:not(.collapsed) .sidebar-group-label { padding-top:12px !important; margin-top:0 !important; }
}
@media (min-width:769px) {
  #appSidebar { transform:none !important; z-index:1100 !important; }
  #appLayout { display:flex; width:100%; min-width:0; }
  #appLayout > #appMainWrapper { flex:0 0 calc(100% - 240px) !important; width:calc(100% - 240px) !important; min-width:0 !important; margin-left:240px !important; box-sizing:border-box; }
  #appSidebar.collapsed ~ #appMainWrapper { flex-basis:calc(100% - 72px) !important; width:calc(100% - 72px) !important; margin-left:72px !important; }
}
@media (max-width:768px) {
  #appLayout > #appMainWrapper { flex:1 1 100% !important; width:100% !important; min-width:0 !important; margin-left:0 !important; }
  body:has(#appSidebar.mobile-open),html:has(#appSidebar.mobile-open) { overflow:hidden !important; }
}
#appLayout,.us-dialog,#notificationsFlyout { font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.us-dialog { width:min(var(--us-dialog-width,540px),calc(100vw - 48px)) !important; }
.us-dialog.us-dialog { max-width:min(var(--us-dialog-width,540px),calc(100vw - 48px)) !important; }
#modalGenerarReporte.modal-backdrop { background:#151518a6 !important; }
#modalGenerarReporte.modal-backdrop:not(.active) { display:none !important; opacity:0 !important; pointer-events:none !important; }
#modalGestionClientes .us-dialog-layout { padding:0 !important; }
.us-dialog .sofia-section-card { background:#fafafa !important; border:1px solid var(--us-line) !important; border-radius:14px !important; box-shadow:none !important; }
.us-dialog .sofia-section-card :is(h3,label,span) { color:#60606b !important; }
.us-dialog .sofia-section-card > div[style*="background"] { background:#f0f0f4 !important; border-color:#e3e3e9 !important; }
.us-dialog .sofia-input { color:#3c3c44 !important; }
#modalCentroAlertas .us-dialog-scroll > div:has(> #tabBtnHistoryAlerts) { display:flex; flex-wrap:wrap; gap:8px; background:#f6f6f8 !important; border:1px solid var(--us-line) !important; padding:8px !important; border-radius:12px; margin:16px 0; }
#modalCentroAlertas .us-dialog-scroll > div:has(> #tabBtnHistoryAlerts) .btn { flex:1 1 130px; min-width:0; border-radius:8px !important; }
#modalCentroAlertas .us-dialog-scroll > div:has(> #tabBtnHistoryAlerts) .btn[style*="border-bottom: 3px"] { border-bottom-width:1px !important; }
#appMainWrapper { background:#ffffff !important; padding:24px 28px 32px !important; }
#appMainWrapper :is(.workspace-toolbar,.hero-card,.logical-card,.chart-card-mono,.table-card-mono,.distribution-header-bar) { border:1px solid var(--us-line) !important; box-shadow:0 3px 14px #25252803 !important; border-radius:18px !important; }
#appMainWrapper .workspace-toolbar { background:#fff !important; overflow:visible !important; }
#appMainWrapper .solar-hero-banner { background:var(--us-dark) !important; color:#fff !important; border-radius:0 !important; padding:18px 22px !important; overflow:visible !important; position:relative !important; z-index:1200 !important; }
#appMainWrapper .solar-hero-banner::before,#appMainWrapper .solar-hero-banner::after { display:none !important; }
#appMainWrapper .solar-hero-banner :is(.hero-brand-title,.hero-brand-title span,.hero-kpi-val) { color:#fafafa !important; }
#appMainWrapper .solar-hero-banner :is(.hero-brand-subtitle,.hero-kpi-label) { color:#b6b6bf !important; }
#appMainWrapper .hero-banner-right svg { color:#c8c8d0 !important; }
#appMainWrapper .app-header { background:#fafafa !important; border-bottom:1px solid var(--us-line) !important; padding:9px 20px !important; }
#appMainWrapper .device-selector-bar { padding:14px 20px !important; }
#appMainWrapper :is(.workspace-heading h2,.chart-title-mono) { color:var(--us-ink) !important; font-weight:600 !important; letter-spacing:-.035em !important; }
#appMainWrapper .workspace-heading { margin:28px auto 18px !important; }
#appMainWrapper .workspace-heading h2 { font-size:30px !important; }
#appMainWrapper .workspace-eyebrow,#appMainWrapper .premium-eyebrow { color:#777781 !important; letter-spacing:.15em; }
#appMainWrapper .hero-card { background:#fff !important; }
#appMainWrapper :is(.hero-card h3,.stat-title,.stat-val) { color:var(--us-ink) !important; }
#appMainWrapper .hero-card:hover { border-color:#cccbd2 !important; transform:translateY(-2px); }
#appMainWrapper :is(.stat-tile,.stat-breakdown-grid) { box-shadow:none !important; }
#appMainWrapper .stat-tile { background:var(--us-soft) !important; border-color:var(--us-line) !important; border-radius:9px !important; }
#appMainWrapper .logical-card { background:#fff !important; }
#appMainWrapper .logical-node-box:not(.node-inverter) { background:#fafafa !important; border:1px solid var(--us-line) !important; border-radius:16px !important; box-shadow:0 4px 18px #25252805 !important; }
#appMainWrapper .logical-node-box.node-inverter { background:#222225 !important; color:#fff !important; border:1px solid #404047 !important; box-shadow:0 8px 24px #25252819 !important; }
#appMainWrapper :is(.chart-card-mono,.table-card-mono) { background:#fff !important; }
#appMainWrapper .distribution-header-bar { background:#fff !important; padding:18px 20px !important; }
#appMainWrapper :is(.chart-filters-mono,.view-mode-pill-group) { background:#f2f2f5 !important; border:1px solid #e6e6eb; border-radius:10px !important; padding:4px; }
#appMainWrapper :is(.filter-btn.active,.view-pill-btn.active,.stats-view-btn.active) { background:var(--us-ink) !important; color:#fff !important; box-shadow:none !important; }
#appMainWrapper :is(.btn,.workspace-report-button) { border-radius:10px !important; box-shadow:none !important; font-weight:600; }
#appMainWrapper :is(.btn-primary,.workspace-report-button) { background:var(--us-ink) !important; color:#fff !important; border-color:var(--us-ink) !important; }
#appMainWrapper .form-control,#appMainWrapper select { border-radius:9px !important; border-color:#dcdce2 !important; }
#appMainWrapper .intel-pill { background:#f8f8fa !important; border:1px solid var(--us-line) !important; box-shadow:none !important; }

/* Shared modal frame: dark branded header, white content, fixed actions. */
:is(.modal-backdrop,.modal-backdrop-custom) { background:#151518a6 !important; backdrop-filter:blur(8px) !important; padding:24px !important; }
.modal-backdrop { z-index:1200; }
#modalGenerarReporte.modal-backdrop:not(.active) { display:none; }
:is(#modalConfigInversor,#modalClientAccess,#modalEditarProyecto,#modalPlatformMessage,#modalInjectionAdmin) { z-index:1400 !important; }
.us-dialog { display:flex !important; flex-direction:column !important; padding:0 !important; min-width:0 !important; width:min(540px,100%); max-width:calc(100vw - 48px) !important; max-height:calc(100dvh - 48px) !important; margin:auto !important; overflow:hidden !important; background:#fff !important; color:var(--us-ink) !important; border:1px solid #ffffff28 !important; border-radius:22px !important; box-shadow:0 28px 90px #0004 !important; }
.us-dialog-header { position:relative !important; flex:0 0 auto !important; display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; gap:16px !important; padding:23px 28px !important; margin:0 !important; min-height:0 !important; height:auto !important; max-height:none !important; background:#222225 !important; background-image:none !important; border:0 !important; border-bottom:1px solid #343439 !important; border-radius:0 !important; color:#f5f5f7 !important; overflow:hidden; }
.us-dialog-header::before,.us-dialog-header::after { display:none !important; }
.us-dialog-header :is(h2,h3,.modal-title,.report-header-main-title) { color:#f5f5f7 !important; font-size:21px !important; line-height:1.3 !important; font-weight:550 !important; letter-spacing:-.025em !important; margin:0 !important; text-shadow:none !important; }
.us-dialog-header :is(p,span,small) { color:#b6b6c0 !important; line-height:1.5; }
.us-dialog-header :is(p,small) { font-size:12px !important; margin:5px 0 0 !important; }
.us-dialog-header > div:not(.us-dialog-brand) { min-width:0; max-width:100%; }
.us-dialog-header > div:not(.us-dialog-brand) img { display:none !important; }
.us-dialog-header > div:not(.us-dialog-brand) > div:has(> svg):not(:has(h2,h3)) { display:none !important; }
.us-dialog-brand { display:flex !important; align-items:center !important; gap:10px !important; padding-right:38px; flex-shrink:0; }
.us-dialog-brand strong { display:block; font-size:9px !important; letter-spacing:.1em; font-weight:700; color:#f3f3f5 !important; line-height:1.5; }
.us-dialog-brand small { display:block; font-size:9px !important; color:#a2a2ab !important; font-weight:400; margin:2px 0 0 !important; }
.us-bear { display:block; position:relative; flex:0 0 44px; width:44px; height:29px; overflow:hidden; }
.us-bear img { position:absolute; width:68px; height:auto; max-width:none; top:-8px; left:-12px; filter:grayscale(1) invert(1) contrast(2); mix-blend-mode:screen; }
.us-dialog-header .us-dialog-close { position:absolute !important; top:21px !important; right:21px !important; width:34px !important; height:34px !important; min-width:34px !important; padding:0 !important; display:grid !important; place-items:center !important; background:#ffffff0b !important; color:#dedee4 !important; border:1px solid #ffffff20 !important; border-radius:10px !important; font-size:23px !important; font-weight:400 !important; box-shadow:none !important; cursor:pointer; }
.us-dialog-header .us-dialog-close:hover { background:#ffffff1c !important; }
.us-dialog-layout { display:flex !important; flex-direction:column !important; flex:1 1 auto !important; min-height:0 !important; padding:0 !important; overflow:hidden !important; margin:0 !important; }
.us-dialog-scroll { flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; overflow-x:hidden !important; overscroll-behavior:contain; padding:26px 28px !important; background:#fff !important; scrollbar-width:thin; scrollbar-color:#ceced5 transparent; }
.us-dialog-scroll > :is(.modal-body,.sofia-modal-body) { padding:0 !important; overflow:visible !important; max-height:none !important; background:transparent !important; }
.us-dialog-footer { flex:0 0 auto !important; display:flex !important; justify-content:flex-end !important; align-items:center !important; flex-wrap:wrap; gap:10px !important; padding:16px 28px !important; margin:0 !important; background:#fafafa !important; color:#73737c !important; border:0 !important; border-top:1px solid var(--us-line) !important; border-radius:0 !important; }
.us-dialog :is(input,select,textarea) { accent-color:#303035; }
.us-dialog :is(.form-control,.report-select-control,select:not([multiple]),input[type="search"],input[type="text"],input[type="password"],input[type="number"],input[type="email"],input[type="tel"],input[type="date"],textarea) { min-height:43px; border:1px solid #dcdce2 !important; border-radius:10px !important; background-color:#fff !important; color:#303037 !important; box-shadow:none !important; font-size:13px; max-width:100%; }
.us-dialog :is(input,textarea)::placeholder { color:#96969f !important; }
.us-dialog :is(input,select,textarea):focus { outline:0; border-color:#777781 !important; box-shadow:0 0 0 3px #2525280c !important; }
.us-dialog :is(button,a):focus-visible { outline:2px solid #92929e !important; outline-offset:3px; }
.us-dialog .form-label { color:#50505a !important; font-size:12px !important; font-weight:600 !important; margin-bottom:8px; }
.us-dialog .form-hint { color:#81818b !important; font-size:11px !important; line-height:1.6; }
.us-dialog .form-group { margin-bottom:18px; min-width:0; }
.us-dialog :is(.btn,.report-btn-action,.report-btn-cancel) { min-height:40px; border-radius:9px !important; font-size:12px !important; font-weight:600 !important; box-shadow:none !important; text-shadow:none !important; gap:7px; }
.us-dialog :is(.btn-primary,.report-btn-download-pdf) { background:#28282c !important; color:#fff !important; border:1px solid #28282c !important; }
.us-dialog :is(.btn-primary,.report-btn-download-pdf):hover { background:#424248 !important; }
.us-dialog :is(.btn-secondary,.btn-outline,.report-btn-cancel,.report-btn-print,.report-btn-whatsapp,.report-btn-telegram) { background:#fff !important; color:#55555f !important; border:1px solid #dddde3 !important; }
.us-dialog :is(.btn-secondary,.btn-outline):hover { background:#f0f0f4 !important; }
.us-dialog .btn-danger { color:#a42c36 !important; background:#fff5f5 !important; border:1px solid #ebc6c9 !important; }
.us-dialog [hidden] { display:none !important; }
.us-dialog button:disabled { cursor:wait; opacity:.55; }
.us-dialog table { width:100%; border-collapse:collapse; }
.us-dialog th { background:#f6f6f8 !important; color:#7c7c87 !important; font-size:10px !important; font-weight:600 !important; letter-spacing:.06em; text-transform:uppercase; border-bottom:1px solid var(--us-line) !important; }
.us-dialog td { border-bottom:1px solid #eeeef1 !important; color:#484850; }
.us-dialog :is(.clients-table-container,.table-responsive-mono) { border:1px solid var(--us-line) !important; border-radius:12px !important; max-height:none !important; overflow-y:visible !important; }
.us-dialog :is(.tech-table-mono,.clients-table-container table) td { padding:.48rem .85rem !important; }
.us-dialog .clients-table-container { flex:none !important; }
.us-dialog .clients-table-container tbody tr:hover { background:#fafafa !important; }
.us-dialog .client-device-badge { background:#f1f1f4 !important; border-color:#dedee5 !important; color:#555560 !important; }
.us-dialog :is(.premium-client-summary,.forecast-summary-grid) { gap:12px; margin-bottom:20px; }
.us-dialog .premium-client-summary > div { border:1px solid var(--us-line) !important; background:#f8f8fa !important; border-radius:13px !important; padding:18px !important; }
.us-dialog .premium-client-summary strong { color:#29292d !important; font-size:27px !important; font-weight:600 !important; }
.us-dialog .premium-eyebrow { color:#80808a !important; font-size:9px !important; }

/* Module surfaces: no competing blue/green/purple decorative themes. */
.us-dialog :is(.remote-intro,.remote-current,.remote-control-group,.report-select-card,.report-system-summary-bar,.string-balance-card,.string-intelligence-box,.modal-solar-hero-strip,.forecast-summary-card) { background:#f7f7f9 !important; border:1px solid var(--us-line) !important; color:#60606b !important; border-radius:12px !important; box-shadow:none !important; }
.us-dialog .remote-intro :is(strong,p,small) { color:#666670 !important; }
.us-dialog :is(.remote-control-card,.string-detail-card,.string-card,.report-kpi-figma-card,.sofia-panel,.sofia-card,.sofia-kpi-card) { background:#fff !important; color:#34343c !important; border:1px solid var(--us-line) !important; border-radius:13px !important; box-shadow:none !important; }
.us-dialog .remote-control-card.card-modified { border-color:#858591 !important; background:#f6f6f8 !important; }
.us-dialog .remote-control-card.card-reading { border-color:#adadb7 !important; }
.us-dialog :is(.remote-control-card h4,.sofia-panel-title,.sofia-kpi-value,.sofia-card-title) { color:#303036 !important; }
.us-dialog :is(.sofia-panel-header,.sofia-panel-body,.sofia-kpi-icon) { background:transparent !important; border-color:var(--us-line) !important; }
.us-dialog :is(.sofia-kpi-label,.sofia-kpi-sub,.sofia-panel-subtitle,.sofia-empty-state,.sofia-setting-label) { color:#82828c !important; }
.us-dialog :is(.sofia-stats-grid,.sofia-config-grid,.sofia-log-list) { background:#fafafa !important; border-color:var(--us-line) !important; }
.us-dialog :is(.cfg-inv-tab-btn,.sofia-tab-btn) { color:#7b7b86 !important; border-color:transparent !important; background:transparent !important; font-size:12px !important; }
.us-dialog :is(.cfg-inv-tab-btn.active,.sofia-tab-btn.active) { color:#29292d !important; border-bottom-color:#29292d !important; background:#f6f6f8 !important; }
.us-dialog #cfgInvMultiSelectorRow { border:1px solid var(--us-line) !important; background:#fafafa !important; border-radius:12px; margin-bottom:14px; }
.us-dialog :is(.report-header-bg-photo,.report-header-script-box,.report-header-brand,.report-header-divider-v) { display:none !important; }
.us-dialog .report-header-content { padding:0 !important; margin:0 !important; }
.us-dialog .report-header-titles { padding:0 !important; }
.us-dialog .report-header-sub-title { display:none !important; }
.us-dialog .report-modal-footer { display:none !important; }
.us-dialog .report-select-label { color:#7c7c86 !important; font-size:10px !important; letter-spacing:.1em; }
.us-dialog .report-select-card { padding:16px !important; }
.us-dialog :is(.report-kpi-value,.report-kpi-main-value) { color:#303036 !important; font-weight:600 !important; }
.us-dialog .report-admin-section { border:1px solid var(--us-line) !important; background:#fafafa !important; border-radius:12px !important; }
.us-dialog .report-btn-download-pdf svg { color:#fff !important; }
#modalPlatformMessage .us-dialog { width:min(520px,100%) !important; }
#platformMessageText { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.8; color:#62626d; margin:0; }
#platformMessageCopy { width:100%; min-height:170px; margin-top:16px; padding:12px; font-family:var(--font-mono,monospace); }
#modalInjectionAdmin .us-dialog-scroll > div { max-width:100%; }
#modalInjectionAdmin .us-dialog-scroll > div:has(table) { overflow-x:auto !important; }

/* Notification drawer and transient messages share the same graphite chrome. */
#notificationsFlyout { background:#fff !important; border:1px solid #dedee5 !important; border-radius:18px !important; box-shadow:0 22px 70px #25252824 !important; overflow:hidden !important; max-height:min(720px,calc(100dvh - 95px)) !important; }
#notificationsFlyout .flyout-header { background:#222225 !important; border-bottom:1px solid #343439 !important; padding:20px !important; }
#notificationsFlyout .flyout-header-title { color:#f7f7fa !important; font-size:19px !important; font-weight:550 !important; letter-spacing:-.025em; }
#notificationsFlyout .flyout-project-select { background:#ffffff !important; color:#1e293b !important; border:1px solid #cbd5e1 !important; border-radius:8px !important; color-scheme:light !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif !important; font-size:12.5px !important; font-weight:550 !important; }
#notificationsFlyout .flyout-project-select option { background-color:#ffffff !important; color:#1e293b !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif !important; }
#notificationsFlyout .flyout-footer { border-top:1px solid var(--us-line) !important; }
#notificationsFlyout .btn-flyout-footer { background:#f6f6f8 !important; color:#55555f !important; border:1px solid var(--us-line) !important; border-radius:9px !important; }
.toast { border-radius:12px !important; box-shadow:0 10px 35px #25252820 !important; }
@media (max-width:1024px) {
  #appMainWrapper { padding:16px !important; }
  .us-dialog-scroll { padding:22px !important; }
}
@media (max-width:768px) {
  #modalCentroAlertas .us-dialog-scroll div:has(> #historyTypeFilter) { min-width:0 !important; width:100%; }
  #modalCentroAlertas #historyTypeFilter { width:100%; max-width:100%; }
  #modalSolarForecast canvas { max-width:100% !important; }
  .us-dialog.us-dialog { width:100% !important; max-width:calc(100vw - 24px) !important; }
  #modalGestionClientes .us-dialog-scroll > div:has(#clientSearchInput) { gap:12px !important; }
  #modalGestionClientes .us-dialog-scroll > div:has(#clientSearchInput) > div { width:100%; max-width:100% !important; min-width:0 !important; flex-wrap:wrap; }
  #modalGestionClientes #lblTotalClientsCount { white-space:normal !important; }
  #modalSolarForecast .us-dialog-scroll > .modal-body > div { flex-wrap:wrap; min-width:0 !important; }
  #modalSolarForecast .us-dialog-scroll :is(p,span,h4) { overflow-wrap:anywhere; }
  #modalCentroAlertas .us-dialog-scroll .btn { white-space:normal; }
  #appMainWrapper { padding:12px !important; }
  #appMainWrapper .premium-mobile-header { background:#222225 !important; color:#f6f6f8 !important; border-radius:14px; padding:12px 15px !important; margin-bottom:12px; }
  #appMainWrapper .premium-mobile-brand { color:#fff !important; }
  #appMainWrapper :is(.premium-mobile-brand span,.premium-mobile-caption) { color:#b0b0ba !important; }
  #appMainWrapper .premium-bear img { filter:grayscale(1) invert(1) contrast(2) !important; mix-blend-mode:screen !important; }
  #appMainWrapper .workspace-heading h2 { font-size:26px !important; }
  :is(.modal-backdrop,.modal-backdrop-custom) { padding:12px !important; }
  .us-dialog { max-width:calc(100vw - 24px) !important; max-height:calc(100dvh - 24px) !important; border-radius:17px !important; }
  .us-dialog-header { padding:18px !important; gap:14px !important; }
  .us-dialog-header :is(h2,h3,.modal-title,.report-header-main-title) { font-size:19px !important; }
  .us-dialog-header .us-dialog-close { right:14px !important; top:15px !important; }
  .us-dialog-header > div:not(.us-dialog-brand) { flex-wrap:wrap; }
  .us-dialog-scroll { padding:18px !important; }
  .us-dialog-footer { padding:13px 18px !important; }
  .us-dialog :is(input,select,textarea,.report-select-control) { font-size:16px !important; min-width:0 !important; }
  .us-dialog .us-dialog-scroll [style*="grid-template-columns"] { grid-template-columns:1fr !important; }
  .us-dialog :is(.strings-dual-grid,.sofia-grid-two-col,.sofia-kpi-grid,.forecast-summary-grid) { grid-template-columns:1fr !important; }
  .us-dialog .us-dialog-scroll [style*="min-width"] { min-width:0 !important; }
  .us-dialog .us-dialog-scroll > div { min-width:0; }
  .us-dialog .form-row { display:grid !important; grid-template-columns:1fr !important; }
  .us-dialog .premium-client-summary { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:6px !important; }
  .us-dialog .premium-client-summary > div { padding:10px !important; overflow-wrap:anywhere; }
  .us-dialog .premium-client-summary strong { font-size:23px !important; }
  .us-dialog :is(.report-actions-right,.report-selectors-row) { gap:8px !important; }
  .us-dialog .report-actions-right { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .us-dialog .report-btn-action { flex-direction:row !important; min-height:40px; }
  .us-dialog .report-header-desc { display:none !important; }
  #notificationsFlyout { position:fixed !important; top:74px !important; right:12px !important; left:12px !important; width:auto !important; max-width:none !important; max-height:calc(100dvh - 90px) !important; }
}
@media (prefers-reduced-motion:reduce) {
  .us-dialog,#appMainWrapper .hero-card { animation:none !important; transition:none !important; }
}

/* Notifications are a body-level drawer, outside transformed/clipped toolbars. */
#notificationDrawerBackdrop { position:fixed; inset:0; z-index:1490; background:#16161960; backdrop-filter:blur(3px); opacity:0; transition:opacity .26s ease; }
#notificationDrawerBackdrop.is-open { opacity:1; }
#notificationDrawerBackdrop[hidden] { display:none; }
#notificationsFlyout { position:fixed !important; inset:0 0 0 auto !important; width:40vw !important; min-width:420px !important; max-width:100vw !important; height:100dvh !important; max-height:100dvh !important; margin:0 !important; border-radius:22px 0 0 22px !important; border:0 !important; border-left:1px solid #ffffff50 !important; display:flex; flex-direction:column; z-index:1500 !important; transform:translateX(100%) !important; opacity:1 !important; visibility:hidden; pointer-events:none; transition:transform .26s cubic-bezier(.2,.8,.2,1),visibility .26s !important; box-shadow:-18px 0 70px #0002 !important; background:#ffffff !important; color-scheme:light !important; }
#notificationsFlyout.is-open { transform:translateX(0) !important; visibility:visible; pointer-events:auto; }
#notificationsFlyout .flyout-header { flex:0 0 auto !important; padding:12px 18px 14px !important; background:#16171a !important; border-bottom:1px solid #28292e !important; }
#notificationsFlyout .flyout-header-top { gap:10px !important; flex-wrap:nowrap !important; align-items:center !important; justify-content:space-between !important; margin-bottom:10px !important; }
#notificationsFlyout .flyout-header-left { display:flex !important; align-items:center !important; gap:12px !important; min-width:0 !important; }
#notificationsFlyout .us-dialog-brand { margin-bottom:0 !important; display:flex !important; align-items:center !important; gap:10px !important; padding-right:12px !important; border-right:1px solid rgba(255,255,255,0.18) !important; flex-shrink:0 !important; }
#notificationsFlyout .us-dialog-brand .us-bear { display:block !important; position:relative !important; flex:0 0 54px !important; width:54px !important; height:36px !important; overflow:hidden !important; }
#notificationsFlyout .us-dialog-brand .us-bear img { position:absolute !important; width:84px !important; height:auto !important; max-width:none !important; top:-10px !important; left:-15px !important; filter:grayscale(1) invert(1) contrast(2) !important; mix-blend-mode:screen !important; display:block !important; }
#notificationsFlyout .us-dialog-brand strong { font-size:11.5px !important; letter-spacing:0.07em !important; line-height:1.25 !important; color:#f8fafc !important; font-weight:700 !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif !important; }
#notificationsFlyout .us-dialog-brand small { font-size:9px !important; line-height:1.2 !important; margin:2px 0 0 !important; color:#94a3b8 !important; letter-spacing:0.02em !important; font-weight:400 !important; }
#notificationsFlyout .flyout-header-title-wrap { display:flex !important; align-items:center !important; gap:8px !important; flex-shrink:0 !important; }
#notificationsFlyout .flyout-header-title { font-size:15px !important; font-weight:600 !important; line-height:1.2 !important; color:#ffffff !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif !important; letter-spacing:-0.01em !important; margin:0 !important; }
#notificationsFlyout .flyout-count-pill { font-size:11px !important; font-weight:700 !important; padding:1.5px 8px !important; border-radius:12px !important; background:#ef4444 !important; color:#fff !important; box-shadow:0 1px 4px rgba(239,68,68,0.35) !important; }
#notificationsFlyout .flyout-header-actions { gap:6px !important; flex-shrink:0 !important; }
#notificationsFlyout .btn-flyout-close { width:32px !important; height:32px !important; min-width:32px !important; border-radius:50% !important; background:rgba(255,255,255,0.1) !important; color:#e2e8f0 !important; border:1px solid rgba(255,255,255,0.15) !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; cursor:pointer !important; transition:all 0.2s cubic-bezier(0.16,1,0.3,1) !important; box-shadow:0 1px 3px rgba(0,0,0,0.15) !important; }
#notificationsFlyout .btn-flyout-close:hover { background:rgba(255,255,255,0.22) !important; color:#ffffff !important; transform:scale(1.05) !important; }
#notificationsFlyout .btn-flyout-close svg { width:13px !important; height:13px !important; stroke:currentColor !important; stroke-width:2.2 !important; stroke-linecap:round !important; }
#notificationsFlyout .flyout-filter-bar { margin:0 !important; padding:0 !important; }
#notificationsFlyout .flyout-select-wrapper { position:relative !important; display:flex !important; align-items:center !important; width:100% !important; }
#notificationsFlyout .flyout-select-icon { position:absolute !important; left:11px !important; top:50% !important; transform:translateY(-50%) !important; pointer-events:none !important; color:#64748b !important; z-index:3 !important; width:13px !important; height:13px !important; }
#notificationsFlyout .flyout-project-select { width:100% !important; min-height:36px !important; height:36px !important; font-size:13px !important; padding:0 30px 0 34px !important; background-color:#ffffff !important; color:#0f172a !important; color-scheme:light !important; border:1px solid #cbd5e1 !important; border-radius:10px !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif !important; font-weight:550 !important; cursor:pointer !important; box-shadow:0 1px 3px rgba(0,0,0,0.06) !important; appearance:none !important; -webkit-appearance:none !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important; background-repeat:no-repeat !important; background-position:right 12px center !important; outline:none !important; }
#notificationsFlyout .flyout-project-select:hover,#notificationsFlyout .flyout-project-select:focus { border-color:#94a3b8 !important; box-shadow:0 0 0 3px rgba(15,23,42,0.08) !important; outline:none !important; }
#notificationsFlyout .flyout-project-select option { background-color:#ffffff !important; color:#0f172a !important; color-scheme:light !important; padding:9px 12px !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif !important; font-size:13px !important; font-weight:500 !important; }
#notificationsFlyout .flyout-body { flex:1 1 auto !important; min-height:0; max-height:none !important; overflow-y:auto !important; overflow-x:hidden; padding:12px 18px !important; overscroll-behavior:contain; background:#ffffff !important; }
#notificationsFlyout .flyout-footer { flex:0 0 auto !important; padding:12px 18px max(12px,env(safe-area-inset-bottom)) !important; background:#fafafa !important; border-top:1px solid #f1f5f9 !important; display:flex !important; align-items:center !important; gap:8px !important; }
#notificationsFlyout .btn-flyout-mark-all { flex:1 1 auto !important; min-height:38px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:6px !important; background:#ffffff !important; border:1px solid #cbd5e1 !important; border-radius:10px !important; font-size:12px !important; font-weight:600 !important; color:#334155 !important; cursor:pointer !important; transition:all 0.15s ease !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif !important; }
#notificationsFlyout .btn-flyout-mark-all:hover { background:#f1f5f9 !important; color:#0f172a !important; border-color:#94a3b8 !important; }
#notificationsFlyout .btn-flyout-footer { flex:1 1 auto !important; min-height:38px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:6px !important; font-size:12px !important; font-weight:550 !important; color:#64748b !important; background:#f8fafc !important; border:1px solid #e2e8f0 !important; border-radius:10px !important; cursor:pointer !important; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif !important; transition:all 0.15s ease !important; }
#notificationsFlyout .btn-flyout-footer:hover { background:#f1f5f9 !important; color:#0f172a !important; border-color:#cbd5e1 !important; }
#notificationsFlyout .flyout-item { padding:12px 10px !important; border-bottom:1px solid #f1f5f9 !important; border-radius:10px !important; background:#fff !important; gap:10px; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif !important; cursor:pointer !important; transition:background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease !important; border:1px solid transparent !important; }
#notificationsFlyout .flyout-item:hover { background:#f8fafc !important; border-color:#e2e8f0 !important; }
#notificationsFlyout .flyout-item.is-expanded { background:#ffffff !important; box-shadow:0 6px 18px rgba(0,0,0,0.07) !important; border-color:#cbd5e1 !important; margin:6px 0 !important; }
#notificationsFlyout .flyout-item-content { min-width:0; flex:1 1 auto; }
#notificationsFlyout :is(.flyout-item-text,.flyout-message) { font-size:12px !important; line-height:1.5 !important; color:#475569 !important; overflow-wrap:anywhere; }
#notificationsFlyout .flyout-expand-cta { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:550; color:#2563eb; margin-top:5px; padding:2px 8px; border-radius:6px; background:#eff6ff; border:1px solid #dbeafe; transition:all 0.15s ease; cursor:pointer; }
#notificationsFlyout .flyout-item:hover .flyout-expand-cta { background:#dbeafe; color:#1d4ed8; }
#notificationsFlyout .flyout-item.is-expanded .flyout-expand-cta { color:#475569; background:#f1f5f9; border-color:#e2e8f0; }
#notificationsFlyout .flyout-item-detail { display:none; margin-top:10px; padding:12px 14px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; font-size:12.5px; color:#1e293b; line-height:1.6; white-space:normal; word-break:break-word; }
#notificationsFlyout .flyout-item.is-expanded .flyout-item-detail { display:block !important; }
#notificationsFlyout .flyout-item.is-expanded .flyout-item-summary { display:none !important; }
#notificationsFlyout .flyout-expand-icon { width:12px; height:12px; stroke:currentColor; transition:transform 0.2s ease; flex-shrink:0; }
#notificationsFlyout .flyout-item.is-expanded .flyout-expand-icon { transform:rotate(180deg); }
#notificationsFlyout .flyout-avatar { width:34px; height:34px; border-radius:10px !important; }
#notificationsFlyout .flyout-empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:240px; height:100%; padding:30px 16px; text-align:center; }
#notificationsFlyout .flyout-empty-icon-wrap { background:#f8fafc !important; color:#10b981 !important; box-shadow:none !important; border:1px solid #e2e8f0 !important; border-radius:50% !important; }
#notificationsFlyout .flyout-empty-title { color:#0f172a !important; font-size:16px !important; font-weight:600 !important; margin-top:14px; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",sans-serif !important; }
#notificationsFlyout .flyout-empty-subtitle { color:#64748b !important; font-size:12.5px !important; line-height:1.5; max-width:280px; margin-top:6px; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif !important; }
#modalNotificationDetail { z-index:1400 !important; }
#modalNotificationDetail .modal-card { max-height:85vh; display:flex; flex-direction:column; }
#modalNotificationDetail .modal-body { overflow-y:auto; overscroll-behavior:contain; }
#notificationsFlyout :is(button,select):focus-visible { outline:2px solid #b2b2bc; outline-offset:2px; }
@media (max-width:768px) {
  #notificationsFlyout { width:94vw !important; min-width:0 !important; max-width:94vw !important; inset:0 0 0 auto !important; }
  #notificationsFlyout .flyout-header { padding:10px 14px !important; }
  #notificationsFlyout .us-dialog-brand { margin-bottom:4px !important; }
  #notificationsFlyout .flyout-header-title { font-size:15px !important; }
  #notificationsFlyout .flyout-body { padding:8px 12px !important; }
  #notificationsFlyout .flyout-project-select { font-size:13px !important; }
  #notificationsFlyout .flyout-footer { padding:12px !important; }
}
@media (prefers-reduced-motion:reduce) {
  #notificationsFlyout,#notificationDrawerBackdrop { transition:none !important; }
}

/* Dialog refresh: a calm, light workspace with URSA's energy accent.
   Scoped to enhanced dialogs so login, dashboard and printed A4 stay independent. */
#modalEditarProyecto > .us-dialog { --us-dialog-width:820px !important; }
.us-dialog :is(button,input,select,textarea) { font-family:inherit; }
.us-dialog .us-dialog-scroll h4 { color:#34635c !important; letter-spacing:.03em; }
.modal-backdrop:has(> .us-dialog),.modal-backdrop-custom:has(> .us-dialog) {
  background:rgba(16,29,35,.48) !important;
  backdrop-filter:blur(5px);
}
.us-dialog.us-dialog {
  border:1px solid #dce5e7 !important;
  border-radius:20px !important;
  box-shadow:0 32px 96px #102b3433,0 4px 16px #102b3414 !important;
}
.us-dialog .us-dialog-header {
  background:#fff !important;
  border-bottom:1px solid #e5ecee !important;
  padding:24px 30px 22px !important;
  gap:18px !important;
  color:#172e35 !important;
}
.us-dialog .us-dialog-header :is(h2,h3,.modal-title,.report-header-main-title) {
  color:#172e35 !important;
  font-size:25px !important;
  font-weight:650 !important;
  letter-spacing:-.035em !important;
  padding-right:32px;
  text-wrap:balance;
}
.us-dialog .us-dialog-header :is(p,span,small) { color:#657980 !important; }
.us-dialog .us-dialog-brand { gap:12px !important; }
.us-dialog .us-dialog-brand strong { color:#23434a !important; font-size:10px !important; letter-spacing:.12em; }
.us-dialog .us-dialog-brand small { color:#70858b !important; font-size:10px !important; }
.us-dialog .us-bear img { filter:grayscale(1) !important; mix-blend-mode:multiply !important; }
.us-dialog .us-dialog-header .us-dialog-close {
  top:22px !important; right:24px !important;
  width:36px !important; height:36px !important;
  background:#f3f6f7 !important; border:1px solid #e4ebed !important;
  border-radius:50% !important; color:#536c73 !important;
}
.us-dialog .us-dialog-header .us-dialog-close:hover { background:#e6f3ee !important; color:#007d62 !important; }
.us-dialog .us-dialog-scroll { padding:26px 30px !important; background:#f8fafb !important; scrollbar-color:#c9d9dc transparent; }
.us-dialog .us-dialog-footer { background:#fff !important; border-top:1px solid #e5ecee !important; padding:17px 30px !important; gap:10px !important; }
.us-dialog .form-label { color:#38525a !important; font-size:12px !important; }
.us-dialog :is(.form-control,.report-select-control,select:not([multiple]),input[type="search"],input[type="text"],input[type="password"],input[type="number"],input[type="email"],input[type="tel"],input[type="date"],textarea) {
  min-height:44px; border-color:#d6e1e4 !important; border-radius:9px !important;
  color:#213c43 !important; background-color:#fff !important;
}
.us-dialog :is(input,select,textarea) { accent-color:#00866b; }
.us-dialog :is(input,select,textarea):focus { border-color:#00a884 !important; box-shadow:0 0 0 3px #00a88418 !important; }
.us-dialog :is(button,a):focus-visible { outline:2px solid #00866b !important; }
.us-dialog :is(.btn,.report-btn-action,.report-btn-cancel) { min-height:40px; padding:10px 16px; border-radius:9px !important; font-size:13px !important; }
.us-dialog :is(.btn-primary,.report-btn-download-pdf) { background:#00866b !important; border-color:#00866b !important; color:#fff !important; }
.us-dialog :is(.btn-primary,.report-btn-download-pdf):hover { background:#006e58 !important; border-color:#006e58 !important; }
.us-dialog :is(.btn-secondary,.btn-outline,.report-btn-cancel,.report-btn-print,.report-btn-whatsapp,.report-btn-telegram) { border-color:#d8e3e6 !important; color:#3e5961 !important; }
.us-dialog :is(.remote-intro,.remote-current,.remote-control-group,.report-select-card,.report-system-summary-bar,.string-balance-card,.string-intelligence-box,.modal-solar-hero-strip,.forecast-summary-card,.report-admin-section,.sofia-section-card) {
  background:#fff !important; border-color:#e1e9ec !important; border-radius:12px !important;
}
.us-dialog :is(.remote-control-card,.string-detail-card,.string-card,.report-kpi-figma-card,.sofia-panel,.sofia-card,.sofia-kpi-card) { border-color:#e1e9ec !important; }
.us-dialog .remote-control-card.card-reading { border-color:#00a884 !important; }
.us-dialog .remote-control-card.card-modified { border-color:#c69a38 !important; background:#fffcf3 !important; }
.us-dialog th { background:#eff4f5 !important; color:#58727a !important; font-size:10px !important; }
.us-dialog td { border-color:#e8eef0 !important; }
.us-dialog .clients-table-container tbody tr:hover { background:#f0faf6 !important; }
.us-dialog .client-device-badge { background:#edf7f3 !important; color:#23745f !important; border-color:#d3e9df !important; }
.us-dialog .premium-client-summary > div { background:#fff !important; border-color:#e1e9ec !important; border-top:3px solid #00a884 !important; }
.us-dialog .premium-client-summary strong { color:#174d43 !important; }
.us-dialog :is(.cfg-inv-tab-btn.active,.sofia-tab-btn.active) { color:#007d62 !important; border-bottom-color:#00a884 !important; background:#edf8f3 !important; }
@media (max-width:600px) {
  .us-dialog .us-dialog-header { padding:18px !important; gap:14px !important; }
  .us-dialog .us-dialog-header :is(h2,h3,.modal-title,.report-header-main-title) { font-size:21px !important; }
  .us-dialog .us-dialog-header .us-dialog-close { top:16px !important; right:14px !important; }
  .us-dialog .us-dialog-brand strong { font-size:8px !important; letter-spacing:.07em; }
  .us-dialog .us-dialog-brand small { font-size:9px !important; }
  .us-dialog .us-dialog-scroll { padding:18px !important; }
  .us-dialog .us-dialog-footer { padding:14px 18px !important; }
  #modalSolarForecast .forecast-tab-btn { flex:1 1 100% !important; width:100% !important; min-width:0 !important; white-space:normal !important; justify-content:center; }
  #modalSolarForecast :is(div,nav):has(> .forecast-tab-btn) { flex-wrap:wrap !important; min-width:0 !important; }
}
