
.ccc-brand-wrap,.ccc-frontend{font-family:Arial,sans-serif}
.ccc-brand-header{display:flex;align-items:center;gap:16px;margin:8px 0 20px}
.ccc-brand-header h1,.ccc-brand-header h2{margin:0;color:var(--ccc-primary)}
.ccc-brand-header p{margin:4px 0 0;color:#555}
.ccc-logo{width:58px;height:58px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid #ddd}
.ccc-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.ccc-stat{background:#fff;border-left:4px solid var(--ccc-accent);border-radius:10px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ccc-stat span{display:block;color:#555;margin-bottom:8px}
.ccc-stat strong{font-size:26px;color:var(--ccc-primary)}
.ccc-flex{display:grid;grid-template-columns:2fr 1fr;gap:16px}
.ccc-panel{background:#fff;border:1px solid #e6e6e6;border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.05);margin-bottom:12px}
.ccc-panel-large{min-height:500px}
.ccc-side-stack{display:grid;gap:16px}
.ccc-board{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px}
.ccc-day-col{min-width:260px;background:#f7f7f7;border-radius:10px;padding:10px;border:1px solid #ececec}
.ccc-day-col h3{margin:0 0 10px;font-size:15px;color:#111}
.ccc-day-drop{min-height:200px}
.ccc-job-card{background:#fff;border:1px solid #ececec;border-left:4px solid #24a148;border-radius:10px;padding:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:4px;cursor:move}
.ccc-list{display:grid;gap:12px}
.ccc-table{width:100%;border-collapse:collapse}
.ccc-table th,.ccc-table td{border:1px solid #ddd;padding:10px;text-align:left}
.ccc-login-note{padding:14px;border:1px solid #ddd;background:#f9f9f9;border-radius:8px;margin-bottom:12px}
.ccc-route-list{padding-left:20px}
.ccc-media-gallery-field{padding:8px 0;border-bottom:1px solid #eee}
.ccc-gallery-list{display:grid;gap:10px}
.ccc-gallery-item{background:#fafafa;border:1px solid #e5e5e5;padding:10px;border-radius:8px}
.ccc-gallery-item img{max-width:180px;height:auto;display:block;margin-bottom:8px;border:1px solid #ddd;background:#fff}
.ccc-service-board{display:grid;gap:10px}
.ccc-service-row{border:1px solid #e5e5e5;border-radius:10px;background:#fafafa;padding:10px}
.ccc-service-row-top{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;margin-bottom:8px}
.ccc-service-name{width:100%}
.ccc-drag-handle{cursor:move;color:#666}
.ccc-builder-wrap{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start;margin-top:20px}
.ccc-builder-sidebar{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px}
.ccc-builder-main{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px;overflow:auto}
.ccc-builder-list{display:grid;gap:10px}
.ccc-builder-palette-item{border:1px solid #ddd;border-radius:10px;padding:10px;background:#fafafa}
.ccc-builder-palette-item span{display:block;color:#666;margin-top:4px;font-size:12px}
.ccc-builder-canvas{position:relative;background:#fbfbfb;border:2px dashed #cfd4d9;box-shadow:inset 0 0 0 1px #fff;background-image:linear-gradient(to right,#f0f0f0 1px,transparent 1px),linear-gradient(to bottom,#f0f0f0 1px,transparent 1px);background-size:20px 20px}
.ccc-canvas-block{position:absolute;border:1px solid #c8d0d9;background:#fff;border-radius:10px;box-shadow:0 3px 10px rgba(0,0,0,.06);overflow:hidden;min-width:80px;min-height:40px}
.ccc-canvas-toolbar{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:#f6f8fa;border-bottom:1px solid #e5e7eb;font-size:12px}
.ccc-canvas-title{font-weight:700}
.ccc-canvas-actions .button-link{font-size:11px;margin-left:8px;text-decoration:none}
.ccc-canvas-demo{padding:10px;font-size:13px;color:#444}
.ccc-hidden-block{opacity:.35}
.ccc-ph{padding:8px;border:1px solid #ddd;background:#fff;border-radius:8px}
.ccc-pill{display:inline-block;background:#ecfdf3;color:#166534;border-radius:999px;padding:4px 10px}
.ui-resizable-se{width:14px;height:14px;right:0;bottom:0;background:#24a148;border-top-left-radius:8px;cursor:se-resize}
@media (max-width:1100px){.ccc-builder-wrap{grid-template-columns:1fr}}
@media (max-width:960px){.ccc-flex{grid-template-columns:1fr}.ccc-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ccc-builder-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.ccc-builder-control-card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px}
.ccc-canvas-guide{position:absolute;background:#ef4444;pointer-events:none;z-index:9999;display:none}
.ccc-canvas-guide.v{width:1px;top:0;bottom:0}
.ccc-canvas-guide.h{height:1px;left:0;right:0}
.ccc-canvas-rotator{display:inline-block;margin-left:10px;font-size:11px}
@media (max-width:1100px){.ccc-builder-controls{grid-template-columns:1fr}}

.ccc-builder-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.ccc-builder-control-card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px}
.ccc-canvas-guide{position:absolute;background:#ef4444;pointer-events:none;z-index:9999;display:none}
.ccc-canvas-guide.v{width:1px;top:0;bottom:0}
.ccc-canvas-guide.h{height:1px;left:0;right:0}
.ccc-canvas-rotator{display:inline-block;margin-left:10px;font-size:11px}
@media (max-width:1100px){.ccc-builder-controls{grid-template-columns:1fr}}

.ccc-accent-line{height:6px;width:100%;}
.ccc-canvas-preview{margin-top:14px;padding:16px;border:2px solid #d62828;border-radius:10px}
.ccc-canvas-preview-header,.ccc-canvas-preview-footer{padding:8px 0}
.ccc-canvas-preview-header{border-bottom:1px solid currentColor}
.ccc-canvas-preview-footer{border-top:1px solid currentColor;margin-top:10px}
.ccc-layout-split .ccc-canvas-preview-body{columns:2 220px;column-gap:24px}
.ccc-layout-bold{border-width:4px}

.ccc-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#ccc-service-list{display:grid;gap:12px}
.ccc-service-item{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:start;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff}
.ccc-service-handle{cursor:move;font-size:20px;line-height:1;padding-top:10px;text-align:center}
.ccc-service-fields p{margin:0 0 8px}
.ccc-service-fields input,.ccc-service-fields textarea{width:100%}
.ccc-canvas-preview{margin-top:14px;padding:16px;border:2px solid #d62828;border-radius:10px}
.ccc-canvas-preview-header,.ccc-canvas-preview-footer{padding:8px 0}
.ccc-canvas-preview-header{border-bottom:1px solid currentColor}
.ccc-canvas-preview-footer{border-top:1px solid currentColor;margin-top:10px}
.ccc-layout-split .ccc-canvas-preview-body{columns:2 220px;column-gap:24px}
.ccc-layout-bold{border-width:4px}
.ccc-canvas-services{margin:14px 0}
@media (max-width:960px){.ccc-color-grid{grid-template-columns:1fr}}

.ccc-service-item{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:start;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff;margin-bottom:10px}.ccc-service-handle{cursor:move;font-size:20px;line-height:1;padding-top:10px;text-align:center}.ccc-service-fields p{margin:0 0 8px}.ccc-service-fields input,.ccc-service-fields textarea{width:100%}


/* Dashboard UI v6.6.2 */
.cctk-dashboard{max-width:1200px}
.cctk-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;border:1px solid #dcdcde;border-radius:16px;background:#fff;margin-top:20px}
.cctk-hero h1{margin:0 0 8px 0}
.cctk-sub{margin:0;color:#50575e;font-size:14px}
.cctk-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.cctk-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:20px}
.cctk-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:18px}
.cctk-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#646970}
.cctk-value{font-size:32px;font-weight:700;line-height:1.2;margin-top:8px}
.cctk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.cctk-panel{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:20px}
.cctk-panel h2{margin-top:0}
.cctk-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cctk-link{display:block;padding:12px 14px;border:1px solid #dcdcde;border-radius:12px;background:#f6f7f7;text-decoration:none;font-weight:600}
.cctk-link:hover{background:#fff}
.cctk-list,.cctk-steps{margin:0 0 0 18px}
@media (max-width:960px){
  .cctk-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cctk-grid{grid-template-columns:1fr}
  .cctk-hero{flex-direction:column}
}



/* Operations Suite v6.7.0 */
.cctk-dashboard{max-width:1200px}
.cctk-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;border:1px solid #dcdcde;border-radius:16px;background:#fff;margin-top:20px}
.cctk-hero h1{margin:0 0 8px 0}
.cctk-sub{margin:0;color:#50575e;font-size:14px}
.cctk-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.cctk-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:20px}
.cctk-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:18px}
.cctk-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#646970}
.cctk-value{font-size:32px;font-weight:700;line-height:1.2;margin-top:8px}
.cctk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.cctk-panel{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:20px}
.cctk-panel h2{margin-top:0}
.cctk-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cctk-link{display:block;padding:12px 14px;border:1px solid #dcdcde;border-radius:12px;background:#f6f7f7;text-decoration:none;font-weight:600}
.cctk-link:hover{background:#fff}
.cctk-list{margin:0 0 0 18px}
@media (max-width:960px){.cctk-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cctk-grid{grid-template-columns:1fr}.cctk-hero{flex-direction:column}}


.cctk-ocr-status{margin:10px 0 16px}.cctk-ocr-status p{margin:0;padding:10px 12px;background:#fff;border:1px solid #dcdcde;border-radius:8px}


/* Cleaner dashboard pro v6.8.1 */
.cctk-cleaner-dashboard{max-width:1100px;margin:0 auto}
.cctk-cleaner-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:18px;margin:12px 0 18px}
.cctk-cleaner-stats{display:flex;gap:12px;flex-wrap:wrap}
.cctk-stat{background:#f6f7f7;border:1px solid #dcdcde;border-radius:12px;padding:10px 14px;min-width:88px;text-align:center}
.cctk-stat strong{display:block;font-size:24px;line-height:1}
.cctk-stat span{font-size:12px;color:#50575e}
.cctk-cleaner-sections section{margin:0 0 20px}
.cctk-cleaner-job-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px;margin:0 0 14px}
.cctk-cleaner-job-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.cctk-pill{background:#eef4ff;border:1px solid #c8d7f0;border-radius:999px;padding:6px 10px;font-size:12px}
.cctk-meta{color:#50575e;font-size:13px;margin-top:4px}
.cctk-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.cctk-label{display:block;font-size:12px;color:#646970;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.cctk-detail-box{background:#f6f7f7;border-radius:12px;padding:12px;margin:0 0 12px}
.cctk-detail-box pre{white-space:pre-wrap;margin:0;font-family:inherit}
.cctk-quick-links,.cctk-status-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.cctk-progress-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.cctk-notes-area textarea{width:100%}
@media (max-width:782px){.cctk-cleaner-hero{flex-direction:column}.cctk-job-grid,.cctk-progress-row{grid-template-columns:1fr}}


/* Cleaner field tools v6.8.2 */
.cctk-timer-box,.cctk-signature-box,.cctk-media-box{background:#f6f7f7;border:1px solid #dcdcde;border-radius:12px;padding:12px;margin:0 0 12px}
.cctk-timer-display{font-size:28px;font-weight:700;margin:6px 0 10px}
.cctk-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.cctk-thumb-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cctk-thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #dcdcde;background:#fff}
.cctk-signature-pad{width:100%;max-width:100%;background:#fff;border:1px solid #dcdcde;border-radius:8px}
.cctk-signature-preview{max-width:100%;border:1px solid #dcdcde;background:#fff;border-radius:8px;margin-top:10px}
@media (max-width:782px){.cctk-media-grid{grid-template-columns:1fr}}


/* Route reorder + delete photos v6.8.3 */
.cctk-section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px}
#cctk-today-route-list .cctk-cleaner-job-card{cursor:default}
.cctk-route-drag{display:inline-block;padding:8px 10px;border:1px dashed #c3c4c7;border-radius:10px;background:#fff;font-size:12px;color:#50575e}
.cctk-route-placeholder{border:2px dashed #2271b1;border-radius:16px;min-height:120px;background:#f0f6fc;margin:0 0 14px}
.cctk-thumb-wrap{position:relative;display:inline-block}
.cctk-delete-photo-btn{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border:none;border-radius:999px;background:#b32d2e;color:#fff;cursor:pointer;line-height:22px;padding:0}
@media (max-width:782px){.cctk-section-head{flex-direction:column;align-items:flex-start}}


/* GPS + route map + uncomplete v6.8.4 */
.cctk-gps-val{font-size:12px;color:#646970;margin-top:4px;word-break:break-all}


/* issue reporting */
.cctk-issue-box{background:#fff3cd;border:1px solid #ffe69c;border-radius:10px;padding:10px;margin-top:10px}
.cctk-issue-box textarea{width:100%}


/* Field App Mode v6.9.0 */
.cctk-field-app-mode{
  max-width: 100%;
  padding-bottom: 100px;
}
.cctk-field-app-mode .cctk-cleaner-hero{
  position: sticky;
  top: 0;
  z-index: 5;
  border-radius: 0 0 18px 18px;
  margin-top: 0;
}
.cctk-app-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.cctk-install-app-btn{display:none}
.cctk-field-app-mode .cctk-cleaner-job-card{
  border-radius: 20px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.cctk-field-app-mode .cctk-status-actions .button,
.cctk-field-app-mode .cctk-quick-links .button{
  min-height: 44px;
  padding: 10px 14px;
  font-size: 14px;
}
.cctk-field-app-mode .cctk-pill{
  font-size: 13px;
}
.cctk-field-app-mode .cctk-route-drag{
  min-height: 44px;
  display:flex;
  align-items:center;
}
.cctk-field-app-mode .cctk-signature-pad{
  min-height: 180px;
}
.cctk-field-app-mode .cctk-thumb{
  width: 88px;
  height: 88px;
}
.cctk-field-app-mode.cctk-compact-mode .cctk-detail-box,
.cctk-field-app-mode.cctk-compact-mode .cctk-notes-area,
.cctk-field-app-mode.cctk-compact-mode .cctk-signature-box,
.cctk-field-app-mode.cctk-compact-mode .cctk-media-grid{
  display:none;
}
.cctk-field-app-mode.cctk-offline .cctk-cleaner-hero{
  box-shadow: inset 0 0 0 3px #f0b849;
}
.cctk-field-app-mode.cctk-offline .cctk-cleaner-hero:after{
  content:"Offline mode active";
  display:block;
  margin-top:8px;
  font-size:12px;
  color:#8a5a00;
}
@media (max-width:782px){
  .cctk-field-app-mode .cctk-cleaner-hero{
    padding:14px;
  }
  .cctk-field-app-mode .cctk-cleaner-job-card{
    padding:14px;
  }
  .cctk-field-app-mode .cctk-status-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cctk-field-app-mode .cctk-quick-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* Field App button fixes v6.9.1 */
.cctk-install-app-btn{display:none}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-job-grid{
  grid-template-columns:1fr !important;
}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-detail-box,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-notes-area,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-signature-box,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-media-grid,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-progress-row{
  display:none !important;
}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-cleaner-job-card{
  padding:12px !important;
}


/* Backend issues box v6.9.2 */
.cctk-job-issues-backend .cctk-issue-item{box-shadow:0 1px 2px rgba(0,0,0,.03)}

/* v6.9.3 issue fix */
.cctk-issue-box{background:#fff3cd;border:1px solid #ffe69c;border-radius:10px;padding:10px;margin-top:10px}.cctk-issue-box textarea{width:100%}


/* v6.9.4 full screen field app repair */
html:has(.cctk-field-app-mode), body:has(.cctk-field-app-mode){
  width:100%;
  max-width:100%;
}
.cctk-cleaner-dashboard.cctk-field-app-mode{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:0 0 110px !important;
}
.cctk-cleaner-dashboard.cctk-field-app-mode .cctk-cleaner-sections{
  padding:0 12px 20px;
}
.cctk-cleaner-dashboard.cctk-field-app-mode .cctk-cleaner-hero{
  width:100%;
  max-width:100%;
}
.cctk-cleaner-dashboard .cctk-install-app-btn{
  display:none;
}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-job-grid{
  grid-template-columns:1fr !important;
}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-detail-box,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-notes-area,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-signature-box,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-media-grid,
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-progress-row{
  display:none !important;
}
.cctk-cleaner-dashboard.cctk-compact-mode .cctk-cleaner-job-card{
  padding:12px !important;
}

/* v6.9.5 issue backend force fix */
.cctk-job-issues-backend .cctk-issue-item{box-shadow:0 1px 2px rgba(0,0,0,.03)}


/* v6.9.6 reminders */
.cctk-reminder-banner{background:#eef4ff;border:1px solid #c8d7f0;border-radius:10px;padding:10px 12px;margin:0 0 12px;color:#183153}


/* v6.9.7 signoff */
.cctk-customer-signoff-wrap{max-width:720px;margin:20px auto;padding:0 12px}
.cctk-signoff-card{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:14px;margin:0 0 16px}
.cctk-customer-signoff-form canvas{border-radius:8px}


/* v6.9.8 supervisor/signature */
#cctk-customer-signature-pad-admin,
#cctk-customer-signoff-pad{
  touch-action:none;
}


/* v6.9.9.3 admin fixes */
#cctk-completion-signature-pad-admin{touch-action:none}
.cctk-job-issues-backend .cctk-issue-item label{cursor:pointer}


/* v6.9.9.4 issue visibility */
#ccc-signature-pad,
#cctk-completion-signature-pad-admin,
.cctk-signature-pad{
  touch-action:none;
}
.cctk-inline-issues-on-job .cctk-issue-item,
.cctk-job-issues-backend .cctk-issue-item{
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}

/* v6.9.9.5 dedupe */
.cctk-inline-issues-on-job{display:none !important}


/* v6.9.9.6 backend cleanup */
.cctk-inline-issues-on-job,
.cctk-job-issues-backend{
  display:none !important;
}
#ccc-signature-pad,
#cctk-completion-signature-pad-admin,
.cctk-signature-pad{
  touch-action:none;
}


/* v6.9.9.7 cleanup */
.cctk-issue-box,
.cctk-job-issues-backend,
.cctk-inline-issues-on-job{
  display:none !important;
}
#ccc-signature-pad,
.cctk-signature-pad{
  touch-action:none;
}


/* v6.9.9.8 backend controls */
#ccc-signature-pad{
  touch-action:none;
}
.cctk-issue-box,
.cctk-job-issues-backend,
.cctk-inline-issues-on-job{
  display:none !important;
}

/* v7.0.0 completion/proof cleanup */
.cctk-signature-box,.ccc-media-gallery-field,#ccc-signature-pad,#ccc-signature-preview,#ccc-clear-signature{display:none !important;}

/* v7.0.1 remove after photos cleaner dashboard */
.cctk-after-photos,
.cctk-after-gallery,
.cctk-after-upload{
 display:none !important;
}


/* v7.0.2 remove before + after photos throughout plugin */
.ccc-media-gallery-field,
.cctk-before-photos,
.cctk-before-gallery,
.cctk-before-upload,
.cctk-after-photos,
.cctk-after-gallery,
.cctk-after-upload,
[class*="before-photo"],
[class*="after-photo"]{
  display:none !important;
}


/* v7.0.3 clean photo removal */
.ccc-media-gallery-field,
.cctk-media-grid,
.cctk-media-box,
.cctk-before-photos,
.cctk-before-gallery,
.cctk-before-upload,
.cctk-after-photos,
.cctk-after-gallery,
.cctk-after-upload,
[class*="before-photo"],
[class*="after-photo"]{
  display:none !important;
}


/* v7.1.0 client portal upgrade */
.cctk-client-portal{max-width:1200px;margin:0 auto;padding:18px}
.cctk-portal-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;background:#fff;border:1px solid #dcdcde;border-radius:18px;padding:18px;margin-bottom:16px}
.cctk-portal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cctk-client-portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cctk-portal-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px}
.cctk-portal-row{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:10px;padding:10px 0;border-bottom:1px solid #eee}
.cctk-portal-row:last-child{border-bottom:none}
.cctk-portal-form-card{grid-column:1 / -1}
.cctk-portal-success{padding:10px 12px;border:1px solid #b8e0b2;background:#effaf0;border-radius:10px;margin-bottom:12px}
@media (max-width:782px){
  .cctk-portal-hero{display:block}
  .cctk-portal-stats{grid-template-columns:1fr}
  .cctk-client-portal-grid{grid-template-columns:1fr}
  .cctk-portal-row{grid-template-columns:1fr}
}


/* v7.2.0 client portal plus */
.cctk-quick-actions{display:flex;gap:10px;flex-wrap:wrap}
.cctk-inline-rebook-form{margin:0 0 12px}
.cctk-portal-history-row{margin-bottom:8px}
.cctk-stat{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:14px}
.cctk-stat strong{display:block;font-size:28px;line-height:1.1}
.cctk-stat span{display:block;color:#50575e;margin-top:4px}


/* v7.3.0 multi portal system */
.cctk-multi-portal .cctk-portal-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.cctk-multi-portal .cctk-quick-actions{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:782px){
  .cctk-multi-portal .cctk-portal-stats{grid-template-columns:1fr}
}


/* v7.3.1 portal links fix */
input[readonly][type="url"]{
  background:#f6f7f7;
  font-family:monospace;
}


/* v7.3.2 portal routing fix */
.cctk-portal-route-body{
  background:#f6f7f7;
  margin:0;
  padding:20px;
}


/* v7.4.0 portal accounts quotes messaging */
.cctk-portal-message{border:1px solid #e5e7eb;border-radius:12px;padding:12px;margin-bottom:10px;background:#fff}
.cctk-portal-message strong{display:block}
.cctk-portal-message span{display:block;color:#6b7280;font-size:12px;margin:4px 0 8px}
.cctk-inline-quote-form{display:inline-flex;gap:8px;flex-wrap:wrap}


/* v7.4.1 invoice portal links */
.cctk-portal-invoice-row .cctk-invoice-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}


/* v7.4.2 invoice section restore */
.cctk-portal-invoice-row .cctk-invoice-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}


/* v7.5.0 wordpress portal login */
.cctk-portal-login-wrap{max-width:760px;margin:0 auto}
.cctk-portal-error{padding:10px 12px;border:1px solid #f0b7b7;background:#fff1f1;border-radius:10px;margin-bottom:12px}

/* v7.5.1 portal password tools */
.cctk-portal-tools .button{margin-right:8px;margin-bottom:8px}

/* v7.5.2 portal user sync fix */
.cctk-portal-tools .description{display:block;margin-top:6px}

/* v7.5.3 portal login redirect fix */
.cctk-portal-login-wrap form input{max-width:100%;}

/* v7.5.4 portal return url fix */
.cctk-portal-login-wrap{max-width:760px;margin:0 auto;}


/* v7.6.0 client portal mobile ready */
.cctk-client-portal,
.cctk-multi-portal{
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

.cctk-client-portal *,
.cctk-multi-portal *{
  box-sizing: border-box;
}

.cctk-portal-hero{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:20px;
}

.cctk-portal-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.cctk-portal-actions .button,
.cctk-quick-actions .button,
.cctk-inline-quote-form .button,
.cctk-inline-rebook-form .button{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:normal;
}

.cctk-portal-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:16px 0;
}

.cctk-client-portal-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.cctk-portal-card{
  min-width:0;
  overflow:hidden;
}

.cctk-portal-row{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1.3fr;
  gap:10px;
  align-items:start;
  word-break:break-word;
}

.cctk-portal-row > span,
.cctk-portal-row > strong{
  min-width:0;
}

.cctk-invoice-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.cctk-client-request-form input[type="text"],
.cctk-client-request-form input[type="email"],
.cctk-client-request-form input[type="password"],
.cctk-client-request-form input[type="date"],
.cctk-client-request-form input[type="time"],
.cctk-client-request-form input[type="url"],
.cctk-client-request-form select,
.cctk-client-request-form textarea{
  width:100% !important;
  max-width:100%;
  min-height:44px;
}

.cctk-client-request-form textarea{
  min-height:120px;
}

.cctk-client-request-form p{
  margin:0 0 14px;
}

.cctk-portal-message{
  word-break:break-word;
}

@media (max-width: 1024px){
  .cctk-portal-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cctk-client-portal-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 767px){
  .cctk-client-portal,
  .cctk-multi-portal{
    padding:12px;
  }

  .cctk-portal-hero{
    display:block;
    padding:16px;
  }

  .cctk-portal-hero h2{
    font-size:40px;
    line-height:1.05;
    margin:0 0 12px;
  }

  .cctk-portal-hero p{
    margin:0 0 14px;
  }

  .cctk-portal-actions,
  .cctk-quick-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
  }

  .cctk-portal-actions .button,
  .cctk-quick-actions .button,
  .cctk-inline-quote-form .button,
  .cctk-inline-rebook-form .button{
    width:100%;
  }

  .cctk-portal-stats{
    grid-template-columns:1fr;
    gap:10px;
  }

  .cctk-client-portal-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .cctk-portal-card{
    padding:14px;
    border-radius:16px;
  }

  .cctk-portal-card h3{
    font-size:20px;
    line-height:1.15;
    margin:0 0 12px;
  }

  .cctk-portal-row{
    grid-template-columns:1fr;
    gap:6px;
    padding:12px 0;
  }

  .cctk-portal-row strong{
    font-size:16px;
  }

  .cctk-inline-quote-form,
  .cctk-inline-rebook-form{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:8px;
  }

  .cctk-invoice-links{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  .cctk-portal-login-wrap{
    padding:12px;
  }
}

@media (max-width: 480px){
  .cctk-portal-hero h2{
    font-size:32px;
  }

  .cctk-stat strong{
    font-size:24px;
  }

  .cctk-client-request-form textarea{
    min-height:100px;
  }
}

/* v7.7.0 portal roles */
.cctk-portal-tools,.cctk-portal-login-wrap{max-width:100%;}


/* v7.8.0 client portal 2.0 */
.cctk-portal-20 .cctk-portal-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.cctk-widget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cctk-widget{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}
.cctk-widget strong{display:block;margin-bottom:6px}
.cctk-portal-notification{border:1px solid #e5e7eb;border-radius:12px;padding:12px;margin-bottom:10px;background:#fff}
.cctk-portal-notification strong{display:block}
.cctk-portal-notification span{display:block;color:#6b7280;font-size:12px;margin-top:4px}
.cctk-portal-notification.is-read{opacity:.7}
.cctk-request-tracker-row{border-left:4px solid #2d3fe0;padding-left:10px}
@media (max-width: 1024px){
  .cctk-portal-20 .cctk-portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
  .cctk-portal-20 .cctk-portal-stats{grid-template-columns:1fr}
  .cctk-widget-grid{grid-template-columns:1fr}
}


/* v7.8.1 backend messaging center */
.cctk-backend-messages{max-width:100%}
.cctk-backend-message{
  border:1px solid #dcdcde;
  background:#fff;
  border-radius:12px;
  padding:12px;
  margin:0 0 12px;
}
.cctk-backend-message.is-admin{
  border-left:4px solid #2271b1;
}
.cctk-backend-message-meta{
  color:#666;
  font-size:12px;
  margin:6px 0 10px;
}
.cctk-backend-message-body{
  white-space:normal;
  word-break:break-word;
}


/* v7.8.4 messages hub reply */
.cctk-messages-hub{max-width:1200px}
.cctk-hub-message{
  border:1px solid #dcdcde;
  background:#fff;
  border-radius:14px;
  padding:14px;
  margin:0 0 14px;
}
.cctk-hub-message.is-admin{
  border-left:4px solid #2271b1;
}
.cctk-hub-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:6px;
}
.cctk-hub-head span,
.cctk-hub-meta{
  color:#666;
  font-size:12px;
}
.cctk-hub-body{
  margin:10px 0 12px;
  word-break:break-word;
}
.cctk-hub-reply-form{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e5e7eb;
}
.cctk-hub-reply-form p{
  margin:0 0 10px;
}
.cctk-hub-reply-form textarea,
.cctk-hub-reply-form input[type="text"]{
  width:100%;
  max-width:100%;
}
@media (max-width:767px){
  .cctk-hub-head{display:block}
}


/* v7.9.0 cleaner dashboard features */
.cctk-cleaner-widgets{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 16px;
}
.cctk-cleaner-widget{
  border:1px solid #dcdcde;
  border-radius:16px;
  background:#fff;
  padding:16px;
}
.cctk-cleaner-widget strong{
  display:block;
  font-size:28px;
  line-height:1.1;
}
.cctk-cleaner-widget span{
  display:block;
  margin-top:6px;
  color:#666;
}
.cctk-cleaner-note-panel{
  margin-bottom:16px;
}
.cctk-cleaner-job-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.cctk-cleaner-quick-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:8px 0 12px;
  color:#555;
  font-size:13px;
}
.cctk-priority-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
}
.cctk-priority-badge.priority-urgent{
  background:#ffe6e6;
  color:#b42318;
}
.cctk-priority-badge.priority-standard{
  background:#eef2ff;
  color:#3949ab;
}
.cctk-priority-badge.priority-flexible{
  background:#ecfdf3;
  color:#067647;
}
@media (max-width:1024px){
  .cctk-cleaner-widgets{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:767px){
  .cctk-cleaner-widgets{
    grid-template-columns:1fr;
  }
  .cctk-cleaner-job-top{
    display:block;
  }
  .cctk-cleaner-quick-meta{
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
  }
}


/* v8.0.0 field worker app mode */
.cctk-cleaner-app-panels{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:0 0 16px;
}
.cctk-cleaner-history-list{
  display:grid;
  gap:10px;
}
.cctk-cleaner-history-item{
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  padding:10px 12px;
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.cctk-cleaner-history-item span{
  color:#666;
  font-size:12px;
}
.cctk-punch-form .button{
  min-width:120px;
}
@media (max-width:1024px){
  .cctk-cleaner-app-panels{
    grid-template-columns:1fr;
  }
}
@media (max-width:767px){
  .cctk-cleaner-history-item{
    display:block;
  }
}


/* v8.1.1 route map layout fix */
.cctk-route-map .cctk-route-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
}
.cctk-route-map .cctk-route-stop{
  display:block;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  padding:14px;
  overflow:hidden;
}
.cctk-route-map .cctk-route-stop-title{
  margin:0 0 6px;
}
.cctk-route-map .cctk-route-stop-address{
  margin:0 0 12px;
  line-height:1.45;
  word-break:break-word;
}
.cctk-route-map .cctk-route-stop-actions{
  margin-top:10px;
}
.cctk-route-map .cctk-route-stop-actions .button{
  position:static !important;
  display:inline-flex;
  width:auto;
  max-width:100%;
  white-space:normal;
}
@media (max-width:767px){
  .cctk-route-map .cctk-route-stop-actions .button{
    width:100%;
    justify-content:center;
  }
}


/* v8.1.2 route map overlay hard fix */
.cctk-route-map,
.cctk-route-map *{
  box-sizing:border-box !important;
}
.cctk-route-map .cctk-route-list{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}
.cctk-route-map .cctk-route-stop{
  display:block !important;
  position:relative !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  margin:0 0 14px !important;
  padding:14px !important;
  border:1px solid #e5e7eb !important;
  border-radius:14px !important;
  background:#fff !important;
  overflow:visible !important;
}
.cctk-route-map .cctk-route-stop-title{
  display:block !important;
  margin:0 0 8px !important;
  line-height:1.3 !important;
}
.cctk-route-map .cctk-route-stop-address{
  display:block !important;
  width:100% !important;
  margin:0 0 14px !important;
  padding:0 !important;
  line-height:1.5 !important;
  white-space:normal !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}
.cctk-route-map .cctk-route-stop-actions{
  display:block !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
.cctk-route-map .cctk-route-stop-actions .button,
.cctk-route-map a.button{
  position:static !important;
  float:none !important;
  clear:both !important;
  display:inline-flex !important;
  width:auto !important;
  max-width:100% !important;
  min-height:44px !important;
  margin:0 !important;
  white-space:normal !important;
  transform:none !important;
}
@media (max-width:767px){
  .cctk-route-map .cctk-route-stop-actions .button,
  .cctk-route-map a.button{
    width:100% !important;
    justify-content:center !important;
  }
}


/* v8.1.3 route button size fix */
.cctk-route-map .cctk-route-stop{
  min-height:auto !important;
}
.cctk-route-map .cctk-route-stop-address{
  margin-bottom:18px !important;
  padding-right:0 !important;
}
.cctk-route-map .cctk-route-stop-actions{
  margin-top:14px !important;
}
.cctk-route-map .cctk-route-stop-actions .button,
.cctk-route-map a.button{
  font-size:13px !important;
  line-height:1.2 !important;
  padding:8px 14px !important;
  min-height:36px !important;
  width:auto !important;
  max-width:240px !important;
}
@media (max-width:767px){
  .cctk-route-map .cctk-route-stop-actions .button,
  .cctk-route-map a.button{
    max-width:none !important;
    width:100% !important;
  }
}


/* v8.1.4 route link no-button fix */
.cctk-route-map .cctk-route-list{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}
.cctk-route-map .cctk-route-stop{
  display:block !important;
  margin:0 0 14px !important;
  padding:14px !important;
  border:1px solid #e5e7eb !important;
  border-radius:14px !important;
  background:#fff !important;
}
.cctk-route-map .cctk-route-stop-title{
  display:block !important;
  margin:0 0 8px !important;
}
.cctk-route-map .cctk-route-stop-address{
  display:block !important;
  margin:0 0 16px !important;
  line-height:1.5 !important;
  white-space:normal !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}
.cctk-route-map .cctk-route-stop-actions{
  display:block !important;
  margin:0 !important;
}
.cctk-route-map .cctk-route-link{
  display:inline-block !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  width:auto !important;
  max-width:220px !important;
  white-space:normal !important;
}
@media (max-width:767px){
  .cctk-route-map .cctk-route-link{
    max-width:none !important;
    width:100% !important;
    text-align:center !important;
  }
}


/* v8.2.0 route optimization */
.cctk-route-map-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.cctk-route-map-actions,
.cctk-inline-route-form{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.cctk-route-save-wrap{
  margin-top:14px;
}
@media (max-width:767px){
  .cctk-route-map-head{
    display:block;
  }
}


/* v8.4.0 dispatcher board */
.cctk-dispatcher-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:16px 0 20px;
}
.cctk-dispatcher-stat{
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:16px;
  padding:16px;
}
.cctk-dispatcher-stat strong{
  display:block;
  font-size:28px;
  line-height:1.1;
}
.cctk-dispatcher-stat span{
  display:block;
  margin-top:6px;
  color:#555;
}
.cctk-dispatcher-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.cctk-dispatcher-card{
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:18px;
  padding:16px;
}
.cctk-dispatcher-card-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
}
.cctk-dispatcher-card-head h2{
  margin:0;
  font-size:20px;
}
.cctk-dispatcher-card-head span{
  color:#555;
  font-size:13px;
}
.cctk-dispatcher-stops{
  display:grid;
  gap:12px;
}
.cctk-dispatch-stop{
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:14px;
  background:#fff;
}
.cctk-dispatch-stop-top{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.cctk-dispatch-stop-number{
  font-size:12px;
  font-weight:700;
  color:#555;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cctk-dispatch-meta{
  color:#555;
  font-size:13px;
  margin-top:6px;
}
.cctk-dispatch-address{
  margin:10px 0 12px;
  line-height:1.45;
  word-break:break-word;
}
.cctk-dispatch-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
@media (max-width:1024px){
  .cctk-dispatcher-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:767px){
  .cctk-dispatcher-stats{
    grid-template-columns:1fr;
  }
  .cctk-dispatch-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* v8.5.0 job status badges */
.cctk-status-select{
  margin-left:6px;
}

.cctk-priority-badge.priority-urgent{background:#e11d48;color:#fff;padding:2px 6px;border-radius:6px;font-size:11px}
.cctk-status-badge{display:inline-block;padding:2px 6px;border-radius:6px;font-size:11px}
.cctk-status-scheduled{background:#60a5fa;color:#fff}
.cctk-status-en_route{background:#f59e0b;color:#fff}
.cctk-status-on_site{background:#10b981;color:#fff}
.cctk-status-completed{background:#16a34a;color:#fff}
.cctk-status-needs_review{background:#ef4444;color:#fff}


/* v8.6.0 dispatch timeline */
.cctk-dispatcher-switches{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin:8px 0 18px;
}
.cctk-dispatch-filter-form{
  display:flex;
  gap:8px;
  align-items:center;
  margin-left:auto;
}
.cctk-dispatch-timeline{
  display:grid;
  gap:12px;
}
.cctk-dispatch-timeline-row{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:14px;
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:16px;
  padding:14px;
}
.cctk-dispatch-timeline-time{
  font-weight:700;
  color:#111827;
}
.cctk-dispatch-timeline-top{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:6px;
}
@media (max-width:767px){
  .cctk-dispatch-filter-form{
    width:100%;
    margin-left:0;
  }
  .cctk-dispatch-timeline-row{
    grid-template-columns:1fr;
  }
}


/* v8.7.0 recurring jobs engine */
.cctk-recurring-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:18px 0;
}
.cctk-recurring-card{
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:18px;
  padding:16px;
}
.cctk-recurring-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
@media (max-width:900px){
  .cctk-recurring-list,
  .cctk-recurring-grid{
    grid-template-columns:1fr;
  }
}


/* v8.8.0 cleaner gps tracking lite */
.cctk-cleaner-location-panel{
  margin-bottom:16px;
}
.cctk-cleaner-location-meta{
  margin:8px 0;
  color:#555;
  word-break:break-word;
}
.cctk-dispatcher-cleaner-meta{
  margin:0 0 12px;
  display:grid;
  gap:6px;
}


/* v8.8.1 location ping fix */
.cctk-location-notice{
  border-radius:12px;
  padding:10px 12px;
  margin:0 0 12px;
}
.cctk-location-notice.is-success{
  background:#ecfdf3;
  border:1px solid #abefc6;
  color:#067647;
}
.cctk-location-notice.is-error{
  background:#fff1f1;
  border:1px solid #f0b7b7;
  color:#b42318;
}


/* v8.8.2 location inline fix */
.cctk-cleaner-location-form .button{
  min-height:44px;
}


/* v8.8.3 location link layout fix */
.cctk-cleaner-location-panel{
  overflow:visible !important;
}
.cctk-cleaner-location-meta{
  display:block !important;
  margin:8px 0 12px !important;
  line-height:1.45 !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}
.cctk-cleaner-location-actions{
  display:block !important;
  clear:both !important;
  margin-top:14px !important;
}
.cctk-cleaner-location-actions .cctk-location-link{
  display:inline-block !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  max-width:220px !important;
  padding:10px 14px !important;
  background:#2d3fe0 !important;
  color:#fff !important;
  text-decoration:none !important;
  border-radius:6px !important;
  line-height:1.2 !important;
}
@media (max-width:767px){
  .cctk-cleaner-location-actions .cctk-location-link{
    display:block !important;
    max-width:none !important;
    width:100% !important;
    text-align:center !important;
  }
}


/* v8.9.0 live job status */
.cctk-job-status-buttons{
 display:flex;
 gap:10px;
 flex-wrap:wrap;
 margin-top:10px;
}
.cctk-status-form{
 margin:0;
}
.cctk-status-btn{
 padding:10px 14px;
 border:none;
 border-radius:6px;
 background:#2d3fe0;
 color:#fff;
 cursor:pointer;
}
.cctk-status-en_route{background:#f59e0b;}
.cctk-status-on_site{background:#0ea5e9;}
.cctk-status-completed{background:#16a34a;}


/* v8.9.1 job photos & reports */
.cctk-job-photos-wrap{
  display:grid;
  gap:18px;
}
.cctk-job-photo-group{
  border:1px solid #dcdcde;
  border-radius:14px;
  background:#fff;
  padding:14px;
}
.cctk-job-photo-group h4{
  margin:0 0 10px;
}
.cctk-photo-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
  gap:12px;
  margin-bottom:12px;
}
.cctk-photo-preview-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:8px;
  background:#fff;
}
.cctk-photo-preview-card img{
  width:100%;
  height:90px;
  object-fit:cover;
  border-radius:8px;
  display:block;
  margin-bottom:8px;
}
.cctk-portal-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:12px;
  margin:8px 0 14px;
}
.cctk-portal-photo-card{
  display:block;
  border:1px solid #e5e7eb;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.cctk-portal-photo-card img{
  width:100%;
  height:120px;
  object-fit:cover;
  display:block;
}
.cctk-portal-damage-notes{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:12px;
  background:#fff;
  line-height:1.5;
}
.cctk-portal-job-media-block{
  margin-bottom:16px;
}


/* v8.9.2 cleaner photo capture */
.cctk-cleaner-photo-capture{
  margin-top:14px;
}
.cctk-cleaner-photo-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.cctk-cleaner-photo-form input[type="file"]{
  width:100%;
}
@media (max-width:767px){
  .cctk-cleaner-photo-grid{
    grid-template-columns:1fr;
  }
}


/* v8.9.8 unlimited photos + delete */
.cctk-cleaner-saved-photos-wrap{
  display:grid;
  gap:16px;
  margin:0 0 16px;
}
.cctk-cleaner-saved-photo-group h4{
  margin:0 0 8px;
}
.cctk-cleaner-saved-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:12px;
}
.cctk-cleaner-saved-photo-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  padding:8px;
}
.cctk-cleaner-saved-photo-card img{
  width:100%;
  height:100px;
  object-fit:cover;
  border-radius:8px;
  display:block;
  margin-bottom:8px;
}
.cctk-cleaner-delete-photo-form{
  margin:0;
}


/* v8.9.9 backend remove button fix */
.cctk-photo-preview-card .button-link-delete{
  cursor:pointer;
}


/* v9.0.0 backend photo controls hard fix */
.cctk-upload-photos-btn,
.cctk-remove-photo{
  cursor:pointer;
}


/* v9.0.2 backend photo inline fix */
.cctk-job-photo-group .button-link-delete,
.cctk-job-photo-group .cctk-upload-photos-btn{
  cursor:pointer;
}

/* v10.1.0 pro stability pass */
.cctk-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1000px;margin:18px 0}
.cctk-health-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px}
.cctk-health-card strong{display:block;font-size:30px;line-height:1.1}
.cctk-health-card span{display:block;margin-top:6px;color:#555}
@media (max-width:900px){.cctk-health-grid{grid-template-columns:1fr}}

/* v11.1 jobs + photos migration pass */
.cctk-job-photos-wrap{display:grid;gap:18px}
.cctk-job-photo-group{border:1px solid #dcdcde;border-radius:14px;background:#fff;padding:14px}
.cctk-photo-preview-grid,.cctk-portal-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.cctk-photo-preview-card,.cctk-cleaner-photo-card{border:1px solid #e5e7eb;border-radius:12px;padding:8px;background:#fff}
.cctk-photo-preview-card img,.cctk-cleaner-photo-card img{width:100%;height:100px;object-fit:cover;border-radius:8px;display:block;margin-bottom:8px}
.cctk-cleaner-photo-box{max-width:900px}

/* v11.2 cleaners + routes + dispatch migration pass */
.cctk-cleaner-dashboard-wrap,.cctk-route-map-wrap,.cctk-dispatch-board-wrap{max-width:1100px}
.cctk-cleaner-card,.cctk-dispatch-board-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px;margin:0 0 16px}
.cctk-cleaner-card-top,.cctk-dispatch-board-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.cctk-status-pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2ff}
.cctk-dispatch-board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cctk-dispatch-item{border-top:1px solid #eef2f7;padding:12px 0}
.cctk-cleaner-location-card{margin-top:14px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
@media (max-width:900px){.cctk-dispatch-board-grid{grid-template-columns:1fr}}

/* v11.3 portal + invoices migration pass */
.cctk-portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:1100px}
.cctk-portal-card,.cctk-message-card,.cctk-invoice-card,.cctk-admin-panel{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px}
.cctk-messages-admin-list,.cctk-invoice-list,.cctk-messages-hub-wrap{display:grid;gap:16px;max-width:1000px}
.cctk-portal-login-wrap,.cctk-client-portal-wrap{max-width:1100px}
@media (max-width:900px){.cctk-portal-grid{grid-template-columns:1fr}}

/* v11.4 integration pass */
.cctk-portal-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1100px;margin:0 0 16px}
.cctk-portal-stat-card{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px}
.cctk-portal-stat-card strong{display:block;font-size:28px;line-height:1.1}
.cctk-portal-stat-card span{display:block;margin-top:6px}
.cctk-portal-stat-card small{display:block;margin-top:4px;color:#666}
.cctk-portal-mini-list{display:grid;gap:12px}
.cctk-portal-mini-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px}
@media (max-width:900px){.cctk-portal-stats-grid{grid-template-columns:1fr}}

/* v11.5 automation pass */
.cctk-portal-stat-card{position:relative}
.cctk-portal-stat-card small{display:block;color:#666;margin-top:4px}

/* v11.6 customer flow pass */
.cctk-invoice-card a{display:inline-block;margin-top:6px}

/* v11.7 payments + access pass */
.cctk-portal-login-wrap .login-username input,
.cctk-portal-login-wrap .login-password input{width:100%}

/* v11.8 stripe + permission sync pass */
.cctk-portal-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.cctk-portal-stats-grid{grid-template-columns:1fr}}

/* v11.9 revenue ops pass */
.cctk-admin-panel{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px;margin:0 0 16px;max-width:1100px}

/* v12.0 live payments pass */
.cctk-chart-box{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:16px;margin:0 0 16px}
.cctk-chart-row{display:grid;grid-template-columns:160px 1fr 60px;gap:12px;align-items:center;margin:0 0 10px}
.cctk-chart-bar-wrap{background:#eef2f7;border-radius:999px;height:14px;overflow:hidden}
.cctk-chart-bar{background:#2563eb;height:14px;border-radius:999px}
.cctk-chart-label,.cctk-chart-count{font-weight:600}
@media (max-width:900px){.cctk-chart-row{grid-template-columns:1fr}}

/* v12.1 production payments hardening pass */
.cctk-payment-timeline{display:grid;gap:12px}
.cctk-payment-timeline-item{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:12px}

/* v12.2 financial controls pass */
.cctk-financial-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cctk-financial-card{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:14px}
@media (max-width:900px){.cctk-financial-controls{grid-template-columns:1fr}}

/* v12.3 executive reporting pass */
.cctk-admin-panel table.widefat td,
.cctk-admin-panel table.widefat th{vertical-align:top}

/* v12.4 operations intelligence pass */
.cctk-admin-panel h3{margin-top:0}

/* v12.5 customer experience intelligence pass */
.cctk-admin-panel .widefat{margin-top:12px}

/* v12.6 growth forecasting pass */
.cctk-chart-row{margin-bottom:8px}

/* v12.7 ai workflow assistant pass */
.cctk-admin-panel p{max-width:1100px}

/* v12.8 autonomous ops copilot pass */
.cctk-admin-panel ul{margin-left:18px}

/* v12.9 multi-location control center pass */
.cctk-admin-panel .cctk-portal-stats-grid{margin-bottom:16px}

/* v13.0 enterprise command center pass */
.cctk-admin-panel table.widefat tbody th{width:260px;text-align:left}

/* v13.1 enterprise controls permissions pass */
.cctk-admin-panel form .widefat{margin-top:12px;margin-bottom:12px}

/* v13.2 approval flows audit trail pass */
.cctk-admin-panel .button-small{height:auto;line-height:1.4;padding:4px 10px}

/* v13.3 advanced scheduling intelligence pass */
.cctk-admin-panel .description{opacity:.8}

/* v13.4 customer portal 2.0 pass */
.cctk-admin-panel textarea,
.cctk-admin-panel input[type="text"],
.cctk-admin-panel input[type="email"]{max-width:100%}

/* v13.5 mobile cleaner ux pass */
.cctk-mobile-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.cctk-mobile-action-card{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:14px}
.cctk-mobile-chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cctk-mobile-chip{background:#eef2ff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}
.cctk-mobile-status-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #ececec}
.cctk-inline-form{display:inline-block}

/* v13.6 field automation pass */
.cctk-admin-panel table.widefat{margin-top:12px}

/* v13.7 QA */
.cctk-admin-panel ul{margin-left:20px}

/* v13.8 inventory */
.cctk-admin-panel input[type="number"]{max-width:180px}

/* v13.9 sales */
.cctk-admin-panel select{max-width:100%}

/* v14.0 business command suite */
.cctk-admin-panel .cctk-portal-stats-grid{margin-bottom:14px}

/* v14.1 automation studio */
.cctk-admin-panel input[type="text"]{max-width:100%}

/* v14.1.1 job details franchise entities */
.cctk-job-grid input,.cctk-job-grid select,.cctk-job-grid textarea{max-width:100%}

/* v14.1.3 entity portal */
.button-small{height:auto;line-height:1.4;padding:4px 10px}

/* v14.1.6 entity password reset */
.button-small{height:auto;line-height:1.4;padding:4px 10px}

/* v14.2.0 micro module toggles */
.widefat .description{opacity:.8}

/* v14.2.6 portal intelligence */
.cctk-admin-panel textarea{max-width:100%}

/* v14.2.7 revenue ops */
.cctk-admin-panel{margin-top:16px}
