

:root {
  --black:#1e1e1e; --charcoal:#2c2c2c; --orange:#f5a623; --orange-dark:#d98600;
  --cream:#f7f0e6; --yellow:#fff2bf; --gray:#e7e7e7; --mid:#b7b7b7;
  --white:#fff; --green:#d9ead3; --red:#f4cccc;
}
*{box-sizing:border-box}
body.ctpro-page{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--cream);color:var(--black)}
button,input,select,textarea{font:inherit}
.topbar{position:sticky;top:0;z-index:20;background:var(--black);color:#fff;border-bottom:4px solid var(--orange);display:flex;justify-content:space-between;align-items:center;padding:14px 20px}
.brand{font-size:24px;font-weight:900;letter-spacing:2px}.subtitle{font-size:12px;opacity:.85}
.top-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid #888;border-radius:8px;background:#fff;padding:10px 14px;cursor:pointer;font-weight:700}
.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--orange);border-color:var(--orange-dark);color:var(--black)}.btn.large{font-size:18px;padding:16px 24px}
main{max-width:1450px;margin:0 auto;padding:22px 18px 90px}
.view{display:none}.view.active{display:block}
.hero{background:linear-gradient(135deg,var(--black),var(--charcoal));color:#fff;border:4px solid var(--orange);border-radius:16px;padding:34px;text-align:center}.hero h1{font-size:48px;margin:0}.hero p{font-size:18px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.card{background:#fff;border:1px solid #d7d7d7;border-radius:14px;padding:18px;box-shadow:0 3px 10px rgba(0,0,0,.06)}.kpi-label{font-size:13px;color:#666}.kpi-value{font-size:30px;font-weight:900;margin-top:6px}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick{background:var(--charcoal);color:#fff;border:2px solid var(--orange);border-radius:10px;padding:20px;font-weight:800;cursor:pointer}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.page-head h1{margin:0}.page-head p{margin:4px 0 0;color:#666}
.status-pill{background:var(--charcoal);color:#fff;padding:10px;border-radius:10px}.status-pill select{margin-left:8px}
.form-grid{display:grid;gap:12px}.form-grid.four{grid-template-columns:repeat(4,1fr)}.form-grid.two{grid-template-columns:1fr 1fr}
label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#444}input,select,textarea{width:100%;padding:10px;border:1px solid #aaa;border-radius:8px;background:var(--yellow)}textarea{resize:vertical}
.check-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.check-item{display:flex;flex-direction:row;align-items:center;gap:8px;background:#fafafa;border:1px solid #ddd;padding:9px;border-radius:8px}.check-item input{width:auto}
.section-head{display:flex;justify-content:space-between;align-items:center}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th{background:var(--charcoal);color:#fff;text-align:left;padding:10px;border:1px solid #111}td{padding:7px;border-bottom:1px solid #ddd;vertical-align:middle}td input,td select{min-width:90px;padding:8px;background:#fff}.money{text-align:right;font-variant-numeric:tabular-nums}.icon-btn{background:none;border:0;color:#a00;font-size:18px;cursor:pointer}
.totals-card{align-self:start}.totals-row{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #ddd}.totals-row.total{font-size:20px;background:var(--orange);font-weight:900}.totals-row.margin{background:var(--green);font-weight:800}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;background:var(--black);border-top:3px solid var(--orange);display:flex;justify-content:center;gap:4px;padding:8px;z-index:30}.bottom-nav button{background:transparent;color:#fff;border:0;padding:10px 18px;font-weight:700;cursor:pointer}
dialog{border:0;border-radius:14px;padding:22px;max-width:700px;width:calc(100% - 24px)}dialog::backdrop{background:rgba(0,0,0,.55)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.proposal-paper{background:#fff;max-width:900px;margin:0 auto;padding:40px;box-shadow:0 4px 18px rgba(0,0,0,.12)}.proposal-brand{display:flex;justify-content:space-between;border-bottom:4px solid var(--orange);padding-bottom:18px}.proposal-brand h1{margin:0;font-size:34px}.proposal-meta{text-align:right}.proposal-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:22px 0}.proposal-grid p{margin:7px 0}.proposal-box{white-space:pre-wrap;border:1px solid #aaa;min-height:110px;padding:14px;margin-bottom:22px}.investment{display:flex;justify-content:space-between;background:var(--black);color:#fff;border-left:12px solid var(--orange);padding:18px;font-size:22px;font-weight:900}.acceptance{margin-top:30px}.sig-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:25px;margin-top:40px}.sig-grid div{border-top:1px solid #333;padding-top:7px}
.dashboard-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.dashboard-card-head h2{margin:0}.dashboard-hint{margin:8px 0 12px}.btn.compact{padding:7px 10px;font-size:14px}.recent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #ddd}.recent-main{display:grid;grid-template-columns:1.1fr 1fr .75fr;gap:10px;align-items:center;width:100%;padding:9px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer;color:inherit}.recent-main:hover{background:#fff6d8}.recent-main span:last-child{text-align:right;font-weight:700}.recent-actions{display:flex;gap:6px}.muted{color:#777}
@media (max-width:900px){.kpis{grid-template-columns:1fr 1fr}.grid.two,.proposal-grid{grid-template-columns:1fr}.form-grid.four{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start}.top-actions{justify-content:flex-end}}
@media (max-width:600px){main{padding:12px 10px 86px}.topbar{position:static;display:block}.top-actions{margin-top:12px;justify-content:flex-start}.kpis{grid-template-columns:1fr 1fr}.form-grid.four,.form-grid.two{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.bottom-nav{overflow:auto;justify-content:flex-start}.bottom-nav button{padding:9px 12px}.proposal-paper{padding:20px}.proposal-brand{display:block}.proposal-meta{text-align:left;margin-top:12px}.hero h1{font-size:38px}}
@media print{body.ctpro-page{background:#fff}.no-print,.topbar,.bottom-nav{display:none!important}main{padding:0}.view{display:none!important}#view-proposal{display:block!important}.proposal-paper{box-shadow:none;max-width:none;padding:0}}


.ctpro-wrap{--black:#1e1e1e;--charcoal:#2c2c2c;--orange:#f5a623;--orange-dark:#d98600;--cream:#f7f0e6;--yellow:#fff2bf;--gray:#e7e7e7;--mid:#b7b7b7;--white:#fff;--green:#d9ead3;--red:#f4cccc;background:var(--cream);color:var(--black);min-height:100vh;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.ctpro-wrap .brand-wrap{display:flex;align-items:center;gap:14px}.ctpro-wrap .brand-logo{height:54px;width:auto}.ctpro-wrap .proposal-logo{max-width:390px;width:55%;height:auto}.ctpro-login{max-width:430px;margin:80px auto;padding:30px;border:1px solid #ddd;border-radius:12px;background:#fff}.ctpro-login input{width:100%}.ctpro-login .button{background:#f5a623;border:0;padding:10px 18px;font-weight:700}
.ctpro-wrap a.btn{text-decoration:none;color:#1e1e1e;display:inline-flex;align-items:center}.ctpro-wrap #ctproLoading{max-width:500px;margin:60px auto;text-align:center}.ctpro-wrap .view.active{display:block}.ctpro-wrap .view{display:none}
@media print{.ctpro-wrap .proposal-logo{width:330px}}


/* CTPro 0.1.2 desktop/full-width layout fixes */
body.ctpro-app-page{
  overflow-x:hidden;
  background:var(--cream,#f7f0e6);
}
body.ctpro-app-page .wp-site-blocks,
body.ctpro-app-page main.wp-block-group,
body.ctpro-app-page .wp-block-post-content,
body.ctpro-app-page .entry-content,
body.ctpro-app-page .site-main{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
body.ctpro-app-page .wp-block-post-title,
body.ctpro-app-page .entry-title{
  display:none !important;
}
body.ctpro-app-page footer.wp-block-template-part{
  display:none !important;
}
.ctpro-wrap{
  width:100vw !important;
  max-width:none !important;
  position:relative;
  left:auto !important;
  right:auto !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
}
.ctpro-wrap > main{
  width:min(100%, 1500px) !important;
  max-width:1500px !important;
  margin:0 auto !important;
  padding:24px 28px 100px !important;
}
.ctpro-wrap .topbar{
  width:100%;
  padding:14px max(24px, calc((100vw - 1500px)/2 + 28px));
}
.ctpro-wrap .hero{
  min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.ctpro-wrap .grid.two{
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
}
.ctpro-wrap .kpis{
  grid-template-columns:repeat(4,minmax(180px,1fr));
}
.ctpro-wrap .bottom-nav{
  padding-left:max(18px, calc((100vw - 1500px)/2 + 18px));
  padding-right:max(18px, calc((100vw - 1500px)/2 + 18px));
}
@media (max-width:1100px){
  .ctpro-wrap > main{padding:20px 18px 96px !important}
  .ctpro-wrap .grid.two{grid-template-columns:1fr}
  .ctpro-wrap .form-grid.four{grid-template-columns:repeat(2,1fr)}
  .ctpro-wrap .check-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:700px){
  .ctpro-wrap > main{padding:12px 10px 86px !important}
  .ctpro-wrap .topbar{position:static;display:block;padding:12px}
  .ctpro-wrap .top-actions{margin-top:12px;justify-content:flex-start}
  .ctpro-wrap .kpis{grid-template-columns:repeat(2,1fr)}
  .ctpro-wrap .form-grid.four,.ctpro-wrap .form-grid.two{grid-template-columns:1fr}
  .ctpro-wrap .check-grid{grid-template-columns:1fr}
  .ctpro-wrap .hero{min-height:220px;padding:24px 16px}
  .ctpro-wrap .bottom-nav{justify-content:flex-start;overflow-x:auto}
}


/* CTPro 0.1.3 customer-first workflow */
.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:20px}
.hero-actions .btn{min-width:260px}
.customer-actions{white-space:nowrap;display:flex;align-items:center;gap:8px}
.customer-actions .btn{padding:8px 10px}
@media (max-width:700px){.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{min-width:0;width:100%}.top-actions #btnNewEstimate{white-space:normal}}

/* CTPro 0.2.0 estimating-entry and address improvements */
.ctpro-wrap .numeric-entry{
  appearance:textfield;
  -moz-appearance:textfield;
}
.ctpro-wrap .numeric-entry::-webkit-outer-spin-button,
.ctpro-wrap .numeric-entry::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.ctpro-wrap .job-address-field{grid-column:span 2}
.ctpro-wrap #jobAddress{min-height:64px;white-space:pre-wrap;line-height:1.25}
.ctpro-wrap .address-cell{min-width:210px;line-height:1.35}
.ctpro-wrap #resourceSearch{margin-bottom:10px}
.ctpro-wrap #resourceSelect{min-height:250px;background:#fff;line-height:1.4}
.ctpro-wrap #resourceDialog{max-width:760px}
.ctpro-wrap #resourceDialog label{margin-bottom:12px}
@media (max-width:700px){
  .ctpro-wrap .job-address-field{grid-column:span 1}
  .ctpro-wrap #resourceSelect{min-height:220px}
}

/* CTPro 0.3.0 variable line rates and contract module */
.ctpro-wrap .money-entry{min-width:125px;text-align:right}
.ctpro-wrap .contract-paper{background:#fff;max-width:950px;margin:0 auto;padding:42px 50px;box-shadow:0 4px 18px rgba(0,0,0,.12);font-family:Arial,Helvetica,sans-serif;line-height:1.42;color:#111}
.ctpro-wrap .contract-brand{display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:4px solid var(--orange);padding-bottom:18px;margin-bottom:24px}
.ctpro-wrap .contract-logo{max-width:390px;width:46%;height:auto}
.ctpro-wrap .contract-brand h1{font-size:30px;margin:0 0 8px;text-align:right}
.ctpro-wrap .contract-paper h2{font-size:17px;margin:22px 0 8px;page-break-after:avoid}
.ctpro-wrap .contract-paper h3{font-size:15px}
.ctpro-wrap .contract-paper p{margin:8px 0}
.ctpro-wrap .contract-inline,.ctpro-wrap .contract-textarea{background:#fff8cf;border:1px solid #999;border-radius:4px;padding:5px 7px;font:inherit;color:#111}
.ctpro-wrap .contract-inline{display:inline-block;width:240px;vertical-align:middle}
.ctpro-wrap .contract-inline.wide{width:min(100%,480px)}
.ctpro-wrap textarea.contract-inline{display:block;width:100%;margin:6px 0}
.ctpro-wrap .contract-textarea{width:100%;resize:vertical;line-height:1.35}
.ctpro-wrap .date-field{width:165px}
.ctpro-wrap .money-field{width:150px;text-align:right}
.ctpro-wrap .contract-signatures{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:32px;page-break-inside:avoid}
.ctpro-wrap .contract-initials{display:flex;justify-content:space-between;gap:30px;margin-top:34px;font-weight:700;page-break-inside:avoid}
@media(max-width:700px){.ctpro-wrap .contract-paper{padding:22px 16px}.ctpro-wrap .contract-brand{display:block}.ctpro-wrap .contract-logo{width:100%;max-width:360px}.ctpro-wrap .contract-brand h1{text-align:left;margin-top:16px}.ctpro-wrap .contract-signatures{grid-template-columns:1fr;gap:25px}.ctpro-wrap .contract-initials{display:block}.ctpro-wrap .contract-initials span{display:block;margin:12px 0}}
@media print{
  body.ctpro-print-proposal .ctpro-wrap .view{display:none!important}
  body.ctpro-print-proposal .ctpro-wrap #view-proposal{display:block!important}
  body.ctpro-print-contract .ctpro-wrap .view{display:none!important}
  body.ctpro-print-contract .ctpro-wrap #view-contract{display:block!important}
  body.ctpro-print-contract .ctpro-wrap .contract-paper{box-shadow:none;max-width:none;padding:0;font-size:10.5pt}
  body.ctpro-print-contract .ctpro-wrap .contract-logo{width:310px}
  body.ctpro-print-contract .ctpro-wrap .contract-paper h2{font-size:12pt;margin-top:14px}
  body.ctpro-print-contract .ctpro-wrap .contract-inline,
  body.ctpro-print-contract .ctpro-wrap .contract-textarea{background:#fff;border:0;border-bottom:1px solid #444;border-radius:0;padding:2px 3px;overflow:visible;resize:none}
  body.ctpro-print-contract .ctpro-wrap textarea.contract-inline{border:0;border-bottom:1px solid #444}
}

.ctpro-wrap .signature-entry{display:grid;grid-template-columns:max-content minmax(90px,1fr);gap:10px;align-items:end;margin:14px 0}.ctpro-wrap .signature-line{display:block;border-bottom:1.5px solid #222;height:1.35em;max-width:330px;width:100%}.ctpro-wrap .signature-line.medium{max-width:290px}.ctpro-wrap .signature-line.short{max-width:230px}.ctpro-wrap .contract-initials span{display:flex;align-items:end;gap:8px}.ctpro-wrap .contract-initials i{display:inline-block;border-bottom:1.5px solid #222;width:130px;height:1.2em}.ctpro-wrap .contract-signatures p{margin:8px 0 16px}
@media(max-width:700px){.dashboard-card-head{align-items:flex-start;flex-direction:column}.recent-row{grid-template-columns:1fr}.recent-main{grid-template-columns:1fr 1fr}.recent-main span:last-child{grid-column:1/-1;text-align:left}.recent-actions{justify-content:flex-start}.ctpro-wrap .signature-line,.ctpro-wrap .signature-line.medium,.ctpro-wrap .signature-line.short{max-width:none}.ctpro-wrap .contract-initials span{margin:18px 0}}

/* CTPro 2.2 branded authentication */
body.page-login,
body.page-id-login { background:#f7f0e6; }
.ctpro-login-shell{min-height:72vh;display:flex;align-items:center;justify-content:center;padding:38px 18px}
.ctpro-login-card{width:min(460px,100%);background:#1e1e1e;color:#fff;border:4px solid #f5a623;border-radius:18px;padding:34px;box-shadow:0 14px 38px rgba(0,0,0,.22);text-align:center}
.ctpro-login-logo{max-width:300px;width:90%;height:auto;margin:0 auto 18px;display:block}
.ctpro-login-title{font-size:40px;font-weight:900;letter-spacing:5px;line-height:1}
.ctpro-login-subtitle{font-size:15px;opacity:.86;margin:8px 0 24px}
.ctpro-login-card form{text-align:left}
.ctpro-login-card label{color:#fff;font-weight:800}
.ctpro-login-card input[type="text"],.ctpro-login-card input[type="password"]{width:100%;padding:13px;border-radius:9px;border:1px solid #aaa;background:#fff2bf;color:#111;margin-top:6px}
.ctpro-login-card .login-remember label{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:600}
.ctpro-login-card .login-remember input{width:auto}
.ctpro-login-card .button-primary,.ctpro-login-button{display:inline-block;width:100%;background:#f5a623!important;color:#111!important;border:1px solid #d98600!important;border-radius:9px;padding:13px 18px!important;font-weight:900!important;font-size:18px!important;text-decoration:none;text-align:center;cursor:pointer}
.ctpro-login-help{margin:18px 0 0}.ctpro-login-help a{color:#fff;text-decoration:underline}

/* 2.3.0: contract initials appear at the bottom in contractor-then-owner order. */
.ctpro-wrap .contract-initials-stacked{display:flex;flex-direction:column;align-items:flex-end;gap:16px;margin-top:34px}
.ctpro-wrap .contract-initials-stacked span{display:flex;align-items:end;gap:8px;min-width:360px;justify-content:flex-end}
@media(max-width:700px){.ctpro-wrap .contract-initials-stacked{align-items:stretch}.ctpro-wrap .contract-initials-stacked span{min-width:0;justify-content:flex-start}}


/* CTPro 2.4.1 adjustable estimate settings, material tax, signatures, and contractor signed date */
.ctpro-wrap .totals-row.adjustable label{display:flex;flex-direction:row;align-items:center;gap:10px;font-weight:700;margin:0}.ctpro-wrap .summary-percent{width:82px!important;background:#fff2bf;text-align:right;padding:7px 9px}.ctpro-wrap .signature-tools{background:#fafafa;border:1px solid #ddd;border-radius:10px;padding:16px;margin:26px 0}.ctpro-wrap .signature-pad-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.ctpro-wrap .signature-pad{display:block;width:100%;height:150px;background:#fff;border:2px dashed #999;border-radius:8px;touch-action:none}.ctpro-wrap .initials-pad{max-width:280px}.ctpro-wrap .signature-image-line{height:60px;display:flex;align-items:flex-end}.ctpro-wrap .signature-image-line img{max-height:56px;max-width:100%;object-fit:contain;display:none}.ctpro-wrap .contractor-initial-entry,.ctpro-wrap .owner-initial-entry{margin-top:26px}.ctpro-wrap #contractorSignatureDate{padding-bottom:3px}.ctpro-wrap .contract-signatures>div{display:flex;flex-direction:column}.ctpro-wrap .contractor-initial-entry,.ctpro-wrap .owner-initial-entry{margin-top:auto;padding-top:20px}@media(max-width:700px){.ctpro-wrap .signature-pad-grid{grid-template-columns:1fr}.ctpro-wrap .initials-pad{max-width:none}.ctpro-wrap .totals-row.adjustable{align-items:center}.ctpro-wrap .totals-row.adjustable label{flex-wrap:wrap}}@media print{.ctpro-wrap .signature-tools{display:none!important}.ctpro-wrap .signature-image-line img{display:block!important}}

.ctpro-wrap .contractor-sign-date{max-width:220px;margin-left:8px;background:#fff!important;padding:5px 8px!important;border:0;border-bottom:1px solid #333!important;border-radius:0!important;}
@media print{.ctpro-wrap .contractor-sign-date{appearance:none;-webkit-appearance:none;background:transparent!important;border-bottom:1px solid #333!important;}}


/* CTPro 2.4.2 proposal total print reliability and centered contract branding */
.ctpro-wrap .investment{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
  min-height:92px;
  page-break-inside:avoid;
  break-inside:avoid;
  overflow:visible;
}
.ctpro-wrap .investment span{
  display:block;
  width:100%;
  line-height:1.15;
}
.ctpro-wrap .investment #pTotal{
  display:block!important;
  width:100%;
  min-height:1.25em;
  color:#fff!important;
  font-size:28px;
  line-height:1.15;
  font-weight:900;
  text-align:center;
  white-space:nowrap;
  visibility:visible!important;
  opacity:1!important;
  position:static!important;
  overflow:visible!important;
}
.ctpro-wrap .contract-brand{
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:14px;
}
.ctpro-wrap .contract-logo{
  display:block;
  width:min(100%,430px);
  max-width:430px;
  margin:0 auto;
}
.ctpro-wrap .contract-brand h1{
  text-align:center;
  margin:0 0 8px;
}
.ctpro-wrap .contract-brand > div{
  text-align:center;
}
@media(max-width:700px){
  .ctpro-wrap .contract-brand{display:flex;align-items:center;text-align:center}
  .ctpro-wrap .contract-brand h1{text-align:center;margin-top:0}
  .ctpro-wrap .contract-logo{width:min(100%,360px);margin:0 auto}
}
@media print{
  body.ctpro-print-proposal .ctpro-wrap .investment{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    min-height:86px!important;
    overflow:visible!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.ctpro-print-proposal .ctpro-wrap .investment #pTotal{
    display:block!important;
    color:#fff!important;
    font-size:22pt!important;
    visibility:visible!important;
    opacity:1!important;
    overflow:visible!important;
  }
  body.ctpro-print-contract .ctpro-wrap .contract-brand{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }
  body.ctpro-print-contract .ctpro-wrap .contract-logo{
    display:block!important;
    width:310px!important;
    max-width:310px!important;
    margin:0 auto!important;
  }
  body.ctpro-print-contract .ctpro-wrap .contract-brand h1,
  body.ctpro-print-contract .ctpro-wrap .contract-brand > div{
    text-align:center!important;
  }
}


/* CTPro 2.4.3: compact one-page proposal printing */
@page { size: Letter portrait; margin: 0.32in; }
@media print {
  body.ctpro-print-proposal,
  body.ctpro-print-proposal .ctpro-wrap,
  body.ctpro-print-proposal .ctpro-wrap main,
  body.ctpro-print-proposal .ctpro-wrap #view-proposal {
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-paper{
    box-shadow:none!important;
    max-width:none!important;
    width:100%!important;
    padding:0!important;
    margin:0!important;
    font-size:8.6pt!important;
    line-height:1.16!important;
    zoom:.86;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-brand{
    padding-bottom:7px!important;
    margin-bottom:7px!important;
    border-bottom-width:2px!important;
    align-items:center!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-logo{
    width:220px!important;
    max-width:220px!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-meta{
    font-size:8.3pt!important;
    line-height:1.15!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-grid{
    grid-template-columns:1fr 1fr!important;
    gap:16px!important;
    margin:7px 0!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-grid h3,
  body.ctpro-print-proposal .ctpro-wrap .proposal-paper > h3,
  body.ctpro-print-proposal .ctpro-wrap .acceptance h3{
    font-size:9.6pt!important;
    margin:5px 0 3px!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-grid p{
    margin:2px 0!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .proposal-box{
    min-height:0!important;
    padding:6px 8px!important;
    margin:0 0 6px!important;
    line-height:1.16!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .investment{
    min-height:54px!important;
    padding:7px 10px!important;
    gap:2px!important;
    border-left-width:7px!important;
    margin-top:4px!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .investment span{
    font-size:10pt!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .investment #pTotal{
    font-size:17pt!important;
    line-height:1!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .acceptance{
    margin-top:8px!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .acceptance p{
    margin:3px 0!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .sig-grid{
    gap:15px!important;
    margin-top:16px!important;
  }
  body.ctpro-print-proposal .ctpro-wrap .sig-grid div{
    padding-top:3px!important;
  }
}
\n\n/* CTPro 2.4.4: isolated print document to eliminate phantom second page */
@media print {
  html,body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;}
  body.ctpro-print-clone > *:not(#ctproPrintRoot){display:none!important;}
  body.ctpro-print-clone #ctproPrintRoot{display:block!important;position:static!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important;}
  body.ctpro-print-clone #ctproPrintRoot .proposal-paper{display:block!important;position:static!important;float:none!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;box-shadow:none!important;overflow:visible!important;page-break-after:auto!important;break-after:auto!important;}
  body.ctpro-print-clone #ctproPrintRoot .proposal-paper:after{content:none!important;display:none!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-paper{font-size:8.6pt!important;line-height:1.16!important;zoom:.86;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-brand{padding-bottom:7px!important;margin-bottom:7px!important;border-bottom-width:2px!important;align-items:center!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-logo{width:220px!important;max-width:220px!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-meta{font-size:8.3pt!important;line-height:1.15!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-grid{grid-template-columns:1fr 1fr!important;gap:16px!important;margin:7px 0!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-grid h3,
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-paper > h3,
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .acceptance h3{font-size:9.6pt!important;margin:5px 0 3px!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-grid p{margin:2px 0!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .proposal-box{min-height:0!important;padding:6px 8px!important;margin:0 0 6px!important;line-height:1.16!important;page-break-inside:avoid!important;break-inside:avoid!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .investment{min-height:54px!important;padding:7px 10px!important;gap:2px!important;border-left-width:7px!important;margin-top:4px!important;page-break-inside:avoid!important;break-inside:avoid!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .investment span{font-size:10pt!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .investment #pTotal{font-size:17pt!important;line-height:1!important;display:block!important;visibility:visible!important;opacity:1!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .acceptance{margin-top:8px!important;page-break-inside:avoid!important;break-inside:avoid!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .acceptance p{margin:3px 0!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .sig-grid{gap:15px!important;margin-top:16px!important;}
  body.ctpro-print-clone.ctpro-print-proposal #ctproPrintRoot .sig-grid div{padding-top:3px!important;}
}

/* CTPro 2.5 customer search and one-time QuickBooks import */
.customer-search-label{position:relative}.customer-select-fallback{display:none!important}.customer-search-results{position:absolute;z-index:50;left:0;right:0;top:100%;max-height:320px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:6px}.customer-search-result{display:flex;width:100%;flex-direction:column;gap:2px;text-align:left;background:#fff;border:0;border-radius:7px;padding:10px 12px;cursor:pointer}.customer-search-result:hover,.customer-search-result:focus{background:#eef6ff;outline:none}.customer-search-result span,.customer-search-empty{font-size:.84rem;color:#64748b}.customer-search-empty{padding:12px}
@media(max-width:700px){.customer-search-results{position:fixed;left:14px;right:14px;top:25%;max-height:50vh}}


/* CTPro 3.0 Command Center */
.ctpro-wrap .command-shell{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;align-items:start}
.ctpro-wrap .command-sidebar{background:var(--black);color:#fff;border:2px solid var(--orange);padding:18px;position:sticky;top:92px}
.ctpro-wrap .command-sidebar-head{padding:4px 4px 16px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:10px}
.ctpro-wrap .command-sidebar h2{margin:4px 0 3px;font-size:28px}.ctpro-wrap .command-sidebar .muted{color:#bdbdbd;margin:0}
.ctpro-wrap .eyebrow{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--orange);text-transform:uppercase}
.ctpro-wrap .command-feature{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;gap:10px;align-items:center;text-align:left;border:1px solid rgba(255,255,255,.12);background:#292929;color:#fff;border-radius:10px;padding:13px 12px;margin:9px 0;cursor:pointer}
.ctpro-wrap .command-feature strong,.ctpro-wrap .command-feature small{display:block}.ctpro-wrap .command-feature small{color:#bdbdbd;margin-top:3px}.ctpro-wrap .command-feature.active{border:2px solid var(--orange);background:#333}.ctpro-wrap .command-feature:hover:not(.disabled){background:#383838}.ctpro-wrap .command-feature.disabled{opacity:.47;cursor:default}.ctpro-wrap .feature-icon{font-size:21px;text-align:center;color:var(--orange)}.ctpro-wrap .feature-arrow{font-size:26px;color:var(--orange)}
.ctpro-wrap .command-main{display:grid;gap:18px}.ctpro-wrap .briefing-card{padding:0;overflow:hidden;border:2px solid #262626}.ctpro-wrap .briefing-head{background:linear-gradient(135deg,var(--black),var(--charcoal));color:#fff;padding:24px 26px;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border-bottom:4px solid var(--orange)}
.ctpro-wrap .briefing-head h1{margin:5px 0 4px;font-size:36px}.ctpro-wrap .briefing-head .muted{color:#d0d0d0;margin:0}.ctpro-wrap .briefing-status{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px 12px;font-size:13px;white-space:nowrap}.ctpro-wrap .status-dot{width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(245,166,35,.15)}
.ctpro-wrap .briefing-content{padding:22px 26px}.ctpro-wrap .briefing-empty{border-left:5px solid var(--orange);background:#fff8e9;padding:18px 20px;border-radius:8px}.ctpro-wrap .briefing-empty strong{font-size:19px}.ctpro-wrap .briefing-empty p{margin:7px 0 0;line-height:1.5}.ctpro-wrap .briefing-safety{padding:12px 26px;background:#f1f1f1;border-top:1px solid #ddd;font-size:12px;font-weight:800;color:#555}
.ctpro-wrap .command-launch{display:flex;justify-content:space-between;align-items:center;gap:24px;border-left:8px solid var(--orange);padding:22px 24px}.ctpro-wrap .command-launch h2{margin:4px 0 5px;font-size:27px}.ctpro-wrap .command-launch p{margin:0;max-width:800px;line-height:1.45}.ctpro-wrap .command-primary{font-size:18px;padding:15px 24px;white-space:nowrap}.ctpro-wrap .command-note{text-align:center;color:#777;font-size:12px;padding:2px 10px 14px}
body.ctpro-command-view .ctpro-wrap .topbar .top-actions button:not(#unused){display:none}
body.ctpro-command-view .ctpro-wrap .topbar .top-actions a.btn{display:inline-flex}
@media(max-width:900px){.ctpro-wrap .command-shell{grid-template-columns:230px minmax(0,1fr)}.ctpro-wrap .briefing-head{display:block}.ctpro-wrap .briefing-status{display:inline-flex;margin-top:14px}}
@media(max-width:700px){.ctpro-wrap .command-shell{grid-template-columns:1fr}.ctpro-wrap .command-sidebar{position:static}.ctpro-wrap .command-sidebar-head{margin-bottom:8px}.ctpro-wrap .command-feature.disabled{display:none}.ctpro-wrap .briefing-head{padding:20px 18px}.ctpro-wrap .briefing-head h1{font-size:29px}.ctpro-wrap .briefing-content{padding:16px}.ctpro-wrap .briefing-safety{padding:11px 16px}.ctpro-wrap .command-launch{display:block}.ctpro-wrap .command-primary{width:100%;justify-content:center;margin-top:16px}.ctpro-wrap .command-sidebar{padding:12px}.ctpro-wrap .command-feature{margin:0}.ctpro-wrap .command-sidebar-head p{display:none}}

/* CTPro 3.2 AI briefing */
.brief-group{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.brief-group:last-child{border-bottom:0}
.brief-group h3{margin:0 0 8px;font-size:1rem;letter-spacing:.03em}
.brief-event{display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;padding:8px 0}
.brief-event strong{font-size:1rem}
.brief-event span{grid-column:1/2;color:#626262;font-size:.9rem}
.brief-open{grid-column:2;grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;border:1px solid #f5a623;border-radius:8px;padding:8px 12px;color:#111!important;background:#f5a623;text-decoration:none;font-weight:800;white-space:nowrap}
@media(max-width:760px){.brief-event{grid-template-columns:1fr}.brief-open{grid-column:1;grid-row:auto;width:max-content}.brief-event span{grid-column:1}.brief-group{padding:10px 0}}

/* CTPro 3.2.2 — normalize WordPress emoji images inside briefing headings.
   WordPress can replace emoji glyphs with <img class="emoji"> elements;
   some themes then let those images inherit oversized responsive-image rules. */
.ctpro-wrap .brief-group h3 img.emoji,
.ctpro-wrap .brief-group h3 img.wp-smiley,
.ctpro-wrap .brief-group img.emoji,
.ctpro-wrap .brief-group img.wp-smiley{
  display:inline-block!important;
  width:1.15em!important;
  height:1.15em!important;
  min-width:0!important;
  max-width:1.15em!important;
  min-height:0!important;
  max-height:1.15em!important;
  margin:0 .28em 0 0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  vertical-align:-.16em!important;
  object-fit:contain!important;
}


/* CTPro 3.2.4 — Persistent Attention Ledger */
.ctpro-wrap .attention-ledger{margin:-2px -2px 12px;padding:18px 20px 8px;background:#fffaf0;border:2px solid #f5a623;border-radius:10px}
.ctpro-wrap .attention-ledger-head{margin-bottom:4px}
.ctpro-wrap .attention-ledger-head h2{margin:3px 0 3px;font-size:1.35rem}
.ctpro-wrap .attention-ledger-head p{margin:0;color:#666;font-size:.9rem}
.ctpro-wrap .attention-group{border-bottom:1px solid #ead9b9}
.ctpro-wrap .brief-actions{grid-column:2;grid-row:1/3;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ctpro-wrap .attention-event .brief-open{grid-column:auto;grid-row:auto}
.ctpro-wrap .brief-ack{display:inline-flex;align-items:center;justify-content:center;border:1px solid #222;border-radius:8px;padding:8px 12px;background:#fff;color:#111;font-weight:800;cursor:pointer;white-space:nowrap}
.ctpro-wrap .brief-ack:hover{background:#f2f2f2}.ctpro-wrap .brief-ack:disabled{opacity:.55;cursor:wait}
.ctpro-wrap .briefing-window-note{margin:14px 0 0;padding:12px 14px;background:#f5f5f5;border-radius:8px;color:#555;font-size:.9rem}
@media(max-width:760px){.ctpro-wrap .brief-actions{grid-column:1;grid-row:auto;justify-content:flex-start}.ctpro-wrap .attention-ledger{padding:14px 12px 6px}.ctpro-wrap .brief-ack,.ctpro-wrap .brief-open{width:auto}}

/* CTPro 3.2.8 — QuickBooks lump-sum import + duplicate contract actions */
.ctpro-wrap .custom-total-row{display:block;padding:12px 10px;background:#fff8df;border:1px dashed #d49a24;margin-top:8px}.ctpro-wrap .custom-total-row label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}.ctpro-wrap .summary-money{width:150px!important;background:#fff2bf;text-align:right;padding:7px 9px}.ctpro-wrap .custom-total-row small{display:block;margin-top:6px;color:#666;line-height:1.3}.ctpro-wrap .custom-total-row.active{border-style:solid;background:#fff0bc}.ctpro-wrap .contract-bottom-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:34px;padding-top:20px;border-top:2px solid #f5a623}@media(max-width:700px){.ctpro-wrap .custom-total-row label{align-items:flex-start;flex-direction:column}.ctpro-wrap .summary-money{width:100%!important}.ctpro-wrap .contract-bottom-actions{justify-content:stretch}.ctpro-wrap .contract-bottom-actions .btn{flex:1 1 46%;}}


/* CTPro 3.3.0 Invoice v1 + mobile completion controls */
.ctpro-wrap .estimate-bottom-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.ctpro-wrap .receivables-command{border-left:7px solid var(--orange);margin-top:16px}
.ctpro-wrap .receivables-command-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ctpro-wrap .receivables-command-head h2{margin:4px 0 0}.ctpro-wrap .receivables-command-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.ctpro-wrap .receivables-command-kpis>div{background:#f8f8f8;border:1px solid #ddd;border-radius:10px;padding:12px}.ctpro-wrap .receivables-command-kpis span{display:block;color:#666;font-size:12px;text-transform:uppercase;font-weight:800}.ctpro-wrap .receivables-command-kpis strong{font-size:24px}.ctpro-wrap .cc-invoice-item{width:100%;display:flex;justify-content:space-between;gap:14px;align-items:center;border:0;border-top:1px solid #ddd;background:#fff;padding:11px 4px;text-align:left;cursor:pointer}.ctpro-wrap .cc-invoice-item span{display:flex;flex-direction:column;gap:3px}.ctpro-wrap .cc-invoice-item span:last-child{text-align:right}.ctpro-wrap .cc-invoice-item small{color:#666}
.ctpro-wrap .invoice-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.ctpro-wrap .invoice-dashboard-head h1{font-size:44px;margin:3px 0}.ctpro-wrap .invoice-dashboard-head p{margin:0;color:#666}.ctpro-wrap .invoice-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.ctpro-wrap .invoice-kpis .card{display:flex;flex-direction:column;gap:6px;border-top:5px solid var(--orange)}.ctpro-wrap .invoice-kpis span{font-size:13px;color:#666;font-weight:800;text-transform:uppercase}.ctpro-wrap .invoice-kpis strong{font-size:30px}.ctpro-wrap .invoice-kpis small{color:#666}.ctpro-wrap .invoice-kpis .overdue-card{border-top-color:#b3261e}.ctpro-wrap .invoice-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.ctpro-wrap .invoice-filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.ctpro-wrap .invoice-filter{border:1px solid #aaa;background:#fff;border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer}.ctpro-wrap .invoice-filter.active{background:var(--black);color:#fff;border-color:var(--black)}.ctpro-wrap #invoiceSearch{max-width:430px;background:#fff}.ctpro-wrap .invoice-list{display:grid;gap:12px}.ctpro-wrap .invoice-list-card{background:#fff;border:1px solid #ddd;border-left:7px solid var(--orange);border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.ctpro-wrap .invoice-list-card.is-overdue{border-left-color:#b3261e}.ctpro-wrap .invoice-list-main{display:flex;justify-content:space-between;align-items:center;gap:22px;flex:1}.ctpro-wrap .invoice-list-main h3{margin:6px 0 3px;font-size:22px}.ctpro-wrap .invoice-list-main p{margin:0;color:#555}.ctpro-wrap .invoice-list-money{display:flex;flex-direction:column;text-align:right}.ctpro-wrap .invoice-list-money strong{font-size:24px}.ctpro-wrap .invoice-list-actions{display:flex;gap:7px}.ctpro-wrap .invoice-status{display:inline-block;border-radius:999px;background:#eee;padding:4px 9px;font-size:11px;font-weight:900;text-transform:uppercase}.ctpro-wrap .invoice-status.overdue{background:#f4cccc}.ctpro-wrap .invoice-status.paid{background:#d9ead3}.ctpro-wrap .invoice-status.partially-paid{background:#fff2bf}
.ctpro-wrap .invoice-page-head{align-items:flex-end}.ctpro-wrap .invoice-top-actions,.ctpro-wrap .invoice-bottom-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.ctpro-wrap .invoice-paper{background:#fff;max-width:980px;margin:0 auto;padding:38px;box-shadow:0 4px 18px rgba(0,0,0,.12)}.ctpro-wrap .invoice-brand{display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid var(--orange);padding-bottom:16px;margin-bottom:20px}.ctpro-wrap .invoice-brand img{width:min(48%,390px);height:auto}.ctpro-wrap .invoice-brand h1{font-size:38px;margin:0}.ctpro-wrap .invoice-brand>div{text-align:right}.ctpro-wrap .invoice-meta-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.ctpro-wrap .invoice-description{margin:22px 0}.ctpro-wrap .invoice-description h2,.ctpro-wrap .invoice-lines-section h2,.ctpro-wrap .invoice-payment-panel h2{margin:0 0 10px}.ctpro-wrap .invoice-line-list{display:grid;gap:7px}.ctpro-wrap .invoice-line{display:grid;grid-template-columns:minmax(240px,1fr) 90px 120px 120px 36px;gap:7px;align-items:center}.ctpro-wrap .invoice-line input{background:#fff}.ctpro-wrap .invoiceLineAmount{text-align:right}.ctpro-wrap .invoice-total-grid{display:grid;grid-template-columns:1fr 430px;gap:20px;margin-top:24px;align-items:start}.ctpro-wrap .invoice-summary-card{border:1px solid #ddd;border-radius:10px;overflow:hidden}.ctpro-wrap .invoice-summary-card .totals-row:last-child{border-bottom:0}.ctpro-wrap .invoice-balance{font-size:21px;background:#fff2bf;font-weight:900}.ctpro-wrap .invoice-payment-panel{background:#fafafa;border:1px solid #ddd;border-radius:10px;padding:16px}.ctpro-wrap .payment-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ddd;padding:9px 0}.ctpro-wrap .payment-row span:first-child{display:flex;flex-direction:column}.ctpro-wrap .invoice-bottom-actions{border-top:2px solid #ddd;margin-top:28px;padding-top:18px}.ctpro-wrap .invoice-create-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ctpro-wrap .invoice-create-option,.ctpro-wrap .invoice-choice,.ctpro-wrap .invoice-job-choice{border:1px solid #bbb;background:#fff;border-radius:10px;padding:15px;text-align:left;cursor:pointer}.ctpro-wrap .invoice-create-option strong,.ctpro-wrap .invoice-choice strong,.ctpro-wrap .invoice-job-choice strong{display:block;font-size:17px}.ctpro-wrap .invoice-create-option span,.ctpro-wrap .invoice-choice span,.ctpro-wrap .invoice-job-choice span{display:block;color:#666;margin-top:4px}.ctpro-wrap .invoice-choice-list{display:grid;gap:7px;max-height:55vh;overflow:auto;margin-top:12px}.ctpro-wrap .payment-notes{grid-column:1/-1}
@media(max-width:800px){.ctpro-wrap .invoice-kpis{grid-template-columns:1fr 1fr 1fr}.ctpro-wrap .invoice-list-card{align-items:stretch;flex-direction:column}.ctpro-wrap .invoice-list-actions{justify-content:flex-end}.ctpro-wrap .invoice-total-grid{grid-template-columns:1fr}.ctpro-wrap .invoice-meta-grid{grid-template-columns:1fr}.ctpro-wrap .invoice-create-options{grid-template-columns:1fr}.ctpro-wrap .invoice-line{grid-template-columns:minmax(0,1fr) 70px 100px;}.ctpro-wrap .invoiceLineAmount{grid-column:2/4}.ctpro-wrap .deleteInvoiceLine{grid-column:4;grid-row:1}.ctpro-wrap .receivables-command-kpis{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.ctpro-wrap .estimate-bottom-actions{display:grid;grid-template-columns:1fr 1fr}.ctpro-wrap .estimate-bottom-actions .btn{width:100%;min-height:48px}.ctpro-wrap .invoice-dashboard-head{align-items:stretch;flex-direction:column}.ctpro-wrap .invoice-dashboard-head .btn{width:100%;min-height:56px}.ctpro-wrap .invoice-kpis{grid-template-columns:1fr}.ctpro-wrap .invoice-tools{align-items:stretch;flex-direction:column}.ctpro-wrap #invoiceSearch{max-width:none}.ctpro-wrap .invoice-filter-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.ctpro-wrap .invoice-filter{border-radius:8px}.ctpro-wrap .invoice-list-main{align-items:flex-start;flex-direction:column}.ctpro-wrap .invoice-list-money{text-align:left}.ctpro-wrap .invoice-list-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.ctpro-wrap .invoice-list-actions .btn{width:100%;min-height:48px}.ctpro-wrap .invoice-paper{padding:18px 14px}.ctpro-wrap .invoice-brand{align-items:flex-start;flex-direction:column;gap:12px}.ctpro-wrap .invoice-brand img{width:100%;max-width:350px}.ctpro-wrap .invoice-brand>div{text-align:left}.ctpro-wrap .invoice-line{grid-template-columns:1fr 68px 92px;gap:6px}.ctpro-wrap .invoice-line .invoiceLineDesc{grid-column:1/-1}.ctpro-wrap .invoiceLineAmount{grid-column:2/4}.ctpro-wrap .deleteInvoiceLine{grid-column:1;grid-row:2}.ctpro-wrap .invoice-top-actions,.ctpro-wrap .invoice-bottom-actions{display:grid;grid-template-columns:1fr 1fr}.ctpro-wrap .invoice-top-actions .btn,.ctpro-wrap .invoice-bottom-actions .btn{width:100%;min-height:48px}.ctpro-wrap .receivables-command-kpis{grid-template-columns:1fr}.ctpro-wrap .cc-invoice-item{align-items:flex-start;flex-direction:column}.ctpro-wrap .cc-invoice-item span:last-child{text-align:left}}
@media print{.ctpro-wrap .invoice-paper{box-shadow:none!important;max-width:none!important;padding:0!important}.ctpro-wrap .invoice-paper input,.ctpro-wrap .invoice-paper textarea,.ctpro-wrap .invoice-paper select{border:0!important;background:#fff!important;padding:2px!important}.ctpro-wrap .invoice-lines-section .section-head button,.ctpro-wrap .invoice-bottom-actions,.ctpro-wrap .invoice-payment-panel button{display:none!important}}


/* CTPro 3.3.1 invoice status + payment history */
.invoice-dashboard-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.sent-action{border-color:#f5a623;background:#fff7df}
.sent-action:disabled{opacity:.7;cursor:default;background:#eef7ee;border-color:#8dbf8d}
.payment-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.payment-kpis .card{display:flex;flex-direction:column;gap:8px}.payment-kpis strong{font-size:2rem}.payment-history-list{display:grid;gap:14px;margin-top:18px}.payment-history-card{background:#fff;border:1px solid #ddd;border-left:6px solid #f5a623;border-radius:16px;padding:18px 20px;display:flex;justify-content:space-between;gap:20px;align-items:center}.payment-history-card h3{margin:4px 0}.payment-history-card p,.payment-history-card small{margin:0;color:#555}.payment-history-money{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.payment-history-money>strong{font-size:1.55rem}.invoice-status.overdue{background:#b42318;color:white}.invoice-list-card.is-overdue{border-left-color:#b42318}
@media(max-width:760px){.invoice-dashboard-actions{width:100%;justify-content:stretch}.invoice-dashboard-actions .btn{flex:1}.payment-kpis{grid-template-columns:1fr}.payment-history-card{align-items:flex-start;flex-direction:column}.payment-history-money{width:100%;justify-content:space-between}.invoice-top-actions,.invoice-bottom-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoice-top-actions .btn,.invoice-bottom-actions .btn{width:100%}}

/* CTPro 3.3.2 compact receivables warning icons */
.ctpro-wrap .cc-attention-icon{display:inline-flex!important;width:22px;height:22px;min-width:22px;align-items:center;justify-content:center;border-radius:50%;font-size:14px!important;line-height:1!important;font-weight:900;vertical-align:middle;margin-right:7px;flex:none!important}.ctpro-wrap .cc-attention-icon.is-overdue{background:#e52b3f;color:#fff}.ctpro-wrap .cc-attention-icon.is-soon{background:#f7a81b;color:#111}


/* CTPro 3.3.3 invoice finishing: supporting photos + guarded record controls */
.ctpro-wrap .invoice-photo-section{margin:22px 0;padding:16px;border:1px solid #ddd;border-radius:12px;background:#fafafa}.ctpro-wrap .invoice-photo-section .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ctpro-wrap .invoice-photo-section h2{margin:0 0 5px}.ctpro-wrap .invoice-photo-section p{margin:0}.ctpro-wrap .optional-label{font-size:11px;text-transform:uppercase;color:#777;font-weight:800}.ctpro-wrap .invoice-photo-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.ctpro-wrap .invoice-photo-card{background:#fff;border:1px solid #ddd;border-radius:10px;overflow:hidden}.ctpro-wrap .invoice-photo-card img{display:block;width:100%;height:210px;object-fit:cover;background:#eee}.ctpro-wrap .invoice-photo-card>div{display:flex;gap:8px;padding:10px}.ctpro-wrap .invoice-photo-card input{min-width:0;flex:1;background:#fff}.ctpro-wrap .subtle-action{background:#f6f6f6}.ctpro-wrap .invoice-action-buttons{display:grid;gap:10px;margin:18px 0}.ctpro-wrap .danger-action{border-color:#b42318;color:#8f1d14;background:#fff}.ctpro-wrap .test-delete-action{border-color:#555;background:#222;color:#fff}.ctpro-wrap .invoice-status.voided{background:#555;color:#fff}.ctpro-wrap .invoice-list-card:has(.invoice-status.voided){opacity:.72;border-left-color:#777}.ctpro-wrap .invoice-paper .invoice-photo-section{background:#fff}.ctpro-wrap .invoice-photo-section button:disabled{opacity:.5}
@media(max-width:700px){.ctpro-wrap .invoice-photo-list{grid-template-columns:1fr}.ctpro-wrap .invoice-photo-section .section-head{flex-direction:column}.ctpro-wrap .invoice-photo-section .section-head .btn{width:100%;min-height:48px}.ctpro-wrap .invoice-photo-card img{height:auto;max-height:360px}.ctpro-wrap .invoice-filter-tabs{grid-template-columns:1fr 1fr 1fr!important}}
@media print{.ctpro-wrap .invoice-photo-section .section-head button,.ctpro-wrap .invoice-photo-card button{display:none!important}.ctpro-wrap .invoice-photo-list{grid-template-columns:1fr 1fr!important}.ctpro-wrap .invoice-photo-card img{height:auto!important;max-height:240px!important;object-fit:contain!important}.ctpro-wrap .invoice-photo-section{border:0!important;padding:0!important}}

/* CTPro 3.3.4 data protection */
.ctpro-wrap .backup-health{padding:20px 22px;border-left:6px solid var(--orange);margin-top:16px}.ctpro-wrap .backup-health-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.ctpro-wrap .backup-health-head h2{margin:2px 0 0}.ctpro-wrap .backup-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ctpro-wrap .backup-health-grid>div{display:flex;align-items:center;gap:10px;border:1px solid #ddd;border-radius:12px;padding:12px}.ctpro-wrap .backup-health-grid small,.ctpro-wrap .backup-health-grid strong{display:block}.ctpro-wrap .backup-dot{width:12px;height:12px;border-radius:50%;background:#d7a400;flex:0 0 12px}.ctpro-wrap .backup-dot.good{background:#16833b}.ctpro-wrap .backup-dot.warn{background:#d7a400}.ctpro-wrap .backup-attention{margin:13px 0 0}.ctpro-wrap .backup-attention.is-error{color:#a71919;font-weight:700}.ctpro-wrap .backup-attention.is-warn{color:#7a5b00;font-weight:700}.ctpro-wrap .backup-settings-link{display:inline-block;margin-top:8px;font-weight:700}.ctpro-wrap .btn.compact{padding:8px 12px;font-size:14px}@media(max-width:760px){.ctpro-wrap .backup-health-grid{grid-template-columns:1fr}.ctpro-wrap .backup-health-head{align-items:flex-start}.ctpro-wrap .backup-health-head .btn{white-space:nowrap}}

/* === CTPro 3.4.0 Field Operations / Battlefield View === */
.battlefield-view{border-left:6px solid var(--orange,#f5a623);overflow:hidden}
.battlefield-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}
.battlefield-head h1{margin:.15rem 0;font-size:2rem;letter-spacing:.02em}
.battlefield-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.battlefield-kpis>div{background:#f6f6f6;border:1px solid #ddd;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}
.battlefield-kpis span{font-size:.78rem;font-weight:800;text-transform:uppercase;color:#5b5b5b;letter-spacing:.04em}
.battlefield-kpis strong{font-size:1.8rem;margin-top:4px}
.battlefield-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:16px;align-items:start}
.battlefield-map{height:360px;border:1px solid #d8d8d8;border-radius:14px;overflow:hidden;background:#eee;position:relative;z-index:1}
.map-empty{height:100%;display:grid;place-items:center;text-align:center;padding:30px;color:#666}
.battlefield-map-note{display:block;margin-top:7px}
.battlefield-crew{display:grid;gap:9px}
.battlefield-person{width:100%;border:1px solid #ddd;background:#fff;border-radius:12px;padding:13px;display:flex;gap:10px;text-align:left;align-items:flex-start}
.battlefield-person span:nth-child(2){display:flex;flex-direction:column;gap:3px}.battlefield-person small{color:#666}
.bf-person-status{width:11px;height:11px;border-radius:50%;background:#16a34a;margin-top:6px;flex:0 0 auto}.bf-person-status.break{background:#f5a623}
.job-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.job-kpis .card{display:flex;flex-direction:column}.job-kpis strong{font-size:2rem}.job-kpis span{font-weight:800;text-transform:uppercase;font-size:.78rem;color:#666}
.job-list{display:grid;gap:14px}.job-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border-left:6px solid #f5a623}.job-card h2{margin:7px 0}.job-card p{margin:3px 0}.job-status{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:900;text-transform:uppercase;background:#eee}.job-status.active{background:#dff4e4;color:#126b2d}.job-status.upcoming{background:#fff1c7}.job-status.completed{background:#e5e7eb}.job-status.cancelled{background:#f6d4d4;color:#8c1d1d}.job-card-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.job-card-actions select{min-width:120px}.job-coordinates{font-family:monospace;color:#555}
.employee-list{display:grid;gap:8px}.employee-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #ddd;padding:12px 0}.employee-row span{display:flex;flex-direction:column}.employee-row small{color:#666}.crew-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.crew-admin-grid>div{border:1px solid #ddd;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:3px}
.switch-cell{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.checkbox-label{display:flex!important;align-items:center;gap:9px!important}.checkbox-label input{width:auto!important}
.field-clock-view{max-width:760px;margin:0 auto;padding-top:18px}.field-clock-shell{padding:14px}.field-clock-brand{text-align:center;margin:0 auto 18px}.field-logo{max-width:260px;width:60%;background:#1d1d1d;padding:10px;border-radius:10px}.field-clock-brand h1{font-size:2rem;margin:.35rem 0}.field-clock-card{border-top:5px solid #f5a623}.field-clock-card label{display:block;font-size:1.05rem;font-weight:800;margin-bottom:16px}.field-clock-card select{width:100%;margin-top:6px;font-size:1.1rem;padding:14px}.field-big-action{width:100%;font-size:1.35rem;padding:18px!important;margin-top:8px}.field-current{text-align:center}.field-current h2{font-size:2rem;margin:.35rem 0}.field-current>p{font-size:1.2rem}.field-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.field-actions .btn{min-height:58px;font-size:1rem}.danger-action{border-color:#a61b1b!important;color:#a61b1b!important}.field-attention{background:#fff3cd;border:2px solid #f5a623;border-radius:12px;padding:15px;margin:16px 0;display:flex;flex-direction:column;gap:7px}.machine-reminder{background:#fff1bf;border-left:5px solid #f5a623;border-radius:9px;padding:13px;margin:15px 0;display:flex;flex-direction:column;gap:4px}.machine-reminder strong{text-transform:uppercase;letter-spacing:.04em}.field-location-note{text-align:center;padding:10px}.ctpro-employee-page .topbar{justify-content:center}.ctpro-employee-page .brand-wrap{margin:auto}.ctpro-employee-page #ctpro-app main{padding-bottom:15px}
#meterDialog{max-width:520px;width:calc(100% - 32px)}#meterDialog input{font-size:1.5rem;padding:13px}.span-two{grid-column:1/-1}
@media(max-width:900px){.battlefield-grid{grid-template-columns:1fr}.battlefield-map{height:280px}.battlefield-kpis{grid-template-columns:repeat(3,1fr)}.job-card{grid-template-columns:1fr}.job-card-actions{justify-content:flex-start}}
@media(max-width:620px){.battlefield-head{display:block}.battlefield-head .btn{margin-top:10px}.battlefield-kpis{grid-template-columns:1fr 1fr 1fr;gap:6px}.battlefield-kpis>div{padding:9px}.battlefield-kpis strong{font-size:1.4rem}.battlefield-kpis span{font-size:.64rem}.battlefield-map{height:230px}.field-actions{grid-template-columns:1fr}.job-kpis{grid-template-columns:repeat(3,1fr);gap:6px}.job-kpis .card{padding:10px}.job-kpis strong{font-size:1.35rem}.invoice-dashboard-head{gap:10px}.employee-row{align-items:flex-start}}


/* === CTPro 3.4.0.1 Field Test UX fixes === */
html{scroll-behavior:auto!important}
body.ctpro-app-page{max-width:100%;overflow-x:hidden!important}
.ctpro-wrap{max-width:100vw!important;overflow-x:clip}
.ctpro-wrap > main,.ctpro-wrap .view,.ctpro-wrap .command-shell,.ctpro-wrap .command-main,.ctpro-wrap .battlefield-view,.ctpro-wrap .battlefield-grid,.ctpro-wrap .battlefield-grid>*,.ctpro-wrap .battlefield-kpis>*{min-width:0;max-width:100%}
.ctpro-wrap .battlefield-head>*{min-width:0}.ctpro-wrap .battlefield-head .btn{flex:0 0 auto}
.ctpro-wrap .command-sidebar{max-height:calc(100vh - 118px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:12px}
.ctpro-wrap .command-sidebar::-webkit-scrollbar{width:10px}.ctpro-wrap .command-sidebar::-webkit-scrollbar-thumb{background:#666;border-radius:10px;border:2px solid #1e1e1e}.ctpro-wrap .command-sidebar::-webkit-scrollbar-track{background:#252525}
.ctpro-wrap .customer-directory-search{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px;padding:14px 18px}.ctpro-wrap .customer-directory-search label{flex:1;max-width:720px}.ctpro-wrap .customer-directory-search input{background:#fff}.ctpro-wrap .customer-actions{white-space:nowrap}.ctpro-wrap .customer-actions .btn{margin-right:5px;padding:7px 9px;font-size:.85rem}
@media(max-width:900px){.ctpro-wrap .command-sidebar{max-height:calc(100vh - 96px)}.ctpro-wrap .battlefield-grid{grid-template-columns:minmax(0,1fr)!important}.ctpro-wrap .customer-directory-search{align-items:stretch;flex-direction:column}}
@media(max-width:700px){.ctpro-wrap .command-sidebar{max-height:none;overflow:visible}.ctpro-wrap .customer-directory-search{padding:12px}.ctpro-wrap .customer-actions{white-space:normal}}

/* === CTPro 3.4.0.2 Battlefield map reliability === */
.job-map-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.job-map-tools .muted{font-size:.9rem}
.job-map-warning{margin:.45rem 0 0;color:#8a5b00;font-size:.92rem;line-height:1.35}
@media(max-width:720px){.job-map-tools{align-items:stretch}.job-map-tools .btn{width:100%}}


/* === CTPro 3.4.0.3 field UX / account switching === */
.field-switch-user{display:inline-flex;margin-top:10px;align-items:center;justify-content:center;text-decoration:none!important}
.ctpro-employee-page .field-switch-user{min-height:44px}
@media(max-width:700px){.field-switch-user{width:100%;max-width:360px}}


/* Battlefield View marker language — v3.4.0.4 */
.ctpro-map-divicon{background:transparent!important;border:0!important}
.ctpro-map-pin{display:block;width:24px;height:24px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px rgba(0,0,0,.35)}
.ctpro-map-pin::after{content:"";display:block;width:8px;height:8px;margin:5px;background:#fff;border-radius:50%}
.ctpro-map-pin.job{background:#f5a623}
.ctpro-map-pin.crew{background:#2f80c9}
.ctpro-map-pin.crew-equipment{background:#17a658}
.battlefield-map-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px;font-size:.82rem;color:#646464}
.battlefield-map-legend span{display:inline-flex;align-items:center;gap:6px}
.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.18)}
.legend-dot.job{background:#f5a623}.legend-dot.crew{background:#2f80c9}.legend-dot.crew-equipment{background:#17a658}

/* v3.4.0.5 employee field-navigation + mobile change selectors */
.field-job-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 4px}
.field-job-nav .btn{min-height:44px}
#fieldChoiceDialog{max-width:560px}
#fieldChoiceDialog label{display:block;font-size:1.05rem;font-weight:800}
#fieldChoiceDialog select{width:100%;margin-top:8px;font-size:1.1rem;padding:14px;min-height:54px}
@media(max-width:620px){.field-job-nav{display:grid;grid-template-columns:1fr}.field-job-nav .btn{width:100%}#fieldChoiceDialog .dialog-actions{display:grid;grid-template-columns:1fr;gap:8px}#fieldChoiceDialog .dialog-actions .btn{width:100%;min-height:50px}}

/* v3.4.0.7 field job photos */
.ctpro-wrap .field-job-photos{margin-top:18px;padding:14px;border:1px solid #ddd;border-radius:12px;background:#fafafa}.ctpro-wrap .field-photo-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.ctpro-wrap .field-photo-head>div{display:grid;gap:2px}.ctpro-wrap .field-photo-head small{color:#666}.ctpro-wrap .field-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ctpro-wrap .field-photo-card{margin:0;background:#fff;border:1px solid #ddd;border-radius:10px;overflow:hidden}.ctpro-wrap .field-photo-card img{display:block;width:100%;height:150px;object-fit:cover;background:#eee}.ctpro-wrap .field-photo-card figcaption{display:grid;gap:4px;padding:9px}.ctpro-wrap .field-photo-card figcaption strong{font-size:14px}.ctpro-wrap .field-photo-card figcaption small{font-size:12px;color:#666}.ctpro-wrap .field-photo-empty{margin:8px 0 0}.ctpro-wrap .field-photo-preview{width:100%;max-height:320px;object-fit:contain;border:1px solid #ddd;border-radius:10px;background:#f5f5f5;margin:8px 0 12px}.ctpro-wrap .field-photo-dialog form,.ctpro-wrap .job-photos-dialog .dialog-panel{min-width:min(560px,86vw)}.ctpro-wrap .job-photos-dialog #jobPhotosList{max-height:65vh;overflow:auto;margin-top:14px}
@media(max-width:700px){.ctpro-wrap .field-photo-head{align-items:stretch;flex-direction:column}.ctpro-wrap .field-photo-head .btn{width:100%;min-height:52px}.ctpro-wrap .field-photo-grid{grid-template-columns:1fr 1fr}.ctpro-wrap .field-photo-card img{height:130px}.ctpro-wrap .field-photo-dialog form,.ctpro-wrap .job-photos-dialog .dialog-panel{min-width:0;width:88vw}.ctpro-wrap .field-photo-dialog input[type=file]{width:100%;padding:10px;background:#fff;border:1px solid #ccc;border-radius:8px}}
@media(max-width:430px){.ctpro-wrap .field-photo-grid{grid-template-columns:1fr}.ctpro-wrap .field-photo-card img{height:auto;max-height:300px}}

/* 3.4.0.8 estimator reference photos + home brand */
.ctpro-wrap .brand-home{appearance:none;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer}.ctpro-wrap .brand-home>span{display:block}.ctpro-wrap .brand-home:focus-visible{outline:3px solid rgba(245,166,35,.45);outline-offset:5px;border-radius:8px}
.ctpro-wrap .estimate-photo-section .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ctpro-wrap .estimate-photo-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.ctpro-wrap .estimate-photo-card{border:1px solid #ddd;border-radius:10px;overflow:hidden;background:#fff}.ctpro-wrap .estimate-photo-card img{display:block;width:100%;height:150px;object-fit:cover;background:#eee}.ctpro-wrap .estimate-photo-card figcaption{display:grid;gap:5px;padding:9px}.ctpro-wrap .estimate-photo-card figcaption small{color:#666}.ctpro-wrap .estimate-photo-card .btn{justify-self:start}.ctpro-wrap .job-complete-action{background:#eef8f0;border-color:#8ebc98;color:#165a27}
@media(max-width:900px){.ctpro-wrap .estimate-photo-list{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ctpro-wrap .estimate-photo-list{grid-template-columns:1fr}.ctpro-wrap .estimate-photo-section .section-head{flex-direction:column}.ctpro-wrap .estimate-photo-section .section-head .btn{width:100%}}

/* 3.4.0.10 explicit photo source choice: reliable camera + gallery access across mobile browsers */
.photo-source-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 8px}.photo-source-actions .btn{flex:1 1 180px}.photo-selected{margin:6px 0 10px}@media(max-width:640px){.photo-source-actions{display:grid;grid-template-columns:1fr}.photo-source-actions .btn{width:100%;min-height:48px}}

.ctpro-wrap .field-photo-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.ctpro-wrap .field-photo-open img{display:block;width:100%;height:150px;object-fit:cover}.ctpro-wrap .photo-lightbox-dialog{max-width:min(1100px,94vw);width:auto}.ctpro-wrap .photo-lightbox-panel{min-width:min(760px,86vw);max-width:1000px}.ctpro-wrap .photo-lightbox-panel img{display:block;max-width:100%;max-height:72vh;width:auto;height:auto;margin:0 auto;object-fit:contain}.ctpro-wrap .photo-lightbox-panel p{margin:12px 0 0;font-size:16px}@media(max-width:700px){.ctpro-wrap .photo-lightbox-panel{min-width:82vw}.ctpro-wrap .photo-lightbox-panel img{max-height:68vh}}

/* v3.4.0.14 offline field clock + job documents */
.ctpro-wrap .field-offline-banner{margin:0 0 14px;padding:12px 14px;border:1px solid #d39b00;border-left:5px solid #f5a623;border-radius:10px;background:#fff3cd;font-weight:700}.ctpro-wrap .field-offline-banner.synced{border-color:#1f9d55;background:#edf9f1}.ctpro-wrap .job-documents-section{margin-top:16px;padding:14px;border:1px solid #ddd;border-radius:12px;background:#fafafa}.ctpro-wrap .job-documents-section h3{margin:0 0 8px}.ctpro-wrap .job-document-list{display:grid;gap:8px}.ctpro-wrap .job-document-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px;border:1px solid #ddd;border-radius:9px;background:#fff}.ctpro-wrap .job-document-item span{min-width:0;display:grid}.ctpro-wrap .job-document-item strong,.ctpro-wrap .job-document-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctpro-wrap .job-documents-dialog .dialog-panel{min-width:min(760px,calc(100vw - 32px))}.ctpro-wrap .job-document-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #ddd}.ctpro-wrap .job-document-admin-row:last-child{border-bottom:0}.ctpro-wrap .job-document-admin-row>div{min-width:0}.ctpro-wrap .job-document-admin-row strong,.ctpro-wrap .job-document-admin-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.ctpro-wrap .job-document-item{align-items:stretch;flex-direction:column}.ctpro-wrap .job-document-item .btn{width:100%}.ctpro-wrap .job-document-admin-row{grid-template-columns:1fr}.ctpro-wrap .job-document-admin-row .btn{width:100%}}


/* v3.4.0.15 polish: Active Jobs layout + Job PDF dialogs */
@media(min-width:901px){
  .ctpro-wrap .job-card{grid-template-columns:minmax(280px,.8fr) minmax(0,2.2fr);align-items:center}
  .ctpro-wrap .job-card>div:first-child{min-width:280px}
  .ctpro-wrap .job-card-actions{min-width:0}
  .ctpro-wrap .job-card-actions .jobStatus{flex:1 0 100%;width:100%;max-width:none}
}
.ctpro-wrap #jobDocumentsDialog{max-width:min(900px,94vw);width:min(900px,94vw);overflow-x:hidden}
.ctpro-wrap #jobDocumentsDialog .dialog-panel{min-width:0;width:100%;box-sizing:border-box}
.ctpro-wrap #jobDocumentsDialog .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.ctpro-wrap #jobDocumentsDialog #jobDocumentsList{max-height:58vh;overflow:auto;margin-top:14px}
.ctpro-wrap #jobDocumentUploadDialog{max-width:min(760px,94vw);width:min(760px,94vw)}
.ctpro-wrap #jobDocumentUploadDialog form{min-width:0!important;width:100%;box-sizing:border-box}
.ctpro-wrap #jobDocumentUploadDialog input[type=file],.ctpro-wrap #jobDocumentUploadDialog textarea{width:100%;box-sizing:border-box}
@media(max-width:900px){.ctpro-wrap .job-card>div:first-child{min-width:0}}


/* CTPro 3.4.0.18 PWA + offline estimator */
.ctpro-wrap .estimate-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ctpro-wrap .estimator-offline-status{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #cfd5d9;border-radius:999px;background:#fff;font-weight:700;font-size:.86rem;white-space:nowrap}
.ctpro-wrap .offline-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#169c50}
.ctpro-wrap .estimator-offline-status.offline{background:#fff2bf;border-color:#e6b23c;color:#6d4b00}.ctpro-wrap .estimator-offline-status.offline .offline-status-dot{background:#e09b00}
.ctpro-wrap .estimator-offline-status.syncing{background:#eef5ff;border-color:#8ab4ef;color:#174f91}.ctpro-wrap .estimator-offline-status.syncing .offline-status-dot{background:#2f80d0}
.ctpro-wrap .estimator-offline-status.saved-local{background:#fff2bf;border-color:#e6b23c;color:#6d4b00}.ctpro-wrap .estimator-offline-status.saved-local .offline-status-dot{background:#e09b00}
@media(max-width:700px){.ctpro-wrap .estimate-head-actions{width:100%;justify-content:space-between}.ctpro-wrap .estimator-offline-status{font-size:.78rem;padding:7px 10px}}


/* CTPro 3.4.0.19 Battle Plan */
.battle-plan-week{padding:20px}.battle-week-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.battle-week-head h2{margin:.15rem 0}.battle-week-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px}.battle-week-day{min-height:112px;border:1px solid var(--border,#dfe3e8);border-radius:12px;background:#fff;overflow:hidden}.battle-week-day.today{box-shadow:inset 0 0 0 2px #111}.battle-week-day-head{display:flex;justify-content:space-between;padding:9px 10px;background:#f4f5f6;border-bottom:1px solid #e5e7eb}.battle-week-item{display:block;width:calc(100% - 12px);margin:6px;padding:7px 8px;border:0;border-left:4px solid #222;border-radius:8px;text-align:left;background:#f7f8f9;cursor:pointer}.battle-week-item.wait{border-left-style:dashed}.battle-week-item.milestone{border-left-width:7px}.battle-week-item strong,.battle-week-item small{display:block}.battle-week-empty{display:block;text-align:center;color:#a0a6ad;padding:24px 0}.battle-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}.battle-project-card{text-align:left;cursor:pointer;border:1px solid var(--border,#dfe3e8);transition:transform .15s ease,box-shadow .15s ease}.battle-project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.09)}.battle-progress{height:7px;background:#e8ebee;border-radius:999px;overflow:hidden;margin:14px 0 7px}.battle-progress span{display:block;height:100%;background:#111}.battle-project-summary{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.battle-project-summary h1{margin:.15rem 0}.battle-scope{max-width:820px}.battle-project-kpis{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:10px;min-width:360px}.battle-project-kpis>div{padding:12px;border-radius:12px;background:#f4f5f6}.battle-project-kpis span,.battle-project-kpis strong{display:block}.battle-project-kpis strong{font-size:1.25rem;margin-top:4px}.battle-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px}.battle-complete-toggle{display:flex;gap:8px;align-items:center}.battle-gantt{margin-top:14px;padding:0;overflow:hidden}.battle-gantt-scroll{overflow:auto;max-width:100%}.battle-gantt-inner{position:relative;min-width:calc(280px + var(--bp-days) * var(--bp-day))}.battle-gantt-header,.battle-gantt-row{display:grid;grid-template-columns:280px calc(var(--bp-days) * var(--bp-day));min-height:62px}.battle-gantt-header{position:sticky;top:0;z-index:7;background:#fff;border-bottom:2px solid #222}.battle-task-label{display:flex;align-items:center;gap:8px;padding:10px 12px;border-right:1px solid #dfe3e8;border-bottom:1px solid #eceff1;background:#fff}.battle-task-label.sticky{position:sticky;left:0;z-index:5}.battle-gantt-header .battle-task-label{font-weight:800;z-index:9}.battle-task-open{flex:1;border:0;background:none;text-align:left;padding:0;cursor:pointer}.battle-task-name,.battle-task-open small{display:block}.battle-task-open small{color:#68707a;margin-top:3px}.battle-complete-btn{border:1px solid #cfd4d9;background:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer}.battle-date-track,.battle-row-track{display:grid;grid-template-columns:repeat(var(--bp-days),var(--bp-day));position:relative}.battle-date-cell,.battle-grid-day{border-right:1px solid #e5e7eb}.battle-date-cell{padding:8px 4px;text-align:center;background:#f4f5f6}.battle-date-cell strong,.battle-date-cell span{display:block;font-size:.75rem}.battle-date-cell.today,.battle-grid-day.today{background:rgba(0,0,0,.045)}.battle-row-track{min-height:62px;border-bottom:1px solid #eceff1}.battle-bar{position:absolute;top:13px;height:36px;border:0;border-radius:9px;background:#222;color:#fff;text-align:left;padding:0 10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:grab;touch-action:none;box-shadow:0 2px 6px rgba(0,0,0,.12)}.battle-bar.wait{background:#6f747a;border:2px dashed #fff}.battle-bar.milestone{background:#111}.battle-bar.in-progress{box-shadow:0 0 0 3px rgba(0,0,0,.16)}.battle-bar.blocked{background:#8b2d2d}.battle-bar.dragging{opacity:.72;cursor:grabbing;z-index:20}.battle-today-line{position:absolute;top:0;bottom:0;width:2px;background:#111;z-index:6;pointer-events:none}.battle-today-line span{position:sticky;top:0;display:inline-block;transform:translateX(-50%);background:#111;color:#fff;border-radius:0 0 6px 6px;padding:3px 6px;font-size:.65rem;font-weight:800}.battle-no-open,.battle-empty-project{padding:36px;text-align:center}.battle-no-open span{display:block;color:#737a82;margin-top:6px}.battle-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px 12px;padding:9px 10px;border:1px solid #dfe3e8;border-radius:10px;max-height:160px;overflow:auto}.battle-choice-grid label{display:flex;gap:7px;align-items:center;margin:0}.battle-field-label{display:block;font-weight:700;margin-bottom:5px}.battle-task-dialog{max-width:780px;width:min(94vw,780px)}
@media(max-width:900px){.battle-week-grid{grid-template-columns:repeat(3,1fr)}.battle-project-summary{display:block}.battle-project-kpis{min-width:0;margin-top:14px}.battle-toolbar{flex-wrap:wrap}.battle-gantt-header,.battle-gantt-row{grid-template-columns:220px calc(var(--bp-days) * var(--bp-day))}.battle-gantt-inner{min-width:calc(220px + var(--bp-days) * var(--bp-day))}.battle-today-line{display:none}}
@media(max-width:620px){.battle-week-grid{grid-template-columns:repeat(2,1fr)}.battle-week-head{display:block}.battle-week-head .btn{margin-top:10px}.battle-project-kpis{grid-template-columns:1fr}.battle-toolbar{align-items:stretch}.battle-toolbar>*{width:100%}.battle-task-dialog .form-grid.two{grid-template-columns:1fr}.battle-task-dialog .span-two{grid-column:auto}}

.battle-resize-handle{position:absolute;right:0;top:0;width:12px;height:100%;cursor:ew-resize;background:rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.35)}
.battle-task-dialog input[readonly]{background:#f1f3f5;color:#5d646c}

/* CTPro 3.4.0.20 — Battle Plan management scheduling extensions */
.battle-command-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.battle-command-range{display:flex;gap:6px}.battle-week-grid.battle-command-today{grid-template-columns:minmax(280px,520px)}.battle-week-grid.battle-command-today .battle-week-day{min-height:150px}.battle-week-grid.battle-command-month{grid-template-columns:repeat(6,minmax(120px,1fr))}.battle-week-grid.battle-command-month .battle-week-day{min-height:92px}.battle-week-item.to-do{border-left-style:double}.battle-week-item.meeting{border-left-width:7px}.battle-task-dialog [hidden]{display:none!important}
@media(max-width:900px){.battle-week-grid.battle-command-month{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.battle-command-actions{align-items:flex-start;justify-content:flex-start;margin-top:10px}.battle-week-grid.battle-command-today,.battle-week-grid.battle-command-month{grid-template-columns:1fr 1fr}.battle-week-grid.battle-command-today{grid-template-columns:1fr}.battle-command-range{width:100%}.battle-command-range .btn{flex:1}}


/* CTPro 3.4.0.22 Diesel Market Intelligence */
.ctpro-wrap .diesel-market-card{padding:16px 18px;border-left:7px solid var(--orange);}
.ctpro-wrap .diesel-market-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.ctpro-wrap .diesel-market-head h2{margin:3px 0 0}.ctpro-wrap .diesel-source{font-size:.78rem;color:#68707a;text-align:right}
.ctpro-wrap .diesel-market-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:stretch}.ctpro-wrap .diesel-market-grid>div{background:#f7f8f9;border:1px solid #dfe3e8;border-radius:10px;padding:10px 12px;min-width:0}.ctpro-wrap .diesel-market-grid span,.ctpro-wrap .diesel-market-grid label{display:block;color:#59616b;font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.03em}.ctpro-wrap .diesel-market-grid strong{display:block;font-size:1.32rem;margin-top:3px;white-space:nowrap}.ctpro-wrap .diesel-market-grid small{display:block;color:#737a82;margin-top:3px;font-size:.72rem}.ctpro-wrap .diesel-start input{width:100%;margin-top:5px;padding:7px 8px;border:1px solid #cfd5d9;border-radius:7px;background:#fff}.ctpro-wrap .diesel-disclaimer{margin:9px 2px 0;color:#737a82;font-size:.72rem}.ctpro-wrap .diesel-market-card.is-stale{border-left-color:#9b7a1d}.ctpro-wrap .diesel-market-card.has-error{border-left-color:#9a3030}
@media(max-width:1050px){.ctpro-wrap .diesel-market-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.ctpro-wrap .diesel-market-grid{grid-template-columns:repeat(2,1fr)}.ctpro-wrap .diesel-market-head{display:block}.ctpro-wrap .diesel-source{text-align:left;margin-top:5px}}
\n/* 3.4.0.25 — Battle Plan trade/category colors */
.battle-trade-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding:10px 14px;border:1px solid var(--border,#dfe3e8);border-radius:12px;background:#fff;font-size:.78rem;color:#59616b}.battle-trade-legend>strong{color:#222;letter-spacing:.06em}.battle-trade-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.battle-trade-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:0 0 10px}.battle-task-name{display:flex;align-items:center;gap:7px}.battle-bar.trade-management,.battle-trade-dot.trade-management{background:#f59e0b!important}.battle-bar.trade-inspection,.battle-trade-dot.trade-inspection{background:#d62828!important}.battle-bar.trade-excavation,.battle-trade-dot.trade-excavation{background:#f2c94c!important}.battle-bar.trade-concrete,.battle-trade-dot.trade-concrete{background:#7b8188!important}.battle-bar.trade-carpentry,.battle-trade-dot.trade-carpentry{background:#8b5a2b!important}.battle-bar.trade-plumbing,.battle-trade-dot.trade-plumbing{background:#2878b5!important}.battle-bar.trade-electrical,.battle-trade-dot.trade-electrical{background:#111!important}.battle-bar.trade-hvac,.battle-trade-dot.trade-hvac{background:#27864a!important}.battle-bar.trade-steel,.battle-trade-dot.trade-steel{background:#52616b!important}.battle-bar.trade-roofing,.battle-trade-dot.trade-roofing{background:#7a3045!important}.battle-bar.trade-drywall,.battle-trade-dot.trade-drywall{background:#c8ad7f!important}.battle-bar.trade-landscaping,.battle-trade-dot.trade-landscaping{background:#718c36!important}.battle-bar.trade-utilities,.battle-trade-dot.trade-utilities{background:#7257a8!important}.battle-bar.trade-other,.battle-trade-dot.trade-other{background:#62666b!important}.battle-bar.trade-excavation,.battle-bar.trade-drywall{color:#111}.battle-bar.blocked{outline:3px solid #8b2d2d;outline-offset:-3px}.battle-week-item.trade-management{border-left-color:#f59e0b}.battle-week-item.trade-inspection{border-left-color:#d62828}.battle-week-item.trade-excavation{border-left-color:#f2c94c}.battle-week-item.trade-concrete{border-left-color:#7b8188}.battle-week-item.trade-carpentry{border-left-color:#8b5a2b}.battle-week-item.trade-plumbing{border-left-color:#2878b5}.battle-week-item.trade-electrical{border-left-color:#111}.battle-week-item.trade-hvac{border-left-color:#27864a}.battle-week-item.trade-steel{border-left-color:#52616b}.battle-week-item.trade-roofing{border-left-color:#7a3045}.battle-week-item.trade-drywall{border-left-color:#c8ad7f}.battle-week-item.trade-landscaping{border-left-color:#718c36}.battle-week-item.trade-utilities{border-left-color:#7257a8}.battle-week-item.trade-other{border-left-color:#62666b}@media(max-width:700px){.battle-trade-legend{gap:7px 10px}.battle-trade-legend>strong{width:100%}}\n/* v3.4.0.27 calendar addition: scoped, preserving all original CTPro styling */
.ctcal-header,.ctcal-controls,.ctcal-form-row,.ctcal-item,.ctcal-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ctcal-header{justify-content:space-between}.ctcal-controls{margin:16px 0}.ctcal-controls label{display:flex;align-items:center;gap:8px}.ctcal-form{padding:18px;margin:16px 0}.ctcal-form-row>*{flex:1;min-width:140px}.ctcal-form input,.ctcal-form select,.ctcal-form textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #b9c1c8;border-radius:7px}.ctcal-form label{display:block;margin:8px 0}.ctcal-item{border-bottom:1px solid #d8dde2;padding:14px 4px;align-items:flex-start}.ctcal-marker{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:7px;color:white;font-weight:900}.ctcal-item-body{flex:1;min-width:170px}.ctcal-item-body small{display:block;opacity:.7;margin-top:3px}.ctcal-item-body p{white-space:pre-wrap;margin:8px 0}.ctcal-money{border-left:4px solid #137c43;padding-left:10px}.ctcal-actions{gap:6px}.ctcal-item-body a{display:inline-block;margin-top:5px}.ctcal-subtle{font-size:.85em;opacity:.7}

/* 3.4.0.27 Command Calendar paper-sheet refinement: isolated to calendar */
.ctpro-wrap #ctproCalendar.ctcal-paper{padding:0!important;overflow:hidden;border:1px solid #d7d1c7;border-radius:14px;background:#fffdf8;box-shadow:0 3px 14px rgba(30,30,30,.09);margin:0 0 18px;scroll-margin-top:12px}
.ctcal-paper-ribbon{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#292929;color:#ffbf4c;border-bottom:5px solid #f5a623;padding:12px 20px;font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.ctcal-ribbon-right{color:#fff0d0;font-size:.69rem;letter-spacing:.08em}
.ctcal-paper-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 22px 10px}
.ctcal-paper-heading h1{font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.16;margin:7px 0 9px}
.ctcal-paper-heading .muted{margin:0}
.ctcal-date-tile{background:#f5a623;border:2px solid #d98600;color:#1e1e1e;min-width:118px;min-height:108px;padding:9px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;box-shadow:3px 4px 0 #292929;text-align:center;flex-shrink:0}
.ctcal-date-tile span{font-size:.69rem;font-weight:900;letter-spacing:.08em}.ctcal-date-tile strong{font-size:3rem;line-height:1.04;font-weight:900;font-variant-numeric:tabular-nums}
#ctproCalendar>.ctcal-controls,#ctproCalendar>.ctcal-form,#ctproCalendar>.ctcal-header,#ctproCalendar>.ctcal-subtle,#ctproCalendar>#calLastScan,#ctproCalendar>#calList{margin-left:20px;margin-right:20px}
#ctproCalendar>#calList{padding-bottom:18px}
#ctproCalendar>.ctcal-header h2{margin:14px 0 4px}
@media(max-width:650px){.ctcal-paper-ribbon{padding:9px 12px;font-size:.68rem;letter-spacing:.08em}.ctcal-ribbon-right{display:none}.ctcal-paper-heading{padding:15px 12px 6px;align-items:flex-start;gap:8px}.ctcal-paper-heading h1{font-size:1.35rem}.ctcal-paper-heading .muted{font-size:.85rem}.ctcal-date-tile{min-width:74px;min-height:82px;padding:6px;box-shadow:2px 3px 0 #292929}.ctcal-date-tile strong{font-size:2.15rem}.ctcal-date-tile span{font-size:.56rem}#ctproCalendar>.ctcal-controls,#ctproCalendar>.ctcal-form,#ctproCalendar>.ctcal-header,#ctproCalendar>.ctcal-subtle,#ctproCalendar>#calLastScan,#ctproCalendar>#calList{margin-left:12px;margin-right:12px}.ctcal-controls{gap:8px}.ctcal-controls label{flex-wrap:wrap}.ctcal-form{padding:12px}.ctcal-item{gap:7px}.ctcal-item-body{min-width:0}.ctcal-actions{width:100%;justify-content:flex-end}}

/* CTPro 3.4.0.29 — manual scheduling month overview */
#ctproCalendar .ctcal-month-toggle{align-self:end;white-space:normal;}
#ctproCalendar .ctcal-month-panel{width:min(100%,365px);padding:14px;background:#fff;border:2px solid #ed9a1c;border-radius:12px;box-shadow:0 6px 20px #0002;flex-basis:100%;box-sizing:border-box;color:#222;}
#ctproCalendar .ctcal-month-panel[hidden]{display:none!important;}
#ctproCalendar .ctcal-month-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;background:#222;color:white;border-radius:7px;padding:5px 8px;}
#ctproCalendar .ctcal-month-head button{border:0;background:transparent;color:#ffae2b;font-size:30px;cursor:pointer;padding:0 12px;}
#ctproCalendar .ctcal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center;}
#ctproCalendar .ctcal-weekday{font-weight:700;color:#6d6d6d;font-size:13px;padding:5px 0;}
#ctproCalendar .ctcal-month-day{position:relative;min-height:43px;border:1px solid transparent;background:#f7f3eb;color:#202020;border-radius:6px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;}
#ctproCalendar .ctcal-month-day.has-tasks{background:#fff0cb;border-color:#e5a333;}
#ctproCalendar .ctcal-month-day.selected{outline:2px solid #242424;outline-offset:-2px;}
#ctproCalendar .ctcal-month-day i,#ctproCalendar .ctcal-dot{width:7px;height:7px;background:#ef9210;border-radius:50%;display:inline-block;}
#ctproCalendar .ctcal-month-hint{font-size:12px;color:#606060;margin:12px 0 0;line-height:1.4;}
@media(max-width:650px){#ctproCalendar .ctcal-month-panel{width:100%;}#ctproCalendar .ctcal-month-day{min-height:39px;}}

/* 3.4.0.30 — Estimate appointments create/reuse estimator customers. */
#ctproCalendar .ctcal-estimate-customer{margin:14px 0;padding:14px;border:2px solid #db2777;border-radius:10px;background:#fff1f7;}
#ctproCalendar .ctcal-estimate-customer[hidden]{display:none!important;}
#ctproCalendar .ctcal-estimate-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px;color:#831843;}
#ctproCalendar .ctcal-estimate-head strong{font-size:1.05rem;}
#ctproCalendar .ctcal-estimate-head span{font-size:.84rem;opacity:.8;}

/* 3.4.0.33 — Daily Log vertical Rolodex. Isolated styles; Command Center and Notepad unchanged. */
.ctpro-wrap #ctproDailyLog.ctdl{margin:0;padding:0;overflow:hidden;border:1px solid #d9d3c8;border-radius:13px;background:#fffdf8;box-shadow:0 3px 12px rgba(27,28,30,.08);min-width:0}
.ctpro-wrap .ctdl-head{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#292929;color:#fff3dd;border-bottom:3px solid var(--orange,#f5a623);padding:6px 12px}
.ctpro-wrap .ctdl-heading{display:flex;align-items:center;gap:9px;min-width:0;font-weight:900;letter-spacing:.09em;font-size:.82rem;white-space:nowrap}
.ctpro-wrap .ctdl-crest{color:#ffbf4c;font-size:1.23rem;line-height:1}
.ctpro-wrap .ctdl-tag{font-size:.59rem;letter-spacing:.13em;font-weight:800;color:#ccbea8;white-space:nowrap}
.ctpro-wrap .ctdl-archive-toggle{flex-shrink:0;cursor:pointer;background:transparent;border:1px solid #6b6151;border-radius:6px;color:#ffe2a5;font-size:.70rem;font-weight:700;line-height:1.25;padding:5px 9px;min-height:28px}
.ctpro-wrap .ctdl-archive-toggle:hover,.ctpro-wrap .ctdl-archive-toggle[aria-pressed="true"]{background:#4a4032;color:#fff}
.ctpro-wrap .ctdl-body{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:0;padding:0 7px 0 11px;position:relative}
.ctpro-wrap .ctdl-wheel{height:144px;min-height:144px;overflow-x:hidden;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#d6b675 transparent;outline-offset:-3px;background:linear-gradient(#eee8deaa,transparent 13%,transparent 87%,#eee8deaa);border-radius:5px}
.ctpro-wrap .ctdl-wheel:focus-visible{outline:2px solid #b46f0c}
.ctpro-wrap .ctdl-row{height:48px;max-height:48px;min-height:48px;box-sizing:border-box;display:flex;align-items:center;border-bottom:1px solid #e5dfd3;scroll-snap-align:start;position:relative;min-width:0;padding-left:7px;background:transparent;transition:background-color .12s}
.ctpro-wrap .ctdl-row::before{content:'';width:4px;height:25px;border-radius:3px;background:var(--ctdl-category,#8b65a4);flex:none;margin-right:7px}
.ctpro-wrap .ctdl-row:hover,.ctpro-wrap .ctdl-row.is-active{background:#fff2d6}
.ctpro-wrap .ctdl-note-open{display:flex;align-items:center;gap:8px;flex:1;min-width:0;background:transparent;border:0;padding:6px 0;color:#292929;text-align:left;cursor:pointer;height:100%;font:inherit}
.ctpro-wrap .ctdl-note-open:focus-visible,.ctpro-wrap .ctdl-icon:focus-visible,.ctpro-wrap .ctdl-wheel-nav button:focus-visible{outline:2px solid #dc8a14;outline-offset:-2px}
.ctpro-wrap .ctdl-date{color:#6b645b;font-weight:900;letter-spacing:.01em;font-size:.73rem;flex:0 0 52px;white-space:nowrap;font-variant-numeric:tabular-nums}
.ctpro-wrap .ctdl-title{flex:1;min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750;font-size:.86rem}
.ctpro-wrap .ctdl-caret{color:#95816a;flex:0 0 10px;font-size:1.05rem;line-height:1}
.ctpro-wrap .ctdl-icon{flex:0 0 29px;width:29px;min-width:29px;height:30px;margin-left:1px;display:grid;place-items:center;cursor:pointer;border:1px solid transparent;border-radius:6px;background:transparent;color:#655f58;font-size:1.16rem;font-weight:800;line-height:1;padding:0}
.ctpro-wrap .ctdl-icon:hover{background:#fff;border-color:#d8c9ac;color:#222}
.ctpro-wrap .ctdl-icon.ctdl-remove:hover{color:#a62222;background:#ffe9e8;border-color:#e7b5b5}
.ctpro-wrap .ctdl-icon.ctdl-restore{color:#21754c}
.ctpro-wrap .ctdl-wheel-nav{border-left:1px solid #e9e0d0;display:grid;grid-template-rows:1fr 1fr;align-items:stretch;margin:4px 0;padding-left:3px}
.ctpro-wrap .ctdl-wheel-nav button{background:#f2eadb;border:1px solid #ded1b9;border-radius:5px;padding:0;cursor:pointer;color:#6c5b40;font-size:11px;font-weight:900}
.ctpro-wrap .ctdl-wheel-nav button:first-child{margin-bottom:4px}
.ctpro-wrap .ctdl-wheel-nav button:hover{background:#f7d999;color:#242424}
.ctpro-wrap .ctdl-empty{min-height:144px;padding:45px 14px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;color:#786f63;font-size:.82rem;text-align:center}
.ctpro-wrap .ctdl-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#f5f1e9;padding:6px 13px;color:#71695d;font-size:.67rem;font-weight:650;letter-spacing:.01em}
.ctpro-wrap #ctdlCount{white-space:nowrap;font-weight:850;color:#44382a}
.ctpro-wrap .ctdl-detail{padding:13px 15px 14px;background:#fff8e9;border-top:2px solid #e9c57a;color:#272727}
.ctpro-wrap .ctdl-detail[hidden]{display:none!important}
.ctpro-wrap .ctdl-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ctpro-wrap .ctdl-detail-head strong{font-weight:900;font-size:.95rem;overflow-wrap:anywhere}
.ctpro-wrap .ctdl-detail-head span{font-size:.74rem;color:#766a5d}
.ctpro-wrap .ctdl-detail-close{background:transparent;border:0;color:#665f56;cursor:pointer;font-size:1.45rem;padding:0 5px;line-height:1}
.ctpro-wrap .ctdl-detail-meta{display:flex;flex-wrap:wrap;gap:5px 9px;margin:6px 0 7px;color:#6c675e;font-size:.73rem}
.ctpro-wrap .ctdl-detail-meta span+span::before{content:'·';margin-right:9px;color:#b5aa9b}
.ctpro-wrap .ctdl-detail-notes{margin:8px 0;font-size:.87rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.ctpro-wrap .ctdl-detail-notes.is-empty{color:#817b71;font-style:italic}
.ctpro-wrap .ctdl-detail-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}
.ctpro-wrap .ctdl-action-btn{background:#fff;border:1px solid #c5b8a1;border-radius:6px;padding:8px 11px;cursor:pointer;font-size:.77rem;font-weight:800;color:#3d362d}
.ctpro-wrap .ctdl-action-btn.primary{background:#ed9a1c;border-color:#d78912;color:#242424}
.ctpro-wrap .ctdl-action-btn.danger{color:#a32323}
.ctpro-wrap .ctdl-edit-form label{display:block;font-weight:800;font-size:.77rem;color:#52483c;margin-top:9px}
.ctpro-wrap .ctdl-edit-form input,.ctpro-wrap .ctdl-edit-form textarea,.ctpro-wrap .ctdl-edit-form select{display:block;width:100%;box-sizing:border-box;margin-top:4px;background:#fff;border:1px solid #cdbfa9;border-radius:7px;color:#222;padding:8px 9px;font-size:.85rem}
.ctpro-wrap .ctdl-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:650px){
 .ctpro-wrap .ctdl-head{padding:6px 9px}.ctpro-wrap .ctdl-heading{gap:6px;font-size:.75rem}
 .ctpro-wrap .ctdl-tag{display:none}.ctpro-wrap .ctdl-date{flex-basis:45px;font-size:.69rem}
 .ctpro-wrap .ctdl-note-open{gap:3px}.ctpro-wrap .ctdl-title{font-size:.79rem}
 .ctpro-wrap .ctdl-icon{flex-basis:27px;min-width:27px;width:27px;font-size:1rem}
 .ctpro-wrap .ctdl-row::before{margin-right:4px}.ctpro-wrap .ctdl-foot{font-size:.60rem;padding:6px 9px}
 .ctpro-wrap .ctdl-edit-grid{grid-template-columns:1fr 1fr}.ctpro-wrap .ctdl-edit-grid label:first-child{grid-column:span 2}
}
@media(prefers-reduced-motion:reduce){.ctpro-wrap .ctdl-row{transition:none}.ctpro-wrap .ctdl-wheel{scroll-behavior:auto}}

/* CTPro 3.4.0.34 — quick Daily Log shortcut and floating-icon-safe bottom navigation.
   Preserve all preexisting command-center layout and interactive calendar behavior. */
.ctpro-wrap #ctproDailyLog{scroll-margin-top:96px}
.ctpro-wrap .bottom-nav button{flex:0 0 auto;white-space:nowrap}
.ctpro-wrap .bottom-nav .bottom-nav-dead-zone{display:none;pointer-events:none}
@media (max-width:1400px){
  .ctpro-wrap .bottom-nav{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;}
  .ctpro-wrap .bottom-nav::-webkit-scrollbar{display:none}
  .ctpro-wrap .bottom-nav .bottom-nav-dead-zone{
    display:block;
    flex:0 0 max(120px, calc(100px + env(safe-area-inset-right, 0px)));
    height:1px;
  }
}
@media (max-width:700px){.ctpro-wrap #ctproDailyLog{scroll-margin-top:12px}}

/* CTPro 3.4.0.35 — shared company Daily Log scope switch, read-only team entries. */
.ctpro-wrap .ctdl-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}
.ctpro-wrap .ctdl-scope{display:flex;align-items:center;border:1px solid #6b6151;border-radius:7px;overflow:hidden;flex-shrink:0;background:#1e1e1e}
.ctpro-wrap .ctdl-scope button{border:0;border-radius:0;background:transparent;color:#e6d9c4;padding:6px 9px;cursor:pointer;font-size:.69rem;line-height:1.25;white-space:nowrap;font-weight:800}
.ctpro-wrap .ctdl-scope button+button{border-left:1px solid #645b4e}
.ctpro-wrap .ctdl-scope button.is-selected{background:#f3b755;color:#29231b}
.ctpro-wrap .ctdl-scope button:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.ctpro-wrap .ctdl-by{max-width:76px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#796b59;font-size:.66rem;font-weight:700}
.ctpro-wrap .ctdl-read-only{width:29px;flex:0 0 29px;text-align:center;color:#a79a88;font-weight:800;font-size:.9rem}
.ctpro-wrap .ctdl-readonly-message{font-size:.74rem;color:#735f40;font-weight:750;margin:7px 0 3px}
@media(max-width:780px){.ctpro-wrap .ctdl-head{gap:4px;padding:6px 7px}.ctpro-wrap .ctdl-heading{font-size:.73rem;gap:5px;letter-spacing:.03em}.ctpro-wrap .ctdl-crest{font-size:1rem}.ctpro-wrap .ctdl-head-actions{gap:4px}.ctpro-wrap .ctdl-scope button{font-size:.63rem;padding:6px 6px}.ctpro-wrap .ctdl-archive-toggle{font-size:.61rem;padding:6px 5px}.ctpro-wrap .ctdl-by{display:none}}
@media(max-width:390px){.ctpro-wrap .ctdl-crest{display:none}.ctpro-wrap .ctdl-heading{font-size:.7rem}.ctpro-wrap .ctdl-scope button{padding:5px 4px}.ctpro-wrap .ctdl-head{padding:5px 4px}}


/* CTPro 3.4.0.36 — legacy note ownership review, visible only to site admins. */
.ctpro-wrap .ctdl-owner-form{border-top:1px solid #e8dbc7;padding-top:8px}
.ctpro-wrap .ctdl-owner-form label{display:block;margin-top:10px;font-size:.79rem;color:#52483c;font-weight:800}
.ctpro-wrap .ctdl-owner-form select{display:block;box-sizing:border-box;width:100%;background:#fff;color:#252525;border:1px solid #cdbfa9;border-radius:7px;padding:9px;margin-top:5px;font-size:.84rem}
.ctpro-wrap .ctdl-owner-guidance{font-size:.76rem;color:#655743;line-height:1.5;margin:8px 0}

/* CTProseidon Phase 1: administrator shortcuts; existing layout preserved. */
.ctps-workspaces{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 18px;background:#292929;color:#fff;border-bottom:2px solid #f5a623}
.ctps-label{font-size:11px;font-weight:800;letter-spacing:.1em;color:#f5a623;margin-right:8px}
.ctps-workspace{border:1px solid #777;background:#fff;color:#171717;border-radius:7px;padding:7px 11px;font-weight:700;cursor:pointer}
.ctps-workspace:focus-visible{outline:3px solid #f5a623;outline-offset:2px}
.ctps-phase{font-size:11px;color:#ddd;margin-left:auto}
@media(max-width:600px){.ctps-workspaces{padding:8px;gap:5px}.ctps-workspace{font-size:12px;padding:7px}.ctps-phase{width:100%;margin:0}}

/* CTProseidon .42 — employee action polish */
.employee-row{gap:20px;flex-wrap:wrap}.employee-row .employee-identity{min-width:240px;flex:1 1 340px}.employee-row .employee-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px;flex:0 1 auto}.employee-row .employee-actions .btn{width:auto;min-width:110px;white-space:nowrap}.ctpro-employee-dialog{width:min(94vw,560px);max-width:560px;border:1px solid #d5d5d5;border-radius:16px;padding:28px;box-shadow:0 18px 60px #0005}.ctpro-employee-dialog::backdrop{background:#0008}.ctpro-employee-dialog form{display:grid;gap:16px}.ctpro-employee-dialog label{display:grid;gap:8px;font-weight:700}.ctpro-employee-dialog select,.ctpro-employee-dialog input{width:100%;padding:12px;border:1px solid #bbb;border-radius:8px;background:#fff1c3;color:#111;font:inherit}.ctpro-employee-dialog .dialog-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.ctpro-employee-dialog .danger-action{background:#fff;color:#a00;border:1px solid #a00}.ctpro-employee-dialog .danger-action:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.employee-row .employee-actions{justify-content:flex-start}.ctpro-employee-dialog{padding:18px}}
