/* CreditFlow CRM — Styles globaux */
*{margin:0;padding:0;box-sizing:border-box}
[x-cloak]{display:none!important}
.htmx-indicator{display:none!important}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{display:flex!important}
:root{
  --primary:#2563eb;--primary-light:#eff6ff;--orange:#e87b35;--orange-light:#fff7ed;
  --green:#16a34a;--green-light:#f0fdf4;--red:#dc2626;--red-light:#fef2f2;
  --yellow:#ca8a04;--yellow-light:#fefce8;--gray:#64748b;--gray-light:#f1f5f9;
  --border:#e2e8f0;--bg:#f8fafc;--white:#fff;--text:#0f172a;--muted:#94a3b8;
  --sidebar:250px;--sidebar-collapsed:64px;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
a{color:inherit;text-decoration:none}

/* SIDEBAR */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);background:var(--white);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:10;transition:width .2s ease}
.sidebar-logo{padding:20px 24px;display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;position:relative}
.sidebar-logo .icon{width:36px;height:36px;background:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}
.sidebar-logo-img{width:36px;height:36px;border-radius:8px;object-fit:cover;flex-shrink:0}
.sidebar-logo small{display:block;font-weight:400;font-size:11px;color:var(--muted)}
.sidebar nav{flex:1;padding:8px 12px}
.sidebar nav .section-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:16px 12px 6px;font-weight:600}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:.15s;color:var(--gray);font-weight:500;margin-bottom:2px}
.nav-item:hover{background:var(--gray-light);color:var(--text)}
.nav-item.active{background:var(--primary-light);color:var(--primary)}
.nav-item svg{width:20px;height:20px;flex-shrink:0}
.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}
.sidebar-footer .avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
.sidebar-footer small{color:var(--muted);font-size:11px}
.sidebar-bottom{margin-top:auto}
.sidebar-bottom .nav-item{margin:0 12px 8px}

/* SIDEBAR TOGGLE */
.sidebar-toggle{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:14px;transition:.15s;margin-left:auto;flex-shrink:0}
.sidebar-toggle:hover{background:var(--gray-light);color:var(--text)}

/* SIDEBAR COLLAPSED */
.sidebar.collapsed{width:var(--sidebar-collapsed)}
.sidebar.collapsed .sidebar-logo>div:nth-child(2){display:none}
.sidebar.collapsed .sidebar-logo{padding:10px;justify-content:center;gap:0}
.sidebar.collapsed .sidebar-logo .icon{width:28px;height:28px;font-size:14px;border-radius:6px}
.sidebar.collapsed .sidebar-toggle{position:absolute;right:-12px;top:14px;width:24px;height:24px;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.12);z-index:11}
.sidebar.collapsed .section-label{display:none}
.sidebar.collapsed nav{padding:8px 6px}
.sidebar.collapsed .nav-item{justify-content:center;padding:10px;gap:0}
.sidebar.collapsed .nav-item svg{width:22px;height:22px}
.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-text{display:none}
.sidebar.collapsed .nav-item{position:relative}
.sidebar.collapsed .nav-item::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--text);color:#fff;font-size:12px;font-weight:500;padding:6px 12px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;transform:translateY(-50%) translateX(-4px);z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.sidebar.collapsed .nav-item:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.sidebar.collapsed .nav-item::before{content:'';position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}
.sidebar.collapsed .nav-item:hover::before{opacity:1}
.sidebar.collapsed .sidebar-bottom .section-label{display:none}
.sidebar.collapsed .sidebar-footer{justify-content:center;padding:12px;position:relative}
.sidebar.collapsed .sidebar-footer>div:last-child{display:none}
.sidebar.collapsed .sidebar-footer::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;background:var(--text);color:#fff;font-size:12px;font-weight:500;padding:6px 12px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;transform:translateY(-50%) translateX(-4px);z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.sidebar.collapsed .sidebar-footer:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.sidebar.collapsed .sidebar-footer::before{content:'';position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}
.sidebar.collapsed .sidebar-footer:hover::before{opacity:1}
.sidebar.collapsed+.main{margin-left:var(--sidebar-collapsed)}

/* Dossier initials bubbles in collapsed sidebar */
.sidebar-dossiers{padding:4px 6px}
.sidebar.collapsed .sidebar-dossiers{padding:4px 6px}
.sb-dossier-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;color:var(--gray);transition:.15s;margin-bottom:2px}
.sb-dossier-item:hover{background:var(--gray-light);color:var(--text)}
.sb-dossier-item.active{background:var(--primary-light);color:var(--primary)}
.sb-dossier-bubble{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;text-transform:uppercase}
.sb-dossier-info{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1}
.sb-dossier-ref{font-size:10px;color:var(--primary);font-weight:700}
.sb-dossier-nom{font-size:12px;font-weight:500}
.sb-dossier-close{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--muted);cursor:pointer;transition:.15s;flex-shrink:0;border:none;background:none;padding:0;opacity:.3}
.sb-dossier-item:hover .sb-dossier-close{opacity:1}
.sb-dossier-close:hover{background:var(--red-light);color:var(--red);opacity:1}
.sidebar.collapsed .sb-dossier-item{justify-content:center;padding:6px}
.sidebar.collapsed .sb-dossier-info{display:none}
.sidebar.collapsed .sb-dossier-close{display:none!important}
.sidebar.collapsed .sb-dossier-item{position:relative}
.sidebar.collapsed .sb-dossier-item::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;background:var(--text);color:#fff;font-size:11px;font-weight:500;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;transform:translateY(-50%) translateX(-4px);z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.sidebar.collapsed .sb-dossier-item:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.sidebar.collapsed .sb-dossier-item::before{content:'';position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}
.sidebar.collapsed .sb-dossier-item:hover::before{opacity:1}

/* MAIN */
.main{margin-left:var(--sidebar);min-height:100vh;padding:0;transition:margin-left .2s ease}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px}
.topbar h1{font-size:22px;font-weight:700}
.topbar h1 span{font-size:12px;background:var(--gray-light);color:var(--gray);padding:3px 10px;border-radius:20px;margin-left:10px;font-weight:500;vertical-align:middle}
.topbar-title{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.topbar-subtitle{font-size:12px;color:var(--muted);font-weight:500}
.topbar .filters-bar{margin-bottom:0;flex:1;justify-content:flex-end}
.topbar-right{display:flex;align-items:center;gap:12px}
.btn{padding:8px 18px;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{opacity:.9}
.btn-blue{background:var(--primary);color:#fff}.btn-blue:hover{opacity:.9}
.btn-outline{background:var(--white);border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:var(--gray-light)}
.btn-danger{background:var(--red);color:#fff}
.btn-icon{padding:8px 10px;font-size:16px;line-height:1}
.source-label{font-size:12px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap;padding:3px 8px;border-radius:6px;transition:.15s;user-select:none}
.source-label:hover{background:var(--gray-light)}

/* Popup sélecteur de source */
.source-picker-popup{position:fixed;z-index:1000;background:var(--white);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:280px;max-height:60vh;overflow-y:auto;padding:6px 0;animation:fadeSlideDown .15s ease}
@keyframes fadeSlideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.source-picker-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 14px 4px}
.source-picker-item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;font-size:12px;transition:.1s}
.source-picker-item:hover{background:var(--primary-light)}
.source-picker-item.active{font-weight:700;color:var(--primary)}
.source-picker-dot{width:8px;height:8px;border-radius:50%;border:2px solid var(--border);flex-shrink:0}
.source-picker-dot.active{border-color:var(--primary);background:var(--primary)}
.content{padding:24px 32px}

/* PAGE */
.page{display:none}.page.active{display:block}

/* DATE PICKER BAR */
.date-bar{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:4px 24px;background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap}
.date-bar label{font-size:10px;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.5px}
.date-bar input[type=date]{padding:3px 8px;border:1px solid var(--border);border-radius:6px;font-size:11px;font-family:inherit;width:120px}
.date-bar select{padding:3px 8px;border:1px solid var(--border);border-radius:6px;font-size:11px;background:var(--white);cursor:pointer}
.date-bar .sep{color:var(--muted);font-size:11px}
.date-presets{display:flex;gap:2px;flex-wrap:wrap}
.date-presets button{padding:3px 9px;border:1px solid var(--border);border-radius:14px;background:var(--white);font-size:10px;font-weight:500;cursor:pointer;color:var(--gray);transition:.15s;white-space:nowrap}
.date-presets button:hover{border-color:var(--primary);color:var(--primary)}
.date-presets button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.date-range-wrap{display:flex;align-items:center;gap:4px;padding:2px 8px;background:var(--gray-light);border-radius:6px;border:1px solid var(--border)}

/* DASHBOARD */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}
.kpi-card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:20px 24px}
.kpi-card .label{font-size:13px;color:var(--gray);display:flex;align-items:center;justify-content:space-between}
.kpi-card .value{font-size:32px;font-weight:700;margin:8px 0 12px}
.kpi-card .bar{height:4px;border-radius:2px;background:var(--gray-light)}
.kpi-card .bar span{display:block;height:100%;border-radius:4px}
.badge-up{background:var(--green-light);color:var(--green);font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}
.badge-down{background:var(--red-light);color:var(--red);font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}
.dash-grid{display:grid;grid-template-columns:1fr 340px;gap:24px}
.card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:24px}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.card-header h3{font-size:16px;font-weight:700}
.card-header a{color:var(--primary);font-size:13px;font-weight:500}
.activity-item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);cursor:pointer}
.activity-item:last-child{border:none}
.activity-item .av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.activity-item .info{flex:1}
.activity-item .info p{font-size:13px;color:var(--gray)}
.activity-item .arrow{color:var(--muted);font-size:18px}
.loan-volume{background:var(--orange);color:#fff;border-radius:12px;padding:24px;margin-bottom:20px}
.loan-volume .lv-label{font-size:14px;opacity:.85;font-weight:600}
.loan-volume .lv-sub{font-size:12px;opacity:.7;margin-top:2px}
.loan-volume .lv-value{font-size:40px;font-weight:800;margin:12px 0}
.loan-volume .lv-badge{background:rgba(255,255,255,.2);padding:6px 14px;border-radius:20px;font-size:12px;display:inline-block}
.risk-dist .risk-row{margin-bottom:14px}
.risk-dist .risk-row .r-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;font-weight:500}
.risk-dist .risk-row .r-bar{height:8px;background:var(--gray-light);border-radius:4px;overflow:hidden}
.risk-dist .risk-row .r-bar span{display:block;height:100%;border-radius:4px}

/* TABLE */
.filters-bar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.filters-bar input[type=text]{flex:1;min-width:260px;padding:10px 14px 10px 36px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") 12px center no-repeat}
.filters-bar select{padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--white);cursor:pointer}
.multi-select{position:relative;min-width:200px}
.ms-trigger{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--white);cursor:pointer;gap:8px;white-space:nowrap}
.ms-trigger:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.ms-label{overflow:hidden;text-overflow:ellipsis}
.ms-arrow{font-size:10px;color:var(--muted)}
.ms-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:280px;background:var(--white);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:100;padding:8px 0}
.multi-select.open .ms-dropdown{display:block}
.ms-search{width:100%;padding:8px 12px;border:none;border-bottom:1px solid var(--border);font-size:13px;outline:none;box-sizing:border-box}
.ms-options{max-height:240px;overflow-y:auto;padding:4px 0}
.ms-option{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background .1s}
.ms-option:hover{background:var(--primary-light)}
.ms-option.selected{background:var(--primary-light);font-weight:600}
.ms-option input[type=checkbox]{accent-color:var(--primary);margin:0}
.ms-option .ms-code{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:11px;min-width:50px}
.ms-footer{padding:6px 12px;border-top:1px solid var(--border);text-align:right}
.ms-clear{background:none;border:none;color:var(--primary);font-size:12px;cursor:pointer;font-weight:600;padding:4px 8px}
.ms-clear:hover{text-decoration:underline}
.ms-count{background:var(--primary);color:white;font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700;margin-left:4px}
.active-filters{display:flex;gap:8px;margin-bottom:16px}
.filter-tag{background:var(--orange-light);color:var(--orange);padding:5px 12px;border-radius:20px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px}
.filter-tag .x{cursor:pointer;font-weight:700}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:12px 16px;border-bottom:2px solid var(--border);font-weight:600}
td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
tr:hover td{background:var(--gray-light)}
th.sortable:hover{color:var(--primary);background:var(--primary-light)}
th.sortable .sort-icon{font-size:10px;opacity:.4}
th.sortable.asc .sort-icon::after{content:'\25B2';opacity:1}
th.sortable.desc .sort-icon::after{content:'\25BC';opacity:1}
tr.kb-selected td{background:#dbeafe;box-shadow:inset 0 0 0 1px var(--primary)}
tr.kb-selected{transform:scaleY(1.04);transform-origin:center;transition:transform .1s ease}
tr.kb-selected:hover td{background:#dbeafe}

.status-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:4px;text-transform:uppercase;white-space:nowrap}
.status-pending{background:var(--orange-light);color:var(--orange)}
.status-approved{background:var(--green-light);color:var(--green)}
.status-rejected{background:var(--red-light);color:var(--red)}
.status-inquiry{background:var(--primary-light);color:var(--primary)}
.status-encours{background:var(--yellow-light);color:var(--yellow)}
/* Dossiers list — compact card-like rows */
.doss-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.5px}
.doss-client{font-size:13px;font-weight:600;color:var(--text);line-height:1.3}
.doss-co{font-size:11px;color:var(--muted);margin-top:1px}
.doss-meta{font-size:11px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:4px}
.doss-ref{font-weight:600;color:var(--primary);font-size:10px;letter-spacing:.3px}
.doss-sep{opacity:.4}
.doss-amount{font-size:14px;font-weight:700;color:var(--text)}
.doss-date{font-size:10px;color:var(--muted);margin-top:2px}
#dossiers-tbody tr{transition:background .1s}
#dossiers-tbody tr:hover td{background:var(--primary-light)}
#dossiers-tbody tr:active td{background:#dbeafe}

/* DOSSIER DETAIL */
.detail-grid{display:grid;grid-template-columns:240px 1fr;gap:24px}
.client-profile{text-align:center;position:relative}
.client-flag{position:absolute;top:12px;right:12px;line-height:1}
.client-profile .photo{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);margin:0 auto 12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:36px;font-weight:700;position:relative}
.client-profile .photo .online{position:absolute;bottom:4px;right:4px;width:14px;height:14px;background:var(--green);border:3px solid var(--white);border-radius:50%}
.client-profile h2{font-size:18px;margin-bottom:4px}
.client-profile .cid{color:var(--muted);font-size:12px;margin-bottom:16px}
.score-row{display:flex;justify-content:center;gap:16px;margin-bottom:12px}
.score-row div{text-align:center}
.score-row .s-label{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.5px;margin-bottom:2px}
.score-row .s-value{font-size:16px;font-weight:700;color:var(--primary)}
.score-row .s-value.low{color:var(--green)}
.btn-clip{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px auto 0;padding:8px 18px;background:var(--primary);color:#fff;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;transition:.15s;width:fit-content}
.btn-clip:hover{background:#1d4ed8;transform:translateY(-1px)}
.btn-clip-icon{font-size:14px}
.detail-section{margin-bottom:24px}
.detail-section h4{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--primary);font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--primary-light);display:flex;align-items:center;gap:8px}
.detail-section h4 .sec-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.detail-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px}
.detail-row .dl{color:var(--gray);min-width:120px;flex-shrink:0}.detail-row .dv{font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;word-break:break-all;min-width:0}
.detail-row .dv.red{color:var(--red)}.detail-row .dv.green{color:var(--green)}
.detail-row .dv.warn{color:var(--orange)}

/* Summary cards in tabs */
.tab-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px}
.tab-summary .sum-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-align:center;position:relative;overflow:hidden}
.tab-summary .sum-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.tab-summary .sum-card.blue::before{background:var(--primary)}
.tab-summary .sum-card.orange::before{background:var(--orange)}
.tab-summary .sum-card.green::before{background:var(--green)}
.tab-summary .sum-card.red::before{background:var(--red)}
.tab-summary .sum-card.teal::before{background:#0d9488}
.tab-summary .sum-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;margin-bottom:4px}
.tab-summary .sum-value{font-size:20px;font-weight:700;color:var(--text)}
.tab-summary .sum-value.blue{color:var(--primary)}
.tab-summary .sum-value.orange{color:var(--orange)}
.tab-summary .sum-value.green{color:var(--green)}
.tab-summary .sum-value.red{color:var(--red)}

/* Timeline for historique */
.timeline{position:relative;padding-left:28px}
.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--border)}
.tl-item{position:relative;padding:12px 0 12px 16px;border-bottom:none}
.tl-item::before{content:'';position:absolute;left:-24px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--primary-light);border:2px solid var(--primary);z-index:1}
.tl-item.tl-accord::before{background:var(--green-light);border-color:var(--green)}
.tl-item.tl-refus::before{background:var(--red-light);border-color:var(--red)}
.tl-item.tl-attente::before{background:var(--orange-light);border-color:var(--orange)}
.tl-head{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.tl-date{font-size:11px;color:var(--muted);font-weight:500;min-width:130px}
.tl-body{font-size:12px;color:var(--gray);margin-top:2px}
.tl-user{font-size:11px;color:var(--muted);margin-top:2px}

/* Info banner */
.info-banner{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:10px;margin-bottom:20px;font-size:13px}
.info-banner .banner-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.info-banner .banner-text{flex:1}
.info-banner .banner-text strong{display:block;font-size:14px;margin-bottom:2px}
.info-banner .banner-text span{color:var(--gray);font-size:12px}
.info-banner.banner-blue{background:var(--primary-light)}
.info-banner.banner-blue .banner-icon{background:var(--primary);color:#fff}
.info-banner.banner-green{background:var(--green-light)}
.info-banner.banner-green .banner-icon{background:var(--green);color:#fff}
.info-banner.banner-orange{background:var(--orange-light)}
.info-banner.banner-orange .banner-icon{background:var(--orange);color:#fff}
.info-banner.banner-red{background:var(--red-light)}
.info-banner.banner-red .banner-icon{background:var(--red);color:#fff}

/* Address card */
.address-card{background:var(--gray-light);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:16px}
.address-card .addr-line{font-size:15px;font-weight:600;margin-bottom:4px}
.address-card .addr-sub{font-size:13px;color:var(--gray)}

/* TABS */
.tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:20px;flex-wrap:wrap;gap:0}
.tab{padding:10px 18px;cursor:pointer;font-weight:500;color:var(--gray);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s;font-size:13px;white-space:nowrap}
.tab:hover{color:var(--text)}
.tab.active{color:var(--primary);border-color:var(--primary)}
.tab-content{display:none}.tab-content.active{display:block}
.tab-pane{padding:20px}

/* FORM FIELDS */
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
.field-grid.cols-2{grid-template-columns:1fr 1fr}
.field-grid.cols-3{grid-template-columns:1fr 1fr 1fr}
.field{margin-bottom:0}
.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:4px;font-weight:600}
.field .val{font-size:14px;font-weight:500;padding:8px 12px;background:var(--gray-light);border-radius:6px;border:1px solid var(--border);min-height:36px}
.field .val.highlight{background:var(--primary-light);color:var(--primary);font-weight:700}
.field .val.danger{background:var(--red-light);color:var(--red);font-weight:700}
.field .val.success{background:var(--green-light);color:var(--green);font-weight:700}
.field .val.warning{background:var(--yellow-light);color:var(--yellow);font-weight:700}
.field-full{grid-column:1/-1}

/* DOCUMENTS */
.doc-dropzone{border:2px dashed var(--border);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--gray-light)}
.doc-dropzone:hover,.doc-dropzone.dragover{border-color:var(--primary);background:var(--primary-light)}
.doc-dropzone .dz-icon{font-size:36px;margin-bottom:8px;opacity:.5}
.doc-dropzone .dz-text{font-size:13px;color:var(--gray)}
.doc-dropzone .dz-text strong{color:var(--primary);cursor:pointer}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:20px}
.doc-card{background:var(--gray-light);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:.15s;position:relative}
.doc-card:hover{border-color:var(--primary);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.doc-preview{height:140px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;cursor:pointer;overflow:hidden}
.doc-preview img{max-width:100%;max-height:100%;object-fit:contain}
.doc-preview .doc-icon{font-size:42px;opacity:.4}
.doc-info{padding:10px 12px}
.doc-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.doc-meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between}
.doc-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:.15s}
.doc-card:hover .doc-actions{opacity:1}
.doc-actions button{width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.doc-actions .btn-dl{background:var(--primary-light);color:var(--primary)}
.doc-actions .btn-del{background:var(--red-light);color:var(--red)}
.doc-actions button:hover{opacity:.8}
.doc-upload-progress{margin-top:12px;display:none}
.doc-upload-progress .bar{height:4px;background:var(--border);border-radius:4px;overflow:hidden}
.doc-upload-progress .bar-fill{height:100%;background:var(--primary);width:0;transition:width .3s}
/* Modal preview */
.doc-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.doc-modal{background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;overflow:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.doc-modal .modal-close{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}
.doc-modal img{max-width:85vw;max-height:85vh;display:block}
.doc-modal iframe{width:85vw;height:85vh;border:none}

/* LOANS TABLE */
.loans-table{width:100%;border-collapse:collapse;font-size:13px}
.loans-table th{background:var(--gray-light);font-size:11px;padding:10px 12px}
.loans-table td{padding:10px 12px}
.loans-table tr:last-child td{border:none}

.note-area{width:100%;min-height:100px;border:1px solid var(--border);border-radius:8px;padding:14px;font-size:13px;resize:vertical;font-family:inherit}
.note-footer{text-align:right;margin-top:12px}

/* LOADING */
.loading{text-align:center;padding:60px;color:var(--muted)}
.loading .spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite;margin-bottom:12px}
@keyframes spin{to{transform:rotate(360deg)}}

/* SEARCH LOADING — shimmer background on search input during request */
#search-wrap.htmx-request input[name=q]{background:linear-gradient(90deg,var(--white) 0%,var(--primary-light) 40%,var(--white) 60%) 0 0/200% 100%;animation:searchShimmer 1.2s ease-in-out infinite}
@keyframes searchShimmer{to{background-position:-200% 0}}

/* HISTORIQUES TABLE */
.histo-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:16px}
.histo-table th{background:var(--gray-light);font-size:10px;padding:8px 10px;text-transform:uppercase}
.histo-table td{padding:8px 10px;border-bottom:1px solid var(--border)}

/* ============================================================ */
/* DOCUMENT SUIVI — Gestion documentaire avancée               */
/* ============================================================ */

/* Layout 2 colonnes */
.suivi-layout{display:flex;gap:20px;min-height:400px}
.suivi-main{flex:1;min-width:0}
.suivi-side{width:260px;flex-shrink:0;position:sticky;top:70px;max-height:calc(100vh - 100px);overflow-y:auto}

/* Barre filtres suivi */
.suivi-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap;padding:10px 14px;background:var(--white);border:1px solid var(--border);border-radius:10px}
.suivi-filter-pills{display:flex;gap:4px;flex-wrap:wrap}
.suivi-fpill{border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;background:var(--white);transition:.15s;white-space:nowrap}
.suivi-fpill:hover{filter:brightness(.95)}
.suivi-fpill.active{color:#fff !important;font-weight:700}
.suivi-fpill[data-val="O"]{color:var(--green);border-color:var(--green)}.suivi-fpill[data-val="O"].active{background:var(--green)}
.suivi-fpill[data-val="V"]{color:var(--orange);border-color:var(--orange)}.suivi-fpill[data-val="V"].active{background:var(--orange)}
.suivi-fpill[data-val="C"]{color:#7c3aed;border-color:#7c3aed}.suivi-fpill[data-val="C"].active{background:#7c3aed}
.suivi-fpill[data-val="R"]{color:var(--red);border-color:var(--red)}.suivi-fpill[data-val="R"].active{background:var(--red)}
.suivi-fpill[data-val="S"]{color:#1a1a2e;border-color:#1a1a2e}.suivi-fpill[data-val="S"].active{background:#1a1a2e}
.suivi-fpill[data-val="N"]{color:var(--muted);border-color:var(--muted)}.suivi-fpill[data-val="N"].active{background:var(--muted)}
.suivi-filter-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
.suivi-reminder{font-size:11px;color:var(--muted)}
.suivi-reminder strong{color:var(--text)}

/* Catégorie accordéon */
.suivi-cat{margin-bottom:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--white)}
.suivi-cat-head{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:700;background:var(--gray-light);transition:.15s;user-select:none}
.suivi-cat-head:hover{background:var(--primary-light)}
.suivi-cat.open>.suivi-cat-head{background:var(--primary-light);color:var(--primary);border-bottom:2px solid var(--primary)}
.suivi-cat-head .cat-icon{font-size:16px}
.suivi-cat-head .cat-counters{display:flex;gap:4px;margin-left:auto;align-items:center}
.suivi-cat-head .cat-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700}
.cat-badge-O{background:var(--green);color:#fff}
.cat-badge-V{background:var(--orange);color:#fff}
.cat-badge-C{background:#7c3aed;color:#fff}
.cat-badge-R{background:var(--red);color:#fff}
.cat-badge-N{background:var(--muted);color:#fff}
.cat-badge-S{background:#1a1a2e;color:#fff}
.cat-badge-total{background:var(--gray-light);color:var(--gray);font-weight:600}
.suivi-cat.open .cat-badge-total{background:var(--white);color:var(--gray);border:1px solid var(--border)}
.suivi-cat.open .cat-badge-O,.suivi-cat.open .cat-badge-V,.suivi-cat.open .cat-badge-C,.suivi-cat.open .cat-badge-R,.suivi-cat.open .cat-badge-S,.suivi-cat.open .cat-badge-N{opacity:1}
.suivi-cat-body{display:none;padding:8px}
.suivi-cat.open>.suivi-cat-body{display:block}

/* Document accordéon */
.suivi-doc{border:1px solid var(--border);border-radius:8px;margin-bottom:6px;overflow:hidden;border-left:4px solid var(--muted);transition:.15s}
.suivi-doc[data-status="O"]{border-left-color:var(--green)}
.suivi-doc[data-status="V"]{border-left-color:var(--orange)}
.suivi-doc[data-status="C"]{border-left-color:#7c3aed}
.suivi-doc[data-status="R"]{border-left-color:var(--red)}
.suivi-doc[data-status="S"]{border-left-color:#1a1a2e}
.suivi-doc[data-status="N"]{border-left-color:var(--muted)}
.suivi-doc-head{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;transition:.15s;background:var(--white)}
.suivi-doc-head:hover{background:var(--gray-light)}
.suivi-doc.open>.suivi-doc-head{background:var(--primary-light)}
.suivi-doc-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;white-space:nowrap}
.suivi-doc-badge.st-O,.nav-badge.st-O{background:var(--green-light);color:var(--green)}
.suivi-doc-badge.st-V,.nav-badge.st-V{background:var(--orange-light);color:var(--orange)}
.suivi-doc-badge.st-C,.nav-badge.st-C{background:#f3f0ff;color:#7c3aed}
.suivi-doc-badge.st-R,.nav-badge.st-R{background:var(--red-light);color:var(--red)}
.suivi-doc-badge.st-S,.nav-badge.st-S{background:#e8e8f0;color:#1a1a2e}
.suivi-doc-badge.st-N,.nav-badge.st-N{background:var(--gray-light);color:var(--muted)}
.suivi-doc-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suivi-doc-code{font-size:11px;color:var(--muted)}
.suivi-doc-date{font-size:11px;color:var(--muted);white-space:nowrap}
.suivi-doc-head-spacer{flex:1}
.suivi-doc-head .file-count{font-size:11px;color:var(--muted);white-space:nowrap}
.suivi-doc-head .file-count small{font-weight:400}
.suivi-doc-head .suivi-btn-sm{font-size:11px;padding:2px 8px}
.suivi-doc-head .suivi-btn-del{opacity:.4;transition:opacity .15s}
.suivi-doc-head .suivi-btn-del:hover{opacity:1}
.suivi-round-badge{font-size:10px;font-weight:700;background:var(--primary-light);color:var(--primary);padding:2px 6px;border-radius:4px;white-space:nowrap}
.suivi-btn-history{opacity:.5;transition:opacity .15s}
.suivi-btn-history:hover{opacity:1}
.suivi-history-timeline{display:flex;flex-direction:column;gap:8px;padding:8px 0}
.suivi-history-item{padding:8px 10px;border-left:3px solid var(--border);background:var(--gray-light);border-radius:0 6px 6px 0}
.suivi-doc-body{display:none;padding:10px 12px;background:var(--white);border-top:1px solid var(--border)}
.suivi-doc.open>.suivi-doc-body{display:block}

/* Alerte dans doc body */
.suivi-alert{padding:8px 12px;border-radius:8px;font-size:12px;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.suivi-alert-danger{background:var(--red-light);color:var(--red)}
.suivi-alert-info{background:var(--primary-light);color:var(--primary)}
.suivi-alert-warn{background:var(--orange-light);color:var(--orange)}

/* Actions bar dans doc */
.suivi-doc-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.suivi-doc-actions .file-count{font-size:12px;font-weight:700;color:var(--text)}
.suivi-doc-actions .file-count span{background:var(--gray-light);color:var(--gray);font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700;margin-left:4px}
.suivi-doc-btns{display:flex;gap:4px}
.suivi-btn-sm{padding:4px 10px;border:1px solid var(--border);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;background:var(--white);transition:.15s;display:inline-flex;align-items:center;gap:4px}
.suivi-btn-sm:hover{background:var(--gray-light)}
.suivi-btn-pdf{color:var(--green);border-color:var(--green)}
.suivi-btn-pdf.active{background:var(--green);color:#fff}
.suivi-btn-pdf.excluded{color:var(--muted);border-color:var(--border)}
.suivi-btn-pdf.excluded .pdf-label{text-decoration:line-through}
.suivi-btn-del{color:var(--red);border-color:var(--red-light)}
.suivi-btn-del:hover{background:var(--red-light)}

/* Grille fichiers */
.suivi-files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.suivi-fcard{border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;transition:.15s;background:var(--white);position:relative}
.suivi-fcard:hover{border-color:var(--primary);box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-1px)}
.suivi-fcard.dragging{opacity:.3;transform:scale(.95)}
.suivi-fcard.drag-over{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);transform:translateY(-2px)}
.suivi-fcard.drag-replace{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange);transform:translateY(-2px)}
.suivi-fcard.drag-replace .fcard-thumb::after{content:'Remplacer';position:absolute;inset:0;background:rgba(234,88,12,.7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border-radius:6px}
.suivi-doc.drop-target{outline:2px dashed var(--primary);outline-offset:2px;background:rgba(37,99,235,.04)}
.suivi-doc.drop-target>.suivi-doc-body::before{content:'+ Ajouter des fichiers';display:block;text-align:center;padding:6px;font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-light);border-radius:6px;margin-bottom:8px}
.suivi-fcard .fcard-del{margin-left:auto;padding:4px;border:1px solid var(--red);border-radius:4px;background:var(--white);color:var(--red);font-size:11px;cursor:pointer;transition:.12s}
.suivi-fcard .fcard-del:hover{background:var(--red);color:#fff}
.suivi-fcard .fcard-thumb{height:120px;display:flex;align-items:center;justify-content:center;background:var(--gray-light);overflow:hidden;cursor:pointer;position:relative}
.fcard-thumb-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--gray-light);z-index:1}
.suivi-fcard .fcard-thumb img{width:100%;height:100%;object-fit:contain;image-rendering:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.suivi-fcard .fcard-thumb-img{opacity:0;transition:opacity .3s ease}
.suivi-fcard .fcard-thumb-img.loaded{opacity:1}
.suivi-fcard .fcard-thumb .fcard-icon{font-size:28px;color:var(--muted)}
.suivi-fcard .fcard-body{padding:6px 8px}
.suivi-fcard .fcard-name{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.suivi-fcard .fcard-date{font-size:10px;color:var(--muted)}
.suivi-fcard .fcard-foot{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .15s;z-index:2}
.suivi-fcard:hover .fcard-foot{opacity:1}
.suivi-fcard .fcard-foot button{padding:3px 5px;border:1px solid rgba(0,0,0,.15);border-radius:4px;background:rgba(255,255,255,.9);font-size:12px;cursor:pointer;color:var(--dark);transition:.12s;backdrop-filter:blur(4px);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.suivi-fcard .fcard-foot button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
/* Upload in progress */
.suivi-fcard-uploading{opacity:.7;pointer-events:none}
.suivi-fcard-uploading .fcard-upload-status{color:var(--primary);font-weight:600}
.suivi-fcard-error{opacity:1;pointer-events:auto}
.suivi-fcard-error .fcard-upload-status{color:var(--red);font-weight:600}
.fcard-upload-spinner{width:28px;height:28px;border:3px solid var(--gray-light);border-top-color:var(--primary);border-radius:50%;animation:fcard-spin .8s linear infinite}
.suivi-upload-tag{font-size:10px;color:var(--muted);white-space:nowrap}
.suivi-upload-tag.client{color:var(--primary);font-weight:600}
.doc-tab-loader{position:absolute;inset:0;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;z-index:20;border-radius:8px}
.suivi-pdf-result{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--green-light);border:1px solid var(--green);border-radius:8px;text-decoration:none;color:var(--green);font-size:12px;font-weight:600;margin-bottom:8px;transition:.15s}
.suivi-pdf-result:hover{background:#d1fae5;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.suivi-pdf-open{margin-left:auto;font-size:11px;font-weight:400;opacity:.7}
.modal-dropzone{border:2px dashed var(--border);border-radius:8px;cursor:pointer;transition:.15s;min-height:60px}
.modal-dropzone:hover,.modal-dropzone.dragover{border-color:var(--primary);background:var(--primary-light)}
@keyframes fcard-spin{to{transform:rotate(360deg)}}
/* Crop in progress overlay */
.suivi-fcard-cropping{pointer-events:none;position:relative}
.fcard-crop-loader{position:absolute;inset:0;background:rgba(255,255,255,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:5;border-radius:8px}
.fcard-crop-loader span{font-size:10px;font-weight:600;color:var(--primary)}
.suivi-fcard .fcard-thumb-tip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:50;background:var(--white);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:4px;pointer-events:none;max-width:480px;max-height:400px}
.suivi-fcard .fcard-thumb-tip img{max-width:100%;max-height:380px;border-radius:6px;display:block;image-rendering:auto}
.suivi-fcard:hover .fcard-thumb-tip{display:block}
.suivi-fcard .fcard-thumb-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--border)}
.suivi-fcard.drop-replace{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange);background:var(--orange-light)}
.suivi-fcard-add.drop-active{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(1.02)}
.suivi-fcard-add{border-style:dashed;border-color:var(--primary);background:var(--primary-light);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;cursor:pointer;transition:.15s}
.suivi-fcard-add:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.suivi-fcard-add .add-icon{width:36px;height:36px;border-radius:50%;border:1px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:4px}
.suivi-fcard-add .add-label{font-size:11px;font-weight:600}

/* Status panel inline */
.suivi-status-panel{border:1px solid var(--border);border-radius:8px;padding:10px;margin-top:10px;background:var(--gray-light)}
.suivi-status-pills{display:flex;gap:4px;flex-wrap:wrap}
.suivi-spill{border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;background:var(--white);transition:.15s}
.suivi-spill:hover{filter:brightness(.95)}
.suivi-spill.active{color:#fff;font-weight:700}
.suivi-spill[data-val="O"]{color:var(--green);border-color:var(--green)}.suivi-spill[data-val="O"].active{background:var(--green);color:#fff}
.suivi-spill[data-val="V"]{color:var(--orange);border-color:var(--orange)}.suivi-spill[data-val="V"].active{background:var(--orange);color:#fff}
.suivi-spill[data-val="C"]{color:#7c3aed;border-color:#7c3aed}.suivi-spill[data-val="C"].active{background:#7c3aed;color:#fff}
.suivi-spill[data-val="R"]{color:var(--red);border-color:var(--red)}.suivi-spill[data-val="R"].active{background:var(--red);color:#fff}
.suivi-spill[data-val="S"]{color:#1a1a2e;border-color:#1a1a2e}.suivi-spill[data-val="S"].active{background:#1a1a2e;color:#fff}
.suivi-spill.saving{pointer-events:none;opacity:.6}
.suivi-spill:disabled{opacity:.35;cursor:not-allowed;background:var(--bg);color:var(--muted)!important;border-color:var(--border)!important}
.suivi-change-zone{margin-top:8px;display:none}
.suivi-change-zone.visible{display:block}
.suivi-msg-input{width:100%;border:1px solid var(--border);border-radius:6px;padding:8px;font-size:12px;font-family:inherit;resize:vertical;min-height:50px;margin-bottom:6px}
.suivi-tpl-btns{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.suivi-tpl-btn{font-size:10px;padding:3px 8px;border-radius:12px;border:1px solid var(--border);background:var(--white);cursor:pointer;transition:.12s;white-space:nowrap}
.suivi-tpl-btn:hover{background:var(--gray-light);border-color:var(--muted)}

/* Sidebar suivi */
.suivi-side .suivi-side-card{border:1px solid var(--border);border-radius:10px;background:var(--white);margin-bottom:12px;overflow:hidden}
.suivi-side-header{padding:10px 12px;font-size:12px;font-weight:700;background:var(--gray-light);display:flex;align-items:center;gap:6px}
.suivi-side-body{padding:8px}

/* Dropzone sidebar */
.suivi-dropzone{border:2px dashed var(--border);border-radius:10px;padding:16px;text-align:center;cursor:pointer;transition:.2s;background:var(--white);margin-bottom:12px}
.suivi-dropzone:hover,.suivi-dropzone.dragover{border-color:var(--primary);background:var(--primary-light)}
.suivi-dropzone .sdz-icon{font-size:28px;opacity:.5}
.suivi-dropzone .sdz-text{font-size:11px;color:var(--gray);margin-top:4px}
.suivi-dropzone .sdz-files{max-height:120px;overflow-y:auto;text-align:left;margin-top:6px}
.suivi-dropzone .sdz-file{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11px}
.suivi-dropzone .sdz-file .sdz-fname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suivi-dropzone .sdz-file .sdz-fsize{color:var(--muted);white-space:nowrap}
.suivi-dropzone .sdz-actions{display:flex;gap:6px;justify-content:center;margin-top:8px}

/* Navigation documents sidebar */
.suivi-nav-item{display:grid;grid-template-columns:16px 16px 58px 1fr;align-items:center;gap:4px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:11px;transition:.12s;border-left:3px solid transparent}
.suivi-nav-item:hover,.suivi-nav-item.active{background:var(--primary-light)}
.nav-handle{color:var(--muted);font-size:10px;cursor:grab;text-align:center}
.nav-badge{font-size:9px;font-weight:600;padding:2px 0;text-align:center;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.suivi-nav-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.suivi-nav-dot[data-st="O"]{background:var(--green)}
.suivi-nav-dot[data-st="V"]{background:var(--orange)}
.suivi-nav-dot[data-st="C"]{background:#7c3aed}
.suivi-nav-dot[data-st="R"]{background:var(--red)}
.suivi-nav-dot[data-st="N"]{background:var(--muted)}
.suivi-nav-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suivi-nav-cat{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);padding:8px 8px 2px;letter-spacing:.03em}
.suivi-nav-cat:not(:first-child){margin-top:4px;border-top:1px solid var(--border);padding-top:8px}

/* Nav items — merged with PDF toggle */
.suivi-nav-item{cursor:grab}
.suivi-nav-item.dragging{opacity:.3}
.suivi-nav-item.drag-over{border-top:2px solid var(--primary)}
.suivi-nav-item.pdf-excluded{opacity:.5}
.suivi-nav-item.pdf-excluded .suivi-nav-name{text-decoration:line-through}
.nav-pdf-cb{cursor:pointer;width:14px;height:14px;accent-color:var(--primary);margin:0}

/* Legacy — kept for compat */
.suivi-pdf-item{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:11px;border-radius:6px;background:var(--gray-light);margin-bottom:2px;cursor:grab}
.suivi-pdf-item.excluded{opacity:.4;text-decoration:line-through}
.suivi-btn-generate{width:100%;padding:8px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:12px;font-weight:700;cursor:pointer;margin-top:8px;transition:.15s;display:flex;align-items:center;justify-content:center;gap:6px}
.suivi-btn-generate:hover{opacity:.9}
.suivi-btn-generate:disabled{opacity:.5;cursor:default}

/* Modal suivi (réutilise doc-modal-overlay) */
.suivi-modal-content{background:var(--white);border-radius:12px;width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;position:relative;padding:24px}
.suivi-modal-content h3{font-size:16px;font-weight:700;margin-bottom:16px}
.suivi-modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:var(--gray-light);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}
.suivi-modal-close:hover{background:var(--red-light);color:var(--red)}

/* Crop perspective modal */
.crop-perspective-layout{display:grid;grid-template-columns:1fr 280px;gap:12px;min-height:400px}
.crop-src-wrap{border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--gray-light);display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;overflow:hidden}
.crop-side-panel{display:flex;flex-direction:column;gap:10px;min-height:0}
.crop-loupe-wrap{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--white);display:flex;flex-direction:column;align-items:center;position:relative}
.crop-loupe-wrap canvas{border-radius:4px;border:1px solid var(--border);display:block;width:100%;height:auto}
.crop-preview-wrap{border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;align-items:center;background:var(--white);overflow:hidden;flex:1;min-height:0}
.crop-preview-wrap canvas{max-width:100%;max-height:200px;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.crop-preview-label{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.crop-canvas-container{position:relative;display:inline-block;line-height:0;transition:transform .1s ease-out}
.crop-canvas-container canvas{display:block;image-rendering:auto}
.crop-overlay-svg{position:absolute;top:0;left:0;pointer-events:all;cursor:default}
.crop-handle{fill:#2563eb;stroke:white;stroke-width:2;cursor:grab;r:8;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3))}
.crop-handle:hover{r:10;fill:#1d4ed8}
.crop-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
.crop-toolbar{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.crop-hint{flex:1;font-size:11px;color:var(--muted);text-align:center}
.crop-zoom-hint{font-size:10px;color:var(--muted);opacity:.7}
.crop-btn-auto{background:var(--primary-light)!important;color:var(--primary)!important;font-weight:600}
.crop-btn-auto:hover{background:var(--primary)!important;color:white!important}
/* Crop adjustments sliders */
.crop-adjustments{display:flex;gap:12px;width:100%;padding:0 4px}
.crop-adj-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.crop-adj-row label{font-size:10px;font-weight:600;color:var(--muted);white-space:nowrap;min-width:58px}
.crop-adj-row input[type="range"]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer;min-width:0}
.crop-adj-row input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary);border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,.2);cursor:pointer}
.crop-adj-row span{font-size:10px;font-weight:600;color:var(--dark);min-width:22px;text-align:right}
@media(max-width:700px){.crop-perspective-layout{grid-template-columns:1fr}.crop-side-panel{flex-direction:row}.crop-loupe-wrap,.crop-preview-wrap{flex:1}}
.suivi-form-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:4px;font-weight:600}
.suivi-form-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit}
.suivi-form-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.suivi-combo-list{position:absolute;top:100%;left:0;right:0;background:var(--white);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:10;max-height:180px;overflow-y:auto;display:none}
.suivi-combo-list.visible{display:block}
.suivi-combo-item{padding:6px 12px;font-size:12px;cursor:pointer;transition:.1s}
.suivi-combo-item:hover{background:var(--primary-light)}
.suivi-combo-item.hidden{display:none}
.suivi-target-btns{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:12px}
.suivi-target-btn{flex:1;padding:8px;border:none;background:var(--white);font-size:12px;font-weight:500;cursor:pointer;transition:.15s;text-align:center}
.suivi-target-btn:not(:last-child){border-right:1px solid var(--border)}
.suivi-target-btn.active{background:var(--primary);color:#fff}
.suivi-target-btn:hover:not(.active){background:var(--gray-light)}
.suivi-upload-list{list-style:none;padding:0;margin:6px 0 0}
.suivi-upload-list li{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0}

/* FEEDBACK FAB (fixe bas-droite) */
.fb-fixed-btns{position:fixed;bottom:24px;right:24px;z-index:100;display:flex;gap:10px;align-items:center}
.fb-fab{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:.2s;position:relative}
.fb-fab:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.22)}
.fb-fab:active{transform:translateY(0)}
.fb-fab-pick{background:var(--red);color:#fff}
.fb-fab-list{background:var(--white);color:var(--gray);border:1px solid var(--border)}
.fb-fab-list:hover{color:var(--primary);border-color:var(--primary)}
.fb-count{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}

/* FEEDBACK PANEL v2 */
.feedback-panel{position:fixed;top:0;right:-500px;width:480px;height:100vh;background:var(--white);border-left:1px solid var(--border);box-shadow:-4px 0 24px rgba(0,0,0,.1);z-index:200;display:flex;flex-direction:column;transition:right .25s ease}
.feedback-panel.open{right:0}
@media(max-width:768px){.feedback-panel{width:100%;right:-100%}}
.fb-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.15);z-index:199;display:none}
.feedback-panel.open~.fb-overlay{display:block}
.fb-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.fb-header h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
.fb-close{width:32px;height:32px;border:none;background:none;font-size:20px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--gray);transition:.15s}
.fb-close:hover{background:var(--gray-light);color:var(--text)}
.fb-pills{display:flex;gap:6px;padding:12px 20px;border-bottom:1px solid var(--border)}
.fb-pill{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--white);font-size:12px;font-weight:600;cursor:pointer;transition:.15s;color:var(--gray)}
.fb-pill:hover{background:var(--gray-light);color:var(--text)}
.fb-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.fb-body{flex:1;overflow-y:auto;padding:12px 20px}

/* Accordéon groupes */
.fb-group{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden;background:var(--white)}
.fb-group-head{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;font-size:12px;font-weight:600;background:var(--gray-light);transition:.15s;user-select:none}
.fb-group-head:hover{background:var(--border)}
.fb-group-arrow{transition:transform .2s;flex-shrink:0}
.fb-group.open .fb-group-arrow{transform:rotate(0)}
.fb-group:not(.open) .fb-group-arrow{transform:rotate(-90deg)}
.fb-group-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-group-counts{display:flex;gap:4px;margin-left:auto;flex-shrink:0}
.fb-group-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px}
.fb-group-badge-pending{background:var(--red-light);color:var(--red)}
.fb-group-badge-total{background:var(--gray-light);color:var(--gray)}
.fb-group-body{display:none;padding:10px}
.fb-group.open .fb-group-body{display:block}

/* Cards reviews */
.fb-card{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;transition:.15s;background:var(--white)}
.fb-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
.fb-card.fb-resolved{border-left:3px solid var(--green);opacity:.7}
.fb-card.fb-pending{border-left:3px solid var(--red)}
.fb-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.fb-status-dot{font-size:12px;font-weight:700}
.fb-status-dot.fb-resolved{color:var(--green)}
.fb-status-dot.fb-pending{color:var(--red)}
.fb-card-date{font-size:11px;color:var(--muted)}
.fb-card-shot{cursor:pointer;font-size:14px;margin-left:auto;opacity:.6;transition:.15s}
.fb-card-shot:hover{opacity:1}
.fb-card-comment{font-size:13px;font-weight:500;margin-bottom:6px;line-height:1.4}
.fb-card-target{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;margin-bottom:8px;padding:4px 8px;background:var(--gray-light);border-radius:4px;word-break:break-all}
.fb-card-actions{display:flex;gap:6px}
.btn-sm{padding:4px 12px;border-radius:6px;border:1px solid var(--border);background:var(--white);font-size:11px;font-weight:600;cursor:pointer;transition:.15s}
.btn-sm:hover{background:var(--gray-light)}
.fb-btn-resolve{color:var(--green);border-color:var(--green)}
.fb-btn-resolve:hover{background:var(--green-light)}
.fb-btn-reopen{color:var(--orange);border-color:var(--orange)}
.fb-btn-reopen:hover{background:var(--orange-light)}

/* MODE PICK — sélection d'élément */
body.fb-picking{cursor:crosshair!important}
body.fb-picking *{cursor:crosshair!important}
.fb-highlight{position:fixed;z-index:9998;pointer-events:none;border:2px solid var(--red);background:rgba(220,38,38,.08);border-radius:4px;transition:all .08s ease}
.fb-pick-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:10000;display:flex;align-items:center;justify-content:center}
.fb-pick-modal{background:var(--white);border-radius:14px;width:460px;max-width:90vw;max-height:85vh;overflow-y:auto;padding:24px;position:relative;box-shadow:0 16px 48px rgba(0,0,0,.15);animation:fadeSlideDown .2s ease}
.fb-pick-target{border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--gray-light);min-height:44px}
.fb-pick-placeholder{color:var(--muted);font-size:12px}
.fb-pick-selected{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fb-pick-tag{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--primary);font-weight:600;background:var(--primary-light);padding:3px 8px;border-radius:4px}
.fb-pick-text{font-size:12px;color:var(--muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-pick-shot{margin-bottom:12px}
#fb-pick-comment{width:100%;min-height:70px;padding:10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;resize:vertical}
#fb-pick-comment:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}

/* Card row layout (with screenshot thumbnail) */
.fb-card-row{display:flex;gap:10px;margin-bottom:6px}
.fb-card-thumb{width:64px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--border);cursor:pointer;flex-shrink:0;transition:.15s}
.fb-card-thumb:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.1)}
.fb-card-content{flex:1;min-width:0}
.fb-card-goto{margin-left:auto;cursor:pointer;font-size:14px;color:var(--muted);transition:.15s;padding:2px 6px;border-radius:4px}
.fb-card-goto:hover{color:var(--primary);background:var(--primary-light)}
.fb-search{transition:border-color .15s}
.fb-search:focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(37,99,235,.08)}

/* KBD shortcuts */
kbd{display:inline-block;padding:2px 7px;font-size:11px;font-family:monospace;font-weight:600;line-height:1.6;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.12);white-space:nowrap}
/* Keyboard focus row in dossiers table */
/* Keyboard mode: disable mouse hover, show keyboard focus */
#dossiers-tbody.kb-mode tr:hover td{background:transparent}
#dossiers-tbody tr.kb-focus td{background:var(--primary-light)}
#dossiers-tbody tr.kb-focus{outline:2px solid var(--primary);outline-offset:-2px}

/* SETTINGS — Rules table */
.settings-rules-table{width:100%;border-collapse:collapse;font-size:13px}
.settings-rules-table th{text-align:left;padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;border-bottom:2px solid var(--border);background:var(--bg)}
.settings-rules-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.settings-rules-table tr:hover{background:var(--gray-light)}
.settings-input{border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:4px;font-size:13px;font-family:inherit;color:var(--text);width:100%}
.settings-input:hover{border-color:var(--border)}
.settings-input:focus{outline:none;border-color:var(--primary);background:var(--white);box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.settings-condition{font-size:12px;color:var(--gray);background:var(--gray-light);padding:3px 8px;border-radius:4px;display:inline-block}
.btn-icon{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}
.btn-icon:hover{background:var(--red-light)}
.btn-sm{font-size:12px;padding:6px 12px}
.btn-outline{border:1px solid var(--border);background:var(--white);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;color:var(--gray);font-weight:500}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}

/* DARK MODE */
[data-theme="dark"]{
  --primary:#3b82f6;--primary-light:#1e293b;--orange:#f59e0b;--orange-light:#1c1917;
  --green:#22c55e;--green-light:#052e16;--red:#ef4444;--red-light:#450a0a;
  --yellow:#eab308;--yellow-light:#1a1a00;--gray:#94a3b8;--gray-light:#1e293b;
  --border:#334155;--bg:#0f172a;--white:#1e293b;--text:#e2e8f0;--muted:#64748b;
}
[data-theme="dark"] .sidebar{background:#1e293b;border-color:#334155}
[data-theme="dark"] .date-bar{background:#1e293b;border-color:#334155}
[data-theme="dark"] .date-bar input[type=date]{background:#0f172a;color:#e2e8f0;border-color:#334155}
[data-theme="dark"] .date-presets button{background:#0f172a;color:#94a3b8;border-color:#334155}
[data-theme="dark"] .date-presets button:hover{border-color:#3b82f6;color:#3b82f6}
[data-theme="dark"] .date-presets button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}
[data-theme="dark"] .date-range-wrap{background:#0f172a;border-color:#334155}
[data-theme="dark"] .sidebar-toggle{background:#1e293b;border-color:#334155;color:#94a3b8}
[data-theme="dark"] .sidebar-toggle:hover{background:#334155;color:#e2e8f0}
[data-theme="dark"] .source-label{color:#94a3b8}
/* Dark — nav items */
[data-theme="dark"] .nav-item{color:#94a3b8}
[data-theme="dark"] .nav-item:hover{background:#334155;color:#e2e8f0}
[data-theme="dark"] .nav-item.active{background:#1e3a5f;color:#3b82f6}
/* Dark — sidebar footer */
[data-theme="dark"] .sidebar-footer{border-color:#334155}
[data-theme="dark"] .sidebar-footer small{color:#64748b}
/* Dark — cards, kpi */
[data-theme="dark"] .card{background:#1e293b;border-color:#334155}
[data-theme="dark"] .kpi-card{background:#1e293b;border-color:#334155}
[data-theme="dark"] .sum-card{background:#1e293b;border-color:#334155}
/* Dark — tables */
[data-theme="dark"] th{color:#94a3b8;border-color:#334155}
[data-theme="dark"] td{border-color:#334155;color:#e2e8f0}
[data-theme="dark"] tr:hover td{background:#334155}
[data-theme="dark"] tr.kb-selected td{background:#1e3a5f;box-shadow:inset 0 0 0 1px #3b82f6}
[data-theme="dark"] tr.kb-selected:hover td{background:#1e3a5f}
[data-theme="dark"] #dossiers-tbody tr:hover td{background:#1e3a5f}
[data-theme="dark"] #dossiers-tbody tr:active td{background:#1e3a5f}
[data-theme="dark"] #dossiers-tbody tr.kb-focus td{background:#1e3a5f}
[data-theme="dark"] th.sortable:hover{color:#3b82f6;background:#1e3a5f}
[data-theme="dark"] .loans-table th,[data-theme="dark"] .histo-table th{background:#0f172a}
[data-theme="dark"] .settings-rules-table th{background:#0f172a;border-color:#334155;color:#94a3b8}
[data-theme="dark"] .settings-rules-table td{border-color:#334155}
/* Dark — modals */
[data-theme="dark"] .doc-modal{background:#1e293b}
[data-theme="dark"] .doc-modal-overlay{background:rgba(0,0,0,.85)}
[data-theme="dark"] .suivi-modal-content{background:#1e293b}
[data-theme="dark"] .suivi-modal-close{background:#334155;color:#94a3b8}
[data-theme="dark"] .suivi-modal-close:hover{background:#450a0a;color:#ef4444}
/* Dark — dropdowns, popups */
[data-theme="dark"] .ms-trigger{background:#1e293b;border-color:#334155;color:#e2e8f0}
[data-theme="dark"] .ms-dropdown{background:#1e293b;border-color:#334155;box-shadow:0 8px 24px rgba(0,0,0,.4)}
[data-theme="dark"] .ms-search{background:#0f172a;border-color:#334155;color:#e2e8f0}
[data-theme="dark"] .ms-option:hover{background:#334155}
[data-theme="dark"] .ms-option input[type=checkbox]{accent-color:#3b82f6}
[data-theme="dark"] .ms-footer{border-color:#334155}
[data-theme="dark"] .source-picker-popup{background:#1e293b;border-color:#334155;box-shadow:0 8px 24px rgba(0,0,0,.4)}
[data-theme="dark"] .fb-pick-modal{background:#1e293b;box-shadow:0 16px 48px rgba(0,0,0,.4)}
/* Dark — feedback panel */
[data-theme="dark"] .feedback-panel{background:#1e293b;border-color:#334155;box-shadow:-4px 0 24px rgba(0,0,0,.3)}
/* Dark — buttons */
[data-theme="dark"] .btn-outline{background:#1e293b;border-color:#334155;color:#e2e8f0}
[data-theme="dark"] .btn-outline:hover{background:#334155;border-color:#3b82f6;color:#3b82f6}
[data-theme="dark"] .btn-sm{background:#1e293b;border-color:#334155;color:#e2e8f0}
[data-theme="dark"] .btn-sm:hover{background:#334155}
/* Dark — collapsed sidebar tooltips */
[data-theme="dark"] .sidebar.collapsed .nav-item::after{background:#e2e8f0;color:#0f172a}
[data-theme="dark"] .sidebar.collapsed .nav-item::before{border-right-color:#e2e8f0}
[data-theme="dark"] .sidebar.collapsed .sb-dossier-item::after{background:#e2e8f0;color:#0f172a}
[data-theme="dark"] .sidebar.collapsed .sb-dossier-item::before{border-right-color:#e2e8f0}
/* Dark — inputs, selects */
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{color:#e2e8f0;background:#0f172a;border-color:#334155}
/* Dark — detail page */
[data-theme="dark"] .client-profile .photo{border-color:#334155}
[data-theme="dark"] .client-profile .photo .online{border-color:#1e293b}
[data-theme="dark"] .detail-section h4{color:#3b82f6;border-color:#1e3a5f}
[data-theme="dark"] .detail-row .dl{color:#94a3b8}
[data-theme="dark"] .detail-row .dv{color:#e2e8f0}
/* Dark — sidebar dossier items */
[data-theme="dark"] .sb-dossier-item{color:#94a3b8}
[data-theme="dark"] .sb-dossier-item:hover{background:#334155;color:#e2e8f0}
[data-theme="dark"] .sb-dossier-item.active{background:#1e3a5f;color:#3b82f6}
[data-theme="dark"] .sb-dossier-close:hover{background:#450a0a;color:#ef4444}
/* Dark — badges with hardcoded colors */
[data-theme="dark"] .badge-callback{background:#1e3a5f;color:#93c5fd;border-color:#3b82f6}
[data-theme="dark"] .badge-stale{background:#451a03;color:#fdba74;border-color:#92400e}
/* Dark — tab bar, settings */
[data-theme="dark"] .tab-pane{color:#e2e8f0}
[data-theme="dark"] .settings-input{background:#0f172a;border-color:#334155;color:#e2e8f0}
[data-theme="dark"] .settings-condition{background:#0f172a;color:#94a3b8}
/* Dark — modal dropzone */
[data-theme="dark"] .modal-dropzone{border-color:#334155}
[data-theme="dark"] .modal-dropzone:hover,[data-theme="dark"] .modal-dropzone.dragover{border-color:#3b82f6;background:#1e3a5f}
.dark-toggle{border:1px solid var(--border);border-radius:6px;background:var(--white);cursor:pointer;padding:3px 8px;font-size:14px;line-height:1;transition:.15s;color:var(--gray);display:inline-flex;align-items:center}
.dark-toggle:hover{border-color:var(--primary);color:var(--primary)}

/* RESPONSIVE */
@media(max-width:1100px){.kpi-row{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}.suivi-layout{flex-direction:column}.suivi-side{width:100%;position:static;max-height:none}}
@media(max-width:768px){.sidebar{display:none}.main{margin-left:0!important}.feedback-panel{width:100%;right:-100%}}

/* ============================================================
   PIPELINE — Kanban workflow steps 1-9 (phase 3)
   ============================================================ */
.kanban-board { display:flex; gap:12px; overflow-x:auto; padding-bottom:16px; align-items:flex-start; }
.kanban-column { flex:0 0 230px; max-width:230px; background:var(--bg); border:1px solid var(--border); border-radius:10px; display:flex; flex-direction:column; max-height:calc(100vh - 180px); }
.kanban-col-head { display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--border); border-radius:10px 10px 0 0; background:#fff; position:sticky; top:0; z-index:1; }
.kanban-step-num { min-width:20px; height:20px; border-radius:50%; background:var(--bg); border:1px solid var(--border); font-size:11px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; color:var(--muted); }
.kanban-col-label { flex:1; font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kanban-count { font-size:11px; font-weight:700; background:var(--primary-light); color:var(--primary); padding:2px 8px; border-radius:10px; }
.kanban-col-body { padding:8px; display:flex; flex-direction:column; gap:8px; overflow-y:auto; }
.kanban-card { display:block; background:#fff; border:1px solid var(--border); border-radius:8px; padding:10px 12px; text-decoration:none; color:inherit; transition:box-shadow .15s, transform .15s; cursor:pointer; }
.kanban-card:hover { box-shadow:0 4px 12px rgba(0,0,0,.08); transform:translateY(-1px); }
.kanban-card-top { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:4px; }
.kanban-card-ref { font-size:11px; font-weight:700; color:var(--primary); }
.kanban-card-code { font-size:10px; font-weight:600; background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:1px 5px; color:var(--muted); }
.kanban-card-nom { font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px; }
.kanban-card-meta { display:flex; align-items:center; justify-content:space-between; gap:6px; font-size:11px; color:var(--muted); }
.kanban-card-montant { font-weight:600; }
.kanban-empty { font-size:11px; color:var(--muted); text-align:center; padding:16px 8px; }
.kanban-more { font-size:11px; font-weight:600; color:var(--primary); text-align:center; padding:8px; cursor:pointer; text-decoration:none; }
.kanban-more.is-static { color:var(--muted); cursor:default; }
.kanban-more:hover:not(.is-static) { text-decoration:underline; }
