*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;width:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:#f8f9fa;color:#212529;overflow:hidden}

/* ═══ App Wrapper + Tab System ═══ */
.app-wrapper{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}
.tab-bar{display:flex;align-items:center;background:#fff;border-bottom:2px solid #e9ecef;flex-shrink:0;padding:0 8px;gap:0}
.tab-bar-scroll{display:flex;align-items:center;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x}
.tab-bar-scroll::-webkit-scrollbar{display:none}
.tab-button{display:inline-flex;align-items:center;gap:6px;padding:12px 20px;font-size:14px;font-weight:600;color:#6c757d;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-2px;white-space:nowrap;flex-shrink:0}
.tab-button:hover{color:#4361ee}
.tab-button.active{color:#4361ee;border-bottom-color:#4361ee}
.tab-button svg{flex-shrink:0}
.tab-content{display:none;flex:1;overflow:hidden}
.tab-content.active{display:flex;flex-direction:column;flex:1}
.empty-tab-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:#9ca3af}
.empty-tab-placeholder p{font-size:20px;font-weight:600;color:#6c757d}
.empty-tab-placeholder span{font-size:14px}

.app-container{display:flex;height:100%;width:100%;overflow:hidden;flex:1}

/* Map area : carte + panneau detail en colonne */
.map-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative}
.map-container{flex:1;min-height:0}

/* Sidebar */
.sidebar{width:340px;min-width:340px;height:100%;background:#fff;border-right:1px solid #dee2e6;display:flex;flex-direction:column;overflow:hidden}
.sidebar-header{padding:18px 20px 12px;border-bottom:1px solid #e9ecef;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.sidebar-title{font-size:20px;font-weight:700;color:#1a1a2e}
.sidebar-count{font-size:13px;color:#6c757d;background:#e9ecef;padding:3px 10px;border-radius:12px}

.sidebar-search{padding:12px 16px;border-bottom:1px solid #e9ecef}
.search-input{width:100%;padding:9px 14px;border:1px solid #ced4da;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}
.search-input:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.15)}

.sidebar-toggle-all{padding:10px 20px;border-bottom:1px solid #e9ecef;background:#f8f9fa}
.toggle-all-text{font-size:13px;font-weight:600;color:#495057}

/* Route bar */
.sidebar-route{padding:10px 20px;border-bottom:1px solid #e9ecef;background:#f8f9fa;display:flex;align-items:center;gap:10px}
.sidebar-route.route-active{background:#f0fdf4;border-bottom:2px solid #2f9e44}
.btn-route-toggle{padding:8px 18px;font-size:13px;font-weight:600;border:none;border-radius:8px;background:#2f9e44;color:#fff;cursor:pointer;transition:background .15s;white-space:nowrap}
.btn-route-toggle:hover{background:#27863a}
.btn-route{padding:8px 18px;font-size:13px;font-weight:600;border:none;border-radius:8px;background:#4361ee;color:#fff;cursor:pointer;transition:background .15s;white-space:nowrap}
.btn-route:hover:not(:disabled){background:#3a56d4}
.btn-route:disabled{background:#ced4da;color:#868e96;cursor:not-allowed}
.btn-route-ext{padding:8px 12px;font-size:15px;font-weight:700;border:none;border-radius:8px;background:#e67700;color:#fff;cursor:pointer;transition:background .15s;white-space:nowrap;line-height:1}
.btn-route-ext:hover:not(:disabled){background:#d56a00}
.btn-route-ext:disabled{background:#ced4da;color:#868e96;cursor:not-allowed}
.btn-route-clear{background:none;border:none;font-size:20px;color:#868e96;cursor:pointer;padding:0 4px;line-height:1;margin-left:auto}
.btn-route-clear:hover{color:#dc3545}
.route-count{font-size:12px;color:#2f9e44;font-weight:600}

/* Route info panel */
.route-info{padding:0;border-bottom:1px solid #e9ecef;background:#fff;max-height:200px;overflow-y:auto}
.route-summary{padding:10px 20px;background:#f0fdf4;font-size:14px;color:#1a1a2e;border-bottom:1px solid #e9ecef}
.route-legs{padding:4px 0}
.route-leg{display:flex;align-items:center;gap:10px;padding:6px 20px;font-size:13px}
.route-leg:hover{background:#f8f9fa}
.route-leg-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#e67700;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}
.route-leg:first-child .route-leg-num{background:#2f9e44}
.route-leg-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:#212529}
.route-leg-detail{font-size:11px;color:#868e96;white-space:nowrap}

/* Route badges in prospect list */
.route-badge-wrap{padding:12px 8px 12px 16px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:42px}
.route-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#e67700;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}
.route-badge-empty{background:#dee2e6;color:#868e96;font-size:16px}
.route-badge-empty:hover{background:#2f9e44;color:#fff}
.prospect-item.route-selected{background:#fff8f0;border-left:3px solid #e67700}

/* Prospect List */
.prospect-list{list-style:none;flex:1;overflow-y:auto}
.prospect-item{display:flex;align-items:center;gap:0;border-bottom:1px solid #f1f3f5;transition:background .1s;cursor:pointer}
.prospect-item:hover{background:#f0f4ff}
.prospect-item.active{background:#e8edff;border-left:3px solid #4361ee}

.prospect-item .checkbox-label{padding:12px 8px 12px 20px;cursor:pointer;display:flex;align-items:center}
.checkbox-label input[type="checkbox"]{width:18px;height:18px;accent-color:#4361ee;cursor:pointer;flex-shrink:0}

.prospect-info{display:flex;flex-direction:column;min-width:0;flex:1;padding:12px 20px 12px 8px;cursor:pointer}
.prospect-name{font-size:14px;font-weight:500;color:#212529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prospect-city{font-size:12px;color:#868e96;margin-top:2px}
.prospect-date{font-size:11px;color:#adb5bd;margin-top:1px}
.prospect-interaction{font-size:11px;color:#74c0fc;margin-top:2px;display:flex;align-items:center;gap:5px}
.prospect-days-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;white-space:nowrap}
.prospect-days-badge.fresh{background:#d3f9d8;color:#2b8a3e}
.prospect-days-badge.late{background:#fff3bf;color:#e67700}
.prospect-empty{padding:32px 20px;text-align:center;color:#adb5bd;font-size:14px}

/* Detail Panel (sous la carte) */
.detail-panel{position:absolute;right:0;top:0;width:380px;height:100%;background:#f2f2f7;border-left:1px solid #dee2e6;box-shadow:-4px 0 24px rgba(0,0,0,.10);flex-direction:column;overflow:hidden;transition:transform .25s cubic-bezier(.4,0,.2,1);transform:translateX(100%);display:flex;z-index:5}
.detail-panel.open{transform:translateX(0)}
.detail-panel-body{flex:1;overflow-y:auto;padding:0}

/* Topbar */
.dpanel-topbar{display:flex;align-items:center;padding:10px 16px;background:#f2f2f7;flex-shrink:0;border-bottom:1px solid #e5e5ea}
.dpanel-back-btn{background:none;border:none;font-size:14px;font-weight:600;color:#3B7BFF;cursor:pointer;padding:0}
.dpanel-back-btn:hover{opacity:.75}

/* Hero */
.dpanel-hero{display:flex;align-items:center;gap:14px;padding:20px 16px 14px;background:#fff;margin-bottom:10px}
.dpanel-avatar{width:54px;height:54px;border-radius:50%;background:#3B7BFF;color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-1px}
.dpanel-hero-info{flex:1;min-width:0}
.dpanel-name{font-size:18px;font-weight:700;color:#1a1a2e;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dpanel-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}

/* Action buttons */
.dpanel-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px 14px;background:#fff;margin-bottom:10px}
.dpanel-action-btn{display:flex;align-items:center;justify-content:center;gap:5px;padding:9px 6px;background:#f2f2f7;border:none;border-radius:10px;font-size:12px;font-weight:600;color:#3B7BFF;text-decoration:none;cursor:pointer;transition:background .15s;white-space:nowrap}
.dpanel-action-btn:hover{background:#e5e5ea}
.dpanel-action-bigin{color:#34c759}

/* Info card */
.dpanel-card{background:#fff;border-radius:12px;margin:0 0 10px;padding:2px 16px}
.dpanel-info-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;font-size:13.5px;color:#1a1a2e;border-bottom:1px solid #f2f2f7}
.dpanel-info-row:last-child{border-bottom:none}
.dpanel-info-icon{flex-shrink:0;margin-top:1px}

/* Notes section */
.dpanel-section{background:#fff;border-radius:12px;margin:0 0 10px;padding:14px 16px}
.dpanel-section-title{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:12px}
.dpanel-note-form{display:flex;gap:8px;margin-bottom:14px}
.dpanel-note-input{flex:1;padding:9px 12px;border:1px solid #e5e5ea;border-radius:10px;font-size:13px;outline:none;background:#f9f9f9;min-width:0}
.dpanel-note-input:focus{border-color:#3B7BFF;background:#fff}
.dpanel-note-save-btn{padding:9px 14px;background:#3B7BFF;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}
.dpanel-note-save-btn:hover{background:#3451d1}

/* Timeline */
.dpanel-timeline-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #f2f2f7}
.dpanel-timeline-item:last-child{border-bottom:none}
.dpanel-timeline-icon{width:32px;height:32px;border-radius:50%;background:#e9ecef;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#495057}
.dpanel-timeline-content{flex:1;min-width:0;padding-top:1px}
.dpanel-timeline-text{font-size:13.5px;color:#1a1a2e;font-weight:500;line-height:1.4}
.dpanel-timeline-sub{font-size:12.5px;color:#495057;margin-top:2px;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.dpanel-timeline-meta{font-size:11px;color:#aeaeb2;margin-top:4px}

.detail-panel-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}

/* Info grid dans le panneau */
.detail-panel-info{padding:16px 20px;border-bottom:1px solid #e9ecef}
.detail-info-grid{display:flex;flex-direction:column;gap:8px}
.detail-info-item{display:flex;flex-direction:column;gap:2px}
.detail-label{font-size:11px;font-weight:600;color:#868e96;text-transform:uppercase;letter-spacing:.5px}
.detail-value{font-size:14px;color:#212529}
.detail-value a{color:#4361ee;text-decoration:none}
.detail-value a:hover{text-decoration:underline}

/* Notes dans le panneau */
.detail-panel-notes{padding:16px 20px;border-bottom:1px solid #e9ecef}
.detail-panel-emails{padding:16px 20px}
.notes-title{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #e9ecef}
.notes-loading{display:flex;align-items:center;gap:10px;color:#6c757d;font-size:14px;padding:16px 0}
.notes-error{color:#dc3545;font-size:14px}
.notes-empty{color:#adb5bd;font-size:14px;font-style:italic}

.note-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px;margin-bottom:10px}
.note-card-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:4px}
.note-card-content{font-size:13px;color:#495057;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.note-card-meta{display:flex;gap:12px;margin-top:8px;font-size:11px;color:#adb5bd}

/* Note form */
.note-form{display:flex;gap:8px;margin-bottom:12px;align-items:flex-start}
.note-textarea{flex:1;padding:8px 12px;border:1px solid #ced4da;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;outline:none;min-height:60px;transition:border-color .15s}
.note-textarea:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.15)}
.note-textarea:disabled{background:#f1f3f5;color:#868e96}
.btn-sm{padding:8px 16px;font-size:13px;white-space:nowrap;align-self:flex-start}
.notes-success{color:#2f9e44;font-size:13px;margin:4px 0}

/* ─── Email Cards ─── */
.email-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px;margin-bottom:10px;cursor:pointer;transition:background .15s}
.email-card:hover{background:#f0f4ff}
.email-card-header{display:flex;align-items:center;gap:8px}
.email-direction{font-size:16px;flex-shrink:0;width:22px;text-align:center}
.email-direction.sent{color:#4361ee}
.email-direction.received{color:#2f9e44}
.email-card-info{flex:1;min-width:0}
.email-card-subject{font-size:14px;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.email-card-from{font-size:12px;color:#868e96;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.email-card-date{font-size:11px;color:#adb5bd;flex-shrink:0;white-space:nowrap}
.email-content{display:none;margin-top:10px;padding:12px;background:#fff;border:1px solid #e9ecef;border-radius:6px;font-size:13px;color:#495057;line-height:1.5;max-height:300px;overflow-y:auto}
.email-content.open{display:block}
.emails-empty{color:#adb5bd;font-size:14px;font-style:italic}
.email-status-opened{font-size:11px;color:#2f9e44;margin-top:2px}
.email-status-unread{font-size:11px;color:#adb5bd;margin-top:2px}

/* Bigin link button */
#twTableCampBody tr{transition:background .12s}
#twTableCampBody tr:hover{background:#f8f9ff}
#twTableCampBody tr.tw-camp-selected{background:#eef2ff!important;outline:2px solid #4361ee;outline-offset:-2px}
.bigin-link-btn{display:inline-block;margin-top:8px;padding:6px 14px;background:#4361ee;color:#fff;text-decoration:none;border-radius:6px;font-size:13px;font-weight:600;transition:background .15s}
.bigin-link-btn:hover{background:#3451d1;color:#fff}
.kovo-edit-btn{display:inline-block;margin-top:8px;margin-left:6px;padding:6px 14px;background:#0ea47a;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}
.kovo-edit-btn:hover{background:#0b8f6b}
.detail-description{margin-top:12px}
.description-content{font-size:13px;color:#495057;line-height:1.6;white-space:pre-wrap;word-break:break-word;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px}

/* Spinner */
.spinner{width:18px;height:18px;border:2px solid #dee2e6;border-top-color:#4361ee;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Setup page */
.setup-container{display:flex;align-items:center;justify-content:center;height:100vh;padding:24px}
.setup-card{background:#fff;border-radius:12px;padding:40px;max-width:480px;box-shadow:0 4px 24px rgba(0,0,0,.08);text-align:center}
.setup-card h2{font-size:22px;margin-bottom:12px;color:#1a1a2e}
.setup-card p{color:#6c757d;margin-bottom:24px;line-height:1.5}

.btn{display:inline-block;padding:12px 28px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s}
.btn-primary{background:#4361ee;color:#fff}
.btn-primary:hover{background:#3a56d4}

/* Google login button */
.btn-google{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;border:1px solid #dadce0;border-radius:8px;font-size:15px;font-weight:600;color:#3c4043;background:#fff;cursor:pointer;text-decoration:none;transition:background .15s,box-shadow .15s}
.btn-google:hover{background:#f8f9fa;box-shadow:0 1px 3px rgba(0,0,0,.1)}

/* Login error */
.login-error{background:#fff5f5;border:1px solid #ffc9c9;border-radius:8px;padding:14px 20px;margin-bottom:20px;color:#c92a2a;font-size:14px;text-align:left;line-height:1.5}

/* Header right (count + logout + sync) */
.header-right{display:flex;align-items:center;gap:8px}
.btn-sync{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:none;border:1px solid #dee2e6;color:#868e96;font-size:18px;text-decoration:none;transition:all .15s;cursor:pointer;line-height:1;padding:0}
.btn-sync:hover{background:#f0fdf4;border-color:#b2f2bb;color:#2f9e44}
.btn-sync:disabled{cursor:not-allowed;opacity:.6}
.btn-sync.syncing{animation:spin-sync 1s linear infinite;color:#4361ee;border-color:#bac8ff}
@keyframes spin-sync{to{transform:rotate(360deg)}}
.btn-logout{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:none;border:1px solid #dee2e6;color:#868e96;font-size:16px;text-decoration:none;transition:all .15s;cursor:pointer;line-height:1}
.btn-logout:hover{background:#fff5f5;border-color:#ffc9c9;color:#c92a2a}

/* ═══════════════════════════════════════════════════════════════ */
/* TERMINE (Appointments) TAB                                     */
/* ═══════════════════════════════════════════════════════════════ */

/* ═══ TERMINE TAB ═══════════════════════════════════════════════ */

/* Appointment sidebar */
.appointment-sidebar{width:360px;min-width:360px;transition:width .25s,min-width .25s;background:#fafbfc}
.appointment-sidebar.overview-mode{width:auto;min-width:auto}

/* Sidebar header — override base */
.appointment-sidebar .sidebar-header{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e9ecef}
.appointment-sidebar .sidebar-title{font-size:16px;font-weight:700;letter-spacing:-.2px}

/* View toggle */
.view-toggle{display:flex;border:1px solid #e2e6ea;border-radius:7px;overflow:hidden;background:#f8f9fa}
.view-toggle-btn{padding:4px 11px;font-size:11px;font-weight:600;border:none;background:transparent;color:#868e96;cursor:pointer;transition:all .15s;white-space:nowrap}
.view-toggle-btn:not(:last-child){border-right:1px solid #e2e6ea}
.view-toggle-btn:hover{color:#4361ee}
.view-toggle-btn.active{background:#4361ee;color:#fff}

/* Filter bar */
.filter-bar{display:flex;gap:5px;padding:8px 12px;border-bottom:1px solid #eef0f2;background:#fafbfc;flex-shrink:0}
.filter-btn{padding:4px 12px;font-size:11px;font-weight:600;border:1px solid #dee2e6;border-radius:20px;background:#fff;color:#868e96;cursor:pointer;transition:all .15s;white-space:nowrap}
.filter-btn:hover{border-color:#b6c6ff;color:#4361ee}
.filter-btn.active{background:#4361ee;border-color:#4361ee;color:#fff}

/* Appointment list */
.appointment-list{flex:1;overflow-y:auto}

/* Month group accordion */
.month-group{border-bottom:1px solid #eef0f2}
.month-header{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;background:#fafbfc;transition:background .1s;user-select:none;border-left:3px solid transparent}
.month-header:hover{background:#f0f4ff}
.month-header.expanded{background:#f0f4ff;border-left-color:#4361ee}
.month-header-left{display:flex;align-items:center;gap:7px}
.month-header-right{display:flex;align-items:center;gap:8px}
.month-chevron{font-size:11px;color:#adb5bd;transition:transform .2s;line-height:1}
.month-chevron.open{transform:rotate(90deg);color:#4361ee}
.month-label{font-size:13px;font-weight:600;color:#343a40}
.month-count{font-size:11px;color:#868e96;background:#e9ecef;padding:1px 7px;border-radius:10px;font-weight:600}
.month-bound-count{font-size:11px;color:#22c55e;font-weight:700}
.month-body{}

/* Appointment row */
.appointment-row{display:flex;align-items:center;gap:9px;padding:8px 14px 8px 11px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s;border-left:3px solid transparent}
.appointment-row:hover{background:#f5f7ff}
.appointment-row.selected{background:#eef1ff;border-left-color:#4361ee}
.appointment-row-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.appointment-row-top{display:flex;align-items:center;gap:7px;min-width:0}
.appointment-date{font-size:11px;font-weight:700;color:#4361ee;white-space:nowrap;flex-shrink:0;background:#eef1ff;padding:1px 6px;border-radius:5px}
.appointment-time{font-size:11px;color:#adb5bd;white-space:nowrap;flex-shrink:0}
.appointment-title{font-size:12.5px;color:#343a40;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:500}
.appointment-empty{padding:24px 16px;text-align:center;color:#adb5bd;font-size:13px}

/* Binding indicator — colored left bar on row */
.binding-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:1px}
.binding-dot.bound{background:#22c55e}
.binding-dot.unbound{background:#dee2e6}
.binding-dot.ignored{background:#ced4da}

/* Stage badge small */
.stage-badge-small{display:inline-block;font-size:10px;font-weight:600;color:#868e96;background:#f1f3f5;padding:1px 7px;border-radius:8px;margin-top:2px;align-self:flex-start}
.appt-interaction-row{display:flex;align-items:center;gap:6px;margin-top:3px}
.appt-interaction-label{font-size:10px;color:#74c0fc}
.appt-interaction-days{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;white-space:nowrap}
.appt-interaction-days.fresh{background:#d3f9d8;color:#2b8a3e}
.appt-interaction-days.late{background:#fff3bf;color:#e67700}

/* ─── Appointment Detail Panel ─── */
.appointment-detail{flex:1;background:#fff;overflow-y:auto;border-left:1px solid #e9ecef;min-width:0;display:flex;flex-direction:column}

/* Empty state */
.detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;height:100%;color:#ced4da;gap:14px}
.detail-empty-icon{font-size:44px;line-height:1;opacity:.5}
.detail-empty p{font-size:14px;color:#adb5bd}

/* Detail header */
.appt-detail-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #f0f2f5;background:#fff;flex-shrink:0}
.detail-close{background:none;border:none;font-size:22px;color:#adb5bd;cursor:pointer;padding:2px 6px;line-height:1;border-radius:6px;transition:all .15s}
.detail-close:hover{background:#f1f3f5;color:#495057}
.detail-actions{display:flex;gap:6px;align-items:center}

/* Action buttons — compact pill */
.btn-outline-danger{display:inline-flex;align-items:center;background:none;border:1px solid #fca5a5;color:#dc2626;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-outline-danger:hover{background:#fef2f2;border-color:#dc2626}
.btn-outline-primary{display:inline-flex;align-items:center;background:none;border:1px solid #bac8ff;color:#4361ee;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-outline-primary:hover{background:#eef1ff;border-color:#4361ee}
.btn-outline-muted{display:inline-flex;align-items:center;background:none;border:1px solid #dee2e6;color:#868e96;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-outline-muted:hover{background:#f8f9fa;border-color:#adb5bd;color:#495057}

/* Detail sections */
.detail-section{padding:14px 18px;border-bottom:1px solid #f3f4f6}
.detail-section:last-child{border-bottom:none}
.detail-section-title{font-size:10px;font-weight:700;color:#adb5bd;text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}
.detail-datetime{font-size:12px;color:#4361ee;font-weight:600;margin-bottom:3px}
.detail-title{font-size:17px;font-weight:700;color:#1a1a2e;line-height:1.3;margin-bottom:3px}
.detail-location{font-size:12px;color:#868e96;margin-top:5px;display:flex;align-items:center;gap:4px}

/* Prospect info card */
.detail-prospect-info{background:#f8f9fa;border:1px solid #eef0f2;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.detail-prospect-name{font-size:15px;font-weight:700;color:#1a1a2e}
.detail-prospect-field{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#495057}
.detail-prospect-field a{color:#4361ee;text-decoration:none}
.detail-prospect-field a:hover{text-decoration:underline}
.field-icon{font-size:13px;flex-shrink:0;width:18px;text-align:center;color:#868e96}

/* Stage badge */
.stage-badge{display:inline-flex;align-items:center;padding:3px 12px;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.2px}

/* Prospect search */
.prospect-search-wrapper{position:relative;margin-bottom:10px}
.prospect-search-input{width:100%}
.search-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.08);max-height:240px;overflow-y:auto;z-index:100}
.search-result{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s}
.search-result:hover{background:#f5f7ff}
.search-result:last-child{border-bottom:none}
.search-result-info{display:flex;flex-direction:column;min-width:0;flex:1}
.search-result-name{font-size:13px;font-weight:500;color:#212529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-result-city{font-size:11px;color:#868e96}
.search-no-result{padding:14px;text-align:center;color:#adb5bd;font-size:13px}

/* Bind button */
.btn-bind{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid #bac8ff;border-radius:20px;background:#fff;color:#4361ee;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}
.btn-bind:hover{background:#4361ee;border-color:#4361ee;color:#fff}

/* Suggestions */
.suggestions-list{margin-top:8px}
.suggestions-label{font-size:10px;font-weight:700;color:#adb5bd;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.suggestion-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border:1px solid #eef0f2;border-radius:8px;margin-bottom:5px;background:#fafbfc;transition:background .1s}
.suggestion-item:hover{background:#f0f4ff;border-color:#bac8ff}
.suggestion-info{display:flex;flex-direction:column;min-width:0;flex:1}
.suggestion-name{font-size:13px;font-weight:500;color:#212529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggestion-city{font-size:11px;color:#868e96}

/* Ignored notice */
.ignored-notice{padding:12px 14px;border:1.5px dashed #dee2e6;border-radius:8px;color:#adb5bd;font-size:13px;text-align:center;background:#fafbfc}

/* ─── Termine Overview ─── */
.termine-overview{padding:24px 28px;overflow-y:auto;height:100%}
.overview-summary{display:flex;gap:24px;margin-bottom:20px;padding:16px 20px;background:#fff;border-radius:12px;border:1px solid #e9ecef;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.overview-summary-stat{display:flex;flex-direction:column;align-items:center;gap:3px}
.overview-summary-value{font-size:26px;font-weight:800;color:#1a1a2e}
.overview-summary-label{font-size:10px;color:#adb5bd;text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.month-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:18px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:10px}
.month-card:hover{border-color:#4361ee;box-shadow:0 4px 14px rgba(67,97,238,.1);transform:translateY(-2px)}
.month-card-name{font-size:14px;font-weight:700;color:#1a1a2e}
.month-card-stats{display:flex;align-items:center;gap:14px}
.month-card-stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.month-card-stat-value{font-size:20px;font-weight:700;color:#212529}
.month-card-stat-label{font-size:10px;color:#adb5bd;text-transform:uppercase;letter-spacing:.3px}
.verkauf-percent{font-size:16px;font-weight:700;padding:3px 10px;border-radius:8px}
.verkauf-percent.high{background:#dcfce7;color:#16a34a}
.verkauf-percent.medium{background:#fef9c3;color:#ca8a04}
.verkauf-percent.low{background:#fee2e2;color:#dc2626}
.verkauf-percent.none{background:#f1f3f5;color:#adb5bd}

/* Month list header verkauf pct */
.month-verkauf-pct{font-size:10px;font-weight:700;color:#4361ee;background:#eef1ff;padding:2px 7px;border-radius:8px}

/* ═══════════════════════════════════════════════════════════════ */
/* RESPONSIVE                                                     */
/* ═══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  .app-container{flex-direction:column}
  .sidebar{width:100%;min-width:unset;height:35vh;border-right:none;border-bottom:1px solid #dee2e6}
  .map-area{height:65vh}
  .detail-panel.open{width:100%;height:60%;top:auto;bottom:0;transform:translateY(100%)}
  .detail-panel.open.open{transform:translateY(0)}
  .detail-panel-info{padding:12px 16px}
  .detail-panel-notes{padding:12px 16px}
  .detail-panel-emails{padding:12px 16px}

  /* Termine responsive */
  /* Termine : master-detail mobile */
  .appointment-sidebar{width:100%;min-width:unset;height:100%;border-right:none;border-bottom:none;flex-shrink:0}
  .appointment-sidebar.overview-mode{height:0;overflow:hidden;border:none}
  .appointment-sidebar.sidebar-collapsed{height:0;overflow:hidden;border:none}
  .appointment-detail{display:none;border:none}
  .appointment-sidebar.overview-mode+.appointment-detail{display:flex;flex:1;height:100%;border:none}
  .appointment-sidebar.sidebar-collapsed+.appointment-detail{display:flex;flex:1;height:100%;border:none}
  .tab-button{padding:10px 14px;font-size:13px}
  .termine-overview{padding:12px}
  .overview-summary{flex-direction:row;justify-content:space-around;gap:8px;padding:12px 16px;margin-bottom:12px}
  .overview-summary-value{font-size:20px}
  .month-grid{grid-template-columns:1fr;gap:10px}
  .month-card{padding:14px;gap:8px}
  .month-card-stat-value{font-size:18px}
  .view-toggle-btn{padding:3px 8px;font-size:10px}
  .nav-search{border-left:none;padding:0 4px}
  .nav-search-input{display:none}
  .nav-search-icon{cursor:pointer;color:#4361ee;width:20px;height:20px}
  .nav-search.nav-search--open{position:fixed;top:0;left:0;right:0;z-index:10001;background:#fff;border:none;border-bottom:2px solid #4361ee;padding:8px 12px;box-shadow:0 4px 12px rgba(0,0,0,.15);gap:10px}
  .nav-search.nav-search--open .nav-search-input{display:block;width:100%;flex:1;border-radius:8px;font-size:15px;padding:8px 12px;border:1.5px solid #dee2e6}
  .nav-search.nav-search--open .nav-search-icon{flex-shrink:0}
  .nav-search.nav-search--open .nav-search-dropdown{width:100%;top:100%}
  .nav-search-close{display:none;background:none;border:none;font-size:22px;color:#6c757d;cursor:pointer;line-height:1;padding:0 4px;flex-shrink:0}
  .nav-search.nav-search--open .nav-search-close{display:block}
}

/* ═══════════════════════════════════════════════════════
   TRAFIC WEB DASHBOARD
═══════════════════════════════════════════════════════ */

/* Variables couleurs trafic */
:root{
  --tw-primary:#3B7BFF;
  --tw-secondary:#2CB8A0;
  --tw-success:#48BD3C;
  --tw-warning:#f59e0b;
  --tw-danger:#ef4444;
  --tw-muted:#6c757d;
  --tw-border:#e9ecef;
  --tw-bg:#f8f9fa;
  --tw-white:#fff;
  --tw-radius:8px;
}

.tw-wrapper{display:flex;flex-direction:column;height:100%;overflow:auto;background:var(--tw-bg)}
@media(max-width:768px){.tw-wrapper{height:auto;min-height:100%}}

/* Header */
.tw-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--tw-white);border-bottom:1px solid var(--tw-border);flex-shrink:0;gap:12px;flex-wrap:wrap}
.tw-header-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tw-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tw-title{font-size:17px;font-weight:700;color:#212529;white-space:nowrap}
.tw-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Voyant cron_devis — animation pulsante quand ok */
@keyframes cronPulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 4px rgba(34,197,94,0)}}

/* Bouton Sync Conversions */
.tw-sync-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;border:1px solid var(--tw-border);border-radius:6px;background:#fff;color:#555;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
.tw-sync-btn:hover:not(:disabled){background:#f0f4ff;color:var(--tw-primary);border-color:#c7d8ff}
.tw-sync-btn:disabled{opacity:.6;cursor:not-allowed}
.tw-sync-btn.tw-sync-ok{border-color:#86efac;background:#f0fdf4;color:#166534}
.tw-sync-btn.tw-sync-err{border-color:#fca5a5;background:#fef2f2;color:#991b1b}
.tw-sync-icon{font-size:14px;display:inline-block;transition:transform .3s}
.tw-sync-btn.tw-sync-spinning .tw-sync-icon{animation:twSpin .7s linear infinite}
@keyframes twSpin{to{transform:rotate(360deg)}}

/* Bouton Mappings */
.tw-mapping-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--tw-primary);text-decoration:none;padding:5px 10px;border:1px solid #c7d8ff;border-radius:6px;background:#f0f4ff;white-space:nowrap;transition:background .15s}
.tw-mapping-btn:hover{background:#dbeafe}

/* Bouton filtre bots */
.tw-filter-bots-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.tw-filter-bots-on{background:#f0fdf4;color:#166534;border-color:#86efac}
.tw-filter-bots-on:hover{background:#dcfce7}
.tw-filter-bots-off{background:#fef2f2;color:#991b1b;border-color:#fca5a5}
.tw-filter-bots-off:hover{background:#fee2e2}

/* Toggle journalier/mensuel */
.tw-toggle-group{display:flex;border:1px solid var(--tw-border);border-radius:6px;overflow:hidden}
.tw-toggle{padding:5px 12px;font-size:12px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--tw-muted);transition:background .15s,color .15s}
.tw-toggle.active{background:var(--tw-primary);color:#fff}

/* Selects */
.tw-select{padding:5px 10px;font-size:12px;border:1px solid var(--tw-border);border-radius:6px;background:#fff;color:#212529;cursor:pointer;max-width:200px}

/* ── Sélecteur de vue (entre graphique et tableau) ── */
.tw-view-selector{display:flex;gap:0;padding:8px 16px;background:var(--tw-white);border-bottom:1px solid var(--tw-border);flex-shrink:0}
.tw-view-tab{display:flex;align-items:center;gap:5px;padding:6px 16px;font-size:12px;font-weight:600;background:none;border:1px solid var(--tw-border);cursor:pointer;color:var(--tw-muted);transition:background .15s,color .15s;white-space:nowrap}
.tw-view-tab:first-child{border-radius:6px 0 0 6px}
.tw-view-tab:last-child{border-radius:0 6px 6px 0;border-left:none}
.tw-view-tab:not(:first-child):not(:last-child){border-left:none}
.tw-view-tab.active{background:var(--tw-primary);color:#fff;border-color:var(--tw-primary)}
.tw-view-tab:hover:not(.active){background:#f0f4ff;color:var(--tw-primary)}
.tw-view-tab-icon{font-size:13px}

/* Section graphique */
.tw-chart-section{background:var(--tw-white);border-bottom:1px solid var(--tw-border);padding:10px 20px 14px;flex-shrink:0}
.tw-legend{display:flex;gap:16px;margin-bottom:8px;flex-wrap:wrap}
.tw-legend-item{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:#444;cursor:pointer;padding:2px 6px;border-radius:4px;transition:opacity .15s;user-select:none}
.tw-legend-item:hover{background:#f0f4ff}
.tw-legend-item.tw-hidden{opacity:.35}
.tw-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.tw-legend-bar{border-radius:2px}
.tw-chart-area{position:relative;height:220px}
.tw-chart-loading{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--tw-muted);font-size:13px}

/* Contenu des sous-onglets */
.tw-tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden}
@media(max-width:768px){.tw-tab-content{overflow:visible}}

/* En-tête tableau + filtres */
.tw-table-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--tw-white);border-bottom:1px solid var(--tw-border);flex-shrink:0;gap:10px;flex-wrap:wrap}
.tw-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tw-search{padding:5px 10px;font-size:12px;border:1px solid var(--tw-border);border-radius:6px;width:200px}
.tw-filter-select{padding:5px 10px;font-size:12px;border:1px solid var(--tw-border);border-radius:6px;background:#fff;cursor:pointer}
.tw-avg-duration{font-size:12px;color:var(--tw-muted);white-space:nowrap}

/* Tableau */
.tw-table-wrap{flex:1;overflow:auto}
.tw-table{width:100%;border-collapse:collapse;font-size:12px}
.tw-table thead tr{background:#f4f6fb;position:sticky;top:0;z-index:1}
.tw-table th{padding:8px 10px;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid var(--tw-border);white-space:nowrap;cursor:pointer;user-select:none}
.tw-table th:hover{background:#eaecf4}
.tw-table td{padding:7px 10px;border-bottom:1px solid #f0f0f0;color:#333;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#twTable td:nth-child(4){max-width:360px}
.tw-table tr:hover td{background:#f8faff}
.tw-sort-icon{color:#9ca3af;font-size:10px}
.tw-sort-icon.asc::after{content:'↑';color:var(--tw-primary)}
.tw-sort-icon.desc::after{content:'↓';color:var(--tw-primary)}
.tw-table-loading{text-align:center;padding:30px;color:var(--tw-muted)}
.tw-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600}
.tw-badge-paid{background:#dbeafe;color:#1d4ed8}
.tw-badge-organic{background:#d1fae5;color:#065f46}
.tw-badge-yes{background:#d1fae5;color:#065f46}
.tw-badge-no{background:#f3f4f6;color:#6b7280}
.tw-badge-desktop{background:#ede9fe;color:#5b21b6}
.tw-badge-mobile{background:#fce7f3;color:#9d174d}
.tw-badge-stage{background:#fef3c7;color:#92400e}

/* Pagination */
.tw-pagination{display:flex;justify-content:center;align-items:center;gap:6px;padding:10px;border-top:1px solid var(--tw-border);background:#fff;flex-shrink:0;font-size:12px}
.tw-page-btn{padding:4px 10px;border:1px solid var(--tw-border);border-radius:5px;background:#fff;cursor:pointer;color:#333;transition:background .12s}
.tw-page-btn:hover{background:#f0f4ff;border-color:var(--tw-primary);color:var(--tw-primary)}
.tw-page-btn.active{background:var(--tw-primary);color:#fff;border-color:var(--tw-primary)}
.tw-page-btn:disabled{opacity:.4;cursor:not-allowed}

/* Tableau campagnes */
.tw-table td.tw-num{text-align:right;font-variant-numeric:tabular-nums}
.tw-table td.tw-num-cost{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#92400E}
.tw-conv-rate-bar{display:flex;align-items:center;gap:6px}
.tw-conv-rate-bar-inner{height:6px;border-radius:3px;background:var(--tw-success)}
/* Tableau campagnes scrollable horizontalement */
#twTabCampaigns .tw-table-wrap{overflow-x:auto}
#twTableCamp th,#twTableCamp td{white-space:nowrap;padding:8px 12px}

/* ═══ CHECK TAB ═══ */
/* Badge dans la barre d'onglets */
.chk-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#e03131;color:#fff;font-size:10px;font-weight:700;border-radius:9px;margin-left:4px;line-height:1}

/* Wrapper + header */
.chk-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#f5f6fa}
.chk-header{padding:16px 24px 14px;background:#fff;border-bottom:1px solid #e9ecef;display:flex;align-items:center;gap:12px;flex-shrink:0}
.chk-title{font-size:18px;font-weight:700;color:#1a1a2e}
.chk-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;background:#e03131;color:#fff;font-size:12px;font-weight:700;border-radius:12px}
.chk-meta{font-size:12px;color:#9ca3af;margin-left:auto}
.chk-refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#4361ee;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;flex-shrink:0}
.chk-refresh-btn:hover{background:#3a56d4}

/* Corps scrollable */
.chk-body{flex:1;overflow-y:auto;padding:20px 24px}

/* États vide / chargement / erreur */
.chk-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 0;color:#6c757d;font-size:14px}
.chk-spinner{width:36px;height:36px;border:3px solid #e9ecef;border-top-color:#4361ee;border-radius:50%;animation:chkSpin .8s linear infinite}
@keyframes chkSpin{to{transform:rotate(360deg)}}
.chk-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 0;color:#6c757d}
.chk-empty span{font-size:48px}
.chk-empty p{font-size:16px;font-weight:600;color:#495057}
.chk-error{padding:18px 20px;background:#fff5f5;border:1px solid #ffa8a8;border-radius:10px;color:#c92a2a;font-size:14px}

/* Card */
.chk-card{background:#fff;border-radius:12px;border:1px solid #e9ecef;padding:18px 20px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.05);transition:box-shadow .15s,opacity .15s}
.chk-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.09)}
.chk-card-future{opacity:.45}
.chk-card-future:hover{opacity:.8}

/* En-tête card */
.chk-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;flex-wrap:wrap}
.chk-card-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.chk-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.chk-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px}
.chk-badge-email{background:#dbe4ff;color:#3b5bdb}
.chk-badge-appt{background:#d3f9d8;color:#2b8a3e}
.chk-badge-note{background:#fff0f6;color:#c2255c}
.chk-badge-new-inquiry{background:#fff4e6;color:#d9480f;font-weight:700}
.chk-card-new-inquiry{border-left:3px solid #ff6b35}
.chk-prospect-name{font-size:15px;font-weight:700;color:#1a1a2e;background:none;border:none;padding:0;cursor:pointer;text-align:left}
.chk-prospect-name:hover{color:#4361ee;text-decoration:underline}
.chk-prospect-city{font-size:13px;color:#6c757d}
.chk-days-badge{font-size:11px;font-weight:700;background:#fff3cd;color:#856404;padding:3px 10px;border-radius:20px;white-space:nowrap}
.chk-btn-hist{font-size:11px;padding:3px 10px;background:#f1f3f5;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;color:#495057;font-weight:600;transition:background .15s}
.chk-btn-hist:hover{background:#e9ecef}
.chk-bigin-link{font-size:12px;font-weight:600;color:#4361ee;text-decoration:none;padding:2px 8px;border:1px solid #c5d0ff;border-radius:6px;white-space:nowrap;transition:background .15s}
.chk-bigin-link:hover{background:#dbe4ff}

/* Ligne méta (statut + propriétaire) */
.chk-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.chk-status-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:20px;white-space:nowrap}
.chk-owner-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#6c757d;background:#f1f3f5;padding:2px 9px;border-radius:20px;white-space:nowrap;font-weight:500}

/* Message et info email */
.chk-message{font-size:14px;color:#374151;margin-bottom:8px;line-height:1.55}
.chk-email-info{font-size:12px;color:#6c757d;margin-bottom:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chk-sep{color:#dee2e6}

/* Historique */
.chk-history{background:#f8f9fa;border-radius:8px;padding:10px 14px;margin-bottom:12px;border:1px solid #e9ecef}
.chk-hist-row{font-size:12px;color:#495057;padding:5px 0;border-bottom:1px solid #f1f3f5;line-height:1.4}
.chk-hist-row:last-child{border-bottom:none}

/* Boutons d'action */
.chk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chk-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap}
.chk-btn-validate{background:#2f9e44;color:#fff;border-color:#2f9e44}
.chk-btn-validate:hover{background:#27863a}
.chk-btn-snooze{background:#f59f00;color:#fff;border-color:#f59f00}
.chk-btn-snooze:hover{background:#e8960a}
.chk-btn-ignore{background:#f1f3f5;color:#495057;border-color:#dee2e6}
.chk-btn-ignore:hover{background:#e9ecef}
.chk-btn-cancel{background:#fff;color:#6c757d;border-color:#dee2e6}
.chk-btn-cancel:hover{background:#f8f9fa}

/* Snooze picker + commentaire */
.chk-snooze-picker,.chk-comment-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f8f9fa;padding:8px 12px;border-radius:8px;border:1px solid #e9ecef;margin-top:4px;width:100%}
.chk-snooze-date,.chk-comment-input{padding:6px 10px;border:1px solid #ced4da;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s}
.chk-snooze-date:focus,.chk-comment-input:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.12)}
.chk-comment-input{flex:1;min-width:180px}

/* ── Bouton ajout tâche ─────────────────────────────────────── */
.chk-add-task-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#0ca678;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;flex-shrink:0}
.chk-add-task-btn:hover{background:#099268}

/* ── Badges tâches ──────────────────────────────────────────── */
.chk-badge-call{background:#fff3cd;color:#e67700}
.chk-badge-task{background:#f3d9fa;color:#862e9c}
.chk-days-overdue{background:#ffe3e3;color:#c92a2a}

/* ── Titre de section dans Check ────────────────────────────── */
.chk-section-title{font-size:11px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.6px;margin:4px 0 10px}
.chk-section-title-future{color:#c9d0d8;margin-top:24px;padding-top:18px;border-top:1px solid #f0f0f0}

/* ── Modal overlay ──────────────────────────────────────────── */
.chk-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center}
.chk-modal-content{background:#fff;border-radius:14px;padding:24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 40px rgba(0,0,0,.18)}

/* En-tête modal */
.chk-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.chk-modal-header h3{font-size:16px;font-weight:700;color:#1a1a2e;margin:0}
.chk-modal-close{background:none;border:none;font-size:22px;color:#9ca3af;cursor:pointer;line-height:1;padding:0 4px}
.chk-modal-close:hover{color:#495057}

/* Type selector */
.chk-type-selector{display:flex;gap:8px}
.chk-type-selector button{flex:1;padding:9px;border-radius:8px;border:1.5px solid #dee2e6;font-size:14px;font-weight:600;cursor:pointer;background:#f8f9fa;transition:all .15s}
.chk-type-selector button.active{border-color:#4361ee;color:#4361ee;background:#eef2ff}

/* Inputs modal */
.chk-modal-input{width:100%;padding:9px 12px;border:1px solid #ced4da;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box;transition:border-color .15s}
.chk-modal-input:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.12)}
.chk-modal-textarea{width:100%;padding:9px 12px;border:1px solid #ced4da;border-radius:8px;font-size:14px;outline:none;resize:vertical;box-sizing:border-box;font-family:inherit;transition:border-color .15s}
.chk-modal-textarea:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.12)}

/* Autocomplete dropdown */
.chk-ac-wrapper{position:relative}
.chk-ac-dropdown{position:absolute;top:calc(100% + 3px);left:0;right:0;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:10;max-height:220px;overflow-y:auto}
.chk-ac-item{padding:9px 14px;cursor:pointer;font-size:13px;border-bottom:1px solid #f1f3f5}
.chk-ac-item:last-child{border-bottom:none}
.chk-ac-item:hover{background:#f0f4ff}

/* Message d'erreur dans le modal */
.chk-modal-err{padding:9px 12px;background:#fff5f5;border:1px solid #ffa8a8;border-radius:8px;color:#c92a2a;font-size:13px}

/* Pied modal */
.chk-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.chk-btn-cancel-modal{background:#f1f3f5;color:#495057;border-color:#dee2e6;padding:9px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #dee2e6;transition:background .15s}
.chk-btn-cancel-modal:hover{background:#e9ecef}
.chk-btn-save{background:#4361ee;color:#fff;border:none;padding:9px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}
.chk-btn-save:hover{background:#3a56d4}
.chk-btn-save:disabled{background:#a5b4fc;cursor:not-allowed}


/* ══════════════════════════════════════════════════════════════
   KARDELIS VIEW — Vue restreinte pour kardelispools@gmail.com
   ══════════════════════════════════════════════════════════════ */

/* Bouton Vue Kardelis dans la tab-bar */
.kardelis-mode-btn{color:#6b7280;border-left:1px solid #e9ecef;border-radius:0}
.kardelis-mode-btn.active{color:#7c3aed;background:#f5f3ff;border-bottom-color:#7c3aed}
.kardelis-mode-btn:hover{color:#7c3aed}
/* ─ Account switcher ─ */
.acct-switch{flex-shrink:0;position:relative;display:flex;align-items:center;padding:0 0 0 10px}
.acct-switch-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:700;color:#6c757d;background:#f1f3f5;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;transition:all .15s;white-space:nowrap}
.acct-switch-btn:hover{background:#e9ecef;color:#343a40}
.acct-switch-menu{display:none;position:fixed;flex-direction:row;align-items:center;gap:4px;z-index:99999}
.acct-switch-menu.open{display:flex}
.acct-switch-item{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:700;color:#6c757d;background:#f1f3f5;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .15s}
.acct-switch-item:hover{background:#e9ecef;color:#343a40}
.acct-switch-item.acct-current{display:none}
.acct-check{display:none}

/* Bouton % Verkauf dans le header Termine */
.btn-toggle-verkauf{width:30px;height:30px;padding:0;border-radius:6px;border:1.5px solid #e5e7eb;background:#f9fafb;color:#6b7280;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}
.btn-toggle-verkauf:hover{background:#e8edff;color:#4361ee;border-color:#c7d4ff}
.btn-toggle-verkauf.active{background:#e8edff;color:#4361ee;border-color:#4361ee}

/* Mode kardelis : sidebar en deux zones (liste + devis) */
body.kardelis-mode #appointmentList{flex:none;height:300px;overflow-y:auto;border-bottom:none}

/* Handle de redimensionnement */
.appt-list-resize-handle{height:6px;cursor:row-resize;background:transparent;flex-shrink:0;position:relative;transition:background .15s}
.appt-list-resize-handle::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:3px;border-radius:2px;background:#d1d5db;transition:background .15s}
.appt-list-resize-handle:hover::before,.appt-list-resize-handle:hover{background:transparent}
.appt-list-resize-handle:hover::before{background:#9ca3af}
/* Caché en mode normal, visible en mode kardelis */
.appt-list-resize-handle{display:none}
body.kardelis-mode .appt-list-resize-handle{display:block}

/* ══════════════════════════════════════════════════════════════
   SIDEBAR COLLAPSE — réduite quand un Termine est sélectionné
   ══════════════════════════════════════════════════════════════ */

.appointment-sidebar{transition:width .25s ease,min-width .25s ease,opacity .25s ease,height .25s ease}
.appointment-sidebar.sidebar-collapsed{width:0;min-width:0;overflow:hidden;opacity:0}

/* Bouton ◀ dans le header sidebar (réduire) */
.btn-sidebar-collapse{width:28px;height:28px;padding:0;border-radius:6px;border:1.5px solid #e5e7eb;background:#f9fafb;color:#6b7280;font-size:11px;cursor:pointer;display:none;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}
.btn-sidebar-collapse:hover{background:#e8edff;color:#4361ee;border-color:#c7d4ff}

/* ══════════════════════════════════════════════════════════════
   LAYOUT COLONNE UNIQUE — kardelis + termin lié (scroll)
   ══════════════════════════════════════════════════════════════ */

.kardelis-detail-scroll{
  flex:1;min-height:0;
  overflow-y:auto;
  display:flex;flex-direction:column;
}

/* Bouton ▶ restaurer sidebar — barre pleine largeur en haut */
.btn-sidebar-restore{
  display:none;align-items:center;justify-content:center;
  width:100%;padding:6px 0;
  border:none;border-bottom:1px solid #e9ecef;
  background:#f0f4ff;color:#4361ee;
  font-size:12px;font-weight:600;cursor:pointer;
  gap:5px;flex-shrink:0;
  transition:background .15s,color .15s;
}
.btn-sidebar-restore:hover{background:#e8edff}

/* ══════════════════════════════════════════════════════════════
   DEVIS ZOHO BOOKS — tableau éditable (kardelis)
   ══════════════════════════════════════════════════════════════ */

.quote-sum{display:flex;flex-direction:column;font-size:13px;background:#f8fafc}
.quote-sum-loading,.quote-sum-empty{
  padding:20px 16px;font-size:13px;color:#94a3b8;font-style:italic;
  display:flex;align-items:center;gap:8px;background:#fff;
}

/* ─ En-tête devis ─ */
.quote-sum-header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:14px 16px 6px;background:#fff;
}
.quote-sum-title{font-size:14px;font-weight:700;color:#1e293b;line-height:1.3}
.quote-sum-status{
  font-size:10px;font-weight:700;padding:3px 9px;
  border-radius:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;
}
.qs-accepted{background:#dcfce7;color:#16a34a}
.qs-sent{background:#dbeafe;color:#1d4ed8}
.qs-draft{background:#f1f5f9;color:#64748b}
.quote-sum-date{font-size:11px;color:#94a3b8;padding:0 16px 12px;background:#fff;border-bottom:1px solid #f1f5f9}

/* ─ Bloc configuration piscine ─ */
.qs-pool-section{
  background:linear-gradient(135deg,#eff6ff 0%,#f0f9ff 100%);
  border-bottom:2px solid #bfdbfe;
  padding:12px 14px 14px;
}
.qs-pool-editor{display:flex;flex-direction:column;gap:8px;background:transparent;border:none;padding:0;margin:0}
.qs-pool-label{
  font-size:10px;font-weight:800;color:#2563eb;
  text-transform:uppercase;letter-spacing:.7px;
  display:flex;align-items:center;gap:5px;
}
.qs-pool-inputs{display:flex;align-items:center;gap:8px}
.qs-pool-input{
  width:64px;padding:6px 8px;
  border:2px solid #93c5fd;border-radius:8px;
  font-size:15px;font-weight:700;color:#1e40af;
  text-align:center;background:#fff;
  box-shadow:0 1px 4px rgba(59,130,246,.1);
  -moz-appearance:textfield;transition:border-color .15s,box-shadow .15s;
}
.qs-pool-input::-webkit-inner-spin-button,.qs-pool-input::-webkit-outer-spin-button{opacity:1}
.qs-pool-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.18)}
.qs-pool-sep{font-size:16px;font-weight:700;color:#60a5fa}
.qs-pool-unit{font-size:13px;color:#60a5fa;font-weight:600}

/* ─ Ligne piscine : inputs + boutons sur la même rangée ─ */
.qs-pool-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.qs-pool-type-btns{display:flex;gap:6px;flex:1;flex-wrap:wrap;min-width:0}
.qs-switch-btn{
  flex:1;min-width:0;
  padding:7px 11px;
  border:1.5px solid #e2e8f0;border-radius:8px;
  background:#fff;color:#64748b;
  font-size:12px;font-weight:600;cursor:pointer;
  transition:all .15s;white-space:nowrap;text-align:center;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.qs-switch-btn:hover{
  background:#eff6ff;border-color:#3b82f6;color:#1d4ed8;
  box-shadow:0 2px 6px rgba(59,130,246,.15);transform:translateY(-1px);
}
.qs-switch-btn:active{transform:translateY(0)}

/* ─ Tableau des postes ─ */
.qs-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:0}
.qs-table thead th{
  padding:6px 10px;text-align:left;
  font-size:10px;font-weight:700;color:#94a3b8;
  text-transform:uppercase;letter-spacing:.5px;
  background:#f8fafc;border-bottom:1px solid #e9ecef;white-space:nowrap;
}
.qs-th-qty,.qs-th-price{text-align:right}
.qs-th-del{width:28px}
.qs-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background .1s}
.qs-table tbody tr:last-child{border-bottom:none}
.qs-table tbody tr:hover{background:#f8faff}

/* Lignes spéciales */
.qs-tr-pool td{background:#fffbeb!important}
.qs-tr-filter td{background:#f0fdf4!important}
.qs-tr-added td{background:#f0fdf4!important}

.qs-td-name{padding:8px 10px;color:#374151;max-width:0;width:52%}
.qs-td-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.qs-td-qty{padding:8px 10px;text-align:right;color:#94a3b8;white-space:nowrap;width:12%}
.qs-td-price{padding:8px 10px;text-align:right;font-weight:700;color:#1e293b;white-space:nowrap;width:28%}
.qs-td-del{padding:8px 4px;text-align:center;width:28px}
.qs-th-drag{width:22px}
.qs-td-drag{padding:8px 4px 8px 8px;text-align:center;width:22px;cursor:grab;color:#cbd5e1;font-size:16px;line-height:1;user-select:none;touch-action:none}
.qs-td-drag:active{cursor:grabbing}
.qs-table tbody tr[draggable]:hover .qs-td-drag{color:#94a3b8}
.qs-table tbody tr.qs-tr-drag-over td{background:#eff6ff!important;outline:2px dashed #93c5fd;outline-offset:-2px}
.qs-del-btn{
  width:22px;height:22px;padding:0;
  border:none;border-radius:6px;
  background:transparent;color:#cbd5e1;
  font-size:11px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .12s;
}
.qs-del-btn:hover{background:#fee2e2;color:#ef4444}

/* Badge "Neu" pour postes ajoutés */
.qs-new-badge{
  display:inline-block;
  font-size:9px;font-weight:700;
  background:#dcfce7;color:#16a34a;
  padding:1px 5px;border-radius:5px;
  margin-left:5px;vertical-align:middle;letter-spacing:.2px;
}

/* Note filtre */
.qs-filter-note{font-size:10px;color:#d97706;margin-top:2px;font-style:italic}

/* ─ Bloc total ─ */
.quote-sum-total{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;
  background:linear-gradient(135deg,#1e293b 0%,#334155 100%);
}
.qs-total-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}
.qs-total-val{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.3px}

/* ══════════════════════════════════════════════════════════════
   AJOUT PRODUIT + ÜBERDACHUNG
   ══════════════════════════════════════════════════════════════ */

.qs-add-block{padding:10px 14px;border-top:1px solid #f1f5f9;background:#fff}
.qs-add-label{
  font-size:10px;font-weight:700;color:#94a3b8;
  text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;
  display:flex;align-items:center;gap:5px;
}
.qs-search-input{
  width:100%;padding:7px 11px;
  border:1.5px solid #e2e8f0;border-radius:8px;
  font-size:12.5px;color:#374151;background:#f8fafc;
  box-sizing:border-box;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.qs-search-input:focus{
  outline:none;border-color:#4361ee;background:#fff;
  box-shadow:0 0 0 3px rgba(67,97,238,.1);
}
.qs-search-loading{padding:6px 8px;font-size:12px;color:#94a3b8;font-style:italic}
.qs-no-results{padding:6px 8px;font-size:12px;color:#94a3b8;font-style:italic}
.qs-search-results{
  margin-top:4px;border-radius:8px;overflow:hidden;
  max-height:180px;overflow-y:auto;
  border:1px solid #e9ecef;background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.qs-result-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 11px;cursor:pointer;
  border-bottom:1px solid #f3f4f6;transition:background .1s;
}
.qs-result-item:last-child{border-bottom:none}
.qs-result-item:hover{background:#eef2ff}
.qs-result-info{flex:1;overflow:hidden;min-width:0}
.qs-result-name{font-size:12px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.qs-result-desc{font-size:11px;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.qs-result-price{font-size:12px;font-weight:700;color:#4361ee;white-space:nowrap;flex-shrink:0}

/* ─ Überdachung ─ */
.qs-ueber-block{padding:0;background:#fff;border-top:1px solid #f1f5f9}
.qs-ueber-btn{
  width:100%;padding:10px 14px;
  border:none;border-radius:0;background:transparent;
  font-size:12px;font-weight:700;color:#7c3aed;
  cursor:pointer;text-align:left;display:flex;align-items:center;gap:7px;
  transition:background .12s,color .12s;letter-spacing:.1px;
}
.qs-ueber-btn:hover{background:#faf5ff}
.qs-ueber-btn.open{background:#faf5ff;border-bottom:1px solid #e9d5ff}

.qs-ueber-panel{max-height:0;overflow:hidden;transition:max-height .35s ease}
.qs-ueber-panel.open{max-height:660px;overflow-y:auto}

/* Formulaire Überdachung */
.qs-ueber-form{padding:10px 14px 6px;border-bottom:1px solid #f3f4f6;background:#faf5ff}
.qs-ueber-form-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.qs-ueber-form-lbl{font-size:11px;color:#7c3aed;font-weight:600;white-space:nowrap}
.qs-ueber-load-btn{
  padding:5px 12px;border:none;border-radius:7px;
  background:#7c3aed;color:#fff;
  font-size:11px;font-weight:700;cursor:pointer;
  transition:background .12s;white-space:nowrap;margin-left:4px;
}
.qs-ueber-load-btn:hover{background:#6d28d9}

/* Cartes Überdachung */
.qs-ueber-card{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;cursor:pointer;
  border-bottom:1px solid #f3f4f6;transition:background .1s;
}
.qs-ueber-card:last-child{border-bottom:none}
.qs-ueber-card:hover{background:#faf5ff}
.qs-ueber-photo{
  flex-shrink:0;width:100px;height:66px;
  display:flex;align-items:center;justify-content:center;
  background:#f3f4f6;border-radius:8px;overflow:hidden;
}
.qs-ueber-photo img{max-width:100px;max-height:66px;object-fit:contain;display:block}
.qs-ueber-card-info{flex:1;min-width:0}
.qs-ueber-card-name{font-size:12px;font-weight:600;color:#1e293b;line-height:1.3;margin-bottom:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-ueber-card-dims{font-size:11px;color:#94a3b8;margin-bottom:3px}
.qs-ueber-card-price{font-size:13px;font-weight:700;color:#7c3aed}

/* Badges */
.qs-badge{font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;white-space:nowrap;flex-shrink:0}
.qs-badge-ok{background:#dcfce7;color:#16a34a}
.qs-badge-no{background:#f3f4f6;color:#9ca3af}

/* ══════════════════════════════════════════════════════════════
   BOUTONS SPEICHERN + PDF
   ══════════════════════════════════════════════════════════════ */

.qs-actions{
  display:flex;gap:8px;padding:12px 14px 10px;
  background:#fff;border-top:1px solid #f1f5f9;
  flex-wrap:wrap;
}
.qs-save-btn{
  flex:0 0 auto;padding:9px 20px;
  background:linear-gradient(135deg,#4361ee,#5b73f5);color:#fff;
  font-size:13px;font-weight:700;border:none;border-radius:9px;cursor:pointer;
  box-shadow:0 2px 8px rgba(67,97,238,.28);
  transition:all .15s;letter-spacing:.1px;
}
.qs-save-btn:hover:not(:disabled){
  background:linear-gradient(135deg,#3451d1,#4361ee);
  box-shadow:0 4px 14px rgba(67,97,238,.38);transform:translateY(-1px);
}
.qs-save-btn:active:not(:disabled){transform:translateY(0) scale(.98)}
.qs-save-btn:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none}
.qs-pdf-btn{
  flex:0 0 auto;padding:9px 16px;
  background:#f8fafc;color:#64748b;
  font-size:12px;font-weight:600;
  border:1.5px solid #e2e8f0;border-radius:9px;cursor:pointer;
  transition:all .15s;
}
.qs-pdf-btn:hover:not(:disabled){background:#eff6ff;color:#3b82f6;border-color:#93c5fd}
.qs-pdf-btn:disabled{opacity:.5;cursor:not-allowed}
.qs-email-btn{
  flex:0 0 auto;padding:9px 16px;
  background:#f0fdf4;color:#16a34a;
  font-size:12px;font-weight:600;
  border:1.5px solid #86efac;border-radius:9px;cursor:pointer;
  transition:all .15s;
}
.qs-email-btn:hover:not(:disabled){background:#dcfce7;color:#15803d;border-color:#4ade80}
.qs-email-btn:disabled{opacity:.5;cursor:not-allowed}

/* Email preview modal */
.kv-email-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.kv-email-modal{background:#fff;border-radius:12px;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden}
.kv-email-modal-hd{padding:16px 20px;font-weight:700;font-size:15px;border-bottom:1px solid #e5e7eb;background:#f9fafb}
.kv-email-modal-meta{padding:12px 20px;font-size:13px;border-bottom:1px solid #e5e7eb;background:#f9fafb;display:flex;flex-direction:column;gap:4px;color:#374151}
.kv-em-lbl{display:inline-block;width:58px;font-weight:600;color:#6b7280}
.kv-email-modal-body{flex:1;overflow-y:auto;padding:20px 24px;font-size:14px;line-height:1.6;color:#111827;outline:none;min-height:120px}
.kv-email-modal-body:focus{box-shadow:inset 0 0 0 2px #3b82f6}
.kv-email-modal-body p{margin:0 0 12px}
.kv-email-pdf-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;gap:12px;flex-wrap:wrap}
.kv-epdf-name{font-size:13px;color:#374151;font-weight:500}
.kv-epdf-actions{display:flex;gap:8px}
.kv-epdf-btn{padding:6px 14px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:12px;cursor:pointer;text-decoration:none;transition:background .15s}
.kv-epdf-btn:hover{background:#f3f4f6}
.kv-epdf-dl{border-color:#3b82f6;color:#3b82f6}
.kv-epdf-dl:hover{background:#eff6ff}
.kv-email-pdf2-sel{border-top:none;padding-top:6px}
.kv-epdf-select{flex:1;padding:5px 9px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;background:#fff;color:#374151;cursor:pointer}
.kv-extra-drop{margin:0;padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;font-size:12px;color:#6b7280;text-align:center;border:2px dashed transparent;transition:border-color .15s,background .15s}
.kv-extra-drop:hover,.kv-extra-drop-over{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}
.kv-email-modal-ft{padding:14px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:flex-end;gap:10px}
.kv-email-cancel-btn{padding:9px 18px;border-radius:7px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:13px;cursor:pointer;transition:background .15s}
.kv-email-cancel-btn:hover{background:#f3f4f6}
.kv-email-send-btn{padding:9px 20px;border-radius:7px;border:1px solid #16a34a;background:#16a34a;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}
.kv-email-send-btn:hover:not(:disabled){background:#15803d}
.kv-email-send-btn:disabled{opacity:.6;cursor:not-allowed}

/* Duplizieren-Button */
.qs-dupl-btn{
  display:inline-block;margin:0 14px 8px;
  padding:7px 16px;
  background:#fffbeb;color:#92400e;
  font-size:12px;font-weight:600;
  border:1.5px dashed #fbbf24;border-radius:9px;cursor:pointer;
  transition:all .15s;letter-spacing:.1px;
}
.qs-dupl-btn:hover:not(:disabled){
  background:#fef3c7;border-color:#f59e0b;color:#78350f;
  box-shadow:0 2px 8px rgba(245,158,11,.18);
}
.qs-dupl-btn:active:not(:disabled){transform:scale(.98)}
.qs-dupl-btn:disabled{opacity:.5;cursor:not-allowed}

.qs-save-status{
  padding:2px 14px 8px;font-size:11.5px;font-weight:600;
  min-height:18px;background:#fff;
}
.qs-status-ok{color:#16a34a}
.qs-status-err{color:#dc2626}

/* ═══ KOVO TAB ═══ */
#tabKovo{overflow:hidden}
.kv-layout{display:flex;height:100%;overflow:hidden}
.kv-sidebar{width:300px;min-width:220px;display:flex;flex-direction:column;border-right:1px solid #e9ecef;background:#fff;overflow:hidden}
.kv-search-bar{padding:10px 12px;border-bottom:1px solid #e9ecef;flex-shrink:0}
.kv-search-input{width:100%;padding:7px 10px;border:1px solid #dee2e6;border-radius:6px;font-size:13px;outline:none}
.kv-search-input:focus{border-color:#4361ee;box-shadow:0 0 0 2px rgba(67,97,238,.15)}
.kv-prospect-list{flex:1;overflow-y:auto;padding:4px 0}
.kv-prospect-item{padding:9px 14px;cursor:pointer;border-bottom:1px solid #f1f3f5;transition:background .1s}
.kv-prospect-item:hover{background:#f0f4ff}
.kv-item-active{background:#e8edff!important;border-left:3px solid #4361ee}
.kv-p-name{font-size:13px;font-weight:600;color:#212529;display:flex;align-items:center;gap:5px}
.kv-p-meta{display:flex;justify-content:space-between;margin-top:2px}
.kv-p-city{font-size:11px;color:#868e96}
.kv-p-date{font-size:11px;color:#adb5bd}
.kv-dot{width:7px;height:7px;border-radius:50%;background:#4361ee;display:inline-block;flex-shrink:0}
.kv-detail{flex:1;overflow-y:auto;background:#f8f9fa;padding:0}
.kv-detail-inner{max-width:700px;margin:0 auto;padding:20px}
.kv-msg{padding:32px 20px;text-align:center;color:#868e96;font-size:14px}
.kv-err{color:#dc2626}
.kv-empty-hint{opacity:.6}
.kv-quote-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.kv-qtab{padding:5px 14px;border:1px solid #dee2e6;border-radius:20px;font-size:12px;font-weight:600;color:#6c757d;background:#fff;cursor:pointer;transition:all .15s}
.kv-qtab:hover{border-color:#4361ee;color:#4361ee}
.kv-qtab-active{background:#4361ee;border-color:#4361ee;color:#fff}
.kv-pool-type-bar{display:inline-flex;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;margin-bottom:14px}
.kv-seg-btn{padding:7px 18px;font-size:13px;font-weight:600;color:#6c757d;background:#fff;border:none;border-right:1px solid #dee2e6;cursor:pointer;transition:all .15s}
.kv-seg-btn:last-child{border-right:none}
.kv-seg-btn:hover{background:#f1f3f5;color:#343a40}
.kv-seg-active{background:#4361ee;color:#fff}
.kv-seg-active:hover{background:#3451d1;color:#fff}
.kv-prospect-header{display:flex;flex-direction:column;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:12px;cursor:pointer;overflow:hidden;transition:border-color .15s;user-select:none}
.kv-prospect-header:hover{border-color:#c7d4ff}
.kv-ph-bar{display:flex;align-items:center;justify-content:space-between;padding:7px 12px}
.kv-ph-label{font-size:12px;font-weight:700;color:#6c757d}
.kv-ph-chevron{font-size:10px;color:#adb5bd}
.kv-ph-body{padding:6px 12px 10px;display:flex;flex-direction:column;gap:7px;border-top:1px solid #e9ecef}
.kv-bigin-btn{align-self:flex-start;padding:3px 10px;background:#4361ee;color:#fff;border-radius:5px;text-decoration:none;font-size:11px;font-weight:700;white-space:nowrap;line-height:20px}
.kv-bigin-btn:hover{background:#3451d1}
.kv-contact-desc{font-size:12px;color:#495057;line-height:1.45;white-space:pre-wrap;word-break:break-word}

/* ── Prospect action buttons (côte à côte) ── */
.prospect-action-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.prospect-action-btns .bigin-link-btn,.prospect-action-btns .kovo-edit-btn{margin-top:0}

/* ── Liste Kostenvoranschlag ── */
.kv-quote-list{display:flex;flex-direction:column;gap:8px}
.kv-quote-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e9ecef;border-radius:9px;transition:box-shadow .15s}
.kv-quote-row:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}
.kv-quote-main{flex:1;min-width:0}
.kv-quote-title{font-size:13px;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-quote-meta{display:flex;align-items:center;gap:8px;margin-top:3px;flex-wrap:wrap}
.kv-quote-num{font-size:11px;color:#9ca3af;font-weight:600}
.kv-quote-date{font-size:11px;color:#9ca3af}
.kv-quote-status{font-size:11px;font-weight:700;padding:1px 7px;border:1px solid;border-radius:20px;background:transparent}
.kv-quote-total{font-size:13px;font-weight:700;color:#1a1a2e;white-space:nowrap;margin-left:auto;padding-right:4px}
.kv-quote-preview-btn{flex-shrink:0;padding:6px 12px;background:#f8fafc;color:#4361ee;border:1.5px solid #c7d4ff;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.kv-quote-preview-btn:hover{background:#eef2ff;box-shadow:0 2px 8px rgba(67,97,238,.18)}

/* ── PDF Preview Modal ── */
.pdf-modal-box{background:#fff;border-radius:14px;width:92vw;max-width:950px;height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.pdf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #e9ecef;flex-shrink:0}
.pdf-modal-title{font-size:14px;font-weight:700;color:#1a1a2e}
.pdf-modal-close{background:none;border:none;font-size:20px;color:#6b7280;cursor:pointer;line-height:1;padding:2px 6px;border-radius:5px;transition:background .15s}
.pdf-modal-close:hover{background:#f3f4f6;color:#111}
.pdf-modal-frame{flex:1;border:none;width:100%}

/* ════════════════════════════════════════════════════════
   APD — Neues Termin-Detail Design
   ════════════════════════════════════════════════════════ */
.apd-page{display:flex;flex-direction:column;height:100%;background:#eef1f6;overflow:hidden}

/* ── En-tête dégradé ── */
.apd-header{background:linear-gradient(140deg,#4361ee 0%,#7b8cff 100%);padding:14px 16px 20px;flex-shrink:0}
.apd-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.apd-back-btn{background:rgba(255,255,255,.22);border:none;color:#fff;border-radius:50%;width:34px;height:34px;font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.apd-back-btn:hover{background:rgba(255,255,255,.35)}
.apd-unbind-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:16px;padding:5px 14px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .15s}
.apd-unbind-btn:hover{background:rgba(255,255,255,.28)}
.apd-header-name{text-align:center;font-size:21px;font-weight:800;color:#fff;letter-spacing:-.3px;margin-bottom:8px;text-shadow:0 1px 4px rgba(0,0,0,.12)}
.apd-header-badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.apd-badge-pill{padding:4px 14px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.apd-badge-title{background:rgba(255,255,255,.25);color:#fff}
.apd-badge-stage{font-weight:700}

/* ── Zone scrollable ── */
.apd-scroll{flex:1;overflow-y:auto;padding:14px 12px 20px;display:flex;flex-direction:column;gap:12px}

/* ── Cards ── */
.apd-card{background:#fff;border-radius:16px;padding:16px 16px 14px;box-shadow:0 1px 6px rgba(0,0,0,.07)}
.apd-card-title{font-size:14.5px;font-weight:800;color:#1a1a2e;margin-bottom:13px;display:flex;align-items:center;gap:7px}

/* ── Quick Info ── */
.apd-quick-btns{display:flex;justify-content:space-around;margin-bottom:14px}
.apd-qbtn{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;border:none;background:none;padding:0 6px;cursor:pointer}
.apd-qbtn-icon{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .15s}
.apd-qbtn:hover .apd-qbtn-icon{transform:scale(1.07)}
.apd-qbtn > span{font-size:11.5px;font-weight:600;color:#374151;text-align:center}
.apd-qbtn-green .apd-qbtn-icon{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 4px 12px rgba(34,197,94,.35)}
.apd-qbtn-blue  .apd-qbtn-icon{background:linear-gradient(135deg,#3b82f6,#4361ee);color:#fff;box-shadow:0 4px 12px rgba(67,97,238,.32)}
.apd-qbtn-orange .apd-qbtn-icon{background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;box-shadow:0 4px 12px rgba(249,115,22,.32)}
.apd-qbtn-dim .apd-qbtn-icon{background:#e9ecef;color:#adb5bd}
.apd-qbtn-dim > span{color:#adb5bd}
.apd-status-row{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#f8f9fa;border-radius:10px;font-size:13px;color:#374151;margin-bottom:12px}
.apd-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.apd-card-btns{display:flex;gap:8px;flex-wrap:wrap}
.apd-link-btn{padding:7px 16px;background:#eef2ff;color:#4361ee;border-radius:9px;text-decoration:none;font-size:12.5px;font-weight:700;transition:all .15s}
.apd-link-btn:hover{background:#e0e7ff;color:#3451d1}
.apd-kovo-btn{padding:7px 16px;background:linear-gradient(135deg,#0ea47a,#059669);color:#fff;border:none;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .15s;box-shadow:0 2px 8px rgba(14,164,122,.22)}
.apd-kovo-btn:hover{background:linear-gradient(135deg,#0b8f6b,#047857)}

/* ── Termindetails ── */
.apd-tline{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:#374151;margin-bottom:8px}
.apd-tline:last-child{margin-bottom:0}
.apd-tline-icon{flex-shrink:0;margin-top:2px;color:#4361ee}
.apd-tline-date{font-weight:700;color:#1a1a2e}

/* ── Kostenvoranschlag ── */
.apd-kv-row{background:#f8f9fa;border-radius:12px;padding:12px 14px;margin-bottom:8px}
.apd-kv-row:last-child{margin-bottom:0}
.apd-kv-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}
.apd-kv-num{font-size:13px;font-weight:700;color:#1a1a2e}
.apd-kv-date{font-size:12px;color:#9ca3af}
.apd-kv-subject{font-size:12.5px;color:#6b7280;margin-bottom:8px}
.apd-kv-bottom{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.apd-kv-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.apd-kv-total{font-size:15px;font-weight:800;color:#1a1a2e}
.apd-kv-actions{display:flex;gap:8px}
.apd-kv-preview-btn,.apd-kv-download-btn,.apd-kv-edit-btn{flex:1;padding:11px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .15s;text-decoration:none}
.apd-kv-preview-btn{background:#fff;border:1.5px solid #e5e7eb;color:#1a1a2e}
.apd-kv-preview-btn:hover{border-color:#4361ee;color:#4361ee;background:#f0f2ff}
.apd-kv-download-btn{background:#fff;border:1.5px solid #e5e7eb;color:#1a1a2e}
.apd-kv-download-btn:hover{border-color:#2f9e44;color:#2f9e44;background:#f0fdf4}
.apd-kv-edit-btn{background:#fff;border:1.5px solid #e5e7eb;color:#1a1a2e}
.apd-kv-edit-btn:hover{border-color:#f59e0b;color:#d97706;background:#fffbeb}

/* ── Notizen ── */
.apd-note-form{display:flex;gap:8px;margin-bottom:12px;align-items:flex-end}
.apd-note-input{flex:1;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:13px;color:#1a1a2e;background:#f8f9fa;resize:none;font-family:inherit;transition:border .15s;line-height:1.45}
.apd-note-input:focus{outline:none;border-color:#4361ee;background:#fff}
.apd-note-save-btn{flex-shrink:0;padding:9px 18px;background:#4361ee;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s}
.apd-note-save-btn:hover{background:#3451d1}
.apd-note-card{padding:10px 0;border-bottom:1px solid #f1f3f5}
.apd-note-card:last-child{border-bottom:none}
.apd-note-title{font-size:13.5px;font-weight:700;color:#1a1a2e;margin-bottom:3px}
.apd-note-content{font-size:13px;color:#374151;line-height:1.5;white-space:pre-wrap}
.apd-note-meta{font-size:11px;color:#9ca3af;margin-top:4px;display:flex;gap:6px}
.apd-note-meta span+span::before{content:'·'}

/* ── E-Mails ── */
.apd-email-card{padding:11px 0;border-bottom:1px solid #f1f3f5;cursor:pointer}
.apd-email-card:last-child{border-bottom:none}
.apd-email-card:hover{background:#fafafa}
.apd-email-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:3px}
.apd-email-subject{font-size:13.5px;font-weight:700;color:#1a1a2e;flex:1;line-height:1.35}
.apd-email-date{font-size:11px;color:#9ca3af;flex-shrink:0;white-space:nowrap}
.apd-email-from{font-size:12px;color:#6b7280;margin-bottom:3px}
.apd-email-read{font-size:11.5px;color:#16a34a;font-weight:600}
.apd-email-unread{font-size:11.5px;color:#9ca3af}

/* ── Loading ── */
.apd-loading{display:flex;align-items:center;justify-content:center;padding:18px;color:#9ca3af}

/* ── Trafic Web — sélecteur de période ── */
.tw-days-group{display:inline-flex;border:1.5px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#f8fafc}
.tw-days-btn{padding:5px 12px;font-size:12px;font-weight:600;color:#64748b;background:transparent;border:none;border-right:1px solid #e2e8f0;cursor:pointer;transition:all .12s;white-space:nowrap}
.tw-days-btn:last-child{border-right:none}
.tw-days-btn:hover{background:#eef2ff;color:#4361ee}
.tw-days-btn.active{background:#4361ee;color:#fff}
.tw-days-btn-custom{font-size:13px;padding:5px 10px}
.tw-date-input{padding:5px 8px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:12px;color:#374151;background:#fff;cursor:pointer;transition:border .15s}
.tw-date-input:focus{outline:none;border-color:#4361ee}

/* ── Taux de conversion badge ── */
.tw-conv-rate-badge{display:inline-block;padding:2px 8px;background:#d1fae5;color:#065f46;border-radius:20px;font-size:11.5px;font-weight:700}

/* ── Ligne résumé tableau conversions ── */
.tw-conv-summary-row td{background:#f8fafc;border-top:2px solid #e2e8f0;padding:9px 12px;font-size:12px;color:#374151}
.tw-summary-label{color:#6b7280;margin-right:4px}
.tw-summary-sub{display:block;font-size:10px;color:#9ca3af;font-weight:400}

/* ═══ Historique Tab ═══ */
.hist-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#f2f2f7}
.hist-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;background:#fff;border-bottom:1px solid #e9ecef;flex-shrink:0}
.hist-title{font-size:18px;font-weight:700;color:#1a1a2e}
.hist-controls{display:flex;align-items:center;gap:8px}
.hist-search{padding:7px 12px;border:1px solid #ced4da;border-radius:8px;font-size:13px;outline:none;width:200px;transition:border-color .15s}
.hist-search:focus{border-color:#4361ee;box-shadow:0 0 0 3px rgba(67,97,238,.12)}
.hist-refresh-btn{padding:7px 10px;background:#f2f2f7;border:1px solid #ced4da;border-radius:8px;font-size:16px;cursor:pointer;color:#495057;transition:background .15s;line-height:1}
.hist-refresh-btn:hover{background:#e9ecef}
.hist-filters{display:flex;gap:6px;padding:10px 16px;background:#fff;border-bottom:1px solid #e9ecef;flex-shrink:0}
.hist-filter-btn{padding:5px 14px;font-size:12px;font-weight:600;border:1.5px solid #dee2e6;border-radius:20px;background:#fff;color:#6c757d;cursor:pointer;transition:all .15s}
.hist-filter-btn.active{background:#4361ee;color:#fff;border-color:#4361ee}
.hist-filter-btn:hover:not(.active){background:#f2f2f7}
.hist-timeline{flex:1;overflow-y:auto;padding:12px 16px 24px}
.hist-day-sep{font-size:11px;font-weight:700;color:#9ca3af;text-transform:capitalize;padding:14px 0 6px;letter-spacing:.3px}
.hist-event{display:flex;align-items:flex-start;gap:10px;background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.hist-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;line-height:1}
.hist-icon-check{background:#d1fae5;color:#065f46}
.hist-icon-ignore{background:#fee2e2;color:#991b1b}
.hist-icon-snooze{background:#fef3c7;color:#92400e}
.hist-icon-note{background:#ede9fe;color:#6d28d9}
.hist-icon-email-out{background:#dbeafe;color:#1d4ed8}
.hist-icon-email-in{background:#e0f2fe;color:#0369a1}
.hist-event-body{flex:1;min-width:0}
.hist-event-title{font-size:13px;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-event-sub{font-size:12px;color:#495057;margin-top:2px}
.hist-event-comment{font-size:12px;color:#6c757d;margin-top:3px;line-height:1.4}
.hist-event-by{font-size:11px;color:#9ca3af;margin-top:3px}
.hist-event-time{font-size:11px;color:#9ca3af;white-space:nowrap;flex-shrink:0;align-self:flex-start;padding-top:2px}
.hist-bigin-link{color:#4361ee;text-decoration:none;font-size:11px;margin-left:4px;opacity:.7}
.hist-bigin-link:hover{opacity:1}
.hist-loading{display:flex;align-items:center;gap:10px;padding:30px 20px;color:#6c757d;font-size:14px}
.hist-empty{padding:30px 20px;color:#9ca3af;font-size:14px;text-align:center}

/* ═══ Nav Search ═══ */
.nav-search{position:relative;display:flex;align-items:center;gap:6px;padding:0 8px;flex-shrink:0;border-left:1px solid #e9ecef}
.nav-search-icon{color:#9ca3af;flex-shrink:0}
.nav-search-input{padding:5px 10px;border:1.5px solid #dee2e6;border-radius:20px;font-size:13px;width:150px;outline:none;background:#f8f9fa;color:#212529;transition:all .2s}
.nav-search-input:focus{border-color:#4361ee;background:#fff;box-shadow:0 0 0 3px rgba(67,97,238,.1);width:200px}
.nav-search-input::placeholder{color:#adb5bd}
.nav-search-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:280px;background:#fff;border:1px solid #dee2e6;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:9999;display:none;overflow:hidden}
.nav-search-item{display:flex;align-items:center;gap:8px;padding:9px 14px;cursor:pointer;border-bottom:1px solid #f1f3f5;font-size:13px;color:#212529;text-decoration:none}
.nav-search-item:last-child{border-bottom:none}
.nav-search-item:hover{background:#f2f2f7}
.nav-search-name{font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-search-city{font-size:11px;color:#9ca3af;white-space:nowrap;flex-shrink:0}
.nav-search-no-bigin{font-size:11px;color:#cbd5e1;flex-shrink:0}
.nav-search-empty{padding:12px 14px;font-size:13px;color:#9ca3af;text-align:center}

/* ═══ Configuration Tab — Sub-nav ═══ */
.cfg-subnav{display:flex;align-items:center;gap:4px;padding:10px 20px;background:#fff;border-bottom:1.5px solid #e5e7eb;flex-shrink:0}
.cfg-sub-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;font-size:13px;font-weight:600;color:#6b7280;background:#f3f4f6;border:1.5px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s}
.cfg-sub-btn:hover{color:#4361ee;border-color:#c7d8ff;background:#f0f4ff}
.cfg-sub-btn.active{color:#4361ee;background:#eff6ff;border-color:#93c5fd}
#cfgSubAutomation,#cfgSubProdukt{flex:1;overflow-y:auto;min-height:0}
.cfg-apply-btn{padding:3px 10px;font-size:11px;font-weight:600;border:1.5px solid #d1fae5;border-radius:6px;background:#f0fdf4;color:#065f46;cursor:pointer;white-space:nowrap;transition:all .15s}
.cfg-apply-btn:hover{background:#dcfce7;border-color:#6ee7b7}
.cfg-apply-btn.applied{background:#d1fae5;color:#047857;border-color:#6ee7b7}
.app-version-badge{font-size:10px;font-weight:700;color:#fff;background:#4361ee;border-radius:4px;padding:2px 5px;letter-spacing:.5px;flex-shrink:0;user-select:none}
.cfg-gear-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;border:none;cursor:pointer;color:#6c757d;border-radius:50%;transition:all .15s;flex-shrink:0}
.cfg-gear-btn:hover,.cfg-gear-btn.active{color:#4361ee;background:#f0f4ff}
.apd-nearby-item{display:flex;align-items:flex-start;gap:6px;padding:5px 0;border-bottom:1px solid #f3f4f6}
.apd-nearby-item:last-child{border-bottom:none}

/* ═══ Karte Tab ═══ */
.karte-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#fff}
.karte-topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fff;border-bottom:1px solid #e9ecef;flex-shrink:0;flex-wrap:wrap}
.karte-view-toggle{display:flex;border:1.5px solid #e5e7eb;border-radius:8px;overflow:hidden;flex-shrink:0}
.karte-view-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;font-size:13px;font-weight:600;color:#6b7280;background:#fff;border:none;cursor:pointer;transition:all .15s}
.karte-view-btn.active{background:#4361ee;color:#fff}
.karte-search-input{padding:6px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;width:200px;transition:border-color .15s}
.karte-search-input:focus{border-color:#4361ee}
.karte-status-select{padding:6px 10px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;color:#374151;cursor:pointer}
.karte-count{font-size:12px;color:#9ca3af;margin-left:auto;white-space:nowrap}
.karte-table{width:100%;border-collapse:collapse;font-size:13px}
.karte-table thead th{position:sticky;top:0;background:#f8f9fa;padding:9px 14px;text-align:left;font-size:12px;font-weight:700;color:#6b7280;border-bottom:1.5px solid #e9ecef;white-space:nowrap}
.karte-table tbody td{padding:9px 14px;border-bottom:1px solid #f3f4f6;vertical-align:middle}
.karte-row{cursor:pointer;transition:background .1s}
.karte-row:hover{background:#f5f7ff}
@media(max-width:768px){
  .karte-search-input{width:120px}
  .karte-topbar{gap:6px;padding:8px 10px}
}

/* ═══ Mobile overrides (après toutes les règles de base) ═══ */
@media(max-width:768px){
  /* Bandeau bleu fiche client */
  .apd-header{padding:8px 12px 10px}
  .apd-header-name{font-size:16px;margin-bottom:5px}
  .apd-badge-pill{padding:3px 10px;font-size:11px}
  .apd-back-btn{width:28px;height:28px;font-size:14px}
  .apd-unbind-btn{padding:3px 10px;font-size:11px}
  .apd-qbtn-icon{width:46px;height:46px}
  .apd-qbtn > span{font-size:11px}
  .apd-scroll{padding:10px 10px 16px;gap:10px}
  /* Liste des mois */
  .month-header{padding:6px 10px}
  .month-label{font-size:12px}
  .month-count{font-size:10px;padding:1px 5px}
  .appointment-row{padding:6px 10px 6px 8px;gap:7px}
  .appointment-date{font-size:10px}
  .appointment-time{font-size:10px}
}

/* ═══ Dark Toggle Button ═══ */
.dark-toggle-btn{background:none;border:none;cursor:pointer;color:#6c757d;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.dark-toggle-btn:hover{background:#e9ecef;color:#212529}

/* ═══ Dark Mode ═══ */
body.dark-mode,body.dark-mode html{background:#1a1a2e;color:#e0e0e0}
body.dark-mode .app-wrapper,body.dark-mode .app-container,body.dark-mode .tab-content,body.dark-mode .tab-content.active,body.dark-mode .map-area{background:#1a1a2e}

/* Catch-all : tout fond blanc devient bleu foncé */
body.dark-mode .dpanel-actions,body.dark-mode .dpanel-card,body.dark-mode .dpanel-section,
body.dark-mode .dpanel-note-input,
body.dark-mode .email-content,body.dark-mode .appointment-sidebar .sidebar-header,
body.dark-mode .appointment-detail,body.dark-mode .appt-detail-header,
body.dark-mode .filter-btn,body.dark-mode .btn-bind,body.dark-mode .search-dropdown,
body.dark-mode .nav-search.nav-search--open,
body.dark-mode .overview-summary,body.dark-mode .month-card,
body.dark-mode .tw-sync-btn,body.dark-mode .tw-select,body.dark-mode .tw-view-selector,
body.dark-mode .tw-table-header,body.dark-mode .tw-filter-select,
body.dark-mode .tw-pagination,body.dark-mode .tw-page-btn,
body.dark-mode .chk-header,body.dark-mode .chk-card,
body.dark-mode .chk-modal-content,body.dark-mode .chk-ac-dropdown,
body.dark-mode .chk-btn-cancel,
body.dark-mode .kv-sidebar,body.dark-mode .kv-email-modal,
body.dark-mode .kv-epdf-btn,body.dark-mode .kv-email-cancel-btn,
body.dark-mode .qs-add-block,body.dark-mode .qs-ueber-block,
body.dark-mode .qs-switch-btn,body.dark-mode .qs-pool-input,
body.dark-mode .quote-sum,body.dark-mode .quote-sum-loading,body.dark-mode .quote-sum-empty,
body.dark-mode .quote-sum-header,body.dark-mode .quote-sum-date,
body.dark-mode .btn-google,body.dark-mode .setup-card,
body.dark-mode .btn-logout{background:#16213e!important;color:#e0e0e0;border-color:#2a2a4a}

/* Tab bar */
body.dark-mode .tab-bar{background:#16213e;border-bottom-color:#2a2a4a}
body.dark-mode .tab-button{color:#9ca3af}
body.dark-mode .tab-button:hover{color:#e0e0e0}
body.dark-mode .tab-button.active{color:#e0e0e0;border-bottom-color:#818cf8}

/* Sidebar */
body.dark-mode .sidebar{background:#16213e;border-right-color:#2a2a4a}
body.dark-mode .sidebar-header{border-bottom-color:#2a2a4a}
body.dark-mode .sidebar-title{color:#e0e0e0}
body.dark-mode .sidebar-count{background:#2a2a4a;color:#9ca3af}
body.dark-mode .sidebar-search{border-bottom-color:#2a2a4a}
body.dark-mode .search-input{background:#0f0f23;border-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .search-input:focus{border-color:#818cf8;box-shadow:0 0 0 3px rgba(129,140,248,.2)}
body.dark-mode .sidebar-toggle-all{background:#0f0f23;border-bottom-color:#2a2a4a}
body.dark-mode .toggle-all-text{color:#9ca3af}
body.dark-mode .sidebar-route{background:#0f0f23;border-bottom-color:#2a2a4a}
body.dark-mode .sidebar-route.route-active{background:#0d2818}

/* Prospect list */
body.dark-mode .prospect-list{background:#16213e}
body.dark-mode .prospect-item{border-bottom-color:#2a2a4a}
body.dark-mode .prospect-item:hover{background:#1e2a4a}
body.dark-mode .prospect-item.active{background:#1e2a6a;border-left-color:#818cf8}
body.dark-mode .prospect-name{color:#e0e0e0}
body.dark-mode .prospect-city{color:#9ca3af}
body.dark-mode .prospect-date{color:#6b7280}
body.dark-mode .prospect-interaction{color:#4dabf7}
body.dark-mode .prospect-days-badge.fresh{background:#1a4731;color:#8ce99a}
body.dark-mode .prospect-days-badge.late{background:#3d2b00;color:#ffd43b}
body.dark-mode .prospect-item.route-selected{background:#1a1200;border-left-color:#e67700}
body.dark-mode .route-info{background:#16213e}
body.dark-mode .route-summary{background:#0d2818;color:#e0e0e0;border-bottom-color:#2a2a4a}
body.dark-mode .route-leg:hover{background:#1e2a4a}
body.dark-mode .route-leg-name{color:#e0e0e0}
body.dark-mode .route-leg-detail{color:#6b7280}

/* Detail panel */
body.dark-mode .detail-panel{background:#16213e;border-left-color:#2a2a4a;box-shadow:-4px 0 24px rgba(0,0,0,.5)}
body.dark-mode .detail-panel-body{background:#1a1a2e}
body.dark-mode .dpanel-topbar{background:#16213e;border-bottom-color:#2a2a4a}
body.dark-mode .dpanel-hero{background:#0f0f23}
body.dark-mode .dpanel-name{color:#e0e0e0}

/* Cards & sections */
body.dark-mode .apd-section{background:#16213e;border-color:#2a2a4a}
body.dark-mode .apd-section-title{color:#9ca3af}
body.dark-mode .apd-field-label{color:#6b7280}
body.dark-mode .apd-field-value{color:#e0e0e0}
body.dark-mode .apd-header{background:#0f0f23}
body.dark-mode .apd-scroll{background:#1a1a2e}
body.dark-mode .month-header{background:#16213e;border-bottom-color:#2a2a4a}
body.dark-mode .month-label{color:#9ca3af}
body.dark-mode .appointment-row{border-bottom-color:#2a2a4a;background:#16213e}
body.dark-mode .appointment-row:hover{background:#1e2a4a}
body.dark-mode .appt-interaction-label{color:#4dabf7}
body.dark-mode .appt-interaction-days.fresh{background:#1a4731;color:#8ce99a}
body.dark-mode .appt-interaction-days.late{background:#3d2b00;color:#ffd43b}

/* Trafic / chart */
body.dark-mode .tw-panel,body.dark-mode .tw-body,body.dark-mode .tw-content{background:#1a1a2e}
body.dark-mode .tw-header{background:#16213e;border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .tw-toggle{background:#16213e;color:#9ca3af;border-color:#2a2a4a}
body.dark-mode .tw-toggle.active{background:#4361ee;color:#fff;border-color:#4361ee}
body.dark-mode .tw-toggle:hover:not(.active){background:#1e2a4a}
body.dark-mode .tw-chart-wrap,body.dark-mode .tw-chart-section,body.dark-mode .tw-chart-area,body.dark-mode .tw-chart-area canvas{background:#16213e}
body.dark-mode .tw-section-title{color:#9ca3af}
body.dark-mode .tw-kw-row{border-bottom-color:#2a2a4a;background:#16213e}
body.dark-mode .tw-kw-row:hover{background:#1e2a4a}
body.dark-mode .tw-kw-name{color:#e0e0e0}
body.dark-mode .tw-kw-value{color:#9ca3af}
body.dark-mode .tw-view-tab{background:#16213e;color:#9ca3af;border-color:#2a2a4a}
body.dark-mode .tw-view-tab.active{background:#4361ee;color:#fff}
body.dark-mode .tw-tab-content{background:#1a1a2e;color:#e0e0e0}
body.dark-mode .tw-table thead th{background:#16213e;color:#9ca3af;border-bottom-color:#2a2a4a}
body.dark-mode .tw-table tbody td{border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .tw-table tbody tr:hover td{background:#1e2a4a}

/* Kovo / quote */
body.dark-mode .kovo-panel,body.dark-mode .kv-body,body.dark-mode .kv-content{background:#1a1a2e}
body.dark-mode .kovo-header,body.dark-mode .kv-header{background:#16213e;border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .kovo-section,body.dark-mode .kv-section{background:#16213e;border-color:#2a2a4a}
body.dark-mode .kovo-label,body.dark-mode .kv-label{color:#6b7280}
body.dark-mode .kovo-value,body.dark-mode .kv-value{color:#e0e0e0}
body.dark-mode .quote-table thead th{background:#16213e;color:#9ca3af;border-bottom-color:#2a2a4a}
body.dark-mode .quote-table tbody td{border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .quote-table tbody tr:hover td{background:#1e2a4a}

/* Karte table */
body.dark-mode .karte-table thead th{background:#16213e;color:#9ca3af;border-bottom-color:#2a2a4a}
body.dark-mode .karte-table tbody td{border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .karte-row:hover{background:#1e2a4a}
body.dark-mode .karte-topbar{background:#16213e;border-bottom-color:#2a2a4a}
body.dark-mode .karte-search-input{background:#0f0f23;border-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .karte-status-select{background:#0f0f23;border-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .karte-count{color:#6b7280}

/* Modals */
body.dark-mode .modal-overlay{background:rgba(0,0,0,.75)}
body.dark-mode .modal-box{background:#16213e;color:#e0e0e0}
body.dark-mode .modal-header{background:#0f0f23;border-bottom-color:#2a2a4a;color:#e0e0e0}
body.dark-mode .modal-body{background:#16213e;color:#e0e0e0}
body.dark-mode .modal-footer{background:#0f0f23;border-top-color:#2a2a4a}

/* Inputs & selects */
body.dark-mode input[type=text],body.dark-mode input[type=email],body.dark-mode input[type=number],body.dark-mode select,body.dark-mode textarea{background:#0f0f23;border-color:#2a2a4a;color:#e0e0e0}
body.dark-mode input[type=text]:focus,body.dark-mode input[type=email]:focus,body.dark-mode input[type=number]:focus,body.dark-mode select:focus,body.dark-mode textarea:focus{border-color:#818cf8}

/* Dark toggle button in dark mode */
body.dark-mode .dark-toggle-btn{color:#9ca3af}
body.dark-mode .dark-toggle-btn:hover{background:#2a2a4a;color:#e0e0e0}

/* ═══════════════════════════════════════════════════════════
   SHARED COMPONENTS (badges, tables)
   ═══════════════════════════════════════════════════════════ */
.gads-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}
.gads-conv-table{width:100%;border-collapse:collapse;font-size:13px}
.gads-conv-table th{padding:9px 12px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid #e5e7eb;white-space:nowrap;background:#fafafa;position:sticky;top:0;z-index:1}
.gads-conv-table td{padding:9px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle;color:#374151}
.gads-conv-table tbody tr:hover{background:#f9fafb}
body.dark-mode .gads-conv-table th{background:#1a2340;color:#94a3b8;border-bottom-color:#2d3a5e}
body.dark-mode .gads-conv-table td{border-bottom-color:#1e2a4a;color:#cbd5e1}
body.dark-mode .gads-conv-table tbody tr:hover{background:#1e2a4a}

/* ═══════════════════════════════════════════════════════════
   FINANCE TAB
   ═══════════════════════════════════════════════════════════ */

/* KPI cards */
.fin-kpi-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.fin-kpi-card-yr{background:#f0f4ff;border-color:#c7d2fe;border-left:3px solid #4361ee}
.fin-kpi-label{font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}
.fin-kpi-card-yr .fin-kpi-label{color:#6674cc}
.fin-kpi-val{font-size:22px;font-weight:800;color:#1a1a2e}
.fin-kpi-diff{font-size:11px;font-weight:600}
.fin-kpi-fc{font-size:11px;color:#9ca3af;font-weight:500}

/* Chart cards */
.fin-chart-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;width:100%;box-sizing:border-box;min-width:0}
.fin-chart-title{font-size:13px;font-weight:700;color:#374151}

/* Charts grid: 2 cols, count full-width via grid-column:1/-1 */
.fin-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* Filter row */
.fin-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fin-grp-btns{display:flex;gap:4px;margin-left:auto}

/* Form inputs (add sale modal) */
.fin-form-label{display:block;font-size:11px;font-weight:600;color:#6b7280;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
.fin-form-input{width:100%;padding:8px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;background:#fff;box-sizing:border-box}
.fin-form-input:focus{border-color:#4361ee}

/* Groupby buttons active state */
#finGrp_month.active,#finGrp_quarter.active,#finGrp_year.active{background:#4361ee;color:#fff;border-color:#4361ee}

/* Dark mode */
body.dark-mode .fin-kpi-card{background:#1e2a4a;border-color:#2d3a5e}
body.dark-mode .fin-kpi-card-yr{background:#1a2545;border-color:#3a4a8e;border-left-color:#818cf8}
body.dark-mode .fin-kpi-card-yr .fin-kpi-label{color:#818cf8}
body.dark-mode .fin-kpi-fc{color:#6b7280}
body.dark-mode .fin-kpi-val{color:#f1f5f9}
body.dark-mode .fin-chart-card{background:#1e2a4a;border-color:#2d3a5e}
body.dark-mode .fin-chart-title{color:#cbd5e1}
body.dark-mode .fin-form-input{background:#16213e;border-color:#2d3a5e;color:#f1f5f9}
body.dark-mode #finAddModal>div{background:#16213e;color:#e0e0e0}

/* Mobile */
@media(max-width:640px){
  .fin-charts-grid{grid-template-columns:1fr}
  .fin-grp-btns{margin-left:0;width:100%}
  .fin-grp-btns button{flex:1}
  #finSubPerformance{padding:12px 14px !important}
}

/* ── Tooltip URL Trafic Web ──────────────────────────────────────────────── */
.tw-url-tooltip{
  display:none;
  position:absolute;
  z-index:9999;
  background:#1e2535;
  color:#e8eaf0;
  border-radius:10px;
  padding:10px 14px;
  min-width:260px;
  max-width:480px;
  box-shadow:0 8px 28px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.2);
  pointer-events:none;
  font-size:12px;
  line-height:1.5;
  border:1px solid rgba(255,255,255,.08);
}
.tw-url-tooltip-row{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:5px 0;
}
.tw-url-tooltip-row+.tw-url-tooltip-row{
  border-top:1px solid rgba(255,255,255,.07);
}
.tw-url-tooltip-label{
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.6px;
  color:#7c8db5;
}
.tw-url-tooltip-val{
  color:#d6dff5;
  word-break:break-all;
  font-size:12px;
}
.tw-url-tooltip-last{
  color:#60a5fa;
}
.tw-url-tooltip-date{
  color:#34d399;
  font-weight:600;
  font-size:12px;
}
.tw-url-tooltip-first .tw-url-tooltip-val{
  color:#94a3b8;
}

/* ═══════════════════════════════════════════════════════════
   KOVO — Tab bar inline (Pool / Bauarbeit PP / Bauarbeit Folien)
   ═══════════════════════════════════════════════════════════ */
.kv-detail-tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:12px;margin-top:4px}
.kv-dtab{flex:1;padding:9px 8px;border:none;background:none;cursor:pointer;font-size:12px;font-weight:600;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;white-space:nowrap}
.kv-dtab:hover{color:#374151}
.kv-dtab-active{color:#3451d1!important;border-bottom-color:#3451d1!important}
#kvKalkPanel{background:#fff}
.kalk-panel-inner{padding:12px 0}
.kalk-sub-cb{padding-left:18px}
.kalk-sub-cb .kalk-checkbox-label{font-size:12px;color:#6b7280}
.dark-mode .kv-detail-tabs{border-color:#334155}
.dark-mode .kv-dtab{color:#94a3b8}
.dark-mode .kv-dtab:hover{color:#f1f5f9}
.dark-mode .kv-dtab-active{color:#60a5fa!important;border-color:#60a5fa!important}
.dark-mode #kvKalkPanel{background:#0f172a}

/* ═══════════════════════════════════════════════════════════
   KALKULATION
   ═══════════════════════════════════════════════════════════ */
.kalk-wrapper{padding:20px;max-width:1100px;margin:0 auto}
.kalk-header{margin-bottom:16px}
.kalk-title{font-size:20px;font-weight:700;color:#1a1a2e;margin:0}

/* Type selector */
.kalk-type-selector{display:flex;gap:8px;margin-bottom:20px}
.kalk-type-btn{padding:8px 18px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;font-weight:600;color:#6b7280;transition:all .15s}
.kalk-type-btn.active{border-color:#3451d1;background:#3451d1;color:#fff}

/* Layout 2 colonnes */
.kalk-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}
@media(max-width:768px){.kalk-layout{grid-template-columns:1fr}}

/* Formulaire */
.kalk-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}
.kalk-field{display:flex;flex-direction:column;gap:4px}
.kalk-label{font-size:12px;font-weight:600;color:#374151}
.kalk-input{padding:7px 10px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;color:#1f2937}
.kalk-input:focus{outline:none;border-color:#3451d1;box-shadow:0 0 0 2px rgba(52,81,209,.15)}
.kalk-field--checkbox{flex-direction:row;align-items:center}
.kalk-checkbox-label{display:flex;align-items:center;gap:7px;font-size:13px;color:#374151;cursor:pointer}
.kalk-checkbox-label input{width:14px;height:14px;cursor:pointer}

/* Estimation */
.kalk-estimate{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px}
.kalk-estimate-title{font-size:15px;font-weight:700;color:#1a1a2e}
.kalk-table-wrap{overflow-x:auto}
.kalk-table{width:100%;border-collapse:collapse;font-size:12px}
.kalk-table thead th{background:#f9fafb;padding:7px 8px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap}
.kalk-table tbody tr{border-bottom:1px solid #f3f4f6}
.kalk-table tbody td{padding:6px 8px;color:#374151;vertical-align:top}
.kalk-col-pos{width:32px;color:#9ca3af;text-align:center}
.kalk-col-desc{min-width:180px}
.kalk-col-qty{width:70px;text-align:right;white-space:nowrap}
.kalk-col-unit{width:65px;white-space:nowrap;color:#6b7280}
.kalk-col-up{width:75px;text-align:right;white-space:nowrap}
.kalk-col-total{width:85px;text-align:right;font-weight:600;white-space:nowrap}

/* Totaux */
.kalk-totals{display:flex;flex-direction:column;gap:4px;border-top:1px solid #e5e7eb;padding-top:10px}
.kalk-total-row{display:flex;justify-content:space-between;font-size:13px;color:#374151}
.kalk-total-brutto{font-size:15px;font-weight:700;color:#1a1a2e;margin-top:4px}

/* Actions */
.kalk-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.kalk-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:600;transition:opacity .15s}
.kalk-btn:hover{opacity:.85}
.kalk-btn:disabled{opacity:.6;cursor:default}
.kalk-btn--pdf{background:#6b7280;color:#fff}
.kalk-btn--save{background:#3451d1;color:#fff}
.kalk-btn--send{background:#1d4ed8;color:#fff}
.kalk-btn--sent{background:#16a34a;color:#fff}

/* Video bar — 2 shared slots */
.kalk-video-bar{margin-bottom:14px;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.kalk-video-bar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#64748b;margin-bottom:8px}
.kalk-video-slots{display:flex;gap:10px}
.kalk-video-slot{flex:1;min-width:0;border-radius:8px;border:1.5px dashed #d1d5db;background:#fff;display:flex;align-items:center;gap:8px;padding:8px 10px;transition:border-color .15s,background .15s;position:relative}
.kalk-video-slot--filled{border-style:solid;border-color:#a5b4fc;background:#eef2ff}
.kalk-video-slot--empty{cursor:pointer;justify-content:center}
.kalk-video-slot--dragover{border-color:#4f46e5;background:#eef2ff}
.kalk-vid-name{flex:1;min-width:0;font-size:12px;font-weight:600;color:#312e81;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kalk-vid-replace{cursor:pointer;color:#6b7280;padding:2px 4px;border-radius:4px;display:flex;align-items:center}
.kalk-vid-replace:hover{color:#4f46e5;background:#e0e7ff}
.kalk-vid-drop-label{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:#9ca3af;font-size:12px}
.kalk-vid-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#e5e7eb;border-radius:0 0 8px 8px;overflow:hidden}
.kalk-vid-bar{height:100%;width:0;background:#4f46e5;transition:width .2s}
.kalk-vid-play-btn{background:none;border:none;padding:2px 4px;cursor:pointer;display:flex;align-items:center;border-radius:4px;flex-shrink:0}
.kalk-vid-play-btn:hover{background:#e0e7ff}

/* Baufirma estimate table */
.bp-est-table td,.bp-est-table th{padding:10px 10px}

/* Toast */
/* Kalk company selector */
.kalk-company-selector{display:flex;align-items:center;gap:10px;padding:10px 0 14px;border-bottom:1px solid #e5e7eb;margin-bottom:14px}
.kalk-company-label{font-size:13px;font-weight:600;color:#374151;white-space:nowrap}
.kalk-company-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;background:#fff;cursor:pointer;min-width:180px}
.kalk-config-btn{padding:6px 12px;border:1px solid #d1d5db;border-radius:7px;background:#f9fafb;font-size:13px;cursor:pointer;white-space:nowrap;color:#374151}
.kalk-config-btn:hover{background:#f3f4f6}
/* Kalk config modal tabs */
.kalk-cfg-tab{padding:8px 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#6b7280;transition:color .15s}
.kalk-cfg-tab:hover{color:#3451d1}
.kalk-toast{position:fixed;bottom:24px;right:24px;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:600;z-index:99999;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;pointer-events:none}
.kalk-toast--ok{background:#059669;color:#fff}
.kalk-toast--err{background:#dc2626;color:#fff}
.kalk-toast--show{opacity:1;transform:translateY(0)}

/* Dark mode */
.dark-mode .kalk-form,.dark-mode .kalk-estimate{background:#1e293b;border-color:#334155}
.dark-mode .kalk-title,.dark-mode .kalk-estimate-title,.dark-mode .kalk-total-brutto{color:#f1f5f9}
.dark-mode .kalk-label,.dark-mode .kalk-checkbox-label,.dark-mode .kalk-table tbody td,.dark-mode .kalk-total-row{color:#cbd5e1}
.dark-mode .kalk-input{background:#0f172a;border-color:#475569;color:#f1f5f9}
.dark-mode .kalk-table thead th{background:#263044;color:#94a3b8;border-color:#334155}
.dark-mode .kalk-table tbody tr{border-color:#1e293b}
.dark-mode .kalk-type-btn{background:#1e293b;border-color:#334155;color:#94a3b8}
.dark-mode .kalk-type-btn.active{background:#3451d1;border-color:#3451d1;color:#fff}
.dark-mode .kalk-totals{border-color:#334155}

/* ═══════════════════════════════════════════════════════
   MOBILE BOTTOM NAVIGATION
═══════════════════════════════════════════════════════ */

/* Masqué par défaut sur desktop */
.mobile-bottom-nav{display:none}
.mob-more-overlay{display:none}
.mob-more-drawer{display:none}
.mob-acct-overlay{display:none}
.mob-acct-sheet{display:none}

@media(max-width:768px){
  /* Masquer la top tab-bar */
  .tab-bar{display:none!important}

  /* Bottom nav fixe */
  .mobile-bottom-nav{
    display:flex;
    position:fixed;
    bottom:0;left:0;right:0;
    height:62px;
    background:#fff;
    border-top:1px solid #e9ecef;
    z-index:1000;
    align-items:stretch;
    padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -2px 12px rgba(0,0,0,.08);
  }

  /* Chaque bouton */
  .mob-tab-btn{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    background:none;
    border:none;
    color:#6c757d;
    font-size:10px;
    font-weight:600;
    cursor:pointer;
    padding:6px 2px 4px;
    position:relative;
    transition:color .15s;
    -webkit-tap-highlight-color:transparent;
  }
  .mob-tab-btn.active{color:#4361ee}
  .mob-tab-btn:active{opacity:.7}

  /* Badge check dans le mobile nav */
  .mob-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#ef4444;
    color:#fff;
    border-radius:10px;
    font-size:9px;
    font-weight:700;
    min-width:16px;
    height:16px;
    padding:0 4px;
    margin-left:3px;
    vertical-align:middle;
  }

  /* Padding bas pour que le contenu ne soit pas caché */
  .app-wrapper{padding-bottom:62px;box-sizing:border-box}

  /* Overlay drawer */
  .mob-more-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.35);
    z-index:1001;
  }
  .mob-more-overlay.open{display:block}

  /* Drawer "Plus" */
  .mob-more-drawer{
    display:block;
    position:fixed;
    bottom:-100%;
    left:0;right:0;
    background:#fff;
    border-radius:18px 18px 0 0;
    box-shadow:0 -4px 24px rgba(0,0,0,.15);
    z-index:1002;
    padding:8px 0 calc(16px + env(safe-area-inset-bottom));
    transition:bottom .28s cubic-bezier(.4,0,.2,1);
    max-height:70vh;
    overflow-y:auto;
  }
  .mob-more-drawer.open{bottom:62px}

  /* Poignée du drawer */
  .mob-drawer-handle{
    width:36px;height:4px;
    background:#dee2e6;
    border-radius:2px;
    margin:0 auto 12px;
  }

  /* Items du drawer */
  .mob-drawer-item{
    display:flex;
    align-items:center;
    gap:14px;
    width:100%;
    padding:14px 20px;
    background:none;
    border:none;
    font-size:15px;
    font-weight:500;
    color:#212529;
    cursor:pointer;
    text-align:left;
    -webkit-tap-highlight-color:transparent;
  }
  .mob-drawer-item:active{background:#f8f9fa}
  .mob-drawer-item.active{color:#4361ee;font-weight:700}
  .mob-drawer-util{color:#6c757d}
  .mob-drawer-divider{height:1px;background:#e9ecef;margin:6px 0}
}

/* ── Kovo : navigation master-detail mobile ───────────────────────── */
@media(max-width:768px){
  .kv-layout{position:relative;overflow:hidden}

  /* Liste plein écran par défaut */
  .kv-sidebar{width:100%;min-width:unset;border-right:none;flex-shrink:0}

  /* Détail caché par défaut */
  .kv-detail{
    display:none;
    position:absolute;
    inset:0;
    width:100%;
    background:#f8f9fa;
    z-index:10;
    overflow-y:auto;
  }

  /* Quand un prospect est sélectionné : détail visible, liste masquée */
  .kv-layout.kv-mob-detail .kv-sidebar{display:none}
  .kv-layout.kv-mob-detail .kv-detail{display:block}

  /* Bouton retour mobile */
  .kv-mob-back{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    background:#fff;
    border:none;
    border-bottom:1px solid #e9ecef;
    width:100%;
    font-size:14px;
    font-weight:600;
    color:#4361ee;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .kv-mob-back svg{flex-shrink:0}
}

/* Masqué sur desktop */
@media(min-width:769px){.kv-mob-back{display:none}}

/* Bottom padding mobile — espace sous la bottom nav pour tous les conteneurs scrollables */
@media(max-width:768px){
  .chk-body,
  .hist-timeline,
  .termine-overview,
  .appointment-list,
  .appointment-detail,
  .prospect-list,
  .kv-detail,
  .kv-prospect-list,
  .apd-scroll,
  #cfgSubAutomation,
  #cfgSubProdukt,
  #finSubPerformance,
  #finSubBenefices,
  #finSubDepstats,
  #finSubDepenses,
  #finSubVente,
  #finSubCompetition {
    padding-bottom: 140px !important;
  }
}

/* Dark mode — mobile bottom nav */
@media(max-width:768px){
  body.dark-mode .mobile-bottom-nav{background:#16213e;border-top-color:#2a2a4a;box-shadow:0 -2px 12px rgba(0,0,0,.3)}
  body.dark-mode .mob-tab-btn{color:#9ca3af}
  body.dark-mode .mob-tab-btn.active{color:#818cf8}
  body.dark-mode .mob-more-drawer{background:#1a1a2e}
  body.dark-mode .mob-drawer-item{color:#e0e0e0}
  body.dark-mode .mob-drawer-item:active{background:#16213e}
  body.dark-mode .mob-drawer-util{color:#9ca3af}
  body.dark-mode .mob-drawer-divider{background:#2a2a4a}

  /* Account sheet (non-Clem switched accounts) */
  .mob-acct-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9998}
  .mob-acct-overlay.open{display:block}
  .mob-acct-sheet{
    display:block;position:fixed;left:0;right:0;bottom:-100%;
    background:#fff;border-radius:16px 16px 0 0;
    padding:0 0 env(safe-area-inset-bottom,0) 0;
    z-index:9999;transition:bottom .28s cubic-bezier(.32,1,.56,1);
    max-height:70vh;overflow-y:auto;
  }
  .mob-acct-sheet.open{bottom:62px}
  body.dark-mode .mob-acct-sheet{background:#1a1a2e}
}

/* ═══════════════════════════════════════════════════════
   BAUPROJEKTE TAB
═══════════════════════════════════════════════════════ */
.bp-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.bp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid #e5e7eb;
  flex-shrink: 0;
  background: #fff;
}
.bp-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #111827;
}
#bpContainer {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
}
.bp-section-header {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #6b7280;
  padding: 10px 0 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bp-pending-header {
  color: #d97706;
}
.bp-pending-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}
.bp-pending-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  font-size: 13px;
}
.bp-pending-name { font-weight: 600; color: #111827; }
.bp-pending-city { color: #6b7280; }
.bp-table-wrap { overflow-x: auto; }
.bp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.bp-table th {
  text-align: left;
  padding: 8px 12px;
  border-bottom: 2px solid #e5e7eb;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #6b7280;
  white-space: nowrap;
}
.bp-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #f3f4f6;
  color: #374151;
  vertical-align: middle;
}
.bp-table-row { cursor: pointer; transition: background .12s; }
.bp-table-row:hover td { background: #f9fafb; }
.bp-name { font-weight: 600; color: #111827; }
.bp-city { font-size: 11px; color: #9ca3af; }
.bp-step { font-size: 12px; }
.bp-step-done { color: #16a34a; }

/* Buttons */
.bp-btn {
  padding: 6px 14px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  background: #fff;
  color: #374151;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.bp-btn:hover { background: #f3f4f6; }
.bp-btn-primary {
  background: #4361ee;
  color: #fff;
  border-color: #4361ee;
}
.bp-btn-primary:hover { background: #3451d9; }
.bp-btn-create {
  background: #4361ee;
  color: #fff;
  border-color: #4361ee;
  margin-left: auto;
}
.bp-btn-sm { padding: 4px 10px; font-size: 11px; }
.bp-btn-confirm {
  margin-top: 10px;
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
  width: 100%;
}
.bp-btn-confirm:hover { background: #15803d; }

/* Overlay + slideover panel */
.bp-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 900;
}
.bp-overlay.bp-overlay-open { display: block; }
.bp-detail-panel {
  position: fixed;
  top: 50%;
  left: 50%;
  height: 90vh;
  width: 80vw;
  max-width: 1400px;
  background: #fff;
  box-shadow: 0 10px 40px rgba(0,0,0,.2);
  z-index: 901;
  transform: translate(-50%, -50%) scale(0.95);
  opacity: 0;
  transition: transform .28s cubic-bezier(.4,0,.2,1), opacity .28s ease;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  border-radius: 12px;
}
.bp-detail-panel.bp-panel-open {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  pointer-events: auto;
}

@media(max-width:1024px){
  .bp-detail-panel {
    width: 95vw;
    height: 95vh;
  }
}
.bp-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #e5e7eb;
  flex-shrink: 0;
}
.bp-panel-title {
  font-size: 13px;
  font-weight: 700;
  color: #111827;
  line-height: 1.4;
}
.bp-panel-close {
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: #6b7280;
  padding: 2px 6px;
  border-radius: 6px;
  flex-shrink: 0;
}
.bp-panel-close:hover { background: #f3f4f6; color: #111827; }
.bp-panel-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.bp-panel-footer {
  flex-shrink: 0;
  padding: 12px 20px;
  border-top: 1px solid #e5e7eb;
  background: #fff;
}
.bp-section-card {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 14px 16px;
}
.bp-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #6b7280;
  margin-bottom: 10px;
}
.bp-field-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  font-size: 13px;
}
.bp-field-row label {
  min-width: 110px;
  font-size: 12px;
  font-weight: 600;
  color: #6b7280;
  flex-shrink: 0;
}
.bp-field-row span { color: #111827; }
.bp-checkbox-row { align-items: center; }
.bp-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
  color: #374151;
}
.bp-input {
  flex: 1;
  padding: 6px 10px;
  border: 1.5px solid #e5e7eb;
  border-radius: 7px;
  font-size: 13px;
  outline: none;
  background: #fff;
  transition: border-color .15s;
}
.bp-input:focus { border-color: #4361ee; }
.bp-textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1.5px solid #e5e7eb;
  border-radius: 7px;
  font-size: 13px;
  outline: none;
  resize: vertical;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .15s;
}
.bp-textarea:focus { border-color: #4361ee; }
.bp-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
}
.bp-confirmed-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  background: #dcfce7;
  color: #16a34a;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  margin-top: 8px;
}
.bp-video-info { font-size: 12px; color: #6b7280; }
.bp-video-player { margin-top: 8px; border-radius: 8px; max-width: 100%; }
.bp-upload-area { margin-top: 10px; }
.bp-upload-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: #fff;
  border: 1.5px dashed #d1d5db;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #4361ee;
  cursor: pointer;
  transition: all .15s;
}
.bp-upload-label:hover { border-color: #4361ee; background: #eff2ff; }
.bp-progress-wrap {
  height: 6px;
  background: #e5e7eb;
  border-radius: 3px;
  margin-top: 8px;
  overflow: hidden;
}
.bp-progress-bar {
  height: 100%;
  background: #4361ee;
  border-radius: 3px;
  width: 0;
  transition: width .2s;
}

/* Modal fields */
.bp-modal-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 14px;
}
.bp-modal-field label {
  font-size: 12px;
  font-weight: 600;
  color: #6b7280;
}
.bp-modal-field .bp-input { flex: none; width: 100%; }

/* Create modal prospect picker */
.bp-create-pick-item {
  padding: 8px 12px;
  font-size: 13px;
  cursor: pointer;
  border-bottom: 1px solid #f1f5f9;
  transition: background .1s;
}
.bp-create-pick-item:last-child { border-bottom: none; }
.bp-create-pick-item:hover { background: #f8fafc; }

/* ── Bauprojekte Mobile ──────────────────────────────────────────────── */
@media(max-width:768px){

  /* Header */
  .bp-header { padding: 10px 14px; flex-wrap: wrap; gap: 8px; }
  .bp-title   { font-size: 15px; }

  /* Container scroll */
  #bpContainer { padding: 12px 8px !important; overflow-y: auto; }
  #bpContainer { padding-bottom: 100px !important; }
  .bp-panel-body { padding-bottom: 16px !important; }

  /* Two-column → single column (override inline grid) */
  #bpContainer > div[style*="grid-template-columns"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  /* Tables: horizontal scroll + tighter padding */
  .bp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .bp-table th, .bp-table td { padding: 8px 8px; font-size: 12px; }

  /* Clem devis table: hide Firma + Betrag columns (3rd, 4th) */
  .bp-table thead tr th:nth-child(3),
  .bp-table thead tr th:nth-child(4),
  .bp-table tbody tr td:nth-child(3),
  .bp-table tbody tr td:nth-child(4) { display: none; }

  /* Projekte table: hide Baufirma (3rd), Lieferung (4th) columns */
  /* — same selectors fine since both tables are siblings */

  /* Action cell: wrap */
  .bp-table td[style*="display:flex"] { flex-wrap: wrap; }

  /* Detail panel: full screen slide-up, stops above bottom nav (62px) */
  .bp-detail-panel {
    width:  100vw  !important;
    height: calc(100dvh - 62px) !important;
    top:    0      !important;
    left:   0      !important;
    transform: translateY(100%) !important;
    border-radius: 0 !important;
    transition: transform .3s cubic-bezier(.4,0,.2,1), opacity .3s ease !important;
    opacity: 1 !important;
  }
  .bp-detail-panel.bp-panel-open {
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* Panel header: larger close button */
  .bp-panel-header { padding: 12px 14px; }
  .bp-panel-close  { font-size: 22px; width: 36px; height: 36px; }
  .bp-panel-title  { font-size: 13px; }

  /* Panel body: full scroll */
  .bp-panel-body { padding: 12px 14px; overflow-y: auto; -webkit-overflow-scrolling: touch; }

  /* Section cards */
  .bp-section-card { padding: 12px; margin-bottom: 12px; }

  /* Videos in detail panel: full width, tappable */
  .bp-video-player,
  .bp-detail-panel video,
  #bpKalkModal video {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 55vw !important;
    border-radius: 8px;
    display: block;
  }

  /* Baufortschritt checkboxes: larger tap targets */
  .bp-checkbox-label { padding: 6px 0; font-size: 13px; }
  .bp-checkbox-label input[type=checkbox] { width: 18px; height: 18px; }

  /* Buttons */
  .bp-btn    { padding: 8px 12px; font-size: 13px; }
  .bp-btn-sm { padding: 6px 10px; font-size: 12px; }

  /* Kalkulation modal: full screen */
  #bpKalkModal {
    padding: 0 !important;
    align-items: stretch !important;
  }
  #bpKalkModal > div {
    border-radius: 0 !important;
    min-height: 100vh !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Kalkulation form inside modal: single column */
  #bpKalkModal .kalk-layout {
    flex-direction: column !important;
  }
  #bpKalkModal .kalk-form,
  #bpKalkModal .kalk-estimate {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Field rows in detail panel */
  .bp-field-row { flex-direction: column; gap: 2px; }
  .bp-field-row label { min-width: unset; }

  /* Pending list: wrap */
  .bp-pending-list { flex-wrap: wrap; }
  .bp-pending-item { width: 100%; }
}

/* Dark mode */
body.dark-mode .bp-header { background: #16213e; border-bottom-color: #2a2a4a; }
body.dark-mode .bp-title { color: #e0e0e0; }
body.dark-mode .bp-section-header { color: #9ca3af; }
body.dark-mode .bp-pending-item { background: #1a1a2e; border-color: #3a3a5a; }
body.dark-mode .bp-table th { color: #9ca3af; border-bottom-color: #2a2a4a; }
body.dark-mode .bp-table td { border-bottom-color: #1e1e3a; color: #e0e0e0; }
body.dark-mode .bp-table-row:hover td { background: #1a1a2e; }
body.dark-mode .bp-name { color: #e0e0e0; }
body.dark-mode .bp-detail-panel { background: #16213e; }
body.dark-mode .bp-panel-header { border-bottom-color: #2a2a4a; }
body.dark-mode .bp-panel-title { color: #e0e0e0; }
body.dark-mode .bp-panel-footer { background: #16213e; border-top-color: #2a2a4a; }
body.dark-mode .bp-section-card { background: #1a1a2e; border-color: #2a2a4a; }
body.dark-mode .bp-input, body.dark-mode .bp-textarea { background: #16213e; border-color: #2a2a4a; color: #e0e0e0; }
body.dark-mode .bp-btn { background: #1a1a2e; border-color: #2a2a4a; color: #e0e0e0; }
body.dark-mode .bp-btn:hover { background: #16213e; }

/* ── Kovo Video tab ─────────────────────────────────────────────────── */
.kvvid-empty {
  padding: 30px;
  text-align: center;
  font-size: 13px;
  color: #6b7280;
  line-height: 1.6;
}
.kvvid-section { margin-bottom: 20px; }
.kvvid-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #6b7280;
  margin-bottom: 8px;
}
.kvvid-filename { font-size: 12px; color: #374151; margin-bottom: 6px; }
.kvvid-player { max-width: 100%; border-radius: 8px; display: block; }
.kvvid-dropzone {
  border: 2px dashed #d1d5db;
  border-radius: 10px;
  padding: 28px 16px;
  text-align: center;
  cursor: pointer;
  transition: all .15s;
  background: #fafafa;
}
.kvvid-dropzone:hover, .kvvid-dropzone.kvvid-dragover {
  border-color: #4361ee;
  background: #eff2ff;
}
.kvvid-drop-text { font-size: 13px; color: #6b7280; margin-top: 8px; }
.kvvid-progress-wrap {
  height: 6px; background: #e5e7eb; border-radius: 3px;
  margin-top: 8px; overflow: hidden;
}
.kvvid-progress-bar {
  height: 100%; background: #4361ee; border-radius: 3px;
  width: 0; transition: width .2s;
}
.kvvid-send-btn {
  padding: 9px 20px;
  background: #4361ee;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
}
.kvvid-send-btn:hover { background: #3451d9; }
.kvvid-send-btn:disabled { background: #16a34a; cursor: default; }

/* ── Bauprojekte: positions ──────────────────────────────────────────── */
.bp-positions-wrap { margin-top: 4px; }
.bp-positions-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #6b7280;
  margin-bottom: 6px;
}
.bp-positions-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.bp-positions-table th {
  padding: 4px 6px;
  border-bottom: 1.5px solid #e5e7eb;
  color: #9ca3af;
  font-weight: 600;
  text-align: left;
}
.bp-positions-table td {
  padding: 4px 6px;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: top;
}
.bp-pos-main { font-weight: 600; color: #374151; }
.bp-pos-sub { font-size: 10px; color: #9ca3af; }

/* ── Bauprojekte: estimate picker modal ─────────────────────────────── */
.bp-picker-box {
  background: #fff;
  border-radius: 14px;
  width: 580px;
  max-width: 95vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.bp-picker-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e7eb;
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  flex-shrink: 0;
}
.bp-picker-body { overflow-y: auto; flex: 1; }
.bp-picker-list { padding: 10px 16px; display: flex; flex-direction: column; gap: 8px; }
.bp-picker-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  flex-wrap: wrap;
}
.bp-picker-item-info { font-size: 13px; }
.bp-picker-type { font-weight: 700; color: #111827; }
.bp-picker-meta { color: #6b7280; }
.bp-picker-netto { color: #4361ee; font-weight: 600; }
.bp-picker-item-actions { display: flex; gap: 6px; flex-shrink: 0; }

/* ── Bauprojekte: preview overlay ───────────────────────────────────── */
.bp-preview-box {
  background: #fff;
  border-radius: 14px;
  width: 640px;
  max-width: 95vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.bp-preview-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e7eb;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}

/* ── Bauprojekte: doc upload dropzone ───────────────────────────────── */
.bp-doc-dropzone {
  border: 2px dashed #d1d5db;
  border-radius: 8px;
  padding: 18px;
  text-align: center;
  cursor: pointer;
  transition: all .15s;
  background: #fafafa;
}
.bp-doc-dropzone:hover, .bp-doc-dropzone.bp-doc-dragover {
  border-color: #4361ee;
  background: #eff2ff;
}

/* Dark mode additions */
body.dark-mode .kvvid-dropzone { background: #1a1a2e; border-color: #2a2a4a; }
body.dark-mode .kvvid-dropzone:hover { background: #16213e; border-color: #4361ee; }
body.dark-mode .bp-picker-box, body.dark-mode .bp-preview-box { background: #16213e; }
body.dark-mode .bp-picker-header, body.dark-mode .bp-preview-header { border-color: #2a2a4a; color: #e0e0e0; }
body.dark-mode .bp-picker-item { border-color: #2a2a4a; }
body.dark-mode .bp-picker-type { color: #e0e0e0; }
body.dark-mode .bp-positions-table th { border-color: #2a2a4a; }
body.dark-mode .bp-positions-table td { border-color: #1e1e3a; }
body.dark-mode .bp-doc-dropzone { background: #1a1a2e; border-color: #2a2a4a; }

/* ── Bauprojekte: alert + badges ─────────────────────────────────────── */
.bp-alert-warn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fef3c7;
  border: 1px solid #f59e0b;
  color: #92400e;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 14px;
}
.bp-alert-warn svg { flex-shrink: 0; color: #d97706; }

.bp-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3px;
}
.bp-badge-yes  { background: #d1fae5; color: #065f46; }
.bp-badge-no   { background: #fee2e2; color: #991b1b; }
.bp-badge-neutral { background: #e5e7eb; color: #374151; }

.bp-warn-icon { font-size: 11px; cursor: default; }

/* Dark mode */
body.dark-mode .bp-alert-warn { background: #3b1e0a; border-color: #d97706; color: #fcd34d; }
body.dark-mode .bp-badge-yes  { background: #064e3b; color: #6ee7b7; }
body.dark-mode .bp-badge-no   { background: #450a0a; color: #fca5a5; }
body.dark-mode .bp-badge-neutral { background: #1f2937; color: #d1d5db; }
