.kqm-fb-app{font-family:Arial,sans-serif;border:1px solid #ddd;border-radius:16px;padding:20px;background:#fff;box-shadow:0 4px 20px rgba(0,0,0,.05)}
.kqm-fb-header{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.kqm-fb-header h2{margin:0}
.kqm-fb-search{display:flex;gap:8px;flex-wrap:wrap}
.kqm-fb-search input,.kqm-fb-search button,.kqm-fb-card input,.kqm-fb-card textarea,.kqm-fb-card select,.kqm-fb-upload-box input[type=file],.kqm-fb-upload-box button,.kqm-fb-camera-actions button,.kqm-fb-gallery-actions button,.kqm-fb-actions button,.kqm-fb-actions-inline button{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:10px;box-sizing:border-box}
.kqm-fb-search input{min-width:280px}
.kqm-fb-search button,.kqm-fb-actions button,.kqm-fb-upload-box button,.kqm-fb-camera-actions button,.kqm-fb-gallery-actions button,.kqm-fb-actions-inline button,.kqm-fb-load-btn{background:var(--kqm-primary);color:#fff;border:none;border-radius:10px;padding:10px 14px;cursor:pointer}
.kqm-fb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.kqm-fb-card{background:#fafafa;border:1px solid #eee;border-radius:14px;padding:16px}
.kqm-fb-card h3{margin-top:0}
.kqm-fb-card label{display:block;margin-bottom:12px;font-weight:600}
.kqm-fb-card label input,.kqm-fb-card label textarea,.kqm-fb-card label select{margin-top:6px;font-weight:400}
.kqm-fb-message{margin-top:12px;font-weight:600}
.kqm-fb-project-meta{margin-top:8px;color:#555}
.kqm-fb-search-results{display:none;margin-bottom:16px;border:1px solid #eee;border-radius:12px;padding:10px;background:#fafafa}
.kqm-fb-search-item{padding:10px;border-bottom:1px solid #eee;cursor:pointer}
.kqm-fb-search-item:last-child{border-bottom:none}
.kqm-fb-search-item:hover{background:#fff}
.kqm-fb-load-btn{display:inline-block;width:auto;margin-top:8px;margin-right:8px}
.kqm-fb-full{grid-column:1/-1}
.kqm-fb-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kqm-fb-image-tools{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;margin-bottom:18px}
.kqm-fb-upload-box,.kqm-fb-camera-box,.kqm-fb-preview-card,.kqm-fb-gallery-wrap{background:#fff;border:1px solid #eee;border-radius:12px;padding:14px}
.kqm-fb-camera-box video{width:100%;background:#000;border-radius:10px;min-height:220px}
.kqm-fb-camera-actions,.kqm-fb-actions-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.kqm-fb-actions-inline{grid-template-columns:repeat(2,1fr)}
#kqm-fb-camera-preview{display:none;width:100%;margin-top:10px;border-radius:10px}
.kqm-fb-preview-area{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:18px}
.kqm-fb-selected-preview{min-height:120px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px dashed #ddd;border-radius:12px;padding:10px;color:#666}
.kqm-fb-selected-preview img{max-width:100%;height:auto;border-radius:10px;display:block}
.kqm-fb-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.kqm-fb-gallery-item{border:1px solid #ddd;border-radius:12px;padding:10px;background:#fff}
.kqm-fb-gallery-item.is-selected{border-color:var(--kqm-primary);box-shadow:0 0 0 1px var(--kqm-primary) inset}
.kqm-fb-gallery-item img{width:100%;height:120px;object-fit:cover;border-radius:8px;display:block}
.kqm-fb-gallery-actions{display:grid;gap:8px;margin-top:10px}
.kqm-fb-badge{display:inline-block;margin-top:8px;background:var(--kqm-primary);color:#fff;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.kqm-fb-subtle{font-size:12px;color:#666;margin-top:6px}
.kqm-fb-estimate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kqm-fb-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0;padding:12px;border-radius:12px;background:#fff;border:1px solid #eee}
@media (max-width:900px){.kqm-fb-grid,.kqm-fb-image-tools,.kqm-fb-fields-grid,.kqm-fb-preview-area,.kqm-fb-estimate-grid,.kqm-fb-totals{grid-template-columns:1fr}.kqm-fb-search input{min-width:0}.kqm-fb-camera-actions,.kqm-fb-actions-inline{grid-template-columns:1fr}}

.kqm-fb-final-quote{margin:12px 0}

.kqm-fb-top-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.kqm-fb-secondary-btn{background:#fff !important;color:var(--kqm-primary) !important;border:1px solid var(--kqm-primary) !important;width:auto !important;padding:10px 14px !important;border-radius:10px;cursor:pointer}

.kqm-fb-danger-btn{background:#b42318;color:#fff;border-color:#b42318}.kqm-fb-danger-btn:hover{opacity:.92}


.kqm-fb-before-wrap{
  position:relative;
  display:inline-block;
  width:100%;
}
.kqm-fb-before-wrap img{
  display:block;
  width:100%;
  height:auto;
}
#kqm-fb-mask-canvas{
  position:absolute;
  top:0;
  left:0;
  z-index:2;
  cursor:crosshair;
}
.kqm-fb-mask-tools{
  margin-top:10px;
  display:grid;
  gap:8px;
}
.kqm-fb-mask-tools button{
  width:max-content;
}


.kqm-fb-loading{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:none}.kqm-fb-loading-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:24px 28px;border-radius:14px;min-width:260px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.18)}.kqm-fb-spinner{width:32px;height:32px;border:4px solid #d0d7de;border-top-color:var(--kqm-primary,#2271b1);border-radius:50%;margin:0 auto 12px;animation:kqmSpin 1s linear infinite}@keyframes kqmSpin{to{transform:rotate(360deg)}}