/* Post-v23 visual correction layer: preserve layout, menus, font family and sizes. */
:root{--crm-bright-photo:url('/public-bg.jpg')}
html[data-crm-palette="midnight"]{--v23-accent:#58c8ff;--v23-edge:rgba(105,199,255,.40);--v23-glass:rgba(8,36,70,.70);--v23-glass-strong:rgba(9,46,86,.86);--v23-overlay-a:rgba(2,14,35,.12);--v23-overlay-b:rgba(4,23,49,.06);--v23-hover:rgba(35,149,219,.30);--v23-tab-bg:rgba(31,136,205,.56);--v23-page-bg:#06182e;--v23-fg:#f0f8ff;--v23-muted:#b4c9dc}
html[data-crm-palette="midnight"] body{background:#06182e!important;color:#f0f8ff!important}
body::before,html[data-crm-mode="dark"] body::before,html[data-crm-mode="light"] body::before{background-image:linear-gradient(120deg,rgba(2,17,38,.14),rgba(4,24,50,.04) 55%,rgba(2,17,38,.10)),var(--crm-route-photo,var(--crm-photo)),var(--crm-bright-photo)!important;background-size:cover,cover,cover!important;background-position:var(--crm-route-position,center),center,center!important;filter:saturate(1.18) brightness(1.12) contrast(1.05)!important;opacity:1!important}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:linear-gradient(110deg,rgba(3,18,39,.08),transparent 42%,rgba(2,18,46,.08));mix-blend-mode:normal}
body>aside,body>main{z-index:1}
body>aside{background:rgba(5,28,58,.78)!important;border-right-color:rgba(105,199,255,.42)!important;backdrop-filter:blur(10px) saturate(135%)!important}
/* Do not change v23 dimensions; only improve layer contrast and border clarity. */
.section-card,.metric-card,.project-card,.crm-v22-panel,.crm-v22-kpi,.crm-v22-quick,.crm-v22-footer-note,.v20-analytics-card,.v19-calendar-shell,.v19-estimates-card,.v19-resources-card,.v18-panel,.v18-card,.calc-work,.v19-tool-card,.v19-agenda-day{background:linear-gradient(145deg,rgba(18,65,108,.82),rgba(7,31,64,.78))!important;border-color:rgba(105,199,255,.28)!important;box-shadow:0 18px 50px rgba(0,12,30,.28),inset 0 1px rgba(190,230,255,.10)!important}
.nav-btn{font-family:inherit!important}
/* Every operational overlay sits above the photographs as a light icy-blue layer. */
.modal-box,#v17m .modal-box,.v19-modal,.modal-content,.quick-menu-popup,#quickMenuPopup,#globalSearchResults,.autocomplete-list,.crm-v18-popover,.crm-v22-mail-dialog,.crm-v23-ai-panel{background:linear-gradient(145deg,rgba(225,244,255,.98),rgba(180,218,241,.97))!important;color:#153b58!important;border-color:rgba(85,155,197,.52)!important;box-shadow:0 28px 86px rgba(0,15,35,.42),inset 0 1px rgba(255,255,255,.94)!important}
.modal-box h1,.modal-box h2,.modal-box h3,.modal-box h4,.modal-box p,.modal-box label,.modal-box span,.modal-box strong,.v19-modal h1,.v19-modal h2,.v19-modal h3,.v19-modal p,.v19-modal label,.v19-modal span,.crm-v22-mail-dialog h2,.crm-v22-mail-dialog label{color:#153b58!important}
.modal-box input,.modal-box select,.modal-box textarea,.v19-modal input,.v19-modal select,.v19-modal textarea,.crm-v22-mail-dialog input,.crm-v22-mail-dialog textarea{background:rgba(250,254,255,.92)!important;color:#153b58!important;border-color:rgba(75,139,179,.48)!important}
.modal-box button:not(.btn-action),.v19-modal button:not(.btn-action),.crm-v23-ai-panel button:not(.crm-ai-send){color:#153b58!important;border-color:rgba(75,139,179,.42)!important;background:rgba(255,255,255,.44)!important}
.crm-v23-ai-launcher{position:fixed;right:24px;bottom:24px;z-index:10020;display:flex;align-items:center;gap:9px;border:1px solid rgba(166,229,255,.75);border-radius:999px;padding:11px 15px;background:linear-gradient(135deg,#23aee8,#5e6cf5);color:#fff;font:inherit;font-weight:800;box-shadow:0 12px 28px rgba(0,24,65,.38),0 0 0 4px rgba(56,189,248,.10);cursor:pointer;transition:transform .18s,box-shadow .18s}.crm-v23-ai-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,24,65,.44),0 0 0 5px rgba(56,189,248,.16)}.crm-v23-ai-launcher .crm-ai-spark{font-size:17px}.crm-v23-ai-panel{position:fixed;right:24px;bottom:82px;z-index:10021;width:min(430px,calc(100vw - 30px));max-height:min(680px,calc(100vh - 110px));display:none;flex-direction:column;border:1px solid rgba(85,155,197,.55);border-radius:18px;overflow:hidden}.crm-v23-ai-panel.open{display:flex}.crm-ai-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 17px;border-bottom:1px solid rgba(75,139,179,.30)}.crm-ai-head h2{font-size:17px;margin:0;color:#153b58!important}.crm-ai-head p{font-size:12px;margin:4px 0 0;color:#42647a!important}.crm-ai-close{border:0!important;background:rgba(255,255,255,.42)!important;border-radius:8px;padding:4px 9px;font-size:18px;cursor:pointer}.crm-ai-context{padding:9px 17px;background:rgba(255,255,255,.30);color:#42647a;font-size:11px;border-bottom:1px solid rgba(75,139,179,.22)}.crm-ai-messages{padding:14px;overflow:auto;display:grid;gap:10px;min-height:230px;max-height:390px}.crm-ai-message{max-width:91%;padding:10px 12px;border-radius:12px;white-space:pre-wrap;line-height:1.45;font-size:13px}.crm-ai-message.user{justify-self:end;background:#2f91c7;color:white}.crm-ai-message.assistant{justify-self:start;background:rgba(255,255,255,.70);color:#153b58}.crm-ai-message.system{justify-self:center;background:rgba(255,238,190,.75);color:#614c1e;font-size:11px}.crm-ai-form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 14px;border-top:1px solid rgba(75,139,179,.30)}.crm-ai-input{min-height:42px;max-height:100px;resize:vertical;background:rgba(250,254,255,.92)!important;color:#153b58!important;border:1px solid rgba(75,139,179,.48)!important;border-radius:10px;padding:10px 11px;outline:0}.crm-ai-send{border:0;border-radius:10px;padding:0 14px;background:#237eae;color:#fff!important;font-weight:800;cursor:pointer}.crm-ai-send:disabled{opacity:.55;cursor:wait}.crm-ai-shortcuts{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 12px}.crm-ai-shortcuts button{font-size:11px;padding:6px 8px;border-radius:8px;cursor:pointer}.crm-ai-typing{display:inline-flex;gap:4px;align-items:center}.crm-ai-typing i{width:5px;height:5px;border-radius:50%;background:#237eae;animation:crm-ai-bounce 1s infinite}.crm-ai-typing i:nth-child(2){animation-delay:.15s}.crm-ai-typing i:nth-child(3){animation-delay:.3s}@keyframes crm-ai-bounce{50%{transform:translateY(-4px);opacity:.5}}@media(max-width:620px){.crm-v23-ai-launcher{right:14px;bottom:14px;padding:10px 12px}.crm-v23-ai-panel{right:14px;bottom:68px;width:calc(100vw - 28px)}}

/* Performance hotfix: one route image, one readable surface, no stacked full-page photos. */
body>main,main{background:none!important;background-image:none!important;background-color:transparent!important}
body::after{display:none!important;content:none!important}
body::before,html[data-crm-mode="dark"] body::before,html[data-crm-mode="light"] body::before{background-image:linear-gradient(120deg,rgba(2,17,38,.14),rgba(4,24,50,.04) 55%,rgba(2,17,38,.10)),var(--crm-route-photo,var(--crm-bright-photo))!important}

/* Reference-2 edge treatment: readable near sidebar, clear and bright at the far edge. */
body::before,html[data-crm-mode="dark"] body::before,html[data-crm-mode="light"] body::before{background-image:linear-gradient(90deg,rgba(2,17,38,.38) 0%,rgba(2,17,38,.18) 17%,rgba(2,17,38,.04) 39%,rgba(2,17,38,0) 62%,rgba(2,17,38,0) 100%),var(--crm-route-photo,var(--crm-bright-photo))!important}

/* Dark-theme modals: distinct blue glass layer, not a copy of the sidebar. */
html[data-crm-mode="dark"] .modal-box,html[data-crm-mode="dark"] #v17m .modal-box,html[data-crm-mode="dark"] .v19-modal,html[data-crm-mode="dark"] .modal-content,html[data-crm-mode="dark"] .crm-v18-popover,html[data-crm-mode="dark"] .crm-v22-mail-dialog{background:linear-gradient(145deg,rgba(19,88,137,.96),rgba(7,39,78,.98))!important;color:#effaff!important;border-color:rgba(117,216,255,.48)!important;box-shadow:0 28px 86px rgba(0,10,30,.54),inset 0 1px rgba(220,249,255,.18)!important}
html[data-crm-mode="dark"] .modal-box h1,html[data-crm-mode="dark"] .modal-box h2,html[data-crm-mode="dark"] .modal-box h3,html[data-crm-mode="dark"] .modal-box h4,html[data-crm-mode="dark"] .modal-box p,html[data-crm-mode="dark"] .modal-box label,html[data-crm-mode="dark"] .modal-box span,html[data-crm-mode="dark"] .v19-modal h1,html[data-crm-mode="dark"] .v19-modal h2,html[data-crm-mode="dark"] .v19-modal h3,html[data-crm-mode="dark"] .v19-modal p,html[data-crm-mode="dark"] .v19-modal label,html[data-crm-mode="dark"] .v19-modal span,html[data-crm-mode="dark"] .crm-v22-mail-dialog h2,html[data-crm-mode="dark"] .crm-v22-mail-dialog label{color:#effaff!important}

/* 2026-10-07 performance stabilization: glass only where it matters.
   Do not blur every card: backdrop-filter on dozens of surfaces causes GPU/compositor stalls. */
body>main,
body>main .header-bar,
body>main .search-input,
body>main .today-date-badge,
body>main .date-range-box,
body>main .crm-v22-quick,
body>main .section-card,
body>main .metric-card,
body>main .project-card,
body>main .crm-v22-panel,
body>main .crm-v22-kpi,
body>main .crm-v23-money-card,
body>main .v19-calendar-shell,
body>main .v19-estimates-card,
body>main .v19-resources-card,
body>main .v20-analytics-card,
body>main .v18-panel,
body>main .v18-card,
body>main .calc-work,
body>main .v19-tool-card,
body>main .v19-agenda-day,
body>main .crm-v23-integration-card {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body>main { background-attachment: scroll !important; }
body>aside { backdrop-filter: blur(8px) saturate(120%) !important; -webkit-backdrop-filter: blur(8px) saturate(120%) !important; }
.modal-overlay.active .modal-box,
.v19-modal-backdrop .v19-modal,
.crm-v23-ai-panel.open,
.crm-team-modal.open,
.crm-v22-mail-dialog { backdrop-filter: blur(8px) saturate(120%) !important; -webkit-backdrop-filter: blur(8px) saturate(120%) !important; }
/* Hard boundary: nothing inside the scrolling work canvas gets backdrop compositing. */
body>main * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
body>main .modal-overlay.active .modal-box,
body>main .v19-modal-backdrop .v19-modal { backdrop-filter: blur(8px) saturate(120%) !important; -webkit-backdrop-filter: blur(8px) saturate(120%) !important; }

/* 2026-10-07 performance stabilization: glass only where it matters. */
body>main * { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
body>main { background-attachment:scroll !important; }
body>aside { backdrop-filter:blur(8px) saturate(120%) !important; -webkit-backdrop-filter:blur(8px) saturate(120%) !important; }
.modal-overlay.active .modal-box,.v19-modal-backdrop .v19-modal,.crm-v23-ai-panel.open,.crm-team-modal.open,.crm-v22-mail-dialog { backdrop-filter:blur(8px) saturate(120%) !important; -webkit-backdrop-filter:blur(8px) saturate(120%) !important; }

/* One route photo only: hero is a readable surface, not a second photo layer. */
body>main .v19-hero,body>main #crmV19Hero,body>main .crm-v19-hero,
html[data-crm-mode="dark"] body>main #crmV19Hero.v19-hero,
html[data-crm-mode="light"] body>main #crmV19Hero.v19-hero {
  background-image:linear-gradient(90deg,rgba(4,18,41,.84) 0%,rgba(5,25,52,.68) 48%,rgba(4,14,31,.46) 100%) !important;
  background-color:rgba(7,31,62,.94) !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  text-shadow:0 1px 2px rgba(0,8,24,.72);
}
body>main .v19-hero h1,body>main .v19-hero h2,body>main .v19-hero h3,body>main .v19-hero p,
body>main #crmV19Hero h1,body>main #crmV19Hero h2,body>main #crmV19Hero h3,body>main #crmV19Hero p { color:#f4fbff !important; text-shadow:0 1px 3px rgba(0,8,24,.82); }

/* Calm readable row hover. */
body .data-table tr:hover td,body .data-table tr:focus-within td { background:rgba(31,91,139,.42) !important; color:#f1f8ff !important; text-shadow:none !important; }
body .data-table tr:hover td *,body .data-table tr:focus-within td * { color:#f1f8ff !important; }
body .crm-v22-deal:hover,body .crm-v22-client:hover,body .crm-v22-product:hover,body .crm-v22-event:hover { background:rgba(31,91,139,.46) !important; color:#f1f8ff !important; box-shadow:inset 3px 0 #65cdfb !important; }
body .crm-v22-deal:hover *,body .crm-v22-client:hover *,body .crm-v22-product:hover *,body .crm-v22-event:hover * { color:#f1f8ff !important; }

/* Readability over translucent panels. */
body>main .section-card,body>main .crm-v22-panel,body>main .v20-analytics-card,body>main .v19-calendar-shell,body>main .v19-estimates-card,body>main .v19-resources-card { background:linear-gradient(145deg,rgba(13,50,92,.91),rgba(7,28,58,.94)) !important; }
body>main p,body>main small,body>main .hint,body>main .crm-v22-empty,body>main .crm-v22-row-main small,body>main .crm-v22-client small,body>main .crm-v22-product small,body>main .crm-v22-event small { color:#c7dced !important; }
body>main h1,body>main h2,body>main h3,body>main h4,body>main strong,body>main th,body>main label { color:#f3f9ff !important; }
