:root{--bg:#f3f4f6;--card:#fff;--text:#171717;--muted:#6b7280;--border:#e5e7eb;--dark:#111827;--danger:#b42318}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}
button{border:0;border-radius:9px;background:var(--dark);color:#fff;padding:11px 16px;font-weight:700;cursor:pointer}button.secondary{background:#e5e7eb;color:#111}button.danger{background:var(--danger)}button.small{padding:7px 10px;font-size:12px}.hidden{display:none!important}
.notice{position:fixed;top:0;left:0;right:0;z-index:99;background:#fff1bf;border-bottom:1px solid #d7b24b;padding:12px;text-align:center}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#111827 0%,#374151 52%,#ececec 52%)}.auth-card{width:min(470px,100%);background:#fff;border-radius:20px;padding:32px;box-shadow:0 24px 60px rgba(0,0,0,.25)}.logo{width:64px;height:64px;border-radius:16px;background:#111827;color:#fff;display:grid;place-items:center;font-size:20px;font-weight:900}.logo.small{width:42px;height:42px;border-radius:11px;font-size:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;margin-bottom:12px}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cfd4dc;border-radius:9px;background:#fff}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#111827;color:#fff;padding:18px;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid #374151}.brand span{display:block;color:#aab2bf;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:4px;margin-top:16px}.nav-btn{text-align:left;background:transparent;color:#d1d5db;padding:11px}.nav-btn:hover,.nav-btn.active{background:#fff;color:#111827}.sidebar-footer{margin-top:auto;border-top:1px solid #374151;padding-top:15px;display:grid;gap:10px}.sidebar-footer span{font-size:12px;color:#cbd5e1;word-break:break-word}
.content{margin-left:260px;padding:28px}.mobile-head{display:none}.page{max-width:1500px;margin:0 auto}.page-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.page-head h1{margin:0 0 4px;font-size:28px}.page-head p{margin:0;color:var(--muted)}.date-chip{background:#fff;border:1px solid var(--border);padding:9px 12px;border-radius:999px}
.card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:20px;margin-bottom:18px;box-shadow:0 3px 12px rgba(0,0,0,.04)}.card h2{margin-top:0}.metrics{display:grid;gap:14px}.metrics.four{grid-template-columns:repeat(4,1fr)}.metrics.three{grid-template-columns:repeat(3,1fr)}.metric span{display:block;color:var(--muted);margin-bottom:8px}.metric strong{font-size:25px}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin:12px 0}
.table-wrap{overflow-x:auto;margin-top:12px}table{width:100%;border-collapse:collapse;min-width:1000px}th,td{padding:10px 8px;border-bottom:1px solid #eee;text-align:left;font-size:13px;vertical-align:top}th{background:#f8f8f8}.muted{color:var(--muted)}.actions-cell{white-space:nowrap}.actions-cell button{margin:2px}
.bar-list{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr auto;gap:10px;align-items:center;font-size:13px}.bar-track{height:9px;background:#eceff2;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:#111827;border-radius:999px}.activity{padding:10px 0;border-bottom:1px solid #eee}.activity strong{display:block}.activity span{font-size:12px;color:var(--muted)}
.pipeline{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pipe{border:1px solid var(--border);border-radius:10px;padding:12px}.pipe span{display:block;color:var(--muted);font-size:12px}.pipe strong{font-size:20px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:18px}.project-card h3{margin:0 0 4px}.project-card p{margin:4px 0;color:var(--muted);font-size:13px}.progress{height:10px;background:#eee;border-radius:999px;overflow:hidden;margin:12px 0}.progress span{display:block;height:100%;background:#111827}.project-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eee;font-size:12px}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.photo-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.photo-card img{width:100%;height:180px;object-fit:cover}.photo-card div{padding:10px}.photo-card p{margin:3px 0;font-size:12px}.estimate-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.estimate-summary span{background:#f8fafc;padding:12px;border-radius:10px}.estimate-summary strong{display:block;margin-top:4px}.estimate-summary .grand{background:#111827;color:#fff}.folder-card{transition:transform .12s,box-shadow .12s}.folder-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(8,18,64,.12)}.line-table input,.line-table select{min-width:90px;padding:8px}.avatar{width:34px;height:34px;border-radius:50%;background:#111827;color:#fff;display:inline-grid;place-items:center;font-weight:800;margin-right:8px}
.takeoff-tool-btn.active,#takeoffCalibrateBtn.active,#takeoffWidthCalibrateBtn.active{background:linear-gradient(135deg,#111827,#222c3b)!important;color:#fff!important}#takeoffCanvasWrap{touch-action:pan-x pan-y}#takeoffCanvas{max-width:none}
.event-card{display:grid;grid-template-columns:140px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid #eee}.event-card span{color:var(--muted);font-size:13px}
@media print{.sidebar,.mobile-head,.page-head button,.filters,.auth-shell{display:none!important}.content{margin:0;padding:0}.page{display:none!important}#estimatesPage:not(.hidden),#purchaseOrdersPage:not(.hidden),#jobCostingPage:not(.hidden){display:block!important}.card{box-shadow:none;border:0}
  body.project-ops-document-open #projectOpsModal{position:static!important;inset:auto!important;display:block!important;padding:0!important;min-height:0!important;top:auto!important}
  body.project-ops-document-open #projectOpsModal .cjv-modal-backdrop{display:none!important}
  body.project-ops-document-open #projectOpsModal .project-ops-modal-panel{position:static!important;width:100%!important;max-width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border-radius:0!important}
  body.project-ops-document-open #projectOpsModal .cjv-modal-head-actions,body.project-ops-document-open #projectOpsModal .project-detail-tabs{display:none!important}
  body.project-ops-document-open #projectOpsModal .cjv-modal-head{position:static!important}
  body.project-ops-document-open #projectOpsModal .project-ops-scrollbody{overflow:visible!important;max-height:none!important}
}
@media(max-width:1100px){.project-grid{grid-template-columns:repeat(2,1fr)}.metrics.four{grid-template-columns:repeat(2,1fr)}.photo-grid{grid-template-columns:repeat(3,1fr)}.estimate-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.content{margin-left:0;padding:16px}.mobile-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dashboard-grid,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.project-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}.event-card{grid-template-columns:1fr}.metrics.three{grid-template-columns:1fr}}
@media(max-width:520px){.metrics.four,.filters,.estimate-summary{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr}.pipeline{grid-template-columns:1fr}}

#languageBtn{margin-left:auto}.actions-cell button,.project-card button,.photo-card button{margin:2px}
/* V8 Command Center */
.command-metrics{margin-top:14px}.command-grid{margin-top:4px}.attention-row,.priority-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid #eee}.attention-row:last-child,.priority-row:last-child{border-bottom:0}.attention-row small,.priority-row small{display:block;color:var(--muted);margin-top:3px}.priority-row>b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#111827;color:#fff}.danger-text{font-weight:700}.command-grid .card{min-height:180px}
@media(max-width:900px){.command-metrics{grid-template-columns:repeat(2,1fr)!important}.command-grid{grid-template-columns:1fr}}

/* V9 AI Command Center + Facebook Inbox */
.cjv-ai-fab{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;align-items:stretch;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.2);font-weight:800;touch-action:none;user-select:none}
.cjv-ai-fab-open,.cjv-ai-fab-compact{border:0;background:#111827;color:#fff;cursor:pointer}
.cjv-ai-fab-open{display:flex;align-items:center;gap:7px;border-radius:999px 0 0 999px;padding:13px 14px 13px 18px;font:inherit;font-weight:800;white-space:nowrap}
.cjv-ai-fab-compact{border-left:1px solid rgba(255,255,255,.18);border-radius:0 999px 999px 0;padding:0 10px;font-size:20px;line-height:1}
.cjv-ai-fab:hover .cjv-ai-fab-open,.cjv-ai-fab:hover .cjv-ai-fab-compact{background:#1f2937}
.cjv-ai-fab.dragging{cursor:grabbing;opacity:.92;box-shadow:0 16px 40px rgba(0,0,0,.28)}
.cjv-ai-fab.compact .cjv-ai-fab-open{padding-left:14px;padding-right:11px}
.cjv-ai-fab.compact .cjv-ai-fab-compact{padding-left:8px;padding-right:8px}.cjv-ai-panel{position:fixed;right:18px;bottom:82px;width:min(430px,calc(100vw - 24px));height:min(650px,calc(100vh - 110px));z-index:90;background:#fff;border:1px solid #dbe2ea;border-radius:18px;box-shadow:0 18px 55px rgba(15,23,42,.26);display:flex;flex-direction:column;overflow:hidden}.cjv-ai-panel.hidden{display:none}.cjv-ai-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #e5e7eb}.cjv-ai-head strong{display:block;font-size:18px}.cjv-ai-head small{display:block;color:#64748b;margin-top:2px}.cjv-ai-messages{flex:1;overflow:auto;padding:14px;background:#f8fafc}.ai-bubble{max-width:88%;padding:10px 12px;border-radius:13px;margin:0 0 10px;line-height:1.38;background:#fff;border:1px solid #e2e8f0}.ai-bubble.user{margin-left:auto;background:#111827;color:#fff;border-color:#111827}.ai-bubble.system{font-size:12px;color:#64748b;background:transparent;border:0}.ai-bubble.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.cjv-ai-confirm{padding:12px 14px;border-top:1px solid #fde68a;border-bottom:1px solid #fde68a;background:#fffbeb}.cjv-ai-confirm p{margin:5px 0 10px}.cjv-ai-examples{display:flex;gap:6px;padding:8px 10px;overflow-x:auto;border-top:1px solid #e5e7eb}.cjv-ai-examples button{white-space:nowrap;padding:6px 9px;font-size:12px;background:#f1f5f9;color:#334155;border:0;border-radius:999px}.cjv-ai-input{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:10px;border-top:1px solid #e5e7eb;align-items:end}.cjv-ai-input textarea{resize:none;min-height:44px}.cjv-ai-input .mic{height:44px}.cjv-ai-input .mic.listening{outline:3px solid rgba(37,99,235,.2);transform:scale(1.04)}.cjv-ai-foot{text-align:center;color:#64748b;font-size:11px;padding:0 10px 8px}.message-list{display:grid;gap:10px}.message-row{border:1px solid #e2e8f0;border-radius:12px;padding:12px}.message-meta,.message-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.message-meta span{font-size:12px;color:#64748b}.message-text{margin:8px 0;padding:10px;border-radius:10px;background:#f8fafc}.message-text.outbound{background:#eef2ff}.message-actions small{color:#64748b}.error-text{color:#b91c1c}@media(max-width:700px){.cjv-ai-fab{right:12px;bottom:12px}.cjv-ai-fab-open{padding:11px 12px}.cjv-ai-fab-open span{display:none}.cjv-ai-fab-compact{display:none}.cjv-ai-panel{right:6px;bottom:68px;width:calc(100vw - 12px);height:calc(100vh - 82px);border-radius:14px}}

/* V9.1 LOGIN RECOVERY / INPUT SAFETY */
#authView.auth-shell{position:relative;z-index:120;pointer-events:auto}
#authView .auth-card{position:relative;z-index:121;pointer-events:auto}
#authView .auth-card *{pointer-events:auto}
#authView input,#authView button{position:relative;z-index:122;pointer-events:auto;user-select:auto;-webkit-user-select:auto}
body:not(.cjv-authenticated) .cjv-ai-fab,
body:not(.cjv-authenticated) .cjv-ai-panel{display:none!important}

/* V9.4 navigation/performance safeguards */
#appShell .page.hidden{display:none!important}
#appShell .page:not(.hidden){display:block}
.nav-btn{touch-action:manipulation}
.content{contain:layout style}

/* V9.6 navigation isolation */
#appShell main.content > section.page{display:none!important}
#appShell main.content > section.page:not(.hidden){display:block!important}
#sidebar,#sidebar nav,#sidebar .nav-btn{pointer-events:auto!important}
#sidebar .nav-btn{position:relative;z-index:1}


/* V10 CJV BRAND + INVOICE / TIME / MATERIAL PRICING */
:root{--cjv-gold:#c7a15a;--cjv-gold-soft:#ead9b8;--cjv-ink:#111827;--cjv-charcoal:#1f2937}
body.cjv-authenticated{background:linear-gradient(135deg,#f4f5f6 0%,#eef0f2 55%,#f7f4ee 100%);position:relative}
body.cjv-authenticated:before{content:"";position:fixed;right:-70px;bottom:-60px;width:min(520px,55vw);height:min(520px,55vw);background:url('assets/cjv-logo-white.png') center/contain no-repeat;opacity:.035;filter:invert(1);pointer-events:none;z-index:0}
#appShell{position:relative;z-index:1}.sidebar{background:linear-gradient(180deg,#0d1118,#171d27)}
.brand-logo-image{width:68px;height:58px;object-fit:contain;flex:0 0 auto}.brand{border-bottom-color:rgba(199,161,90,.45)}
.nav-btn:hover,.nav-btn.active{background:#fff;color:#111827;box-shadow:inset 4px 0 0 var(--cjv-gold)}
.card{border-top:2px solid rgba(199,161,90,.22)}button:not(.secondary):not(.danger){background:linear-gradient(135deg,#111827,#222c3b)}
.page-head h1:after{content:"";display:block;width:46px;height:3px;border-radius:2px;background:var(--cjv-gold);margin-top:6px}
.invoice-filters{grid-template-columns:2fr 1fr 1fr}.filters.compact{display:flex;margin:0;min-width:min(520px,100%)}
.invoice-totals{margin:18px 0 10px auto;width:min(480px,100%);display:grid;gap:5px}.invoice-totals>div{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #ececec}.invoice-totals .grand,.invoice-totals .balance{background:#111827;color:#fff;border-radius:9px;border:0;margin-top:4px}.invoice-totals .balance{background:#7b5d20}.invoice-lines-table{min-width:760px}.invoice-activity{margin-top:20px;padding-top:15px;border-top:1px solid var(--border)}.activity-chip{padding:9px 0;border-bottom:1px solid #eee}.activity-chip small{color:var(--muted);display:block}.integration-status{padding:10px 0;border-bottom:1px solid #eee}.integration-status p{margin:6px 0;color:var(--muted)}.retailer-search-card{border-top-color:var(--cjv-gold)}
.time-week-toolbar{display:grid;grid-template-columns:1.4fr 1.4fr 1fr auto;gap:10px;align-items:end;margin-bottom:14px}.employee-week-card{border-left:4px solid var(--cjv-gold)}.employee-week-title{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.employee-week-total{font-size:20px;font-weight:900}.daily-total-row td{font-weight:800;background:#faf7f0}.paid-hours{font-weight:900}.raw-hours{color:var(--muted);font-size:11px}.lunch-note{font-size:11px;color:#8a6a2d}.week-archived{opacity:.72}.time-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.time-edit-panel{border:1px solid var(--border);background:#fffaf0;border-radius:12px;padding:14px;margin:10px 0}
@media(max-width:900px){.time-week-toolbar{grid-template-columns:1fr 1fr}.invoice-filters{grid-template-columns:1fr 1fr}.brand-logo-image{width:54px}}
@media(max-width:600px){.time-week-toolbar,.invoice-filters{grid-template-columns:1fr}.filters.compact{display:grid}.invoice-totals{width:100%}}

/* V10.2 Forms Center */
.cjv-forms-controls{position:relative}.forms-draw-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cjv-draw-editor{margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#d9dee7)}.cjv-form-paper-card{background:#eef1f5}.cjv-form-preview{max-width:940px;margin:0 auto;background:white;border:1px solid #d7dce4;border-radius:12px;padding:30px;box-shadow:0 8px 24px rgba(15,23,42,.06);color:#111827}.cjv-form-brand{background:#111827;color:white;padding:20px;border-radius:10px 10px 0 0;display:flex;gap:20px;align-items:center}.cjv-form-brand img{width:105px;max-height:78px;object-fit:contain}.cjv-form-brand h1{font-size:21px;margin:0 0 5px;color:white}.cjv-form-company{text-align:center;padding:9px 12px;border:1px solid #d7dce4;border-top:0;font-size:12px;color:#475569}.cjv-form-lines{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.cjv-form-box{border:1px solid #cfd6df;border-radius:8px;padding:11px;margin:8px 0 16px;background:#fff}.cjv-form-table{width:100%;border-collapse:collapse;margin:8px 0 16px}.cjv-form-table th,.cjv-form-table td{border:1px solid #d7dce4;padding:8px;text-align:left;font-size:12px}.cjv-form-table th{background:#f5f7fa}.cjv-form-signatures{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:38px}.cjv-form-signatures i{display:block;height:32px;border-bottom:1px solid #111827}.cjv-form-signatures span,.cjv-form-signatures small{display:block;font-size:12px}.cjv-form-email{margin-top:24px;border:1px solid #d7dce4;border-radius:8px;background:#f8fafc;padding:14px;font-size:12px}.cjv-form-empty{padding:30px;text-align:center;color:#64748b}.cjv-form-preview h3{margin:18px 0 6px;color:#111827}.cjv-form-preview p{line-height:1.55}@media(max-width:760px){.forms-draw-grid,.cjv-form-lines,.cjv-form-signatures{grid-template-columns:1fr}.cjv-form-preview{padding:16px}.cjv-form-brand{align-items:flex-start}.cjv-form-brand img{width:80px}}

/* V10.3 New Home Project Manager */
.nh-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.nh-tabs button{background:#eef1f5;color:#1f2937;border:1px solid #d5dbe4;padding:8px 11px;border-radius:9px}.nh-tabs button.active{background:#111827;color:#fff}.nh-phase .section-head{align-items:flex-start}.nh-task-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:7px;margin-top:12px}.nh-task{display:flex;gap:9px;align-items:flex-start;padding:8px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.nh-task input{margin-top:3px}.nh-list-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;align-items:end;border:1px solid #e5e7eb;border-radius:10px;padding:10px;margin:9px 0;background:#fff}.attention-list li{margin:6px 0;color:#9f1239}.good-text{color:#166534;font-weight:600}.progress{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:#b78b2e}.nh-list-row .danger.small{padding:8px;font-size:12px}@media(max-width:760px){.nh-task-list{grid-template-columns:1fr}}

/* V10.3.1 Contrast Fix — New Home tabs + active sidebar */
#appShell .nh-tabs button{
  background:#1b2636 !important;
  color:#ffffff !important;
  border:1px solid #34445a !important;
  font-weight:700;
  box-shadow:none;
}
#appShell .nh-tabs button:hover{
  background:#2a394d !important;
  color:#ffffff !important;
  border-color:var(--cjv-gold) !important;
}
#appShell .nh-tabs button.active{
  background:var(--cjv-gold) !important;
  color:#111827 !important;
  border-color:var(--cjv-gold) !important;
  box-shadow:0 2px 8px rgba(199,161,90,.22);
}
#appShell #sidebar .nav-btn.active{
  background:#ffffff !important;
  color:#111827 !important;
  box-shadow:inset 4px 0 0 var(--cjv-gold) !important;
}
#appShell #sidebar .nav-btn:hover:not(.active){
  background:#253247 !important;
  color:#ffffff !important;
}

/* V10.4 Remodeling Project Manager */
.rm-link-card{margin-bottom:14px}.rm-link-actions{display:flex;align-items:end}.rm-link-actions button{width:100%;min-height:42px}.rm-frame-wrap{background:#fff;border:1px solid var(--line,#d8dee8);border-radius:14px;overflow:hidden;min-height:78vh}.rm-frame{width:100%;height:calc(100vh - 205px);min-height:760px;border:0;display:block;background:#f3f5f7}@media(max-width:900px){.rm-frame{height:1100px;min-height:900px}}

/* V10.6 — Customer Intake CRM + New Home task notes + Job numbers */
.project-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.job-number{font-size:12px;font-weight:800;color:#8a6418;background:#fff8df;border:1px solid #ead79b;border-radius:999px;padding:4px 8px}
.nh-task-list{align-items:start}.nh-task-block{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:8px;display:flex;flex-direction:column;gap:7px}.nh-task-block .nh-task{border:0;padding:3px;background:transparent}.nh-task-note{width:100%;min-height:58px;resize:vertical;font-size:12px;background:#fbfcfe;border:1px solid #d8dee8;border-radius:7px;padding:8px}.nh-save-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;position:sticky;bottom:10px;z-index:4;border-color:#d9c27e;box-shadow:0 8px 28px rgba(17,24,39,.12)}
.ci-public-card{border-left:4px solid #b78b2e}.ci-link-row{display:grid;grid-template-columns:1fr auto;gap:8px}.ci-kpis{margin-bottom:14px}.ci-origin{display:inline-block;margin-top:4px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#7b5a17}.ci-status-select{min-width:145px}.ci-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ci-detail-grid>div{border:1px solid #e5e7eb;border-radius:9px;padding:10px;background:#fbfcfe}.ci-detail-grid .full{grid-column:1/-1}.ci-detail-grid span{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:#6b7280;margin-bottom:5px}.ci-detail-grid strong,.ci-detail-grid p{margin:0;white-space:pre-wrap}.ci-detail-actions{margin-top:14px}
@media(max-width:900px){.ci-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ci-link-row{grid-template-columns:1fr}.ci-detail-grid{grid-template-columns:1fr}.ci-detail-grid .full{grid-column:1}.nh-save-bar{position:static;align-items:stretch;flex-direction:column}}

/* V10.7 - movable/minimizable CJV AI */
.cjv-ai-panel{resize:both;min-width:340px;min-height:360px;max-width:calc(100vw - 12px);max-height:calc(100vh - 12px)}
.cjv-ai-head{cursor:move;user-select:none}
.cjv-ai-panel.dragging .cjv-ai-head{cursor:grabbing}
.cjv-ai-window-controls{display:flex;gap:6px;align-items:center}
.cjv-ai-window-controls button{min-width:34px;height:34px;padding:4px 9px;font-size:17px;line-height:1}
.cjv-ai-panel.maximized{left:12px!important;top:12px!important;right:12px!important;bottom:12px!important;width:auto!important;height:auto!important;max-width:none;max-height:none;resize:none;border-radius:16px}
@media(max-width:700px){.cjv-ai-panel{resize:none;min-width:0;min-height:0}.cjv-ai-head{cursor:default}#cjvAiReset{display:none}.cjv-ai-panel.maximized{left:0!important;top:0!important;right:0!important;bottom:0!important;border-radius:0}}

/* V10.8 dashboard editing + check-off */
.dashboard-widget-hidden{display:none!important}
.dashboard-check-row{display:flex!important;align-items:flex-start;gap:10px}
.dashboard-check{width:22px!important;height:22px!important;min-width:22px;margin:1px 0 0;accent-color:#c89b2b;cursor:pointer}
.hub-modal{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto}
.hub-modal.hidden{display:none!important}.hub-modal-card{width:min(850px,100%);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.hub-modal-head{background:#111827;color:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.hub-modal-head span{display:block;color:#cbd5e1;font-size:12px;margin-top:3px}
.hub-modal-body{padding:20px}.dashboard-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.dashboard-choice{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;border:1px solid #e5e7eb;border-radius:10px;padding:11px;background:#fafafa}
.dashboard-choice input{width:22px;height:22px;accent-color:#c89b2b}.soft-rule{border:0;border-top:1px solid #e5e7eb;margin:22px 0}
.dashboard-completed-list{display:grid;gap:8px}.completed-dashboard-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px}.completed-dashboard-row small{display:block;color:#6b7280;margin-top:2px}
@media(max-width:650px){.dashboard-choice-grid{grid-template-columns:1fr}}

/* V10.8 voucher checks */
.check-modal{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:1300;padding:20px;overflow:auto;display:flex;align-items:flex-start;justify-content:center}.check-modal.hidden{display:none!important}
.check-modal-card{width:min(980px,100%);background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.35);overflow:hidden}
.check-modal-head{padding:16px 20px;background:#111827;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}.check-modal-head span{display:block;font-size:12px;color:#bbb;margin-top:3px}
.check-modal-actions{display:flex;gap:8px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid #e5e7eb;background:#f8f8f8}
.simple-voucher{width:8.5in;height:11in;background:#fff;color:#111;position:relative;font-family:Arial,Helvetica,sans-serif}
.sample-check-top{height:3.35in;position:relative}.sample-check-date{position:absolute;top:.48in;right:.58in;font-size:14px}.sample-check-payee{position:absolute;top:.95in;left:1.15in;font-size:15px;font-weight:700}.sample-check-amount{position:absolute;top:.95in;right:.55in;font-size:15px;font-weight:700}.sample-check-words{position:absolute;top:1.35in;left:.48in;right:.55in;font-size:13px;white-space:nowrap;overflow:hidden}.sample-check-memo{position:absolute;top:1.82in;left:.98in;right:2.8in;font-size:12px;font-weight:700;white-space:pre-wrap}
.sample-stub{height:3.45in;position:relative}.sample-stub .stub-date{position:absolute;top:.55in;left:.82in;font-size:14px;font-weight:700}.sample-stub .stub-payee{position:absolute;top:.55in;left:2.05in;font-size:14px;font-weight:700}.sample-stub .stub-amount{position:absolute;top:.70in;right:.58in;font-size:14px}.sample-stub .stub-bank{position:absolute;top:1.90in;left:.48in;font-size:14px;font-weight:700}.sample-stub .stub-details{position:absolute;top:2.40in;left:.82in;right:.58in;font-size:11px;white-space:pre-wrap}
.calibration-card{max-width:700px}.calibration-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px}.calibration-note{padding:0 20px}.check-nudge-row,.calibration-actions{padding:0 20px 14px}.check-select-col{width:48px;text-align:center}.check-select-col input,#selectAllChecks{width:24px;height:24px;accent-color:#c89b2b}.check-selection-summary{margin:8px 0;font-weight:800;color:#4b5563}
@media(max-width:650px){.calibration-grid{grid-template-columns:1fr}}

/* V10.9 embedded replacement modules */
.embedded-module-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.crm-module-frame{display:block;width:100%;border:0;background:#fff;height:calc(100vh - 145px);min-height:780px}
@media(max-width:800px){.crm-module-frame{height:950px;min-height:950px}}

/* V10.9.6 Project Measurement Manager */
.measurement-manager-frame{height:calc(100vh - 145px);min-height:820px}
@media(max-width:800px){.measurement-manager-frame{height:980px;min-height:980px}}

/* V10.10.5 Financial OS integration */
.financial-os-shell{padding:0;overflow:hidden;min-height:82vh}
#financialOSIframe{display:block;width:100%;height:82vh;min-height:760px;border:0;background:#080a0d}
@media(max-width:800px){#financialOSIframe{height:88vh;min-height:680px}}

/* V10.10.6 New Home document PDF storage */
.nh-document-row{align-items:end}
.nh-doc-file{min-width:230px;display:flex;flex-direction:column;gap:6px;padding:7px 0}
.nh-doc-label{font-size:12px;font-weight:800}
.nh-doc-saved{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.nh-doc-actions{align-items:center}
.nh-doc-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.nh-upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
.nh-doc-status{font-size:10px;min-height:14px}
@media(max-width:900px){.nh-document-row{display:grid!important;grid-template-columns:1fr}.nh-doc-file{min-width:0}}

/* ============================================================
   V10.10.7 MOBILE / IPAD COMPATIBILITY
============================================================ */
.cjv-build-banner{
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  margin:0 0 14px;padding:10px 12px;border:1px solid #d7dde5;
  background:#fff;border-radius:10px;font-size:12px
}
.cjv-build-banner span{color:#687386}
.cjv-build-corner{
  position:fixed;right:8px;bottom:8px;z-index:30;
  font-size:9px;padding:4px 7px;border-radius:999px;
  background:rgba(17,24,39,.82);color:#fff;pointer-events:none
}
.cjv-touch-device button,
.cjv-touch-device .button,
.cjv-touch-device select,
.cjv-touch-device input[type="date"],
.cjv-touch-device input[type="file"]{
  min-height:44px;
}
.cjv-touch-device input[type="checkbox"]{
  min-width:24px;min-height:24px;
}
.cjv-touch-device .small{min-height:40px}
.cjv-touch-device .nav-btn{min-height:44px}
.cjv-touch-device input,.cjv-touch-device select,.cjv-touch-device textarea{
  font-size:16px!important; /* prevents iOS zoom on focus */
}
@supports (-webkit-touch-callout:none){
  html,body{overscroll-behavior-y:none}
  input,select,textarea,button{-webkit-tap-highlight-color:rgba(0,0,0,.08)}
  .table-wrap{-webkit-overflow-scrolling:touch}
}
@media(max-width:820px){
  .page{padding-left:12px!important;padding-right:12px!important}
  .page-head{gap:10px;flex-wrap:wrap}
  .action-row{gap:8px;flex-wrap:wrap}
  .card{border-radius:12px}
  .table-wrap{overflow-x:auto}
  table{min-width:760px}
  #financialOSIframe{min-height:76vh}
}
@media(max-width:600px){
  .cjv-build-corner{display:none}
  .page-head h1{font-size:25px}
  button,.button{white-space:normal}
}

/* V10.10.8 Customer Database */
.customer-db-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 220px auto;gap:10px;align-items:center}
.customer-db-toggle{display:flex;gap:8px;align-items:center;font-size:13px}
.customer-db-toggle input{width:20px;height:20px}
.customer-db-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.customer-db-table-card{padding:0;overflow:hidden}
.customer-db-table{min-width:1320px}
.customer-db-table th{white-space:nowrap}
.customer-db-table td{vertical-align:middle}
.customer-db-table a{color:inherit}
@media(max-width:900px){
  .customer-db-toolbar{grid-template-columns:1fr}
  .customer-db-metrics{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.customer-db-metrics{grid-template-columns:1fr}}

/* V10.10.8 New Home General Notes */
.nh-general-notes-card{max-width:none}
.nh-general-notes{
  width:100%;min-height:420px;resize:vertical;
  font-size:15px;line-height:1.5;padding:14px;
}

/* V10.10.9 Customer Master Database */
.customer-db-toolbar{grid-template-columns:minmax(260px,1fr) 220px 180px auto auto}
.customer-db-actions{display:flex;gap:5px;flex-wrap:wrap;min-width:240px}
#customerDbEditor{border-left:4px solid var(--gold,#c7a54a)}
#customerDbEditor.hidden{display:none}
@media(max-width:1100px){.customer-db-toolbar{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.customer-db-toolbar{grid-template-columns:1fr}.customer-db-actions{min-width:0}}

/* V10.10.10 Time Clock / Payroll */
.time-payroll-card{border-left:4px solid var(--gold,#c7a54a)}
.time-lunch-note{margin-top:12px;font-size:11px}
.time-summary-table{min-width:680px}
.time-summary-table td:last-child,.time-summary-table th:last-child{font-size:16px}
.time-employee-group{border:1px solid var(--border,#dfe4ea);border-radius:12px;margin:0 0 16px;overflow:hidden;background:#fff}
.time-employee-head{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 15px;background:#f6f7f9;border-bottom:1px solid var(--border,#dfe4ea)}
.time-employee-head h3{margin:0 0 3px}.time-employee-head span{font-size:11px;color:#687386}
.time-employee-total{font-weight:800;font-size:15px}
.time-detail-table{min-width:1050px}
#timeEditPanel{border-left:4px solid #243247}
@media(max-width:700px){
 .time-employee-head{align-items:flex-start;flex-direction:column}
}

/* V10.10.14 multi-module polish */
.priority-row{align-items:center}.priority-main{flex:1;min-width:0}.priority-actions{margin-left:auto}
@media(max-width:700px){.priority-row{flex-wrap:wrap}.priority-actions{width:100%;margin-left:0}}

/* V10.10.15 AI launcher resilience */
.cjv-ai-fab{z-index:25000!important;pointer-events:auto!important}
.cjv-ai-fab *{pointer-events:auto!important}
.cjv-ai-panel{z-index:25001!important;pointer-events:auto!important}
.cjv-ai-panel *{pointer-events:auto}
body.cjv-authenticated .cjv-ai-fab:not(.hidden){display:flex!important}

/* V10.10.16 permanent CJV AI page */
.cjv-ai-page-card{min-height:620px;display:flex;flex-direction:column}
.cjv-ai-health{padding:10px 12px;border:1px solid #dbe2ea;border-radius:10px;background:#f8fafc;font-size:12px;font-weight:700;margin-bottom:12px}
.cjv-ai-health.ok{background:#ecfdf3;border-color:#86efac;color:#166534}.cjv-ai-health.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.cjv-ai-health.testing{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.cjv-ai-health.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.cjv-ai-page-messages{flex:1;min-height:380px;max-height:58vh;overflow:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px}
.cjv-ai-page-examples{display:flex;gap:7px;flex-wrap:wrap;padding:12px 0}.cjv-ai-page-examples button{background:#eef2f7;color:#263445;border:0;border-radius:999px;padding:8px 12px;font-weight:700}
.cjv-ai-page-input{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.cjv-ai-page-input textarea{min-height:90px;resize:vertical}.cjv-ai-page-input button{height:48px;min-width:100px}
@media(max-width:650px){.cjv-ai-page-input{grid-template-columns:1fr}.cjv-ai-page-input button{width:100%}}

/* V10.10.17 floating CJV AI popup repair */
.cjv-ai-fab{z-index:25000!important;pointer-events:auto!important}
.cjv-ai-fab-drag{cursor:grab;border:0;background:transparent;padding:0 3px;min-width:22px;opacity:.65;font-weight:900}
.cjv-ai-fab-drag:active{cursor:grabbing}
.cjv-ai-fab-open{pointer-events:auto!important}
.cjv-ai-panel{z-index:25001!important}
.cjv-ai-panel.hidden{display:none!important;pointer-events:none!important}
.cjv-ai-panel:not(.hidden){display:flex!important;pointer-events:auto!important}
@media(max-width:700px){.cjv-ai-fab-drag{display:none!important}}
/* V10.10.23 — CLEAN PROJECT OPERATIONS + SINGLE MODAL SCROLL SYSTEM */
.project-job-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 220px 220px;gap:10px}.project-customer-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.project-customer-preview>div{border:1px solid #dfe4ea;border-radius:10px;padding:10px}.project-customer-preview span{display:block;font-size:10px;color:#687386;text-transform:uppercase;font-weight:800}.project-customer-preview strong{display:block;margin-top:4px}.project-modal-section{padding:22px 28px;border-bottom:1px solid #e6e9ee}.project-modal-section h3{margin:0 0 14px;color:#17202a}.project-modal-section>label{display:block;font-weight:800}.project-cover-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.project-modal-footer{position:sticky;bottom:0;z-index:8;background:#fff;padding:16px 24px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e2e8f0}.project-stage-field{background:#fff8dc;border:1px solid #ead78a;border-radius:10px;padding:10px}
.cjv-project-topnav{display:flex;gap:4px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:5px;margin-bottom:16px;overflow-x:auto}.cjv-project-topnav button{background:transparent;color:#475569;border-radius:9px;padding:10px 14px;white-space:nowrap}.cjv-project-topnav button.active{background:#111827;color:#fff}.cjv-project-view{display:none}.cjv-project-view.active{display:block}.cjv-priority-strip{margin-bottom:12px}.cjv-priority-queue{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:8px}.cjv-priority-card{display:block;text-align:left;border:1px solid #e5e7eb;border-left:5px solid #d4af37;background:#fff;color:inherit;border-radius:10px;padding:10px;cursor:pointer}.cjv-priority-card.problem{border-left-color:#dc2626}.cjv-priority-card.attention{border-left-color:#ca8a04}.cjv-priority-card .small{display:block;margin-top:3px}
.cjv-pipeline-filterbar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;padding:12px;margin-bottom:14px}.cjv-pipeline-board{display:flex;gap:10px;overflow-x:auto;align-items:flex-start;min-height:0;padding-bottom:14px}.cjv-pipeline-column{min-width:280px;width:280px;min-height:430px;align-self:flex-start;background:#eef1f4;border:1px solid #dfe4ea;border-radius:12px;padding:10px}.cjv-pipeline-head{display:flex;justify-content:space-between;font-size:12px;font-weight:900;margin-bottom:10px}.cjv-pipeline-head span:last-child{background:#fff;border-radius:999px;padding:2px 7px;color:#64748b}.cjv-pipeline-card{background:#fff;border:1px solid #e4e7eb;border-radius:11px;padding:11px;margin:0 0 9px;cursor:pointer}.cjv-pipeline-card:hover{box-shadow:0 5px 16px rgba(15,23,42,.09)}.cjv-pipeline-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:9px 0}.cjv-pipeline-meta>div{background:#f8fafc;border-radius:8px;padding:6px;font-size:11px}.cjv-pipeline-meta span{display:block;font-size:9px;color:#64748b;text-transform:uppercase}.cjv-pipeline-progress{height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-top:8px}.cjv-pipeline-progress>div{height:100%;background:#d6ad29}.pipeline-empty{text-align:center;padding:28px 8px}.cjv-stage-controls{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px;align-items:center}.cjv-stage-controls select{font-size:10px;padding:7px 8px;border-radius:7px;background:#fff}.cjv-priority-line{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px}.priority-pill{font-size:9px;font-weight:900;border-radius:999px;padding:3px 7px;background:#e5e7eb;color:#475569}.priority-pill.critical{background:#fee2e2;color:#991b1b}.priority-pill.high{background:#fef3c7;color:#92400e}.priority-pill.normal{background:#dbeafe;color:#1e40af}.priority-pill.low{background:#f1f5f9;color:#64748b}.cjv-next-action{margin-top:7px}
.cjv-all-projects-card{padding:16px}.cjv-all-projects-card h2{font-size:28px;margin:0}.cjv-projects-clean-table th{font-size:11px;text-transform:uppercase;color:#64748b}.badge.green{background:#dcfce7;color:#166534}.badge.yellow{background:#fef3c7;color:#92400e}.badge.red{background:#fee2e2;color:#991b1b}.project-ops-kpis{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:14px}.ops-stage-chart{display:flex;align-items:flex-end;gap:8px;height:180px;overflow:auto}.ops-stage-col{min-width:72px;flex:1;text-align:center;font-size:10px;color:#64748b}.ops-stage-bar{background:#cbd5e1;border-radius:6px 6px 0 0;min-height:5px}.ops-attention-item,.ops-upcoming-item{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;background:#fff;border:1px solid #e5e7eb;padding:10px;margin:6px 0;text-align:left}.project-ops-summary{padding:14px 20px;background:#f8fafc}.project-ops-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.project-ops-summary-grid>div{background:#fff;border:1px solid #e5e7eb;border-radius:9px;padding:10px}.project-ops-summary-grid span{display:block;font-size:9px;text-transform:uppercase;color:#64748b}.project-detail-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #e5e7eb}.project-detail-tabs button.active{background:#111827;color:#fff}.project-ops-content{padding:18px 20px;min-height:380px}.ops-list-item{border:1px solid #e5e7eb;border-radius:9px;padding:10px;margin-bottom:8px;display:flex;justify-content:space-between;gap:10px}.ops-list-item>div{display:flex;flex-direction:column}.ops-list-item span{font-size:11px;color:#64748b}.ops-quote-selected{background:#dcfce7}
/* ONE scrolling system: inner panel scrolls; page behind stays locked. */
.cjv-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}.cjv-modal.hidden{display:none!important}.cjv-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}.cjv-modal-panel{position:relative;z-index:1;width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:#fff;border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.3)}.project-job-modal-panel{border-top:6px solid #c7a54a}.project-ops-modal-panel{border-top:6px solid #d4af37}.cjv-modal-head{position:sticky;top:0;z-index:10;background:#fff;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.cjv-modal-head h2{margin:2px 0 0}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.08em;color:#0ea5b7}body.modal-open{overflow:hidden!important}
.cjv-modal-head-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}
.cjv-quickadd{position:relative}
.cjv-quickadd-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 18px 45px rgba(15,23,42,.22);min-width:190px;padding:6px;z-index:20}
.cjv-quickadd-menu.hidden{display:none!important}
.cjv-quickadd-menu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:700;color:#1e293b;cursor:pointer}
.cjv-quickadd-menu button:hover{background:#f1f5f9}
.cjv-quickadd-menu button+button{margin-top:2px}
.ops-map-wrap{margin-bottom:10px}
.ops-map-frame{width:100%;height:180px;border:0;border-radius:10px}
.ops-weather-now{font-size:14px;font-weight:700;margin-bottom:8px}
.ops-weather-days{display:flex;gap:8px;overflow-x:auto}
.ops-weather-day{flex-shrink:0;min-width:56px;text-align:center;font-size:11px;background:#f8fafc;border-radius:8px;padding:8px 6px}
.ops-weather-day span{display:block;font-weight:700;margin-bottom:2px}
.ops-weather-day div{font-size:18px;margin:2px 0}
.ops-weather-day small{display:block;color:#64748b}
.ops-weather-day .ops-pop{color:#0ea5b7}
.cjv-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:9px;font-weight:800;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex-shrink:0}
.cjv-avatar-group{display:flex;align-items:center;gap:2px;flex-shrink:0}
.cjv-avatar-add{width:20px;height:20px;border-radius:50%;border:1px dashed #94a3b8;background:#fff;color:#64748b;font-size:12px;line-height:1;cursor:pointer;flex-shrink:0}
.cjv-assignee-pop{position:absolute;z-index:10001;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 18px 45px rgba(15,23,42,.25);padding:10px;min-width:200px;max-height:260px;overflow:auto}
.cjv-assignee-pop label{display:flex;align-items:center;gap:8px;padding:6px 4px;font-size:13px;font-weight:600;color:#1e293b}
.cjv-assignee-pop-actions{margin-top:6px;text-align:right}
.cjv-assignee-pop-actions button{background:#0f172a;color:#fff;border:0;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer}
.gantt-row-label{display:flex!important;align-items:center;gap:4px;min-width:210px!important;max-width:210px!important;overflow:visible!important}
.gantt-row-label .grl-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
@media(max-width:1000px){.cjv-pipeline-filterbar{grid-template-columns:1fr 1fr}.project-ops-kpis{grid-template-columns:repeat(2,1fr)}.cjv-priority-queue{display:flex;overflow-x:auto}.cjv-priority-card{min-width:230px}}@media(max-width:700px){.project-job-toolbar{grid-template-columns:1fr}.project-customer-preview{grid-template-columns:1fr}.cjv-modal{padding:0;align-items:stretch}.cjv-modal-panel{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.project-modal-section{padding:18px 16px}.cjv-modal-head{padding:15px 16px}.project-modal-footer{padding:12px 16px}}


/* V10.10.24 — Projects readability + visible pipeline scrolling */
.cjv-project-topnav{
  background:#ffffff!important;
}
.cjv-project-topnav button{
  background:#eef2f7!important;
  color:#243244!important;
  border:1px solid #d7dee7!important;
  opacity:1!important;
}
.cjv-project-topnav button:hover{
  background:#e2e8f0!important;
  color:#111827!important;
}
.cjv-project-topnav button.active{
  background:#111827!important;
  color:#ffffff!important;
  border-color:#111827!important;
}
.cjv-priority-card{
  background:#ffffff!important;
  color:#111827!important;
  border:1px solid #dfe5ec!important;
  border-left:5px solid #d4af37!important;
}
.cjv-priority-card *{color:inherit}
.cjv-priority-card .badge.green{background:#dcfce7!important;color:#166534!important}
.cjv-priority-card .badge.yellow{background:#fef3c7!important;color:#92400e!important}
.cjv-priority-card .badge.red{background:#fee2e2!important;color:#991b1b!important}
.cjv-priority-card.problem{border-left-color:#dc2626!important}
.cjv-priority-card.attention{border-left-color:#ca8a04!important}

.cjv-pipeline-scrollbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px;
  padding:8px 10px;
  border:1px solid #dfe5ec;
  border-radius:10px;
  background:#ffffff;
}
.cjv-pipeline-scrollbar .action-row{flex-wrap:nowrap}
.cjv-pipeline-scrollbar button{
  background:#eef2f7!important;
  color:#111827!important;
  border:1px solid #d7dee7!important;
}
.cjv-pipeline-board{
  width:100%!important;
  max-width:100%!important;
  overflow-x:scroll!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
  scrollbar-width:auto!important;
  padding-bottom:18px!important;
  touch-action:pan-x;
}
.cjv-pipeline-board::-webkit-scrollbar{height:14px!important;display:block!important}
.cjv-pipeline-board::-webkit-scrollbar-track{background:#e5e7eb;border-radius:999px}
.cjv-pipeline-board::-webkit-scrollbar-thumb{background:#64748b;border-radius:999px;border:3px solid #e5e7eb}
.cjv-pipeline-board::-webkit-scrollbar-thumb:hover{background:#334155}
.cjv-pipeline-column{flex:0 0 280px!important}
.cjv-pipeline-card{color:#111827!important}
.cjv-pipeline-card strong,.cjv-pipeline-card b{color:#111827}
.cjv-pipeline-head{color:#111827!important}

@media(max-width:700px){
  .cjv-pipeline-scrollbar{align-items:flex-start;flex-direction:column}
  .cjv-pipeline-scrollbar .action-row{width:100%;display:grid;grid-template-columns:1fr 1fr}
  #pipelineJumpActive{grid-column:1 / -1}
}

/* V10.10.25 — Project Operations popup: dedicated internal scroll body */
#projectOpsModal{overflow:hidden!important}
#projectOpsModal .project-ops-modal-panel{
  display:flex!important;
  flex-direction:column!important;
  height:min(860px,calc(100dvh - 32px))!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:hidden!important;
}
#projectOpsModal .cjv-modal-head{
  flex:0 0 auto!important;
  position:relative!important;
  top:auto!important;
}
#projectOpsModal .project-ops-scrollbody{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable!important;
  outline:none;
}
#projectOpsModal .project-ops-scrollbody::-webkit-scrollbar{width:14px!important;display:block!important}
#projectOpsModal .project-ops-scrollbody::-webkit-scrollbar-track{background:#eef2f7}
#projectOpsModal .project-ops-scrollbody::-webkit-scrollbar-thumb{background:#64748b;border:3px solid #eef2f7;border-radius:999px}
#projectOpsModal .project-detail-tabs{position:sticky;top:0;z-index:6;background:#fff}
#projectOpsModal .project-ops-content{min-height:500px;padding-bottom:80px!important}
#projectJobModal .project-job-modal-panel{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
}
@media(max-width:700px){
  #projectOpsModal .project-ops-modal-panel{
    width:100vw!important;max-width:100vw!important;
    height:100dvh!important;max-height:100dvh!important;border-radius:0!important;
  }
}

/* V10.10.26 — Project Operations uses OUTER / SCREEN scrolling */
#projectOpsModal{
  position:fixed!important;
  inset:0!important;
  display:block!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  padding:32px 16px 80px!important;
  scroll-behavior:auto!important;
}
#projectOpsModal.hidden{display:none!important}

#projectOpsModal .cjv-modal-backdrop{
  position:fixed!important;
  inset:0!important;
}

#projectOpsModal .project-ops-modal-panel{
  position:relative!important;
  display:block!important;
  width:min(1000px,calc(100vw - 32px))!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  margin:0 auto!important;
  overflow:visible!important;
  border-radius:16px!important;
}

#projectOpsModal .cjv-modal-head{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
}

#projectOpsModal .project-ops-scrollbody{
  display:block!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  overflow:visible!important;
  touch-action:auto!important;
}

#projectOpsModal .project-detail-tabs{
  position:relative!important;
  top:auto!important;
}

#projectOpsModal .project-ops-content{
  min-height:0!important;
  padding-bottom:40px!important;
}

/* The far-right browser-style scrollbar belongs to the full popup overlay. */
#projectOpsModal::-webkit-scrollbar{
  width:16px!important;
  display:block!important;
}
#projectOpsModal::-webkit-scrollbar-track{
  background:#d6d9df!important;
}
#projectOpsModal::-webkit-scrollbar-thumb{
  background:#596579!important;
  border:4px solid #d6d9df!important;
  border-radius:999px!important;
}
#projectOpsModal{
  scrollbar-width:auto!important;
  scrollbar-color:#596579 #d6d9df!important;
}

/* Keep the page itself stationary while the popup layer scrolls. */
body.modal-open{
  overflow:hidden!important;
}

@media(max-width:700px){
  #projectOpsModal{
    padding:0 0 70px!important;
  }
  #projectOpsModal .project-ops-modal-panel{
    width:100vw!important;
    max-width:100vw!important;
    min-height:100dvh!important;
    border-radius:0!important;
  }
}

/* V10.10.27 — Project Operations uses NORMAL DOCUMENT / BROWSER SCROLL */
#projectOpsModal{
  position:absolute!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:16px 16px 96px!important;
  z-index:10000!important;
  display:block!important;
}
#projectOpsModal.hidden{display:none!important}

#projectOpsModal .cjv-modal-backdrop{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  background:rgba(15,23,42,.58)!important;
  backdrop-filter:blur(2px);
}

#projectOpsModal .project-ops-modal-panel{
  position:relative!important;
  display:block!important;
  width:min(1100px,calc(100vw - 32px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 auto!important;
  overflow:visible!important;
}

#projectOpsModal .cjv-modal-head,
#projectOpsModal .project-ops-scrollbody,
#projectOpsModal .project-detail-tabs,
#projectOpsModal .project-ops-content{
  position:relative!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

/* Browser page scrollbar is intentionally enabled while Project Operations is open */
body.project-ops-document-open{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
html:has(body.project-ops-document-open){
  overflow-y:auto!important;
}

/* Neutralize older modal locks only for Project Operations session */
body.project-ops-document-open.modal-open{
  overflow-y:auto!important;
}

@media(max-width:700px){
  #projectOpsModal{
    padding:0 0 96px!important;
  }
  #projectOpsModal .project-ops-modal-panel{
    width:100vw!important;
    max-width:100vw!important;
    border-radius:0!important;
  }
}

/* V10.10.28 Room Scanner */
.room-scanner-shell{height:calc(100dvh - 150px);min-height:720px;border:1px solid #dfe5ec;border-radius:14px;overflow:hidden;background:#fff}
.room-scanner-shell iframe{width:100%;height:100%;border:0;background:#f4f6f8}
@media(max-width:700px){.room-scanner-shell{height:calc(100dvh - 110px);min-height:600px}}

/* V10.10.29 — All Projects permanent delete action */
.cjv-projects-clean-table button.danger,
.cjv-all-projects-card button.danger{
  background:#b42318!important;
  color:#fff!important;
  border:1px solid #b42318!important;
}
.cjv-projects-clean-table button.danger:hover,
.cjv-all-projects-card button.danger:hover{
  background:#8f1d15!important;
  border-color:#8f1d15!important;
}


/* V10.10.31 — NEW JOB modal: use the modal screen itself as the vertical scroller.
   This is intentionally scoped ONLY to #projectJobModal so existing Project Operations behavior is untouched. */
#projectJobModal{
  position:fixed!important;
  inset:0!important;
  display:block!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding:28px 16px 96px!important;
}
#projectJobModal.hidden{display:none!important}

#projectJobModal .cjv-modal-backdrop{
  position:fixed!important;
  inset:0!important;
}

#projectJobModal .project-job-modal-panel{
  position:relative!important;
  display:block!important;
  width:min(1000px,calc(100vw - 32px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 auto!important;
  overflow:visible!important;
  touch-action:auto!important;
}

#projectJobModal #projectForm{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}

#projectJobModal .cjv-modal-head{
  position:sticky!important;
  top:-28px!important;
  z-index:20!important;
}

#projectJobModal .project-modal-footer{
  position:sticky!important;
  bottom:-96px!important;
  z-index:20!important;
  box-shadow:0 -8px 24px rgba(15,23,42,.08);
}

/* The body may remain locked behind the modal; #projectJobModal owns the scroll. */
body.modal-open #projectJobModal{
  overflow-y:auto!important;
}

@media(max-width:700px){
  #projectJobModal{
    padding:0 0 88px!important;
  }
  #projectJobModal .project-job-modal-panel{
    width:100vw!important;
    max-width:100vw!important;
    height:auto!important;
    max-height:none!important;
    border-radius:0!important;
    margin:0!important;
  }
  #projectJobModal .cjv-modal-head{
    top:0!important;
  }
  #projectJobModal .project-modal-footer{
    bottom:-88px!important;
  }
}


/* V10.10.32 — NEW / EDIT JOB uses NORMAL SAFARI DOCUMENT SCROLL
   Same proven architecture as the working Project Operations popup. */
#projectJobModal{
  position:absolute!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:16px 16px 120px!important;
  z-index:10000!important;
  display:block!important;
}
#projectJobModal.hidden{display:none!important}

#projectJobModal .cjv-modal-backdrop{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
}

#projectJobModal .project-job-modal-panel{
  position:relative!important;
  display:block!important;
  width:min(1000px,calc(100vw - 32px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 auto!important;
  overflow:visible!important;
}

#projectJobModal #projectForm,
#projectJobModal .project-modal-section{
  position:relative!important;
  display:block!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

#projectJobModal .cjv-modal-head{
  position:relative!important;
  top:auto!important;
}

#projectJobModal .project-modal-footer{
  position:relative!important;
  bottom:auto!important;
  padding-bottom:28px!important;
  box-shadow:none!important;
}

/* Browser page scrollbar is intentionally enabled while New/Edit Job is open. */
body.project-job-document-open{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
html:has(body.project-job-document-open){
  overflow-y:auto!important;
}
body.project-job-document-open.modal-open{
  overflow-y:auto!important;
}

@media(max-width:700px){
  #projectJobModal{
    padding:0 0 120px!important;
  }
  #projectJobModal .project-job-modal-panel{
    width:100vw!important;
    max-width:100vw!important;
    height:auto!important;
    max-height:none!important;
    border-radius:0!important;
    margin:0!important;
  }
}


/* V10.10.36 — Customizable CJV main sidebar menu */
#sidebar nav .menu-custom-hidden{display:none!important}
#manageMainMenuBtn{width:100%;margin:6px 0}
.main-menu-manager{position:fixed;inset:0;z-index:120000;display:flex;align-items:center;justify-content:center;padding:20px}
.main-menu-manager.hidden{display:none!important}
.main-menu-manager-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72);backdrop-filter:blur(2px)}
.main-menu-manager-panel{position:relative;width:min(900px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:18px;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.main-menu-manager-head{position:sticky;top:-18px;z-index:4;background:#fff;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 0 12px;border-bottom:1px solid #dfe5ec}
.main-menu-manager-head h2{margin:0 0 4px}.main-menu-manager-head p{margin:0;color:#64748b}
.main-menu-manager-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}
.main-menu-cloud-status{margin-left:auto;color:#64748b;font-size:12px}
.main-menu-cloud-status.ok{color:#166534;font-weight:800}
.main-menu-cloud-status.busy{color:#92400e}
.main-menu-cloud-status.error{color:#b42318}
.main-menu-manager-row{display:grid;grid-template-columns:38px 38px minmax(220px,1fr) 100px 110px;gap:8px;align-items:center;border:1px solid #dfe5ec;border-radius:10px;padding:9px;margin-bottom:8px;background:#f8fafc}
.main-menu-manager-row input[type="text"]{width:100%;padding:9px;border:1px solid #cfd6df;border-radius:8px}
.main-menu-manager-row .main-menu-show{display:flex;align-items:center;gap:6px;white-space:nowrap}
.main-menu-manager-row .main-menu-page-id{font-size:10px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.main-menu-manager-row button{padding:8px 10px}
@media(max-width:700px){
 .main-menu-manager{padding:0}
 .main-menu-manager-panel{width:100vw;max-height:100dvh;height:100dvh;border-radius:0}
 .main-menu-manager-row{grid-template-columns:38px 38px 1fr}
 .main-menu-manager-row .main-menu-show{grid-column:1/3}
 .main-menu-manager-row .main-menu-page-id{grid-column:3}
 .main-menu-cloud-status{width:100%;margin-left:0}
}

/* V10.11.0 Material Pricing Pro */
.material-pricing-pro-shell{height:calc(100dvh - 135px);min-height:760px;padding:0!important;overflow:hidden}
.material-pricing-pro-shell iframe{width:100%;height:100%;border:0;background:#f4f6f8}
@media(max-width:760px){.material-pricing-pro-shell{height:calc(100dvh - 105px);min-height:680px}}

/* V10.11.4 project photo manager */
.project-photo-manager{display:grid;gap:8px;margin-top:8px}.project-photo-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #d7dde5;border-radius:10px}.project-photo-row span{overflow-wrap:anywhere}

/* CJV Estimate Center V10.12.0 */
.estimate-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:10px;margin-bottom:14px}
.estimate-list{display:grid;gap:8px}.estimate-list-row{display:grid;grid-template-columns:minmax(260px,2fr) 110px 130px 140px auto;gap:12px;align-items:center;border:1px solid var(--border,#dfe3e8);border-radius:10px;padding:12px;background:var(--card,#fff)}
.estimate-list-row small{display:block;color:#64748b}.status-pill{display:inline-block;border-radius:999px;padding:5px 9px;background:#e8eef7;font-weight:700;font-size:12px}
.estimate-editor-card{width:min(1240px,96vw);height:min(900px,94vh);display:flex;flex-direction:column}.estimate-editor-scroll{overflow:auto;padding:16px 20px;flex:1}
.estimate-summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.estimate-summary-strip>div{border:1px solid #dfe3e8;border-radius:10px;padding:12px}.estimate-summary-strip span{display:block;font-size:12px;color:#64748b}.estimate-summary-strip b{font-size:20px}
.estimate-line-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px}.estimate-line-head h3{margin:0}.estimate-line-head p{margin:3px 0 0}
.estimate-items-table-wrap{overflow:auto;border:1px solid #dfe3e8;border-radius:10px}.estimate-items-table{width:100%;min-width:1050px;border-collapse:collapse}.estimate-items-table th{background:#111827;color:#fff;padding:9px;text-align:left}.estimate-items-table td{padding:7px;border-bottom:1px solid #e5e7eb}.estimate-items-table input,.estimate-items-table select{width:100%;min-width:72px}
.estimate-footer-fields{margin-top:16px}.span-2{grid-column:span 2}.danger{color:#b91c1c}
@media(max-width:850px){.estimate-list-row{grid-template-columns:1fr 1fr}.estimate-summary-strip{grid-template-columns:1fr 1fr}.estimate-toolbar{grid-template-columns:1fr}.estimate-editor-card{width:98vw;height:96vh}}

.estimate-sync-status{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#eef2f7;color:#334155;font-size:13px;font-weight:700}
.estimate-sync-status.ok{background:#dcfce7;color:#166534}
.estimate-sync-status.warn{background:#fef3c7;color:#92400e}
.estimate-sync-status.error{background:#fee2e2;color:#991b1b}

.estimate-import-status{margin:0 0 9px;padding:9px 11px;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:700}
.estimate-import-status.ok{background:#dcfce7;color:#166534}.estimate-import-status.warn{background:#fef3c7;color:#92400e}.estimate-import-status.error{background:#fee2e2;color:#991b1b}.estimate-import-status.busy{background:#dbeafe;color:#1d4ed8}

.estimate-preview-modal-card{width:min(1050px,96vw);height:min(930px,95vh);display:flex;flex-direction:column}
.estimate-preview-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid #e5e7eb}
.estimate-preview-scroll{overflow:auto;flex:1;background:#f4f6f8;padding:18px}
.cjv-customer-estimate{max-width:860px;margin:auto;background:#fff;border:1px solid #d9e0e8;border-radius:14px;padding:28px}
.customer-preview-brand{display:flex;justify-content:space-between;gap:20px;border-bottom:4px solid #d4af37;padding-bottom:16px;margin-bottom:22px}.customer-preview-brand img{max-width:210px;max-height:95px}.customer-preview-brand>div{text-align:right}.customer-preview-brand h1{font-size:34px;margin:0}
.customer-preview-meta{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:20px 0}.customer-preview-meta small,.customer-preview-meta b,.customer-preview-meta span{display:block}.customer-preview-meta small{font-weight:900;color:#667085;letter-spacing:.06em}
.customer-preview-scope{white-space:pre-wrap;line-height:1.55}
.customer-preview-sow{margin-top:20px}.customer-preview-sow h3{margin:0 0 8px;font-size:16px}.customer-preview-sow-body{white-space:pre-wrap;line-height:1.55}
.customer-preview-section{margin-top:24px}.customer-preview-section h3{margin:0;background:#172235;color:#fff;padding:9px 11px;border-radius:8px 8px 0 0}.customer-preview-item{display:flex;justify-content:space-between;gap:15px;padding:11px;border:1px solid #e5e7eb;border-top:0}.customer-preview-item span{display:block;color:#667085;font-size:12px}.customer-preview-item strong{white-space:nowrap}
.customer-preview-notes{margin-top:20px;padding:12px;background:#f8fafc;border-radius:8px;white-space:pre-wrap}.customer-preview-total{text-align:right;margin-top:28px}.customer-preview-total span{display:block;color:#667085;font-weight:800}.customer-preview-total strong{font-size:30px}
@media(max-width:700px){.estimate-preview-scroll{padding:6px}.cjv-customer-estimate{padding:16px}.customer-preview-brand{flex-direction:column}.customer-preview-brand>div{text-align:left}.customer-preview-meta{grid-template-columns:1fr}.customer-preview-item{flex-direction:column}.customer-preview-total{text-align:left}}

/* V10.14.2 — Estimate Preview layout isolation */
#estimatePreviewModal{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(15,23,42,.72)!important;
  overflow:hidden!important;
}
#estimatePreviewModal.hidden{display:none!important}
#estimatePreviewModal .estimate-preview-modal-card{
  position:relative!important;
  inset:auto!important;
  margin:0!important;
  width:min(1120px,calc(100vw - 36px))!important;
  height:min(940px,calc(100dvh - 36px))!important;
  max-width:none!important;
  max-height:none!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  background:#fff!important;
  border-radius:16px!important;
  box-shadow:0 30px 90px rgba(0,0,0,.36)!important;
}
#estimatePreviewModal .modal-header{
  flex:0 0 auto!important;
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  background:#fff!important;
  border-bottom:1px solid #e5e7eb!important;
  padding:14px 18px!important;
  z-index:3!important;
}
#estimatePreviewModal .estimate-preview-actions{
  flex:0 0 auto!important;
  display:flex!important;
  gap:8px!important;
  justify-content:flex-end!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  padding:10px 18px!important;
  background:#f8fafc!important;
  border-bottom:1px solid #e5e7eb!important;
  z-index:2!important;
}
#estimatePreviewModal .estimate-preview-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  padding:24px!important;
  background:#eef2f6!important;
  -webkit-overflow-scrolling:touch!important;
}
#estimatePreviewModal .cjv-customer-estimate{
  width:min(816px,100%)!important;
  min-height:980px!important;
  margin:0 auto!important;
  padding:42px 46px 50px!important;
  background:#fff!important;
  border:1px solid #d8dee8!important;
  border-radius:8px!important;
  box-shadow:0 8px 28px rgba(15,23,42,.10)!important;
  overflow:visible!important;
}
#estimatePreviewModal .customer-preview-brand{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr) minmax(220px,auto)!important;
  gap:24px!important;
  align-items:start!important;
  width:100%!important;
  border-bottom:4px solid #d4af37!important;
  padding-bottom:18px!important;
  margin-bottom:26px!important;
}
#estimatePreviewModal .customer-preview-brand img{
  display:block!important;
  width:auto!important;
  max-width:230px!important;
  max-height:105px!important;
  object-fit:contain!important;
}
#estimatePreviewModal .customer-preview-brand>div{
  text-align:right!important;
  min-width:0!important;
}
#estimatePreviewModal .customer-preview-brand h1{
  margin:0 0 6px!important;
  font-size:38px!important;
  line-height:1!important;
  color:#111827!important;
}
#estimatePreviewModal .customer-preview-meta{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:30px!important;
  width:100%!important;
  margin:22px 0 30px!important;
}
#estimatePreviewModal .customer-preview-meta>div{min-width:0!important}
#estimatePreviewModal .customer-preview-meta small,
#estimatePreviewModal .customer-preview-meta b,
#estimatePreviewModal .customer-preview-meta span{
  display:block!important;
  overflow-wrap:anywhere!important;
}
#estimatePreviewModal .customer-preview-section{
  width:100%!important;
  margin-top:24px!important;
}
#estimatePreviewModal .customer-preview-section h3{
  width:100%!important;
  margin:0!important;
  padding:10px 12px!important;
  background:#172235!important;
  color:#fff!important;
  border-radius:7px 7px 0 0!important;
}
#estimatePreviewModal .customer-preview-item{
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:16px!important;
  padding:12px!important;
  border:1px solid #e5e7eb!important;
  border-top:0!important;
  background:#fff!important;
}
#estimatePreviewModal .customer-preview-total{
  width:100%!important;
  margin-top:34px!important;
  text-align:right!important;
}
#estimatePreviewModal .customer-preview-total strong{
  font-size:32px!important;
  color:#111827!important;
}
body.cjv-estimate-preview-open{
  overflow:hidden!important;
}
@media(max-width:800px){
  #estimatePreviewModal{padding:8px!important}
  #estimatePreviewModal .estimate-preview-modal-card{
    width:calc(100vw - 16px)!important;
    height:calc(100dvh - 16px)!important;
    border-radius:12px!important;
  }
  #estimatePreviewModal .estimate-preview-scroll{padding:10px!important}
  #estimatePreviewModal .cjv-customer-estimate{
    width:100%!important;
    min-height:0!important;
    padding:22px 18px 32px!important;
  }
  #estimatePreviewModal .customer-preview-brand{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  #estimatePreviewModal .customer-preview-brand>div{text-align:left!important}
  #estimatePreviewModal .customer-preview-meta{grid-template-columns:1fr!important;gap:16px!important}
  #estimatePreviewModal .customer-preview-item{grid-template-columns:1fr!important}
  #estimatePreviewModal .customer-preview-total{text-align:left!important}
}

/* V10.15.1 — Estimate history + customer response notifications */
.estimate-response-notifications{display:grid;gap:8px;margin-bottom:12px}
.estimate-notification-head{display:flex;justify-content:space-between;gap:10px;align-items:center}
.estimate-notification-head span{font-size:12px;color:#64748b}
.estimate-response-card{width:100%;display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;border:1px solid #dbe2ea;border-radius:10px;padding:11px 13px;background:#fff;cursor:pointer}
.estimate-response-card div:first-child{display:grid;gap:2px}.estimate-response-card span{font-size:12px;color:#475569}
.estimate-response-card.accepted{border-left:5px solid #16a34a;background:#f0fdf4}
.estimate-response-card.declined{border-left:5px solid #dc2626;background:#fef2f2}
.estimate-response-time{font-size:12px;color:#64748b;white-space:nowrap}
.estimate-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.estimate-history-card{width:min(760px,94vw);max-height:88vh;display:flex;flex-direction:column}
.estimate-history-scroll{overflow:auto;padding:18px;min-height:0;flex:1}
.estimate-history-timeline{display:grid;gap:0}
.estimate-history-event{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;position:relative;padding-bottom:20px}
.estimate-history-event:after{content:"";position:absolute;left:7px;top:18px;bottom:0;width:2px;background:#e2e8f0}
.estimate-history-event:last-child:after{display:none}
.estimate-history-dot{width:16px;height:16px;border-radius:50%;background:#64748b;z-index:1}
.estimate-history-dot.sent{background:#2563eb}.estimate-history-dot.viewed{background:#7c3aed}.estimate-history-dot.accepted{background:#16a34a}.estimate-history-dot.declined{background:#dc2626}
.estimate-history-title{font-weight:900}.estimate-history-date{font-size:12px;color:#64748b;margin-top:2px}.estimate-history-detail{margin-top:6px;padding:8px 10px;background:#f8fafc;border-radius:7px;color:#334155;white-space:pre-wrap}
@media(max-width:700px){.estimate-response-card{align-items:flex-start;flex-direction:column}.estimate-response-time{white-space:normal}}

/* V10.15.3 — Estimate Center structural overlay fix */
#estimateCenterPage{min-height:0;padding-bottom:96px}
#estimateCenterPage .panel,
#estimateCenterPage #estimateCenterList,
#estimateCenterPage .estimate-list{height:auto;max-height:none;overflow:visible}
#estimateEditorModal{
  position:fixed!important;
  inset:0!important;
  z-index:99990!important;
  width:100vw!important;
  height:100dvh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(15,23,42,.70)!important;
  overflow:hidden!important;
}
#estimateEditorModal.hidden{display:none!important}
#estimateEditorModal .estimate-editor-card{
  position:relative!important;
  inset:auto!important;
  width:min(1240px,calc(100vw - 36px))!important;
  height:min(920px,calc(100dvh - 36px))!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  background:#fff!important;
  border-radius:16px!important;
  box-shadow:0 30px 90px rgba(0,0,0,.35)!important;
}
#estimateEditorModal .modal-header,
#estimateEditorModal .modal-footer{flex:0 0 auto!important;position:relative!important}
#estimateEditorModal .estimate-editor-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
}
body.cjv-estimate-editor-open{overflow:hidden!important}
@media(max-width:800px){
 #estimateEditorModal{padding:8px!important}
 #estimateEditorModal .estimate-editor-card{
   width:calc(100vw - 16px)!important;
   height:calc(100dvh - 16px)!important;
   border-radius:12px!important;
 }
}

/* V10.15.4 — Global page/modal isolation cleanup */
#appShell main.content > section.page.hidden{
  display:none!important;
  visibility:hidden!important;
}
#appShell main.content > section.page:not(.hidden){
  display:block!important;
  visibility:visible!important;
}
#checkPreviewModal,
#checkCalibrationModal,
#estimateEditorModal,
#estimatePreviewModal,
#estimateHistoryModal,
#dashboardCustomizeModal,
#mainMenuManagerModal{
  isolation:isolate;
}
#checkPreviewModal.hidden,
#checkCalibrationModal.hidden,
#estimateEditorModal.hidden,
#estimatePreviewModal.hidden,
#estimateHistoryModal.hidden,
#dashboardCustomizeModal.hidden,
#mainMenuManagerModal.hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#checkPreviewModal:not(.hidden),
#checkCalibrationModal:not(.hidden),
#estimateEditorModal:not(.hidden),
#estimatePreviewModal:not(.hidden),
#estimateHistoryModal:not(.hidden){
  visibility:visible!important;
  pointer-events:auto!important;
}
#estimateCenterPage{
  contain:none!important;
}

/* V10.16.0 */
.sw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sw-grid label{font-weight:800}.sw-grid input,.sw-grid select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #dbe2ea;border-radius:8px}.sw-total{display:flex;justify-content:flex-end;gap:20px;align-items:center;padding:18px 8px}.sw-total strong{font-size:28px}@media(max-width:760px){.sw-grid{grid-template-columns:1fr}}

/* V10.16.3 SimplyWise workflow */
.simplywise-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.simplywise-import-btn{display:inline-flex!important;align-items:center;cursor:pointer;margin:0!important}.simplywise-actions .btn{min-height:42px}

/* V10.16.4 - SimplyWise Import CSV is a real matching action button */
.simplywise-actions .simplywise-import-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:42px !important;
  padding:10px 16px !important;
  margin:0 !important;
  border-radius:10px;
  cursor:pointer;
  white-space:nowrap;
}

/* V10.16.5 SimplyWise Customer -> Project cascade */
.sw-project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:6px}
.sw-project-row select{margin-top:0!important}
.sw-add-project-btn{white-space:nowrap;min-height:42px}
.sw-add-project-modal-card{width:min(620px,94vw);max-height:90vh;display:flex;flex-direction:column}
.sw-add-project-body{padding:18px;display:grid;gap:14px;overflow:auto}
.sw-add-project-body label{font-weight:800;font-size:13px}
.sw-add-project-body input,.sw-add-project-body select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #dbe2ea;border-radius:8px;background:#fff}
@media(max-width:760px){.sw-project-row{grid-template-columns:1fr}.sw-add-project-btn{width:100%}}

/* V10.16.7 SimplyWise estimate delete */
.sw-delete-estimate-btn{background:#8f1d1d!important;color:#fff!important;border:1px solid #741717!important}
.sw-delete-estimate-btn:hover{background:#741717!important}
.sw-delete-estimate-btn:disabled{opacity:.45!important;cursor:not-allowed!important}

/* V10.16.9 Existing imported SimplyWise estimate selector */
.sw-existing-estimate-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:4px 0 16px;padding:12px;background:#f8fafc;border:1px solid #dbe2ea;border-radius:10px}
.sw-existing-estimate-bar label{font-weight:800;font-size:13px}
.sw-existing-estimate-bar select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #cfd7e1;border-radius:8px;background:#fff}
.sw-existing-actions{display:flex;align-items:flex-end}
@media(max-width:760px){.sw-existing-estimate-bar{grid-template-columns:1fr}.sw-existing-actions .btn{width:100%}}

/* CJV HUB V11.0.0 COMMAND CENTER */
#dashboardPage{background:#06111b!important;padding:0!important;max-width:none!important}
.cc-dashboard{min-height:100vh;background:radial-gradient(circle at 70% 0,#0d2230 0,#07131d 38%,#050d14 100%);color:#eef5fb;padding:18px 22px 90px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}
.cc-dashboard *{box-sizing:border-box}.cc-topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.cc-brandline{font-size:18px;font-weight:900}.cc-brandline span{color:#efa51d}.cc-topbar h1{font-size:18px;margin:0}.cc-topbar p{margin:2px 0;color:#9baaba}.cc-top-controls{display:flex;gap:10px}.cc-date-chip,.cc-top-controls select,.cc-top-controls button{background:#0b1721;color:#fff;border:1px solid #21313e;border-radius:8px;padding:10px 13px}
.cc-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:9px}.cc-kpi{position:relative;height:118px;overflow:hidden;background:linear-gradient(145deg,#101e28,#0a161f);border:1px solid #21303b;border-radius:10px;padding:13px;text-align:left;color:#fff;cursor:pointer}.cc-kpi span{display:block;font-size:10px;text-transform:uppercase;color:#d5dde4}.cc-kpi strong{display:block;font-size:23px;margin:7px 0;color:#48c75a}.cc-kpi.danger strong{color:#ff5048}.cc-kpi.blue strong{color:#4d97ff}.cc-kpi.orange strong{color:#f5a623}.cc-kpi.purple strong{color:#9e71ff}.cc-kpi small{color:#8fa0b0;font-size:9px}.cc-kpi canvas{position:absolute!important;left:8px;bottom:3px;width:calc(100% - 16px)!important;height:26px!important}
.cc-layout{display:grid;gap:9px;margin-bottom:9px}.cc-layout.top{grid-template-columns:1.45fr .95fr 1.08fr}.cc-layout.mid{grid-template-columns:1.65fr .75fr}.cc-layout.bottom{grid-template-columns:1.45fr 1fr 1fr}.cc-card{background:linear-gradient(150deg,#0e1d27,#09151e);border:1px solid #20313e;border-radius:10px;overflow:hidden;min-width:0}.cc-card-head{height:42px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b2a35}.cc-card-head b{font-size:11px}.cc-card-head button{background:none;border:0;color:#58aaff;font-size:9px}.cc-muted{font-size:9px;color:#8494a2}
.cc-pipeline{display:grid;grid-template-columns:45% 1fr;gap:15px;padding:14px}.cc-funnel{display:flex;flex-direction:column;align-items:center}.cc-funnel>div{height:31px;margin-top:-1px;display:flex;align-items:center;justify-content:center;clip-path:polygon(8% 0,92% 0,82% 100%,18% 100%)}.cc-funnel .f0{background:#2d6aae}.cc-funnel .f1{background:#4b8b28}.cc-funnel .f2{background:#e69b17}.cc-funnel .f3{background:#eb6a25}.cc-funnel .f4{background:#d52c32}.cc-funnel b{font-size:17px}.cc-pipeline-list{display:grid}.cc-pipeline-list>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #1c2b36;font-size:10px}.cc-card-foot{border-top:1px solid #1c2b36;padding:8px 13px;color:#aebbc6;font-size:9px}.cc-card-foot strong{float:right;color:#53d060;font-size:14px}
.cc-project-overview{display:grid;grid-template-columns:45% 1fr;padding:12px;gap:8px;align-items:center}.cc-donut-wrap{position:relative;height:145px}.cc-donut-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.cc-donut-center strong{font-size:25px}.cc-donut-center span{font-size:10px}.cc-legend{display:grid;gap:14px}.cc-legend>div{display:flex;justify-content:space-between;font-size:10px}.cc-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #1c2b36}.cc-stats>div{text-align:center;padding:7px;border-right:1px solid #1c2b36}.cc-stats span{display:block;font-size:8px;color:#8899a7}.cc-stats strong{font-size:13px}
.cc-alerts{display:grid}.cc-alerts button{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:8px 11px;background:transparent;color:#fff;border:0;border-bottom:1px solid #1b2a35;text-align:left}.cc-alerts button>span{width:21px;height:21px;border-radius:5px;display:flex;align-items:center;justify-content:center;background:#153149}.cc-alerts .danger>span{background:#4a1717;color:#ff5d54}.cc-alerts .warn>span{background:#4b3312;color:#f5aa24}.cc-alerts b{font-size:10px}.cc-alerts small{display:block;font-size:8px;color:#8fa0ad}.cc-alerts em{font-size:8px;color:#81909d;font-style:normal}
.cc-chartbox{height:220px;padding:12px}.cc-schedule{padding:5px 11px}.cc-schedule>div{display:grid;grid-template-columns:52px 8px 1fr;gap:7px;padding:8px 0;border-bottom:1px solid #1c2b36}.cc-schedule i{width:7px;height:7px;border-radius:50%;background:#4d8ede;margin-top:4px}.cc-schedule strong,.cc-schedule b{font-size:9px}.cc-schedule small{display:block;color:#8494a2}
.cc-tablewrap{overflow:auto}.cc-table{width:100%;border-collapse:collapse;font-size:13px}.cc-table th,.cc-table td{padding:9px 8px;border-bottom:1px solid #1b2a35;text-align:left;white-space:nowrap}.cc-table th{font-size:11px}.cc-table td b,.cc-table td small{display:block}.cc-table td small{color:#82929f;font-size:11px}.cc-table .good{color:#55d264}.cc-table .bad{color:#ff5148}
.cc-docs button{width:100%;display:grid;grid-template-columns:22px 1fr auto auto;gap:7px;align-items:center;padding:9px 11px;border:0;border-bottom:1px solid #1b2a35;background:transparent;color:#fff;text-align:left}.cc-docs b{font-size:13px}.cc-docs small{display:block;color:#82929f;font-size:11px}.cc-docs strong{font-size:13px}.cc-docs em{font-size:11px;color:#52ce60;font-style:normal}
.cc-ranking{padding:8px 11px}.cc-ranking>div{display:grid;grid-template-columns:16px 1fr 1fr 42px;gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid #1b2a35;font-size:13px}.cc-ranking b small{display:block;color:#82929f;font-size:11px}.cc-ranking .bar{height:7px;background:#152632;border-radius:5px;overflow:hidden}.cc-ranking .bar i{display:block;height:100%;background:#438932}.cc-ranking strong{color:#55d264}
.cc-quick{padding-bottom:12px}.cc-actions{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;padding:11px}.cc-actions button{min-height:66px;background:#101f2a;border:1px solid #263744;border-radius:7px;color:#fff;font-size:21px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.cc-actions span{font-size:8px}.cc-empty{padding:15px;color:#8495a3;font-size:10px}
@media(max-width:1300px){.cc-kpis{grid-template-columns:repeat(3,1fr)}.cc-layout.top,.cc-layout.bottom{grid-template-columns:1fr 1fr}.cc-layout.top .cc-card:last-child{grid-column:1/-1}.cc-actions{grid-template-columns:repeat(4,1fr)}}@media(max-width:850px){.cc-dashboard{padding:12px}.cc-topbar{flex-direction:column}.cc-kpis,.cc-layout.top,.cc-layout.mid,.cc-layout.bottom{grid-template-columns:1fr}.cc-layout.top .cc-card:last-child{grid-column:auto}.cc-actions{grid-template-columns:repeat(2,1fr)}}
\n/* V11.1 grouped sidebar */\n.cc-nav-group{padding:5px 8px 7px;border-bottom:1px solid #1a2933}.cc-nav-title{padding:7px 7px 4px;font-size:9px;font-weight:900;letter-spacing:.06em;color:#efa51d}.cc-nav-group.blue .cc-nav-title{color:#55a8ff}.cc-nav-group.green .cc-nav-title{color:#59ca63}.cc-nav-group.purple .cc-nav-title,.cc-nav-group.violet .cc-nav-title{color:#b17cff}.cc-nav-group.gray .cc-nav-title{color:#91a2af}.cc-nav-group .nav-btn{display:flex!important;gap:8px!important;align-items:center!important;width:100%!important;margin:1px 0!important;padding:8px 9px!important;min-height:34px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#dce5eb!important;font-size:13px!important;text-align:left!important}.cc-nav-group .nav-btn.hidden{display:none!important}.cc-nav-group.hidden{display:none!important}#sidebar nav .cc-nav-group .nav-btn.hidden,#sidebar .cc-nav-group>.nav-btn.hidden,#sidebar nav>.cc-nav-group>.nav-btn.hidden{display:none!important}
.gantt-wrap{overflow-x:auto;border:1px solid #e2e5ea;border-radius:8px}
.gantt-grid{display:grid;min-width:100%}
.gantt-header{display:flex;position:sticky;top:0;background:#f7f8fa;border-bottom:1px solid #e2e5ea;z-index:1}
.gantt-day{flex:0 0 auto;width:28px;text-align:center;font-size:10px;padding:6px 0;color:#6b7280;border-right:1px solid #edeff2}
.gantt-day.weekend{background:#eef0f3}
.gantt-day.today{background:#fde68a;color:#111;font-weight:700}
.gantt-row{display:flex;position:relative;height:38px;border-bottom:1px solid #edeff2;align-items:center}
.gantt-row-label{position:sticky;left:0;background:#fff;min-width:160px;max-width:160px;padding:0 8px;font-size:12px;font-weight:600;border-right:1px solid #e2e5ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:1}
.gantt-track{position:relative;flex:1;height:100%}
.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:#dc2626;z-index:2}
.gantt-bar{position:absolute;top:8px;height:22px;border-radius:6px;background:#c7d2fe;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.gantt-bar-fill{position:absolute;top:0;left:0;bottom:0;background:#4f46e5;opacity:.85}
.gantt-bar-label{position:absolute;left:6px;top:2px;font-size:11px;color:#1f2340;font-weight:600;white-space:nowrap;z-index:1}
.gantt-bar.done{background:#bbf7d0}.gantt-bar.done .gantt-bar-fill{background:#16a34a}
.gantt-bar.draggable{cursor:grab;user-select:none}
.gantt-bar.draggable:active{cursor:grabbing}
.gantt-handle{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:3}
.gantt-handle-left{left:0}
.gantt-handle-right{right:0}
.gantt-handle:hover{background:rgba(0,0,0,.15)}
.gantt-group-row .gantt-row-label{font-weight:700}
.gantt-group-row .gantt-bar{background:#fde68a}.gantt-group-row .gantt-bar-fill{background:#d97706}
.task-group-header{font-weight:700;padding:10px 4px 4px;border-bottom:2px solid #e2e5ea;margin-top:8px}
.task-date-field{display:flex;flex-direction:column;font-size:10px;color:#6b7280;gap:2px}
.task-date-field input{font-size:12px;padding:3px 4px}
.task-list-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid #edeff2}
.task-list-row input[type="checkbox"]{width:18px;height:18px}
.task-list-row .task-title{flex:1;font-weight:600}
.task-list-row .task-meta{font-size:12px;color:#6b7280}.cc-nav-group .nav-btn:hover{background:#11232f!important}.cc-nav-group .nav-btn.active{background:linear-gradient(90deg,#4a3814,#2c2412)!important;border-left:3px solid #efa51d!important}.nav-ico{width:18px;text-align:center;color:#dbe4ea}\n/* V11.1 Production Center */\n#productionCenterPage{background:#06111b!important;padding:0!important;max-width:none!important}.pc-dashboard{min-height:100vh;background:radial-gradient(circle at 65% 0,#0d2230,#07131d 42%,#050d14);color:#eef5fb;padding:16px 18px 90px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.pc-dashboard *{box-sizing:border-box}.pc-topbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:12px}.pc-titleline{font-size:18px;font-weight:900}.pc-topbar h1{font-size:14px;margin:0}.pc-topbar p{margin:2px 0;color:#899aa8;font-size:10px}.pc-controls{display:flex;gap:8px}.pc-chip,.pc-controls select,.pc-controls button{background:#0a1721;color:#fff;border:1px solid #20313d;border-radius:7px;padding:9px 12px}.pc-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) 1.1fr;gap:8px;margin-bottom:8px}.pc-kpis button{min-height:80px;background:linear-gradient(145deg,#101e28,#0a161f);border:1px solid #21313c;border-radius:9px;color:#fff;text-align:left;padding:12px}.pc-kpis span{display:block;font-size:9px;text-transform:uppercase}.pc-kpis strong{display:block;font-size:24px;color:#55cb60;margin:4px 0}.pc-kpis .warn strong{color:#f5b124}.pc-kpis .danger strong{color:#ff5148}.pc-kpis .orange strong{color:#ff8729}.pc-kpis .blue strong{color:#4d97ff}.pc-kpis small{font-size:8px;color:#8595a3}.pc-kpis .pc-new{background:#1f5fae;text-align:center;font-size:12px;font-weight:800}.pc-main{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:8px;margin-bottom:8px}.pc-side{display:grid;gap:8px}.pc-card{background:linear-gradient(150deg,#0e1d27,#09151e);border:1px solid #20313e;border-radius:9px;overflow:hidden;min-width:0}.pc-tabs{display:flex;border-bottom:1px solid #20313e}.pc-tabs button{background:transparent;border:0;color:#8798a8;padding:10px 16px;font-size:9px}.pc-tabs .active{color:#58aaff;border-bottom:2px solid #58aaff}.pc-card-head{height:40px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b2a35}.pc-card-head b{font-size:10px}.pc-card-head button{background:none;border:0;color:#58aaff;font-size:8px}.pc-card-head input{background:#0b1720;border:1px solid #253744;border-radius:7px;color:#fff;padding:7px 10px;width:210px}.pc-tablewrap{overflow:auto}.pc-table{width:100%;border-collapse:collapse;font-size:8px}.pc-table th,.pc-table td{padding:7px;border-bottom:1px solid #1b2a35;white-space:nowrap;text-align:left}.pc-table th{color:#91a0ad}.pc-table td b,.pc-table td small{display:block}.pc-table td small{color:#7f909e}.pc-status{padding:3px 6px;border-radius:10px;background:#16351d;color:#55d064}.pc-status.amber{background:#4a3616;color:#f6b128}.pc-status.red{background:#4a1717;color:#ff5a50}.pc-progress{display:grid;grid-template-columns:30px 60px;align-items:center;gap:5px}.pc-progress i{height:6px;background:#1d2e39;border-radius:5px;overflow:hidden}.pc-progress em{display:block;height:100%;background:#4caa46}.pc-green{color:#54d264}.pc-red{color:#ff554c}.pc-schedule{padding:5px 10px}.pc-schedule>div{display:grid;grid-template-columns:50px 8px 1fr;gap:7px;padding:8px 0;border-bottom:1px solid #1c2b36}.pc-schedule i{width:7px;height:7px;border-radius:50%;background:#4d8ede;margin-top:4px}.pc-schedule strong,.pc-schedule b{font-size:9px}.pc-schedule small{display:block;color:#8494a2}.pc-donut{height:160px;position:relative;padding:10px}.pc-donut>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.pc-donut strong{font-size:24px}.pc-donut span{font-size:9px}.pc-health-legend{display:grid;grid-template-columns:1fr 1fr;padding:8px 12px;gap:7px}.pc-health-legend>div{display:flex;justify-content:space-between;font-size:8px}.pc-bottom{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.pc-list>div{display:grid;grid-template-columns:24px 1fr auto;gap:7px;padding:8px 10px;border-bottom:1px solid #1b2a35;align-items:center}.pc-list>div>span{width:22px;height:22px;border-radius:50%;background:#173049;display:flex;align-items:center;justify-content:center;font-size:10px}.pc-list b{font-size:8px}.pc-list small{display:block;color:#81919e;font-size:7px}.pc-list strong{font-size:7px;color:#55c95f}.pc-quick{padding-bottom:10px}.pc-actions{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;padding:10px}.pc-actions button{min-height:63px;background:#101f2a;border:1px solid #263744;border-radius:7px;color:#fff;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.pc-actions span{font-size:8px}.pc-empty{padding:14px;color:#8293a1;font-size:9px}@media(max-width:1250px){.pc-kpis{grid-template-columns:repeat(3,1fr)}.pc-main{grid-template-columns:1fr}.pc-bottom{grid-template-columns:1fr 1fr}.pc-actions{grid-template-columns:repeat(4,1fr)}}@media(max-width:760px){.pc-dashboard{padding:10px}.pc-topbar{flex-direction:column}.pc-kpis,.pc-bottom{grid-template-columns:1fr}.pc-actions{grid-template-columns:repeat(2,1fr)}}
/* V11.2 Financial Center */
#financialCenterPage{background:#06111b!important;padding:0!important;max-width:none!important}.fc-dashboard{min-height:100vh;background:radial-gradient(circle at 68% 0,#0d2230,#07131d 40%,#050d14);color:#eef5fb;padding:16px 18px 90px;font-family:Inter,ui-sans-serif,system-ui}.fc-dashboard *{box-sizing:border-box}.fc-topbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.fc-titleline{font-size:18px;font-weight:900}.fc-topbar h1{font-size:15px;margin:0}.fc-topbar p{margin:2px 0;color:#899aa8;font-size:10px}.fc-controls{display:flex;gap:8px}.fc-chip,.fc-controls select,.fc-controls button{background:#0a1721;color:#fff;border:1px solid #20313d;border-radius:7px;padding:9px 12px}.fc-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:8px}.fc-kpis button{position:relative;min-height:100px;overflow:hidden;background:linear-gradient(145deg,#101e28,#0a161f);border:1px solid #21313c;border-radius:9px;color:#fff;text-align:left;padding:12px}.fc-kpis span{display:block;font-size:8px;text-transform:uppercase}.fc-kpis strong{display:block;font-size:22px;color:#54ca60;margin:5px 0}.fc-kpis small{font-size:7px;color:#8595a3}.fc-kpis .purple strong{color:#a47bff}.fc-kpis .red strong{color:#ff554b}.fc-kpis .blue strong{color:#4f99ff}.fc-kpis canvas{position:absolute!important;left:7px;bottom:3px;width:calc(100% - 14px)!important;height:22px!important}.fc-grid{display:grid;gap:8px;margin-bottom:8px}.fc-grid.top{grid-template-columns:1.05fr 1.55fr}.fc-grid.middle{grid-template-columns:1.25fr .75fr .8fr}.fc-grid.bottom{grid-template-columns:repeat(4,1fr)}.fc-card{background:linear-gradient(150deg,#0e1d27,#09151e);border:1px solid #20313e;border-radius:9px;overflow:hidden}.fc-card-head{height:40px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b2a35}.fc-card-head>div{display:flex;gap:6px;align-items:baseline}.fc-card-head b{font-size:10px}.fc-card-head small,.fc-card-head button{font-size:8px;color:#8293a2}.fc-card-head button{background:none;border:0;color:#58aaff}.fc-profit-summary{display:grid;grid-template-columns:145px 1fr 1.2fr;gap:12px;padding:12px;align-items:center}.fc-profit-donut,.fc-expense-donut{height:145px;position:relative}.fc-donut-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.fc-donut-center strong{font-size:21px}.fc-donut-center span{font-size:8px}.fc-legend{display:grid;gap:10px}.fc-legend>div{display:flex;justify-content:space-between;gap:8px;font-size:8px}.fc-margin-chart{height:150px;font-size:8px;color:#8fa0ad}.fc-summary-footer{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #1b2a35}.fc-summary-footer>div{padding:8px;text-align:center;border-right:1px solid #1b2a35}.fc-summary-footer span{display:block;font-size:7px;color:#8595a3}.fc-summary-footer strong{font-size:11px}.fc-summary-footer small{display:block;color:#55cf62;font-size:7px}.fc-table-wrap{overflow:auto}.fc-table{width:100%;border-collapse:collapse;font-size:8px}.fc-table th,.fc-table td{padding:7px;border-bottom:1px solid #1b2a35;text-align:left;white-space:nowrap}.fc-table th{color:#8fa0ad}.fc-table td b,.fc-table td small{display:block}.fc-table td small{color:#7e909e}.fc-status{padding:3px 6px;border-radius:10px;background:#16351d;color:#55d064}.fc-status.bad{background:#4a1717;color:#ff5a50}.fc-green{color:#55d064}.fc-red{color:#ff554c}.fc-chartbox{height:210px;padding:10px}.fc-chartbox.small{height:190px}.fc-invoice-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px}.fc-invoice-metrics>div{background:#101f2a;border:1px solid #22343f;border-radius:7px;padding:8px;text-align:center}.fc-invoice-metrics strong{display:block;font-size:18px}.fc-invoice-metrics span{font-size:7px;color:#8595a3}.fc-list>div{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:7px 10px;border-bottom:1px solid #1b2a35}.fc-list b{font-size:8px}.fc-list small{display:block;color:#7e909e}.fc-list strong,.fc-list span{font-size:7px}.fc-expense-summary{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:12px;align-items:center}.fc-aging{padding:10px}.fc-ap-total{text-align:center;background:#101f2a;border-radius:8px;padding:10px;margin-bottom:8px}.fc-ap-total strong{display:block;font-size:18px}.fc-ap-total span{font-size:8px;color:#8797a4}.fc-aging>div:not(.fc-ap-total){display:grid;grid-template-columns:1fr auto 42px;gap:8px;padding:7px 0;border-bottom:1px solid #1b2a35;font-size:8px}.fc-aging em{font-style:normal;color:#8595a3;text-align:right}.fc-ratios{padding:8px 11px}.fc-ratios>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #1b2a35;font-size:8px}.fc-ratios strong{color:#55ce60}.fc-alerts button{width:100%;display:grid;grid-template-columns:24px 1fr;gap:7px;padding:8px 10px;border:0;border-bottom:1px solid #1b2a35;background:transparent;color:#fff;text-align:left}.fc-alerts button>span{width:21px;height:21px;border-radius:5px;display:flex;align-items:center;justify-content:center;background:#4b3414;color:#f5ad25}.fc-alerts .danger>span{background:#4a1717;color:#ff5b51}.fc-alerts .info>span{background:#173149;color:#5aa8ff}.fc-alerts b{font-size:8px}.fc-alerts small{display:block;color:#81919f;font-size:7px}.fc-quick{padding-bottom:10px}.fc-actions{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;padding:10px}.fc-actions button{min-height:64px;background:#101f2a;border:1px solid #263744;border-radius:7px;color:#fff;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.fc-actions span{font-size:8px}.fc-empty{padding:13px;color:#8293a1;font-size:8px}@media(max-width:1350px){.fc-kpis{grid-template-columns:repeat(4,1fr)}.fc-grid.top{grid-template-columns:1fr}.fc-grid.middle{grid-template-columns:1fr 1fr}.fc-grid.middle .fc-card:first-child{grid-column:1/-1}.fc-grid.bottom{grid-template-columns:1fr 1fr}.fc-actions{grid-template-columns:repeat(4,1fr)}}@media(max-width:760px){.fc-dashboard{padding:10px}.fc-topbar{flex-direction:column}.fc-kpis,.fc-grid.middle,.fc-grid.bottom{grid-template-columns:1fr}.fc-grid.middle .fc-card:first-child{grid-column:auto}.fc-profit-summary,.fc-expense-summary{grid-template-columns:1fr}.fc-summary-footer{grid-template-columns:1fr 1fr}.fc-actions{grid-template-columns:repeat(2,1fr)}}

/* V11.2.1 grouped navigation integrity fix */
#sidebar nav.cc-sidebar-nav,
#sidebar nav{display:block!important}
#sidebar .cc-nav-group{display:block!important;margin:0!important;padding:7px 6px 9px!important;border-bottom:1px solid #1d2b35!important}
#sidebar .cc-nav-title{display:block!important;margin:0 0 4px!important;padding:5px 7px 4px!important;font-size:11px!important;font-weight:900!important;letter-spacing:.07em!important}
#sidebar .cc-nav-group > .nav-btn{display:flex!important;width:100%!important;align-items:center!important;gap:8px!important;margin:2px 0!important;padding:8px 9px!important}
#sidebar .cc-nav-group > .nav-btn .nav-ico{display:inline-flex!important;flex:0 0 20px!important;align-items:center!important;justify-content:center!important}
#sidebar .cc-nav-group > .nav-btn > span:last-child{display:inline!important}
/* Any legacy orphan button should not render at root level in V11. */
#sidebar nav > .nav-btn{display:none!important}
#sidebar nav > .cc-nav-group > .nav-btn{display:flex!important}

/* V11.3.0 destructive action styling */
button.danger,.danger.small,.cjv-delete-btn,
button[class*="danger"]{
  background:#8f1d1d!important;
  border:1px solid #b83a3a!important;
  color:#fff!important;
  font-weight:800!important;
  text-shadow:none!important;
}
button.danger:hover,.danger.small:hover,.cjv-delete-btn:hover,button[class*="danger"]:hover{
  background:#b42323!important;color:#fff!important;
}
button.danger:disabled,.cjv-delete-btn:disabled{background:#583232!important;color:#e9dede!important;opacity:.65}
.project-media-actions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 12px}
.project-media-actions button{min-height:42px}
.project-media-divider{height:1px;background:#d8dee6;margin:16px 0}
.project-media-section .project-photo-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(127,140,155,.25)}
.project-media-section a{color:inherit;text-decoration:underline}

/* V11.3.2 Customer Database controls */
#customerDatabasePage button,
#customerDatabasePage select,
#customerDatabasePage input{pointer-events:auto!important}
#customerDatabasePage button{cursor:pointer!important}
#customerDbAdd,#customerDbRefresh,#customerDbPrint,#customerDbArchivedToggle{
  position:relative!important;
  z-index:3!important;
}

/* V11.3.3 Customer Database direct-interaction hardening */
#customerDatabasePage{position:relative!important;z-index:1!important}
#customerDatabasePage .page-head,
#customerDatabasePage .card,
#customerDatabasePage .customer-db-metrics,
#customerDatabasePage .customer-db-table-card{position:relative!important;z-index:5!important;pointer-events:auto!important}
#customerDatabasePage button,
#customerDatabasePage input,
#customerDatabasePage select,
#customerDatabasePage textarea{position:relative!important;z-index:6!important;pointer-events:auto!important}

/* V11.4.0 destructive action final normalization */
button.delete,button.btn-danger,.cjv-delete-btn,button.danger,button[class*="danger"]{background:#8f1d1d!important;border:1px solid #b83a3a!important;color:#fff!important;font-weight:800!important}button.delete:hover,button.btn-danger:hover,.cjv-delete-btn:hover,button.danger:hover,button[class*="danger"]:hover{background:#b42323!important;color:#fff!important}

/* V11.4.13 Quick To-Do List + Live Project Map */
.todo-row-done{opacity:.55}
.todo-text-done{text-decoration:line-through}
.todo-overdue{color:#991b1b;font-weight:700}
#projectMapCanvas .leaflet-popup-content a{color:#111827;font-weight:700}

/* V11.4.33 Quick Add dropdown was rendering BEHIND the sticky tab bar
   (tab bar z-index 6 sat above the modal header's z-index 2 in the same
   stacking layer), making the menu look empty when opened. Force the
   header and dropdown above every other layer inside the modal. */
#projectOpsModal .cjv-modal-head{z-index:9000!important}
#projectOpsModal .cjv-quickadd{position:relative!important;z-index:9001!important}
#projectOpsModal .cjv-quickadd-menu{z-index:9002!important;opacity:1!important;visibility:visible!important}

/* V11.4.34 Invoice Payment History — view/edit/delete individual payments */
.invoice-payments-list{margin:4px 0 14px}
.invoice-payment-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:9px;margin-bottom:6px;flex-wrap:wrap}
.invoice-payment-row .ipr-main{flex:1;min-width:180px}
.invoice-payment-row .ipr-amt{font-weight:800;color:#0f9d58}
.invoice-payment-row .ipr-meta{display:block;font-size:11px;color:#64748b;margin-top:2px}
.invoice-payment-row .ipr-actions{display:flex;gap:6px}
.invoice-payments-empty{color:#64748b;font-size:13px;padding:6px 2px}

/* V11.4.37 Estimate grouped items with checkboxes */
.estimate-items-table tr.estimate-group-row{background:#f1f5f9}
.estimate-items-table tr.estimate-group-row td{padding-top:10px;padding-bottom:10px}
.estimate-group-label{white-space:nowrap}
.estimate-group-toggle{background:none;border:0;cursor:pointer;font-size:13px;padding:0 4px 0 0;color:#334155}
.estimate-group-total{text-align:right}
.estimate-items-table tr.estimate-item-excluded{opacity:.5}
.estimate-items-table tr.estimate-selected-total-row{background:#111827;color:#fff}
.estimate-items-table tr.estimate-selected-total-row td{padding:10px}
.estimate-items-table tr.estimate-selected-total-row b{color:#fff}


/* V11.4.92 — Customer Portal (owner side) */
.pc-thread{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px;margin-bottom:12px}
.pc-bub{max-width:80%;padding:9px 12px;border-radius:12px;white-space:pre-wrap;word-wrap:break-word;background:#eef1f6}
.pc-bub small{display:block;opacity:.7;font-size:11px;margin-top:3px}
.pc-bub.cust{align-self:flex-start}
.pc-bub.me{align-self:flex-end;background:#172235;color:#fff}
.pc-upd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid #edf0f4}
.pc-share{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #edf0f4;margin:0;font-weight:600;cursor:pointer}
.pc-share input{width:auto;flex:none}
.pc-share img{width:64px;height:48px;object-fit:cover;border-radius:6px;flex:none}
.pc-share span{display:flex;flex-direction:column;min-width:0}
.pc-share small{font-weight:400}

/* V11.4.95 data check */
.pc-dcbox{padding:6px 10px}.pc-dc{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:8px 2px;border-bottom:1px solid #1b2a35}.pc-dc>span{width:21px;height:21px;border-radius:5px;display:flex;align-items:center;justify-content:center;background:#4b3414;color:#f5ad25;font-size:11px;font-weight:900}.pc-dc.danger>span{background:#4a1717;color:#ff5b51}.pc-dc.ok>span{background:#16351d;color:#55d064}.pc-dc b{font-size:10px;color:#eef5fb}.pc-dc small{display:block;color:#81919f;font-size:9px;margin-top:2px;white-space:normal}.fc-table td.fc-empty{white-space:normal}

/* V11.4.99 bank import */
.bi-bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.bi-table td,.bi-table th{vertical-align:top}.bi-table select{max-width:190px}.bi-table small{display:block;color:#6b7686;font-size:11px}.bi-table tr.bi-off{opacity:.5}.bi-table em{color:#b06a00;font-style:normal;font-weight:700}

/* V11.4.104 — roomier status dropdown on Expenses */
.exp-status-select{min-width:130px;width:auto;padding:9px 12px;font-size:14px}

/* V11.4.105 — Monthly Bills */
.bl-msg{min-height:20px;margin:6px 0}.bl-msg.good{color:#16653a;font-weight:700}.bl-msg.bad{color:#b42318;font-weight:700}
.bl-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.bl-chip{padding:7px 12px;font-size:13px;border-radius:999px}
.bl-check{display:flex;align-items:center;gap:8px;align-self:end;padding-bottom:10px}.bl-check input{width:auto}
.bl-table td{vertical-align:middle}.bl-table td small{display:block;color:#6b7686;font-size:12px;margin-top:2px}.bl-table tr.bl-off{opacity:.55}
.bl-actions{white-space:nowrap}.bl-actions button{padding:7px 10px;font-size:13px;margin:2px 3px 2px 0}.bl-del{color:#b42318}
.bl-tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eef1f6;color:#42506b;white-space:nowrap}
.bl-tag.over{background:#fde8e8;color:#b42318}.bl-tag.today{background:#fff3d6;color:#92600a}.bl-tag.soon{background:#fff3d6;color:#92600a}.bl-tag.ok{background:#eef1f6;color:#42506b}.bl-tag.auto{background:#e8f3ec;color:#16653a}
.bl-dash{margin-bottom:14px}.bl-dash-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.bl-dash-head h3{margin:0}
.bl-dash-total{display:flex;align-items:baseline;gap:12px;margin:10px 0 6px;flex-wrap:wrap}.bl-dash-total strong{font-size:26px}.bl-dash-total span{color:#5a6678}.bl-dash-total.bad strong{color:#b42318}
.bl-dash-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px 2px;border-top:1px solid #edf0f4}.bl-dash-row small{display:block;color:#6b7686;font-size:12px}
.bl-clear{margin:10px 0 0;padding:12px 14px;background:#e8f3ec;color:#16653a;border-radius:8px;font-weight:700}
@media(max-width:700px){.bl-actions{white-space:normal}}
.bl-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 14px}
.bl-kpis .kpi{background:#fff;border:1px solid #e3e7ee;border-radius:12px;padding:14px 16px;display:block}
.bl-kpis .kpi span{display:block;font-size:12px;font-weight:700;color:#6b7686;text-transform:uppercase;letter-spacing:.04em}
.bl-kpis .kpi strong{display:block;font-size:24px;margin-top:4px}.bl-kpis .kpi small{display:block;color:#6b7686;margin-top:2px}
.form-grid label.bl-check{display:flex;flex-direction:row;align-items:center;gap:10px;padding:0 0 12px;font-weight:700}
.form-grid label.bl-check input{width:auto;margin:0}
@media(max-width:800px){.bl-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V11.4.107 — Professional estimate line-item table */
.estimate-items-table-wrap{border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.estimate-items-table{table-layout:fixed;min-width:980px;width:100%;border-collapse:separate;border-spacing:0}
.estimate-items-table thead th{background:#0f172a;color:#cbd5e1;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:11px 8px;border:0}
.estimate-items-table thead th.r{text-align:right}
.estimate-items-table thead th:first-child{border-top-left-radius:11px}.estimate-items-table thead th:last-child{border-top-right-radius:11px}
.estimate-items-table td{padding:6px 5px;border-bottom:1px solid #eef2f6;vertical-align:middle}
.estimate-items-table input,.estimate-items-table select{width:100%;min-width:0;height:36px;padding:0 9px;font-size:13.5px;border:1px solid transparent;border-radius:8px;background:#f8fafc;color:#0f172a;font-weight:500;margin:0}
.estimate-items-table input:hover,.estimate-items-table select:hover{border-color:#cbd5e1;background:#fff}
.estimate-items-table input:focus,.estimate-items-table select:focus{outline:0;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.estimate-items-table input.num{text-align:right;-moz-appearance:textfield}
.estimate-items-table input.num::-webkit-outer-spin-button,.estimate-items-table input.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.estimate-items-table input[type=checkbox]{width:16px;height:16px;accent-color:#0f172a;background:none;padding:0}
.estimate-items-table .eg-chk{text-align:center}
.estimate-items-table input.est-sec{color:#64748b;font-size:12.5px}
.estimate-items-table td.est-sell{text-align:right;padding-right:12px;font-variant-numeric:tabular-nums;color:#0f172a;font-weight:700}
.estimate-items-table tr.estimate-group-row{background:#eef2f7}
.estimate-items-table tr.estimate-group-row td{padding:10px 8px;border-top:1px solid #dbe3ec;border-bottom:1px solid #dbe3ec}
.estimate-items-table .eg-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.estimate-items-table .estimate-group-label b{font-size:14.5px;color:#0f172a}
.estimate-items-table .eg-count{margin-left:8px;font-size:11.5px;color:#64748b;background:#fff;border:1px solid #dbe3ec;border-radius:999px;padding:1px 8px;font-weight:600}
.estimate-items-table .estimate-group-toggle{background:none;color:#334155;padding:0 8px 0 0;font-size:12px}
.estimate-items-table label.eg-hide{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;color:#64748b;white-space:nowrap;cursor:pointer}
.estimate-items-table td.estimate-group-total{text-align:right;padding-right:12px;font-size:14px;font-variant-numeric:tabular-nums}
.estimate-items-table tr.estimate-item-row:hover td{background:#fafcff}
.estimate-items-table .est-del{background:none;color:#94a3b8;width:32px;height:32px;padding:0;border-radius:8px;font-size:14px;line-height:1}
.estimate-items-table .est-del:hover{background:#fee2e2;color:#b42318}
.estimate-items-table tr.estimate-selected-total-row td{background:#0f172a;color:#fff;padding:13px 12px;font-size:15px;border:0}
.estimate-items-table tr.estimate-selected-total-row td.est-sell{color:#fff}
.estimate-items-table td.est-empty{padding:28px;text-align:center}
.estimate-items-table button.estimate-group-toggle{background:transparent!important;color:#334155!important;width:22px;height:22px;padding:0;margin-right:6px;border-radius:6px;font-size:12px;line-height:1}
.estimate-items-table button.estimate-group-toggle:hover{background:#dbe3ec!important}
.estimate-items-table button.est-del{background:transparent!important;color:#94a3b8!important;box-shadow:none}
.estimate-items-table button.est-del:hover{background:#fee2e2!important;color:#b42318!important}
.estimate-items-table button.est-del{border:0!important}

/* V11.4.109 — Professional Job Costing report */
.jc-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border-radius:16px;padding:22px 26px;margin-bottom:16px;box-shadow:0 4px 14px rgba(15,23,42,.18)}
.jc-eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d4a94f;font-weight:700}
.jc-title{font-size:26px;font-weight:800;margin-top:4px}
.jc-sub{color:#cbd5e1;font-size:14px;margin-top:4px}
.jc-health{padding:7px 16px;border-radius:999px;font-weight:700;font-size:13px;white-space:nowrap}
.jc-health.good{background:#dcfce7;color:#166534}.jc-health.warn{background:#fef3c7;color:#92400e}.jc-health.bad{background:#fee2e2;color:#991b1b}
.jc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.jc-kpi{margin:0;padding:18px 20px;border-top:3px solid #e2e8f0}
.jc-kpi:nth-child(1){border-top-color:#0f172a}.jc-kpi:nth-child(2){border-top-color:#64748b}.jc-kpi:nth-child(3){border-top-color:#d4a94f}.jc-kpi-profit{border-top-color:#16a34a!important}
.jc-kpi span{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#64748b;font-weight:700}
.jc-kpi strong{display:block;font-size:28px;font-weight:800;margin:6px 0 2px;color:#0f172a;font-variant-numeric:tabular-nums}
.jc-kpi small{color:#64748b;font-size:12.5px}
.jc-kpi strong.jc-neg{color:#b42318}
.jc-grid h2,.jc-page .card h2{font-size:16px;letter-spacing:.01em;margin-bottom:14px}
.jc-bar{margin-bottom:14px}.jc-bar-top{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px;color:#334155}
.jc-bar-top b{color:#0f172a;margin-right:8px;font-variant-numeric:tabular-nums}.jc-bar-top em{font-style:normal;color:#94a3b8;font-size:12px;display:inline-block;min-width:32px;text-align:right}
.jc-track{height:9px;background:#eef2f6;border-radius:99px;overflow:hidden}.jc-fill{height:100%;background:linear-gradient(90deg,#0f172a,#475569);border-radius:99px}
.jc-bar-total{display:flex;justify-content:space-between;border-top:1px solid #e2e8f0;padding-top:12px;margin-top:6px;font-size:14px;color:#334155}.jc-bar-total b{color:#0f172a}
.jc-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eef2f6;font-size:14.5px;color:#475569}
.jc-row b{color:#0f172a;font-variant-numeric:tabular-nums}
.jc-row.jc-total{font-size:16px;border-bottom:0;padding:12px 14px;margin-top:6px;background:#f0fdf4;border-radius:10px;color:#166534}.jc-row.jc-total b{color:#166534}
.jc-row.jc-total+.jc-total{margin-top:6px}
.jc-row.jc-total.jc-neg{background:#fef2f2;color:#991b1b}.jc-row.jc-total.jc-neg b{color:#991b1b}
.jc-page .table-wrap{border:1px solid #e2e8f0;border-radius:12px;overflow:auto}
.jc-page table{border-collapse:separate;border-spacing:0;width:100%}
.jc-page thead th{background:#0f172a;color:#cbd5e1;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:11px 12px;border:0}
.jc-page tbody td{padding:10px 12px;border-bottom:1px solid #eef2f6;font-size:13.5px}
.jc-page tbody tr:nth-child(even) td{background:#fafbfd}.jc-page tbody tr:hover td{background:#f1f5f9}
.jc-page .right{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:900px){.jc-kpis{grid-template-columns:repeat(2,1fr)}.jc-banner{flex-direction:column;align-items:flex-start}}

/* V11.4.110 — Job Costing: cash row, donut, progress, pills */
.jc-banner-r{display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:220px}
.jc-prog{width:100%}.jc-prog-t{display:flex;justify-content:space-between;font-size:12px;color:#cbd5e1;margin-bottom:5px}.jc-prog-t b{color:#fff}
.jc-prog-bar{height:8px;background:rgba(255,255,255,.18);border-radius:99px;overflow:hidden}.jc-prog-bar div{height:100%;background:#4ade80;border-radius:99px}.jc-prog-bar div.warn{background:#fbbf24}.jc-prog-bar div.over{background:#f87171}
.jc-kpis2 .jc-kpi{border-top-color:#e2e8f0!important;background:#fcfcfd}.jc-kpis2 .jc-kpi strong{font-size:22px}
.jc-cat{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center}
.jc-donut{width:190px;height:190px;border-radius:50%;display:grid;place-items:center}
.jc-donut>div{width:122px;height:122px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 1px #eef2f6}
.jc-donut b{font-size:16px;color:#0f172a}.jc-donut span{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.06em}
.jc-bar-top i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}
.jc-pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700}
.jc-pill.ok{background:#dcfce7;color:#166534}.jc-pill.wait{background:#fef3c7;color:#92400e}.jc-pill.no{background:#fee2e2;color:#991b1b}
.jc-page tbody tr.jc-foot td{background:#f1f5f9!important;font-weight:800;color:#0f172a;border-top:2px solid #cbd5e1}
@media(max-width:900px){.jc-cat{grid-template-columns:1fr;justify-items:center}.jc-legend{width:100%}.jc-banner-r{align-items:flex-start;width:100%}}
@media print{.jc-banner{background:#0f172a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.jc-donut,.jc-fill,.jc-pill{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* V11.4.111 — Owner Dashboard refresh: readable type, compact actions, real data */
.cc-dashboard{padding:22px 26px 90px}
.cc-topbar h1{font-size:26px;font-weight:800;letter-spacing:-.01em}.cc-topbar p{font-size:14px}.cc-brandline{font-size:13px;letter-spacing:.14em}
.cc-date-chip{font-size:14px;font-weight:600}
/* quick actions: slim pill row */
.cc-quick{background:none;border:0;margin-bottom:14px;overflow:visible}
.cc-quick .cc-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0}
.cc-quick .cc-actions button{min-height:0;flex-direction:row;gap:8px;padding:9px 16px;border-radius:999px;font-size:15px;background:#0f1f2b;border:1px solid #27394a;transition:.15s}
.cc-quick .cc-actions button:hover{background:#16303f;border-color:#efa51d}
.cc-quick .cc-actions span{font-size:13px;font-weight:600}
/* bills card in dark theme */
.cc-bills.card{background:linear-gradient(150deg,#0e1d27,#09151e);border:1px solid #20313e;color:#eef5fb;border-radius:12px;padding:16px 20px;margin-bottom:14px}
.cc-bills h3{color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.cc-bills .secondary{background:#16303f;color:#8cc4ff;border:1px solid #27394a;font-size:13px}
.cc-bills .bl-dash-total strong{color:#fff}.cc-bills .bl-dash-total span,.cc-bills p,.cc-bills .muted{color:#9baaba}
.cc-bills .bl-dash-row{border-top:1px solid #1b2a35;color:#eef5fb}.cc-bills .bl-dash-row small{color:#8aa0b2}
/* KPIs */
.cc-kpis{gap:12px;margin-bottom:14px}
.cc-kpi{height:auto;min-height:112px;padding:16px 18px;border-radius:12px;border-top:3px solid #48c75a;transition:.15s}
.cc-kpi:hover{transform:translateY(-2px);border-color:#34495a}
.cc-kpi.danger{border-top-color:#ff5048}.cc-kpi.blue{border-top-color:#4d97ff}.cc-kpi.orange{border-top-color:#f5a623}.cc-kpi.purple{border-top-color:#9e71ff}
.cc-kpi span{font-size:12px;letter-spacing:.07em;color:#aebccb;font-weight:700}
.cc-kpi strong{font-size:30px;font-weight:800;margin:8px 0 6px;font-variant-numeric:tabular-nums}
.cc-kpi small{font-size:12.5px;color:#8fa0b0}
.cc-kpi.danger{background:linear-gradient(145deg,#3a1414,#1e0d0f)}
/* cards */
.cc-layout,.cc-layout.mid{gap:12px;margin-bottom:12px}
.cc-card{border-radius:12px}
.cc-card-head{height:50px;padding:12px 18px}.cc-card-head b{font-size:13px;letter-spacing:.09em}.cc-card-head button{font-size:12.5px;font-weight:600}.cc-muted{font-size:12px}
.cc-alerts button{padding:12px 18px;grid-template-columns:32px 1fr auto;gap:12px;transition:.12s}.cc-alerts button:hover{background:#12242f}
.cc-alerts button>span{width:28px;height:28px;font-size:14px;border-radius:8px}.cc-alerts b{font-size:14px}.cc-alerts small{font-size:12px;margin-top:2px}.cc-alerts em{font-size:11px}
.cc-schedule{padding:6px 18px}.cc-schedule>div{grid-template-columns:56px 10px 1fr;padding:11px 0}.cc-schedule strong,.cc-schedule b{font-size:13.5px}.cc-schedule small{font-size:12px}
.cc-pipeline{padding:18px}.cc-pipeline-list>div{font-size:13.5px;padding:2px 0}.cc-funnel>div{height:36px}.cc-card-foot{font-size:12.5px;padding:12px 18px}.cc-card-foot strong{font-size:16px}
.cc-legend>div{font-size:13px}.cc-donut-center strong{font-size:30px}.cc-donut-center span{font-size:12px}.cc-stats span{font-size:11px}.cc-stats strong{font-size:16px}
.cc-cfsum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 18px 0}.cc-cfsum span{display:block;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#8fa0b0}.cc-cfsum b{font-size:19px;color:#4ade80;font-variant-numeric:tabular-nums}
.cc-chartbox{height:230px;padding:8px 14px 14px}
.cc-table th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#8fa0b0}.cc-table td{font-size:13.5px;padding:12px 10px}
.cc-table tbody tr:hover td{background:#10212c}
.cc-docs button{padding:12px 18px;font-size:13.5px}.cc-docs button:hover{background:#12242f}
.cc-ranking{padding:10px 18px}.cc-ranking>div{font-size:13.5px;padding:11px 0}
.cc-empty{font-size:13.5px;padding:20px}
@media(max-width:1300px){.cc-kpi strong{font-size:26px}}
.cc-date-chip{white-space:nowrap}.cc-top-controls{align-items:stretch}

/* V11.4.112 — Owner Dashboard v2: clean light layout */
.dx{max-width:1500px;margin:0 auto;color:#0f172a}
.dx-hero{background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:18px;padding:24px 28px 20px;margin-bottom:16px;color:#fff;box-shadow:0 4px 16px rgba(15,23,42,.18)}
.dx-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.dx-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#d4a94f;font-weight:700}
.dx-hero h1{margin:4px 0 2px;font-size:30px;font-weight:800;letter-spacing:-.01em;color:#fff}
.dx-date{margin:0;color:#cbd5e1;font-size:14px}
.dx-hero-r{display:flex;gap:8px}
.dx-hero-r select,.dx-refresh{height:38px;padding:0 14px;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);font-size:13.5px;font-weight:600;width:auto}
.dx-hero-r select option{color:#111}
.dx-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.dx-actions button{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.16);padding:9px 15px;border-radius:999px;font-size:13px;font-weight:600;transition:.15s}
.dx-actions button:hover{background:#d4a94f;color:#0f172a;border-color:#d4a94f}
.dx-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.dx-kpi{text-align:left;background:#fff;border:1px solid #e2e8f0;border-top:4px solid #0f172a;border-radius:14px;padding:18px 20px;color:#0f172a;box-shadow:0 1px 4px rgba(15,23,42,.05);cursor:pointer;transition:.15s}
.dx-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(15,23,42,.1)}
.dx-kpi.k-green{border-top-color:#16a34a}.dx-kpi.k-blue{border-top-color:#2563eb}.dx-kpi.k-red{border-top-color:#dc2626}.dx-kpi.k-gold{border-top-color:#d4a94f}
.dx-kpi span{display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#64748b;font-weight:700}
.dx-kpi strong{display:block;font-size:32px;font-weight:800;margin:8px 0 4px;font-variant-numeric:tabular-nums}
.dx-kpi.k-green strong{color:#15803d}.dx-kpi.k-blue strong{color:#1d4ed8}.dx-kpi.k-red strong{color:#b91c1c}
.dx-kpi small{font-size:13px;color:#64748b}
.dx-grid{display:grid;gap:16px;margin-bottom:16px}
.dx-g2{grid-template-columns:1.5fr 1fr}.dx-g3{grid-template-columns:1.7fr 1fr}
.dx-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.dx-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.05);overflow:hidden;min-width:0}
.dx-grid .dx-card,.dx-col .dx-card{margin-bottom:0}
.dx>.dx-card{margin-bottom:16px}
.dx-head{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #eef2f6}
.dx-head h2{margin:0;font-size:15px;font-weight:800;color:#0f172a;display:flex;align-items:center;gap:8px}
.dx-head button{background:none;color:#2563eb;padding:4px 0;font-size:13px;font-weight:700}
.dx-badge{background:#0f172a;color:#fff;border-radius:999px;font-size:12px;padding:1px 10px;font-weight:700}
.dx-foot{display:flex;flex-wrap:wrap;gap:6px 22px;padding:13px 20px;background:#f8fafc;border-top:1px solid #eef2f6;font-size:13px;color:#64748b}
.dx-foot b{color:#0f172a;margin-left:4px}
/* scoped overrides for generated markup */
.dx .cc-alerts button{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;width:100%;padding:13px 20px;background:#fff;color:#0f172a;border:0;border-bottom:1px solid #eef2f6;border-radius:0;text-align:left;transition:.12s}
.dx .cc-alerts button:hover{background:#f8fafc}
.dx .cc-alerts button>span{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#e0f2fe;color:#0369a1;font-size:14px;font-weight:800}
.dx .cc-alerts .danger>span{background:#fee2e2;color:#b91c1c}.dx .cc-alerts .warn>span{background:#fef3c7;color:#b45309}
.dx .cc-alerts b{font-size:14.5px;font-weight:700;color:#0f172a}.dx .cc-alerts small{display:block;font-size:12.5px;color:#64748b;margin-top:2px;font-weight:500}
.dx .cc-alerts em{font-size:11px;color:#94a3b8;font-style:normal}
.dx .cc-empty{padding:22px 20px;color:#94a3b8;font-size:14px}
.dx .cc-schedule{padding:6px 20px}
.dx .cc-schedule>div{display:grid;grid-template-columns:54px 10px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid #eef2f6;align-items:start}
.dx .cc-schedule i{width:9px;height:9px;border-radius:50%;background:#2563eb;margin-top:5px}
.dx .cc-schedule strong{font-size:13.5px;color:#475569}.dx .cc-schedule b{font-size:14px;color:#0f172a}.dx .cc-schedule small{display:block;color:#64748b;font-size:12.5px;font-weight:500}
.dx .cc-tablewrap{overflow:auto}
.dx .cc-table{width:100%;border-collapse:collapse}
.dx .cc-table th{padding:11px 16px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#64748b;background:#f8fafc;text-align:left;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.dx .cc-table td{padding:13px 16px;border-bottom:1px solid #eef2f6;font-size:14px;color:#0f172a;white-space:nowrap}
.dx .cc-table th.r,.dx .cc-table td.r{text-align:right;font-variant-numeric:tabular-nums}
.dx .cc-table td b{display:block;font-weight:700}.dx .cc-table td small{display:block;color:#64748b;font-size:12.5px}
.dx .cc-table tbody tr{cursor:pointer}.dx .cc-table tbody tr:hover td{background:#f8fafc}
.dx .cc-table .good{color:#15803d;font-weight:700}.dx .cc-table .bad{color:#b91c1c;font-weight:700}
.dx-pill{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:700}
.dx-pill.ok{background:#dcfce7;color:#166534}.dx-pill.warn{background:#fef3c7;color:#92400e}.dx-pill.bad{background:#fee2e2;color:#991b1b}
.dx-pipe{padding:10px 20px 6px}
.dx-prow{display:grid;grid-template-columns:118px 1fr 28px;gap:12px;align-items:center;padding:9px 0;font-size:13.5px;color:#334155}
.dx-ptrack{height:9px;background:#eef2f6;border-radius:99px;overflow:hidden}.dx-ptrack i{display:block;height:100%;border-radius:99px}
.dx-prow strong{text-align:right;color:#0f172a}
.dx .cc-docs button{width:100%;display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center;padding:12px 20px;border:0;border-bottom:1px solid #eef2f6;background:#fff;color:#0f172a;text-align:left;border-radius:0}
.dx .cc-docs button:hover{background:#f8fafc}
.dx .cc-docs b{font-size:14px}.dx .cc-docs small{display:block;color:#64748b;font-size:12.5px;font-weight:500}.dx .cc-docs strong{font-size:14px}.dx .cc-docs em{font-size:11.5px;font-style:normal;background:#eef2f6;color:#475569;border-radius:99px;padding:2px 10px;font-weight:700}
.dx .cc-cfsum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 20px 0}
.dx .cc-cfsum span{display:block;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:#64748b;font-weight:700}
.dx .cc-cfsum b{font-size:22px;color:#15803d;font-variant-numeric:tabular-nums}.dx .cc-cfsum div:nth-child(2) b{color:#b91c1c}
.dx .cc-chartbox{height:270px;padding:10px 18px 18px}
/* bills card light */
.dx .cc-bills.dx-card{padding:16px 20px;background:#fff;color:#0f172a;border:1px solid #e2e8f0}
.dx .cc-bills h3{color:#0f172a;font-size:15px;letter-spacing:0;text-transform:none;font-weight:800}
.dx .cc-bills .secondary{background:none;color:#2563eb;border:0;padding:0;font-size:13px;font-weight:700}
.dx .cc-bills .bl-dash-total strong{color:#0f172a;font-size:26px}.dx .cc-bills .bl-dash-total span,.dx .cc-bills p,.dx .cc-bills .muted{color:#64748b}
.dx .cc-bills .bl-dash-row{border-top:1px solid #eef2f6;color:#0f172a}.dx .cc-bills .bl-dash-row small{color:#64748b}
@media(max-width:1100px){.dx-kpis{grid-template-columns:repeat(2,1fr)}.dx-g2,.dx-g3{grid-template-columns:1fr}}
@media(max-width:600px){.dx-hero{padding:18px}.dx-hero h1{font-size:24px}.dx-kpi strong{font-size:26px}.dx-kpis{gap:10px}.dx-actions button{flex:1 1 45%}.dx-prow{grid-template-columns:96px 1fr 24px}.dx .cc-cfsum{grid-template-columns:1fr 1fr 1fr}.dx .cc-cfsum b{font-size:16px}}
/* beat global button gradient */
.dx button.dx-kpi{background:#fff!important;color:#0f172a}
.dx .dx-head button{background:none!important;color:#2563eb;padding:4px 0;box-shadow:none}
.dx .cc-alerts button,.dx .cc-docs button{background:#fff!important;color:#0f172a}
.dx .cc-alerts button:hover,.dx .cc-docs button:hover{background:#f8fafc!important}
.dx .dx-actions button{background:rgba(255,255,255,.08)!important}
.dx .dx-actions button:hover{background:#d4a94f!important;color:#0f172a}
.dx .dx-hero-r .dx-refresh{background:rgba(255,255,255,.1)!important}
.dx .dx-hero-r .dx-refresh:hover{background:rgba(255,255,255,.2)!important}
.dx .cc-bills .secondary{background:none!important}
#dashboardPage{background:transparent!important;padding:0!important;max-width:1500px!important}
.dx-grid{align-items:start}

/* V11.4.115 — Concept Renderings */
.rn-grid{display:grid;grid-template-columns:minmax(260px,1fr) 1.4fr;gap:24px}
.rn-drop{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:320px;border:2px dashed #cbd5e1;border-radius:16px;background:#f8fafc;padding:18px;cursor:pointer;text-align:center;transition:.15s;margin:0;font-weight:400}
.rn-drop:hover,.rn-drop.drag{border-color:#d4a94f;background:#fffbeb}
.rn-drop input{display:none}.rn-drop .rn-drop-t b{display:block;font-size:16px;color:#0f172a}.rn-drop .rn-drop-t small{color:#64748b}
.rn-drop.has{border-style:solid;border-color:#e2e8f0;background:#fff}.rn-drop.has .rn-drop-t{display:none}
.rn-preview img{max-width:100%;max-height:300px;border-radius:12px;display:block;margin:0 auto 10px;box-shadow:0 2px 10px rgba(15,23,42,.15)}
.rn-chips{display:flex;flex-wrap:wrap;gap:7px;font-weight:400}
.rn-chip{padding:7px 14px;border-radius:999px;font-size:13px}.rn-chip.on{background:#0f172a!important;color:#fff!important}
.rn-msg{margin:10px 0 0;font-size:14px;color:#475569;min-height:20px}.rn-msg.good{color:#15803d;font-weight:700}.rn-msg.bad{color:#b42318;font-weight:600}
.rn-note{font-size:12.5px;margin-top:6px}
.rn-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.rn-card{margin:0;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.06)}
.rn-img{position:relative;aspect-ratio:3/2;background:#eef2f6;cursor:zoom-in;display:flex;align-items:center;justify-content:center}
.rn-img img{width:100%;height:100%;object-fit:cover;display:block}
.rn-tag{position:absolute;left:10px;bottom:10px;background:rgba(15,23,42,.8);color:#fff;font-size:11px;padding:3px 10px;border-radius:99px;font-weight:600}
.rn-card figcaption{padding:12px 14px}.rn-card figcaption b{display:block;font-size:15px;color:#0f172a}.rn-card figcaption small{display:block;color:#64748b;font-size:12.5px;margin:2px 0 10px}
.rn-btns{display:flex;gap:6px;flex-wrap:wrap}.rn-btns button{padding:6px 12px;font-size:13px}.rn-del{color:#b42318!important}
.rn-spin{width:34px;height:34px;border:4px solid #dbe3ec;border-top-color:#0f172a;border-radius:50%;animation:rnspin 1s linear infinite}@keyframes rnspin{to{transform:rotate(360deg)}}
.rn-empty{grid-column:1/-1;padding:24px 4px}
.rn-lightbox{position:fixed;inset:0;background:rgba(2,6,23,.88);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
.rn-lb-in{max-width:min(1300px,96vw);text-align:center;color:#e2e8f0}.rn-lb-in img{max-width:100%;max-height:80vh;border-radius:10px}.rn-lb-in p{margin:12px 0 2px}.rn-lb-in small{color:#94a3b8}
@media(max-width:900px){.rn-grid{grid-template-columns:1fr}.rn-drop{min-height:200px}}

/* V11.4.118 Credit Accounts */
.cr-accts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.cr-acct{background:#fff;border:1px solid #dfe4ee;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px;color:#14213d}
.cr-acct.cr-off{opacity:.55}
.cr-acct-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cr-acct-h b{font-size:16px;color:#14213d}
.cr-owed{font-size:26px;font-weight:800;color:#14213d}
.cr-owed small{font-size:12px;font-weight:600;color:#6b7690}
.cr-owed.bad{color:#b42318}
.cr-meta{font-size:12.5px;color:#6b7690}
.cr-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.cr-btns button{padding:7px 12px;font-size:13px}
#creditPage button.secondary{background:#fff!important;color:#14213d!important;border:1px solid #cfd6e4!important}
#creditPage .bl-del{color:#b42318!important}

/* V11.4.120 Job Flow on dashboard */
.dx-flowcard .dx-sub{font-size:12.5px;color:#6b7690}
.dx-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.dx-fstep{position:relative;background:#f7f9fc;border:1px solid #dfe4ee;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0;color:#14213d}
.dx-fstep:not(:last-child)::after{content:"›";position:absolute;right:-11px;top:14px;width:16px;text-align:center;font-size:20px;line-height:1;color:#b9a25a;font-weight:800;z-index:2}
.dx-fhead{display:flex;align-items:center;gap:8px;font-size:13px}
.dx-fhead b{color:#14213d}
.dx-fnum{flex:none;width:22px;height:22px;border-radius:50%;background:#14213d;color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.dx-fcount{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.dx-fcount strong{font-size:28px;font-weight:800;color:#14213d}
.dx-fcount span{font-size:11.5px;color:#6b7690}
.dx-fmoney{font-size:13px;font-weight:700;color:#16653a;min-height:18px}
.dx-flist{display:flex;flex-direction:column;gap:6px;flex:1}
.dx-flow button.dx-fi{background:#fff!important;color:#14213d!important;border:1px solid #e1e6f0!important;border-radius:8px;padding:7px 9px;text-align:left;display:flex;flex-direction:column;gap:1px;box-shadow:none;font-weight:600;font-size:13px;position:relative}
.dx-flow button.dx-fi small{font-size:11px;color:#6b7690;font-weight:500}
.dx-flow button.dx-fi em{font-style:normal;font-size:12px;font-weight:700;color:#14213d}
.dx-flow button.dx-fi.warn{border-color:#f0b4ae!important}
.dx-flow button.dx-fi.warn small{color:#b42318}
.dx-flow button.dx-fi:hover{border-color:#b9a25a!important}
.dx-fempty{font-size:12px;color:#8892a8;padding:6px 2px}
.dx-fmore{font-size:12px;color:#6b7690;padding:0 2px}
.dx-flow button.dx-fcta{background:#14213d!important;color:#fff!important;border-radius:8px;padding:8px 10px;font-size:12.5px;font-weight:700;margin-top:4px}
@media(max-width:1250px){.dx-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.dx-fstep:nth-child(3n)::after{display:none}}
@media(max-width:700px){.dx-flow{grid-template-columns:1fr}.dx-fstep::after{display:none}}
.dx-flow{padding:4px 16px 18px}

/* V11.4.121 Materials Price List */
.ml-drop{border:2px dashed #cfd6e4;border-radius:12px;padding:22px 16px;text-align:center;background:#f7f9fc;color:#14213d}
.ml-drop.on{border-color:#b9a25a;background:#fbf6e6}
.ml-btn{display:inline-block;background:#14213d;color:#fff;font-weight:700;padding:12px 20px;border-radius:10px;cursor:pointer;font-size:15px}
.ml-btn.alt{background:#fff;color:#14213d;border:1px solid #cfd6e4}
.ml-prev{max-width:100%;max-height:340px;border-radius:10px;border:1px solid #dfe4ee}
#materialsListPage .ml-price{width:110px;text-align:right}
#materialsListPage .ml-price.ml-none{border-color:#e0b25a;background:#fffaf0}
#materialsListPage input.ml-sm{width:90px}
#materialsListPage button.secondary{background:#fff!important;color:#14213d!important;border:1px solid #cfd6e4!important}
#materialsListPage .bl-del{color:#b42318!important}

/* V11.4.122 Receipt scan */
.rs-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#f7f9fc;border:1px solid #dfe4ee;border-radius:12px;padding:12px 14px;margin:6px 0 10px;color:#14213d}
.rs-bar b{display:block;font-size:15px}.rs-bar span{font-size:12.5px;color:#6b7690}
.rs-btn{display:inline-block;background:#14213d;color:#fff;font-weight:700;padding:10px 16px;border-radius:10px;cursor:pointer;font-size:14px}
.rs-btn.alt{background:#fff;color:#14213d;border:1px solid #cfd6e4}
.rs-bar.hidden{display:none!important}

/* V11.4.123 Next-step bar in project modal */
.ns-wrap{margin-top:12px;background:#f7f9fc;border:1px solid #dfe4ee;border-radius:12px;padding:12px 14px;color:#14213d}
.ns-dots{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}
.ns-dot{flex:1;min-width:64px;font-size:11px;font-weight:600;color:#8892a8;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}
.ns-dot i{display:block;width:100%;height:6px;border-radius:3px;background:#dfe4ee}
.ns-dot.done{color:#16653a}.ns-dot.done i{background:#22a559}
.ns-dot.cur{color:#14213d;font-weight:800}.ns-dot.cur i{background:#d4a94f}
.ns-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ns-hint{font-size:13.5px;color:#42506b}
.ns-btns{display:flex;gap:8px;flex-wrap:wrap}
.ns-wrap button{padding:9px 14px;font-size:13.5px;font-weight:700;border-radius:9px}
.ns-wrap button.secondary{background:#fff!important;color:#14213d!important;border:1px solid #cfd6e4!important}
.ns-wrap button.ns-go{background:#14213d!important;color:#fff!important}

/* V11.4.124 System Health */
.hl-banner{border-radius:12px;padding:14px 16px;margin-bottom:14px;border:1px solid;font-size:14.5px}
.hl-banner.ok{background:#e8f3ec;border-color:#bfe0cb;color:#16653a}
.hl-banner.warn{background:#fff6df;border-color:#f0d58c;color:#7a5200}
.hl-banner.bad{background:#fde8e8;border-color:#f2b8b2;color:#b42318}
.hl-banner ul{margin:6px 0 0 18px;padding:0}
.hl-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #e9ecf2;color:#14213d}
.hl-row small{display:block;font-size:12px;color:#6b7690}
.hl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.hl-stats div{background:#f7f9fc;border:1px solid #dfe4ee;border-radius:10px;padding:10px 12px;color:#14213d}
.hl-stats span{display:block;font-size:11.5px;color:#6b7690;text-transform:uppercase;letter-spacing:.04em}
.hl-stats b{font-size:24px}.hl-stats .bad{border-color:#f2b8b2;background:#fff5f4}.hl-stats .bad b{color:#b42318}
.hl-fail{background:#fff5f4;border:1px solid #f2b8b2;border-radius:10px;padding:10px 12px;margin-bottom:8px;color:#14213d;font-size:13.5px}
.hl-fail small{display:block;color:#8a3a33;margin-top:3px;word-break:break-word}
.hl-hint{margin-top:6px;font-weight:600;color:#14213d}
#healthPage button.secondary{background:#fff!important;color:#14213d!important;border:1px solid #cfd6e4!important}
@media(max-width:700px){.hl-stats{grid-template-columns:repeat(2,1fr)}}

/* V11.4.125 collapsible menu groups */
#sidebar .cc-nav-group[data-fold] > .cc-nav-title{cursor:pointer;display:flex!important;justify-content:space-between;align-items:center;user-select:none;border-radius:8px}
#sidebar .cc-nav-group[data-fold] > .cc-nav-title::after{content:"▾";font-size:12px;opacity:.7;margin-left:8px}
#sidebar .cc-nav-group[data-fold].folded > .cc-nav-title::after{content:"▸"}
#sidebar .cc-nav-group[data-fold] > .cc-nav-title:hover{background:#11232f}
#sidebar .cc-nav-group[data-fold].folded > .nav-btn:not(.active){display:none!important}
#sidebar .cc-nav-group[data-fold].folded{padding-bottom:5px!important}
#sidebar .cc-nav-group[data-fold].folded > .cc-nav-title{margin-bottom:0!important}

/* V11.4.127 Bill a Job + payment reminders */
.bc-card{margin-bottom:14px}
.bc-sum{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}
.bc-sum>div{background:#f7f9fc;border:1px solid #dfe4ee;border-radius:10px;padding:9px 12px;color:#14213d}
.bc-sum span{display:block;font-size:11px;color:#6b7690;text-transform:uppercase;letter-spacing:.04em}
.bc-sum b{font-size:17px}.bc-sum .hi{background:#fbf6e6;border-color:#e6d79a}.bc-sum .bad{background:#fff5f4;border-color:#f2b8b2}.bc-sum .bad b{color:#b42318}
#bcRoot button.secondary{background:#fff!important;color:#14213d!important;border:1px solid #cfd6e4!important}
@media(max-width:800px){.bc-sum{grid-template-columns:repeat(2,1fr)}}

/* V11.4.128 app-style polish for phones / home-screen mode */
body{padding-bottom:env(safe-area-inset-bottom)}
.pwa-hint{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:9999;background:#14213d;color:#fff;border-radius:14px;padding:12px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 8px 28px rgba(0,0,0,.35);max-width:520px;margin:0 auto}
.pwa-hint div{flex:1;font-size:13.5px;line-height:1.4}.pwa-hint b{display:block;font-size:14.5px;margin-bottom:2px}
.pwa-hint span{color:#c9d2e6}.pwa-hint .pwa-share{color:#d6ad29;font-weight:800}
.pwa-hint button{background:#d6ad29!important;color:#14213d!important;border:0;border-radius:10px;padding:9px 14px;font-weight:800;font-size:13.5px}
.pwa-hint button.alt{background:transparent!important;color:#c9d2e6!important}
@media (display-mode: standalone){html{-webkit-tap-highlight-color:transparent}body{overscroll-behavior-y:none}}
@media (pointer:coarse){input,select,textarea{font-size:max(16px,1em)}}

/* V11.4.129 — estimate follow-ups */
.ef-card{margin-bottom:14px}
.ef-card button[disabled]{opacity:.45;cursor:not-allowed}

/* V11.4.130 — budget watch */
.ba-card{margin-bottom:14px}
.ba-row{margin:12px 0}.ba-top{display:flex;justify-content:space-between;margin-bottom:4px}
.ba-bar{height:8px;background:#e5e9f2;border-radius:6px;overflow:hidden;margin-bottom:4px}.ba-bar i{display:block;height:100%}

/* V11.4.131 — accountant reports */
.ac-card{margin-bottom:14px}
.ac-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.ac-kpi{background:#f6f8fc;border-radius:10px;padding:12px 14px}
.ac-kpi span{display:block;font-size:12px;color:#6b7690;text-transform:uppercase;letter-spacing:.05em}
.ac-kpi b{font-size:21px}.ac-kpi b.bad{color:#b42318}.ac-kpi b.good{color:#16653a}

/* V11.4.132 — quick add material */
.pm-add{display:grid;grid-template-columns:2fr 1fr 1.2fr 1fr 1fr auto;gap:8px;margin:0 0 6px}
.pm-add input,.pm-add select{min-width:0}
@media(max-width:700px){.pm-add{grid-template-columns:1fr 1fr}.pm-add #pmItem,.pm-add button{grid-column:1/-1}}

/* V11.4.133 — review requests */
.rv-card{margin:0 0 14px}.rv-card summary{cursor:pointer;padding:2px 0}

/* V11.4.134 — online payments */
.op-state{margin:8px 0}.op-ok{color:#16653a;font-weight:600;margin:2px 0}.op-bad{color:#b42318;font-weight:600;margin:2px 0}
.op-steps{margin:10px 0 6px 18px;line-height:1.6;text-align:left}

/* V11.4.137 — online payments label fix */
#opCard label{display:flex!important;align-items:center;justify-content:flex-start!important;gap:8px;text-align:left!important}
#opCard label input[type=checkbox]{width:auto;flex:0 0 auto;margin:0}

/* V11.4.140 punch list */
.pl-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pl-group{border:1px solid var(--line,#ddd6c8);border-radius:14px;margin:12px 0;overflow:hidden;background:#fff}
.pl-ghead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:#f8f5ee;border-bottom:1px solid var(--line,#ddd6c8)}
.pl-gsub{font-size:12px;margin-top:2px}
.pl-send{display:flex;gap:6px;flex-wrap:wrap}
.pl-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid #eee8da;flex-wrap:wrap}
.pl-item:first-of-type{border-top:0}
.pl-main{flex:1;min-width:220px}
.pl-loc{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#9a7b25}
.pl-desc{font-weight:700;margin:3px 0}
.pl-meta{font-size:12px;color:#667085}
.pl-badge{display:inline-block;font-size:11px;font-weight:800;border-radius:99px;padding:2px 8px}
.pl-badge.open{background:#fdf1d6;color:#8a6a10}.pl-badge.done{background:#e3f4ea;color:#1f8a4c}.pl-badge.ver{background:#e4e9f2;color:#0f1b2d}
.pl-photos{display:flex;gap:8px;margin-top:8px}
.pl-photos img{width:70px;height:70px;object-fit:cover;border-radius:8px;border:1px solid #ddd6c8}
.pl-photos small{display:block;font-size:10px;text-align:center;color:#667085}
.pl-acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pl-assign{max-width:150px;font-size:12px;padding:6px}
.pl-form label{display:block;font-size:12px;font-weight:700;margin:8px 0 4px}
.pl-form textarea,.pl-form input,.pl-form select{width:100%}
.pl-row{display:grid;grid-template-columns:1fr 1fr 150px;gap:10px}
.pl-formacts{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
@media(max-width:700px){.pl-row{grid-template-columns:1fr}}

/* V11.4.154 job packets */
.pk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pk-top .muted{max-width:520px;font-size:13px}
.pk-card{border:1px solid var(--line,#ddd6c8);border-radius:14px;padding:14px;margin:12px 0;background:#fff}
.pk-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pk-st{font-size:12px;margin-top:3px}.pk-st.ok{color:#1f8a4c;font-weight:700}.pk-st.warn{color:#9a6a00;font-weight:700}.pk-st.wait{color:#667085}.pk-st.none{color:#9aa1ad}
.pk-meta{font-size:12px;color:#667085}
.pk-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.pk-link{display:inline-block;text-decoration:none;padding:6px 12px;border-radius:8px;font-size:12px}
.pk-form label{display:block;font-size:12px;font-weight:700;margin:10px 0 4px}
.pk-form textarea,.pk-form input:not([type=checkbox]),.pk-form select{width:100%}
.pk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pk-row:first-of-type{grid-template-columns:1fr 1fr}
.pk-files{display:flex;flex-direction:column;gap:6px}.pk-check{display:flex!important;gap:8px;align-items:center;font-weight:500!important}
.pk-photos{display:flex;flex-wrap:wrap;gap:8px}.pk-ph{position:relative;width:78px;height:78px;border:2px solid #ddd6c8;border-radius:10px;overflow:hidden;cursor:pointer;margin:0!important}
.pk-ph img{width:100%;height:100%;object-fit:cover}.pk-ph input{position:absolute;top:4px;left:4px;width:18px;height:18px}
.pk-formacts{display:flex;gap:8px;align-items:center;margin-top:14px;flex-wrap:wrap}
@media(max-width:700px){.pk-row,.pk-row:first-of-type{grid-template-columns:1fr}}
.pk-check{justify-content:flex-start;text-align:left}
.pk-check input,.pk-ph input{width:18px!important;height:18px;flex:none;margin:0}
.pk-ph input{position:absolute}

/* V11.4.154 cover-style estimate preview: let the cover run edge to edge */
#estimatePreviewModal .cjv-customer-estimate{padding:0!important;overflow:hidden}

.task-list-row{flex-wrap:wrap}
.task-scope-box textarea{width:100%;box-sizing:border-box}
