/* Layout adapters. Each original prototype stylesheet is scoped to its module. */
.es2-preview{min-width:0;min-height:calc(100dvh - 68px)}
.es2-preview>.shell,.es2-preview>.app,.es2-preview .content-shell{min-height:calc(100dvh - 68px)}
.es2-preview>.shell{width:100%;min-width:0}
.es2-preview img,.es2-preview svg{max-width:100%}
.es2-preview .es2-module-search{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:12px 16px;background:#fff;border:1px solid #d9e4eb;border-radius:10px}
.es2-module-search label{font-weight:750;white-space:nowrap}.es2-module-search input{flex:1;max-width:520px;min-width:0;border:1px solid #cbdce8;border-radius:8px;padding:9px 12px}
.es2-preview[data-module="settings"] .app{display:block}
.es2-preview[data-module="settings"] .workspace{display:block;min-width:0;min-height:0}
.es2-preview[data-module="settings"] .topbar{position:static;height:48px;min-height:48px;border-bottom:1px solid #e3eaf0;background:#f8fafc;padding:0 24px}
.es2-preview[data-module="settings"] .topbar .mobile-menu,.es2-preview[data-module="settings"] .topbar .top-actions{display:none}
.es2-preview[data-module="settings"] #settingsHomeCrumb{cursor:pointer}
.es2-preview[data-module="settings"] .page{padding:24px;max-width:1600px}
.es2-preview[data-module="settings"] .save-bar{left:258px;max-width:calc(100vw - 280px)}
.es2-preview[data-module="login"]{min-height:100dvh}
.es2-preview[data-module="login"]>.shell{min-height:100dvh}
.es2-preview[data-module="proposal-email"]{padding:30px 16px;background:#eef3f8;min-height:100dvh}
.es2-preview[data-module="proposal-preview"]{min-height:100dvh}
.es2-preview[data-module="reports"] .drawer{max-width:100vw}
.es2-preview[data-module="reports"] .local{flex-wrap:wrap;position:static}
.es2-preview[data-module="price-book"] .pricebook-local-nav{flex-wrap:wrap}
.es2-preview[data-module="maintenance-plans"] .content,.es2-preview[data-module="inspections"] .content{grid-template-columns:minmax(0,1fr) 300px}
.es2-preview[data-module="ai-calls"] .tablewrap,.es2-preview[data-module="inspections"] .table-wrap,.es2-preview[data-module="maintenance-plans"] .table-wrap{overflow-x:auto;max-width:100%}
.es2-preview[data-module="reports"] .card,.es2-preview[data-module="price-book"] .card{min-width:0}
.es2-preview[data-module="reports"] .card:has(table),.es2-preview[data-module="price-book"] .card:has(>table){overflow-x:auto;max-width:100%}
body.modal-open{overflow:hidden}
/* Customer v1.8 / Calendar V41 retain their own visuals inside the shared shell. */
.es2-preview:is([data-module="customers"],[data-module="calendar"]) .es2-sample-notice{padding:8px 14px;background:#edf5fb;border-bottom:1px solid #d3e2ed;color:#48677d;font-size:11px;line-height:1.5;flex:none}
.es2-preview[data-module="customers"]{height:auto;min-width:0}
.es2-preview[data-module="customers"]>.shell{min-height:0}
.es2-preview[data-module="customers"] .es2-module-search{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#fff;border-bottom:1px solid #dbe6ed;flex-wrap:wrap}
.es2-preview[data-module="customers"] .es2-module-search label{font-size:12px;font-weight:750}
.es2-preview[data-module="customers"] .es2-module-search input{flex:1;min-width:180px;border:1px solid #cad9e3;border-radius:8px;padding:9px 12px}
.es2-preview[data-module="customers"] .contextbar{flex-wrap:wrap;gap:10px}
.es2-preview[data-module="customers"] .context-actions{display:flex;flex-wrap:wrap}
.es2-preview[data-module="customers"] .page{min-width:0}
.es2-preview[data-module="customers"] .modal{max-height:calc(100dvh - 36px)}
.es2-preview[data-module="customers"] .modal-foot{flex-wrap:wrap}
.es2-preview[data-module="customers"] .modal :is(input:not([type="checkbox"]),select,textarea){min-width:0;max-width:100%}
.es2-preview[data-module="calendar"]{height:var(--es2-calendar-height,calc(100dvh - 68px));min-height:0;display:flex;flex-direction:column;overflow:hidden;position:relative}
.es2-preview[data-module="calendar"]>.app{height:auto;min-height:0;min-width:0;flex:1;grid-template-rows:auto minmax(0,1fr)}
.es2-preview[data-module="calendar"] .toprow{flex-wrap:wrap}
.es2-preview[data-module="calendar"] .tabs{overflow-x:auto;max-width:100%;margin-left:0}
.es2-preview[data-module="calendar"] .tabs button{white-space:nowrap}
.es2-preview[data-module="calendar"] .main,.es2-preview[data-module="calendar"] .view{min-width:0;min-height:0;overflow:hidden}
.es2-preview[data-module="calendar"] :is(.day-layout,.tech-layout){grid-template-columns:270px minmax(0,1fr)}
.es2-preview[data-module="calendar"] :is(.day-layout,.tech-layout).queue-closed{grid-template-columns:minmax(0,1fr)}
.es2-preview[data-module="calendar"] :is(.schedule-card,.tech-card){min-width:0;min-height:0}
.es2-preview[data-module="calendar"] .contextbar{flex-wrap:wrap}
.es2-preview[data-module="calendar"] :is(#view-week,#view-month,#view-map,#view-canceled){overflow:auto}
.es2-preview[data-module="calendar"] :is(.week-grid,.month-grid){min-width:800px}
.es2-preview[data-module="calendar"] .map-wrap{min-width:850px}
.es2-preview[data-module="calendar"] #view-canceled table{min-width:760px}
.es2-preview[data-module="calendar"] .overlay{padding:18px 0;align-items:center;z-index:7300}
.es2-preview[data-module="calendar"] .toast{z-index:10000}
.es2-preview[data-module="calendar"] .modal{max-height:calc(100dvh - 36px)}
.es2-preview[data-module="calendar"] :is(.drawer,.editor-drawer){height:100dvh}
.es2-preview[data-module="calendar"] :is(.modal-foot,.editor-footer){flex-wrap:wrap}
@media(max-width:650px){
 .es2-preview[data-module="calendar"] .queue-head{flex-wrap:wrap}
 .es2-preview[data-module="calendar"] .queue-head>div:first-child{flex-basis:100%}
 .es2-preview[data-module="calendar"] .contextbar{max-height:150px;overflow:auto;flex-shrink:0}
 .es2-preview[data-module="calendar"] :is(.day-layout,.tech-layout){grid-template-columns:180px minmax(0,1fr)}
 .es2-preview[data-module="calendar"] :is(.day-layout,.tech-layout).queue-closed{grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="calendar"] .queue-closed :is(.schedule-card,.tech-card){margin-left:0}
 .es2-preview[data-module="calendar"] .queue-closed .show-needs{position:fixed;bottom:12px;top:auto;left:12px;z-index:40}
 .es2-preview[data-module="calendar"] :is(.form-grid,.new-grid,.editor-grid){grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="customers"] :is(.workspace-grid,.job-layout){grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="customers"] .modal [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
}
.es2-preview .overlay,.es2-preview .modal-backdrop{z-index:200}
.es2-preview[data-module="reports"] .drawer{z-index:210}
.es2-preview[data-module="reports"] .modalbg{z-index:220}
.es2-preview .toast{z-index:250;max-width:calc(100vw - 40px)}
@media(min-width:1101px){
 .es2-preview[data-module="purchasing"] .po{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.95fr) minmax(0,1fr) 155px}
 .es2-preview[data-module="purchasing"] .summary{grid-template-columns:repeat(7,minmax(0,1fr))}
}
@media(max-width:1200px){
 .es2-preview[data-module="maintenance-plans"] .content,.es2-preview[data-module="inspections"] .content{grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="settings"] .branding-layout,.es2-preview[data-module="settings"] .profile-layout{grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="dashboard"] .pulse{grid-template-columns:repeat(3,minmax(0,1fr))}
 .es2-preview[data-module="tools"] .grid,.es2-preview[data-module="tools"] .calcgrid{grid-template-columns:1fr}
}
@media(max-width:900px){
 .es2-preview[data-module="settings"] .save-bar{left:16px;right:16px;max-width:none}
 .es2-preview[data-module="settings"] .page{padding:18px 14px}
}
@media(max-width:650px){
 .es2-preview .hero,.es2-preview .pagehead,.es2-preview .page-header,.es2-preview .head,.es2-preview .top,.es2-preview .toolbar{flex-wrap:wrap}
 .es2-preview input,.es2-preview select,.es2-preview textarea{max-width:100%}
 .es2-preview[data-module="dashboard"] .pulse,.es2-preview[data-module="dashboard"] .moneyGrid{grid-template-columns:1fr 1fr}
 .es2-preview[data-module="dashboard"] .mainGrid{grid-template-columns:1fr}
 .es2-preview[data-module="reports"] .kpis{grid-template-columns:1fr 1fr}
 .es2-preview[data-module="reports"] .controls{flex-wrap:wrap}
 .es2-preview[data-module="price-book"] .es2-module-search{align-items:stretch;flex-direction:column}
 .es2-preview[data-module="price-book"] .pricebook-local-nav .navbtn{font-size:11px}
 .es2-preview[data-module="settings"] .grid,.es2-preview[data-module="settings"] .quick{grid-template-columns:minmax(0,1fr)}
 .es2-preview[data-module="settings"] .overview-strip{grid-template-columns:1fr 1fr}
 .es2-preview[data-module="settings"] .finder-search-row{flex-wrap:wrap}
 .es2-preview[data-module="settings"] .finder-search{width:100%;min-width:0}
 .es2-preview[data-module="maintenance-plans"] .savedbar,.es2-preview[data-module="maintenance-plans"] .bulkbar{flex-wrap:wrap}
 .es2-preview[data-module="proposal-email"] table{width:100%!important}
}
@media(max-width:400px){.es2-preview[data-module="dashboard"] .pulse,.es2-preview[data-module="dashboard"] .moneyGrid{grid-template-columns:1fr}.es2-preview[data-module="settings"] .overview-strip{grid-template-columns:1fr}}
/* Authentication controls retain the existing shell styling. */
.es2-usercard .es2-logout{border:0;background:none;padding:0;color:#486a80;font:inherit;font-size:11px;margin-top:6px;cursor:pointer;text-align:left}
.es2-usercard .es2-logout:hover{text-decoration:underline}
.es2-navitem[aria-disabled="true"],.es2-app-body button:disabled{cursor:not-allowed;opacity:.6}
.es2-preview[data-module="login"] button:disabled,.es2-preview[data-module="login"] .check:has(input:disabled){cursor:not-allowed;opacity:.65}
/* Platform maintenance uses the existing shell palette and controls. */
.es2-migrations{max-width:1400px;padding:28px;margin:auto}
.es2-migrations-heading,.es2-migrations-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.es2-migrations h1{font-size:28px;margin:5px 0 8px}.es2-migrations h2{font-size:18px;margin:0 0 8px}
.es2-migrations p{color:#607789;line-height:1.5}.es2-migrations .es2-eyebrow{font-size:11px;font-weight:800;letter-spacing:.1em;color:#0871b6;margin:0}
.es2-migrations-environment,.es2-migrations-status{display:inline-block;border-radius:20px;padding:5px 10px;background:#e7f4ed;color:#246344;font-size:12px;font-weight:750;white-space:nowrap}
.es2-migrations-environment{background:#e5f1fb;color:#075f9d}.es2-migrations-pending{background:#fff2d8;color:#805b14}
.es2-migrations-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.es2-migrations-card{padding:22px;border:1px solid #d9e4eb;border-radius:12px;background:#fff;margin-bottom:18px;min-width:0}
.es2-migrations-summary span{font-size:13px;color:#607789}.es2-migrations-summary strong{display:block;font-size:30px;margin-top:8px}
.es2-migrations-actions p{margin:0}.es2-migrations-note{font-size:13px;margin-bottom:0}.es2-migrations-warning{color:#8b3b21!important}
.es2-migrations-notice{background:#e7f4ed;border:1px solid #b7dac5;padding:16px;border-radius:10px;margin:18px 0;line-height:1.5}.es2-migrations-error{background:#fff1e9;border-color:#e6c1ad}
.es2-migrations-tablewrap{overflow-x:auto}.es2-migrations table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
.es2-migrations caption{text-align:left;font-size:18px;font-weight:750;padding-bottom:18px}.es2-migrations th{color:#607789;font-size:12px}
.es2-migrations th,.es2-migrations td{padding:13px 12px;border-bottom:1px solid #e5edf2;vertical-align:top}.es2-migrations td small{display:block;margin-top:5px;color:#607789;overflow-wrap:anywhere}
.es2-migrations-credentials dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:14px}.es2-migrations-credentials dd{margin:0;overflow-wrap:anywhere}
@media(max-width:650px){.es2-migrations{padding:20px 14px}.es2-migrations-card{padding:16px}.es2-migrations h1{font-size:24px}.es2-migrations table{min-width:600px}.es2-migrations-actions form,.es2-migrations-actions button{width:100%}}
