*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue: #0066CC;--blue-light: rgba(0,102,204,.1);--blue-mid: rgba(0,102,204,.18);--green: #28A745;--green-bg: rgba(40,167,69,.1);--orange: #FF9500;--orange-bg: rgba(255,149,0,.1);--red: #FF3B30;--red-bg: rgba(255,59,48,.1);--cyan: #32ADE6;--cyan-bg: rgba(50,173,230,.1);--purple: #AF52DE;--purple-bg: rgba(175,82,222,.1);--indigo: #5856D6;--indigo-bg: rgba(88,86,214,.1);--bg: #F5F5F7;--bg-secondary:#EBEBED;--surface: rgba(255,255,255,.85);--surface-solid:#FFFFFF;--glass: rgba(255,255,255,.72);--glass-dark: rgba(248,248,250,.9);--label: #1D1D1F;--label-2: #3A3A3C;--label-3: #636366;--label-4: #8E8E93;--separator: rgba(60,60,67,.18);--separator-soft: rgba(60,60,67,.08);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-sm: 0 2px 8px rgba(0,0,0,.08), 0 0 0 .5px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.1), 0 0 0 .5px rgba(0,0,0,.04);--shadow-lg: 0 8px 32px rgba(0,0,0,.12), 0 0 0 .5px rgba(0,0,0,.05)}:root{--bg-card: var(--surface-solid);--bg-subtle: var(--bg-secondary);--bg-subtle-hover: rgba(0,0,0,.04);--bg-subtle-active: rgba(0,0,0,.08);--bg-dark: var(--glass-dark);--bg-hover: rgba(0,0,0,.04);--bg-input: var(--surface-solid);--bg-overlay: rgba(0,0,0,.45);--text-primary: var(--label);--text-secondary: var(--label-2);--text-tertiary: var(--label-3);--border-color: var(--separator);--primary: var(--blue);--primary-light: #3384d6;--primary-bg: var(--blue-light);--primary-bg-hover: var(--blue-mid);--info: var(--cyan);--info-bg: var(--cyan-bg);--warning: var(--orange);--warning-bg: var(--orange-bg);--error: var(--red);--error-bg: var(--red-bg);--shadow-color: rgba(0,0,0,.12);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--text-xs: 11px;--text-sm: 12px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--bg-tertiary: #F5F5F7;--bg-success: rgba(52,199,89,.1);--bg-danger: rgba(255,59,48,.1);--success: var(--green);--danger: var(--red)}html,body{height:100%;overflow:hidden;font-family:-apple-system,SF Pro Text,Helvetica Neue,sans-serif;background:var(--bg);color:var(--label);-webkit-font-smoothing:antialiased}#root{height:100%}.app{display:flex;height:100vh}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar{width:240px;flex-shrink:0;background:#1e1e2e;display:flex;flex-direction:column;padding:0;overflow-y:auto;transition:width .2s ease;position:relative;z-index:10}.sidebar.collapsed{width:56px}.sidebar::-webkit-scrollbar{width:0}.sidebar-top{height:56px;display:flex;align-items:center;padding:0 14px;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;justify-content:space-between}.sidebar-logo{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.03em;white-space:nowrap;overflow:hidden}.sidebar-logo-icon{font-size:18px;font-weight:800;color:#fff;width:28px;text-align:center}.sidebar-toggle{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#ffffff59;transition:all .12s;flex-shrink:0}.sidebar-toggle:hover{background:#ffffff1a;color:#ffffffb3}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.nav-section-label{padding:20px 18px 6px;font-size:10.5px;font-weight:600;color:#ffffff59;text-transform:uppercase;letter-spacing:.08em}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 18px;margin:1px 0;cursor:pointer;font-size:13.5px;font-weight:400;color:#fff9;transition:all .12s;position:relative;white-space:nowrap;overflow:hidden}.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0}.nav-item:hover{background:#ffffff0f;color:#ffffffd9}.nav-item.active{background:var(--blue);color:#fff;font-weight:500}.nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-item.active .nav-icon{color:#fff}.nav-item:not(.active) .nav-icon{color:#ffffff73}.nav-badge{margin-left:auto;font-size:11px;font-weight:600;background:#ffffff26;color:#ffffffb3;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.nav-badge.accent{background:var(--orange);color:#fff}.nav-separator{margin:8px 18px;height:1px;background:#ffffff14}.nav-item.nav-sub{padding-left:50px;font-size:13px;color:#ffffff73}.nav-item.nav-sub:hover{color:#ffffffb3}.nav-item.nav-sub.active{color:#fff}.nav-chevron{margin-left:auto;color:#ffffff4d;display:flex;align-items:center}.sidebar-bottom{margin-top:auto;padding:12px 14px;border-top:1px solid rgba(255,255,255,.08)}.user-cell{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s}.user-cell:hover{background:#ffffff0f}.user-av{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--indigo));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff}.user-name{font-size:13px;font-weight:500;color:#ffffffd9}.user-role{font-size:11.5px;color:#fff6;margin-top:1px}.sync-row{display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:11.5px;color:#ffffff59}.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}.titlebar{height:52px;background:var(--glass);border-bottom:1px solid var(--separator);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:center;padding:0 20px;gap:10px;flex-shrink:0}.titlebar-title{font-size:15px;font-weight:600;color:var(--label);letter-spacing:-.02em}.titlebar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.search-field{display:flex;align-items:center;gap:7px;background:#7878801f;border-radius:8px;padding:5px 10px;min-width:200px;transition:all .15s}.search-field:focus-within{background:var(--surface-solid);box-shadow:var(--shadow-sm);outline:2px solid var(--blue);outline-offset:0}.search-field input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;color:var(--label);width:100%}.search-field input::placeholder{color:var(--label-4)}.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:var(--r-sm);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .13s;border:none;white-space:nowrap}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 3px #0066cc59}.btn-primary:hover{background:#0055ab}.btn-secondary{background:#78788024;color:var(--label)}.btn-secondary:hover{background:#78788033}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-danger:hover{background:#ff3b302e}.icon-btn{width:30px;height:30px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--label-3);transition:all .12s;position:relative}.icon-btn:hover{background:#00000012;color:var(--label)}.notif-badge{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--orange);border:1.5px solid var(--bg)}.content{flex:1;min-height:0;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px}.content::-webkit-scrollbar{width:8px}.content::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px;border:2px solid var(--bg)}.page-header{display:flex;align-items:flex-end;justify-content:space-between}.ph-title{font-size:26px;font-weight:700;color:var(--label);letter-spacing:-.03em;line-height:1}.ph-sub{font-size:13px;color:var(--label-4);margin-top:4px}.ph-actions{display:flex;gap:8px}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.kpi{background:var(--surface-solid);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.6);cursor:pointer;transition:all .15s}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kpi-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.kpi-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center}.kpi-ico.blue{background:var(--blue-light);color:var(--blue)}.kpi-ico.green{background:var(--green-bg);color:var(--green)}.kpi-ico.orange{background:var(--orange-bg);color:var(--orange)}.kpi-ico.red{background:var(--red-bg);color:var(--red)}.kpi-ico.indigo{background:var(--indigo-bg);color:var(--indigo)}.kpi-pill{font-size:11px;font-weight:600;padding:3px 7px;border-radius:20px}.kp-up{background:var(--green-bg);color:var(--green)}.kp-warn{background:var(--orange-bg);color:var(--orange)}.kp-down{background:var(--red-bg);color:var(--red)}.kpi-val{font-size:24px;font-weight:700;color:var(--label);letter-spacing:-.04em;line-height:1}.kpi-lbl{font-size:12px;color:var(--label-4);margin-top:5px;font-weight:400}.section-hd{display:flex;align-items:center;gap:8px;margin-bottom:14px}.section-name{font-size:17px;font-weight:600;color:var(--label);letter-spacing:-.02em}.section-pill{background:#78788024;color:var(--label-3);font-size:12px;font-weight:500;padding:2px 8px;border-radius:20px}.section-right{margin-left:auto;display:flex;gap:8px;align-items:center}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar-bar{display:flex;align-items:center;gap:10px}.filter-pills{display:flex;gap:6px}.fpill{padding:5px 13px;border-radius:20px;font-size:13px;font-weight:400;cursor:pointer;border:none;background:#7878801f;color:var(--label-3);transition:all .12s;font-family:inherit}.fpill:hover{background:#7878802e;color:var(--label-2)}.fpill.active{background:var(--blue);color:#fff;font-weight:500}.filter-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-family:inherit;font-weight:500;color:var(--label-2);background:var(--surface-solid);border:1px solid var(--separator);cursor:pointer;transition:all .12s;white-space:nowrap;appearance:none;-webkit-appearance:none}.filter-btn:hover{border-color:var(--label-4);color:var(--label)}.filter-btn.active{border-color:var(--blue);color:var(--blue);background:#007aff0f}.filter-btn .filter-btn-icon{color:var(--label-4);flex-shrink:0}.filter-btn.active .filter-btn-icon{color:var(--blue)}.filter-btn .filter-btn-chevron{color:var(--label-4);flex-shrink:0;margin-left:-2px}.filter-btn .filter-btn-clear{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--label-4);color:#fff;font-size:10px;font-weight:700;margin-left:2px;cursor:pointer;line-height:1}.filter-btn.active .filter-btn-clear{background:var(--blue)}select.filter-btn{padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select.filter-btn:focus{outline:none;box-shadow:0 0 0 2px #007aff4d}input[type=date].filter-btn{width:145px}input[type=date].filter-btn::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}.filter-bar-sep{width:1px;height:20px;background:var(--separator);flex-shrink:0}.drp{position:relative}.drp-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:100;display:flex;background:var(--surface-solid);border:1px solid var(--separator);border-radius:12px;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;overflow:hidden;animation:fadeIn .12s ease}.drp-presets{display:flex;flex-direction:column;gap:2px;padding:8px;border-right:1px solid var(--separator);min-width:150px}.drp-preset{padding:7px 14px;border-radius:6px;border:none;background:none;font-family:inherit;font-size:13px;color:var(--label-2);cursor:pointer;text-align:left;transition:all .1s;white-space:nowrap}.drp-preset:hover{background:#007aff14;color:var(--blue)}.drp-preset.active{background:#007aff1a;color:var(--blue);font-weight:500}.drp-calendar{padding:12px 16px;min-width:310px}.drp-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drp-cal-month{font-size:14px;font-weight:600;color:var(--label)}.drp-cal-nav{display:flex;gap:4px}.drp-cal-nav button{width:28px;height:28px;border-radius:6px;border:none;background:none;cursor:pointer;color:var(--label-3);display:flex;align-items:center;justify-content:center}.drp-cal-nav button:hover{background:#0000000f;color:var(--label)}.drp-cal-grid{display:grid;grid-template-columns:36px repeat(7,1fr);gap:0}.drp-cal-wh{font-size:11px;font-weight:500;color:var(--label-4);text-align:center;padding:4px 0}.drp-cal-weeknum{font-size:11px;color:var(--label-4);text-align:center;display:flex;align-items:center;justify-content:center}.drp-cal-day{font-size:13px;text-align:center;padding:6px 0;cursor:pointer;border-radius:0;color:var(--label);transition:background .08s}.drp-cal-day:hover{background:#007aff1a}.drp-cal-day.drp-out{color:var(--label-4)}.drp-cal-day.drp-today{font-weight:700;color:var(--blue)}.drp-cal-day.drp-in-range{background:#007aff1f}.drp-cal-day.drp-range-start{background:var(--blue);color:#fff;border-radius:50% 0 0 50%}.drp-cal-day.drp-range-end{background:var(--blue);color:#fff;border-radius:0 50% 50% 0}.drp-cal-day.drp-range-start.drp-range-end{border-radius:50%}.drp-cal-footer{text-align:right;margin-top:8px}.drp-cal-today-btn{border:none;background:none;font-family:inherit;font-size:12px;font-weight:600;color:var(--blue);cursor:pointer;letter-spacing:.03em}.drp-cal-today-btn:hover{text-decoration:underline}.msel{position:relative}.msel-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:100;background:var(--surface-solid);border:1px solid var(--separator);border-radius:10px;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;min-width:200px;max-height:280px;overflow-y:auto;padding:6px;animation:fadeIn .12s ease}.msel-option{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--label-2);transition:background .08s}.msel-option:hover{background:#007aff0f}.msel-option input[type=checkbox]{width:15px;height:15px;accent-color:var(--blue);cursor:pointer}.msel-empty{padding:12px;text-align:center;color:var(--label-4);font-size:13px}.msel-footer{border-top:1px solid var(--separator);padding:6px 10px;margin-top:4px}.msel-footer button{border:none;background:none;font-family:inherit;font-size:12px;color:var(--blue);cursor:pointer}.msel-footer button:hover{text-decoration:underline}.filter-select{padding:5px 28px 5px 12px;border-radius:20px;font-size:13px;font-family:inherit;font-weight:400;color:var(--label-2);background:#7878801f;border:none;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:all .12s}.filter-select:hover{background-color:#7878802e;color:var(--label)}.filter-select:focus{outline:none;box-shadow:0 0 0 2px var(--blue)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1px solid var(--separator);position:sticky;top:0;background:var(--surface-solid);z-index:2}.table td{padding:11px 14px;border-bottom:1px solid var(--separator-soft);font-size:13px;color:var(--label-2)}.table tr:hover td{background:#0066cc08}.table-wrap{overflow:auto;flex:1;min-height:0}.link-cell{display:flex;align-items:center;position:relative;overflow:hidden}.link-cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.btn-apercu{display:none;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;border:1px solid var(--separator);background:var(--surface-solid);color:var(--label-3);font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .12s;flex-shrink:0;margin-left:auto;box-shadow:-12px 0 8px var(--surface-solid)}.btn-apercu:hover{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:none}.table tr:hover .btn-apercu{display:inline-flex}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-prospect{background:var(--blue-light);color:var(--blue)}.badge-devis{background:var(--orange-bg);color:var(--orange)}.badge-confirme{background:var(--green-bg);color:var(--green)}.badge-sur_site{background:var(--cyan-bg);color:#0070a8}.badge-termine{background:var(--green-bg);color:var(--green)}.badge-annule{background:var(--red-bg);color:var(--red)}.top-bar{height:42px;background:var(--surface-solid);border-bottom:1px solid var(--separator);display:flex;align-items:center;padding:0;flex-shrink:0}.top-bar-tabs{flex:1;display:flex;align-items:flex-end;height:100%;padding:0 8px;gap:0;overflow-x:auto;overflow-y:hidden}.top-bar-tabs::-webkit-scrollbar{height:0}.top-bar-actions{display:flex;align-items:center;gap:4px;padding:0 12px;flex-shrink:0;height:100%}.top-btn{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--label-3);transition:all .12s;position:relative}.top-btn:hover{background:#0000000f;color:var(--label)}.tab-item{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:400;color:var(--label-3);cursor:pointer;white-space:nowrap;transition:all .15s;max-width:200px;height:100%;border-right:1px solid var(--separator-soft);position:relative}.tab-item:hover{background:#00000008;color:var(--label)}.tab-item.active{color:var(--blue);font-weight:500;background:none}.tab-item.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--blue)}.tab-label{overflow:hidden;text-overflow:ellipsis}.tab-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;border:none;background:none;color:var(--label-4);cursor:pointer;opacity:0;transition:all .12s;flex-shrink:0}.tab-item:hover .tab-close{opacity:1}.tab-close:hover{background:#0000001a;color:var(--label)}.top-notif-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid var(--surface-solid)}.top-separator{width:1px;height:20px;background:var(--separator);margin:0 4px}.top-user{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s}.top-user:hover{background:#0000000d}.top-user-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--indigo));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff}.top-user-name{font-size:13px;font-weight:500;color:var(--label-2)}.proj-bar{height:52px;background:var(--glass);border-bottom:1px solid var(--separator);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:center;padding:0 20px;gap:12px;flex-shrink:0}.proj-bar-ref{font-size:12px;font-weight:500;color:var(--label-4);font-variant-numeric:tabular-nums}.proj-bar-sep{color:var(--separator);font-size:18px}.proj-bar-name{font-size:15px;font-weight:600;color:var(--label);letter-spacing:-.02em}.proj-bar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:500}.status-confirme{background:var(--green-bg);color:var(--green)}.status-devis{background:var(--blue-light);color:var(--blue)}.status-sur_site{background:var(--cyan-bg);color:#0070a8}.status-annule{background:var(--red-bg);color:var(--red)}.status-prospect{background:#7878801a;color:var(--label-3)}.status-termine{background:#28a74514;color:#6b7280}.tabs-bar{height:40px;background:var(--glass-dark);border-bottom:1px solid var(--separator);display:flex;align-items:flex-end;padding:0 20px;gap:0;flex-shrink:0}.tab{padding:0 16px 10px;font-size:13px;font-weight:400;color:var(--label-3);cursor:pointer;position:relative;transition:color .13s;white-space:nowrap}.tab:hover{color:var(--label-2)}.tab.active{color:var(--blue);font-weight:500}.tab.active:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:2px;background:var(--blue);border-radius:2px 2px 0 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{padding:14px 18px 12px;border-bottom:1px solid var(--separator-soft);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:12px;font-weight:600;color:var(--label-3);text-transform:uppercase;letter-spacing:.06em}.card-action{font-size:12.5px;font-weight:500;color:var(--blue);cursor:pointer}.card-action:hover{text-decoration:underline}.card-body{padding:4px 0}.kv{display:flex;align-items:center;padding:9px 18px;gap:12px;transition:background .1s}.kv:hover{background:#00000006}.kv-key{font-size:12.5px;color:var(--label-3);flex-shrink:0;min-width:130px}.kv-val{font-size:13px;font-weight:500;color:var(--label);margin-left:auto;text-align:right}.kv-sep{margin:4px 18px;height:1px;background:var(--separator-soft)}.fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.fin-cell{padding:12px 18px;border-bottom:1px solid var(--separator-soft)}.fin-cell:nth-child(odd){border-right:1px solid var(--separator-soft)}.fin-cell:nth-last-child(-n+2){border-bottom:none}.fin-label{font-size:11.5px;color:var(--label-4);margin-bottom:3px}.fin-val{font-size:16px;font-weight:700;color:var(--label);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.fin-val.highlight{color:var(--blue)}.gen-scroll{flex:1;overflow-y:auto;padding:20px;display:flex;gap:20px;align-items:flex-start}.gen-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.gen-right{width:270px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.g-card{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.g-card-head{padding:11px 16px;border-bottom:1px solid var(--separator-soft);display:flex;align-items:center;gap:8px}.g-card-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.g-card-title{font-size:11px;font-weight:700;color:var(--label-3);text-transform:uppercase;letter-spacing:.06em;flex:1}.g-card-action{font-size:12px;font-weight:500;color:var(--blue);cursor:pointer;white-space:nowrap}.g-card-action:hover{text-decoration:underline}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px}.form-grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;padding:0 16px 14px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:11px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.05em}.form-input{border:1px solid var(--separator);border-radius:var(--r-sm);padding:7px 10px;font-size:13px;font-family:inherit;color:var(--label);background:var(--bg);outline:none;transition:border-color .12s}.form-input:focus{border-color:var(--blue);background:#fff}.form-input::placeholder{color:var(--label-4)}.form-select{border:1px solid var(--separator);border-radius:var(--r-sm);padding:7px 10px;font-size:13px;font-family:inherit;color:var(--label);background:var(--bg);outline:none;cursor:pointer}.form-select:focus{border-color:var(--blue)}.entity-block{display:flex;align-items:flex-start;gap:12px;padding:14px 16px}.entity-avatar{width:38px;height:38px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff}.entity-info{flex:1;min-width:0}.entity-name{font-size:14px;font-weight:700;color:var(--label);line-height:1.2}.entity-code{font-size:11.5px;color:var(--label-4);margin-bottom:6px}.entity-detail{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--label-3);margin-top:6px}.entity-detail span{display:flex;align-items:center;gap:5px}.lieu-fields{padding:8px 16px 14px;display:flex;flex-direction:column;gap:8px}.lieu-row2{display:grid;grid-template-columns:100px 1fr;gap:8px}.notes-area{width:100%;border:none;outline:none;resize:none;font-family:-apple-system,SF Pro Text,Helvetica Neue,sans-serif;font-size:13px;color:var(--label-2);line-height:1.6;background:transparent;padding:12px 16px;min-height:80px}.notes-area::placeholder{color:var(--label-4);font-style:italic}.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px}.cal-month{font-size:13px;font-weight:700;color:var(--label)}.cal-arrow{width:22px;height:22px;border-radius:5px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--label-3)}.cal-arrow:hover{background:#00000012}.cal-table{width:100%;border-collapse:collapse;padding:0 6px;table-layout:fixed}.cal-th{font-size:10px;text-align:center;color:var(--label-4);padding:2px 0 4px;font-weight:600}.cal-th-wk{width:22px;font-size:9px;color:var(--label-4)}.cal-td{text-align:center;padding:0;vertical-align:top;position:relative}.cal-td-wk{width:22px;font-size:9px;color:var(--label-4);vertical-align:middle}.cal-td-other .cal-num{color:var(--label-4)}.cal-num{font-size:11.5px;color:var(--label-2);padding:3px 0 1px;line-height:1}.cal-td-today .cal-num{background:var(--blue);color:#fff;font-weight:700;border-radius:50%;width:22px;height:22px;line-height:22px;margin:0 auto;padding:0}.cal-bars{display:flex;flex-direction:column;gap:1px;padding:1px 0 2px}.cal-bar-slot{height:3px;width:100%;border-radius:0}.cal-bar-active{opacity:.85}.cal-bar-start{border-radius:3px 0 0 3px;margin-left:2px;width:calc(100% - 2px)}.cal-bar-end{border-radius:0 3px 3px 0;margin-right:2px;width:calc(100% - 2px)}.cal-bar-single{border-radius:3px;margin:0 2px;width:calc(100% - 4px)}.cal-legend{padding:6px 14px 10px;display:flex;flex-direction:column;gap:4px}.cal-legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--label-2)}.cal-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-grid{padding:0 10px 10px;display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.cal-dh{font-size:10.5px;text-align:center;color:var(--label-4);padding:3px 0;font-weight:600}.cal-day{font-size:12px;text-align:center;padding:4px 2px;border-radius:5px;cursor:pointer;color:var(--label-2)}.cal-day:hover{background:#0000000f}.cal-day.other{color:var(--label-4)}.cal-day.today{background:var(--blue);color:#fff;font-weight:700;border-radius:50%}.cal-day.event{color:var(--blue);font-weight:700;border-bottom:2px solid var(--blue)}.avancee-row{display:flex;align-items:center;padding:9px 14px;gap:10px;cursor:pointer;transition:background .1s}.avancee-row:hover{background:#00000006}.avancee-row:not(:last-child){border-bottom:1px solid var(--separator-soft)}.avancee-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avancee-label{font-size:13px;font-weight:500;color:var(--label)}.avancee-sub{font-size:11.5px;margin-top:1px}.avancee-sub.warn{color:var(--red)}.avancee-sub.muted{color:var(--label-4)}.alert{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:var(--r-md);font-size:13px}.alert.warn{background:var(--orange-bg);color:#965700;border:1px solid rgba(255,149,0,.2)}.alert.info{background:var(--blue-light);color:#004a99;border:1px solid rgba(0,102,204,.15)}.alert.danger{background:var(--red-bg);color:#c0392b;border:1px solid rgba(255,59,48,.2)}.ai-callout{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#5856d612,#af52de12);border:1px solid rgba(88,86,214,.2);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow-xs)}.ai-ico{width:36px;height:36px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--indigo),var(--purple));display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #5856d659}.ai-body{flex:1;min-width:0}.ai-tag{font-size:11px;font-weight:600;color:var(--indigo);margin-bottom:2px;text-transform:uppercase;letter-spacing:.05em}.ai-msg{font-size:13px;color:var(--label-2);line-height:1.45}.prog-header{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--r-lg);padding:16px 20px;box-shadow:var(--shadow-sm)}.prog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.prog-title{font-size:12px;font-weight:600;color:var(--label-3);text-transform:uppercase;letter-spacing:.06em}.prog-pct{font-size:13px;font-weight:600;color:var(--label-3)}.indicators{display:flex;gap:8px;margin-bottom:6px}.ind{flex:1;height:6px;border-radius:3px;cursor:pointer;transition:height .15s}.ind:hover{height:8px}.ind.ok{background:var(--green)}.ind.warn{background:var(--orange)}.ind.ko{background:var(--red)}.ind.empty{background:var(--bg-secondary)}.ai-dismiss{background:none;border:none;color:var(--label-4);cursor:pointer;font-size:16px;padding:4px;border-radius:6px;line-height:1;flex-shrink:0}.ai-dismiss:hover{background:#00000012}.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.dash-card{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.dash-wide{grid-column:span 3}.dash-card-head{display:flex;align-items:center;gap:8px;padding:12px 16px 10px;flex-shrink:0;border-bottom:1px solid var(--separator-soft)}.dash-card-title{font-size:13px;font-weight:600;color:var(--label)}.dash-card-body{flex:1;overflow:hidden}.dash-row{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--separator-soft)}.dash-row:last-child{border-bottom:none}.dash-row-main{font-size:13px;font-weight:500;color:var(--label)}.dash-row-sub{font-size:11.5px;color:var(--label-4);margin-top:1px}.tab-loading{padding:40px 20px;text-align:center;font-size:13px;color:var(--label-3)}.tab-error{padding:20px;font-size:13px;color:var(--red);background:var(--red-bg);border-radius:var(--r-md)}.tab-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;text-align:center;font-size:14px;color:var(--label-3)}.tab-empty svg{color:var(--label-4);margin-bottom:4px}.planning-row{display:flex;align-items:flex-start;gap:12px;padding:12px 18px;border-bottom:1px solid var(--separator-soft);transition:background .1s}.planning-row:last-child{border-bottom:none}.planning-row:hover{background:#00000005}.planning-row-icon{width:28px;height:28px;border-radius:8px;background:var(--blue-light);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.mat-layout{display:flex;flex:1;min-height:0;overflow:hidden}.content>.mat-layout{margin:-20px -24px}.mat-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--separator);background:var(--surface-solid);display:flex;flex-direction:column;overflow:hidden}.mat-sidebar-search{display:flex;align-items:center;gap:7px;padding:10px 14px;border-bottom:1px solid var(--separator-soft);color:var(--label-4)}.mat-sidebar-search input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;color:var(--label);width:100%}.mat-sidebar-search input::placeholder{color:var(--label-4)}.mat-sidebar-title{padding:12px 14px 6px;font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.06em}.mat-sidebar-list{flex:1;overflow-y:auto;padding-bottom:12px}.mat-cat-item{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:13px;color:var(--label-2);cursor:pointer;transition:background .1s}.mat-cat-item:hover{background:#00000008}.mat-cat-item.active{background:var(--blue-light);color:var(--blue);font-weight:500}.mat-cat-chevron{color:var(--label-4);flex-shrink:0}.mat-cat-icon{font-size:14px}.mat-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.mat-toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--separator-soft);background:var(--surface-solid);flex-shrink:0}.mat-toolbar-btn{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--separator);cursor:pointer;color:var(--label-3);transition:all .12s}.mat-toolbar-btn:hover{background:#0000000a;color:var(--label)}.mat-toolbar-search{display:flex;align-items:center;gap:6px;background:#78788014;border-radius:8px;padding:6px 10px;min-width:200px;color:var(--label-4)}.mat-toolbar-search input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;color:var(--label);width:100%}.mat-toolbar-search input::placeholder{color:var(--label-4)}.mat-table{flex:1;overflow:auto}.mat-thead{display:flex;align-items:center;padding:0;border-bottom:1px solid var(--separator);background:var(--surface-solid);position:sticky;top:0;z-index:1}.mat-th{font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.04em;padding:8px 10px}.mat-col-drag{width:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.mat-col-code{width:120px;flex-shrink:0}.mat-col-nom{flex:1;min-width:180px}.mat-col-statut{width:130px;flex-shrink:0}.mat-col-num{width:80px;flex-shrink:0;text-align:right}.mat-col-montant{width:120px;flex-shrink:0;text-align:right}.mat-groupe-header{display:flex;align-items:center;background:#ff950014;border-bottom:1px solid rgba(255,149,0,.15);padding:8px 0;min-height:40px}.mat-groupe-info{flex:1;display:flex;align-items:baseline;gap:10px;padding:0 10px}.mat-groupe-nom{font-size:14px;font-weight:600;color:var(--label)}.mat-groupe-dates{font-size:12px;color:var(--label-4)}.mat-groupe-total{width:120px;flex-shrink:0;text-align:right;padding-right:10px;font-size:14px;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}.mat-row{display:flex;align-items:center;border-bottom:1px solid var(--separator-soft);transition:background .1s;min-height:40px}.mat-row:hover{background:#00000005}.mat-row-add{cursor:pointer}.mat-row-add:hover{background:#0066cc08}.mat-td{font-size:13px;color:var(--label-2);padding:8px 10px;font-variant-numeric:tabular-nums}.mat-col-montant .mat-td,.mat-td.mat-col-montant,div.mat-td.mat-col-montant{font-weight:600;color:var(--label)}.drag-handle{color:var(--label-4);opacity:0;cursor:grab;transition:opacity .15s}.mat-row:hover .drag-handle,.mat-groupe-header:hover .drag-handle{opacity:.5}.drag-handle:hover{opacity:1!important}.mat-stock-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11.5px;font-weight:500;white-space:nowrap}.mat-stock-badge.stock-ok{background:var(--green-bg);color:var(--green)}.mat-stock-badge.stock-warn{background:var(--orange-bg);color:var(--orange)}.eq-sidebar-header{display:flex;justify-content:space-between;padding:10px 14px 6px;font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--separator-soft)}.eq-cat-item{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13.5px;font-weight:500;color:var(--label);cursor:pointer;transition:background .1s}.eq-cat-item:hover{background:#00000008}.eq-cat-name{flex:1}.eq-cat-count{font-size:12px;color:var(--label-4);font-weight:400;min-width:20px;text-align:right}.eq-cat-child{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 36px;font-size:13px;color:var(--label-2);cursor:pointer;transition:background .1s}.eq-cat-child:hover{background:#00000008}.eq-cat-child-check{font-size:14px;color:var(--label-4);width:18px}.eq-cat-child-name{flex:1}.eq-cat-child-tarif{font-size:12px;color:var(--green);font-weight:500;font-variant-numeric:tabular-nums}.eq-type-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center}.timeline-row{display:flex;gap:12px;padding:0 18px}.timeline-row:first-child{padding-top:14px}.timeline-row:last-child{padding-bottom:14px}.timeline-line-wrap{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.timeline-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-line{width:2px;flex:1;background:var(--separator-soft);margin:4px 0}.badge-invite{background:var(--orange-bg);color:var(--orange)}.badge-accepte{background:var(--green-bg);color:var(--green)}.badge-refuse{background:var(--red-bg);color:var(--red)}.mat-editable{cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .12s;font-variant-numeric:tabular-nums}.mat-editable:hover{background:#0066cc14}.mat-inline-input{width:64px;padding:2px 4px;border:1.5px solid var(--blue);border-radius:4px;font-size:13px;font-family:inherit;font-variant-numeric:tabular-nums;outline:none;background:#fff;color:var(--label);box-shadow:0 0 0 3px #0066cc1f}.mat-delete-btn{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--label-4);opacity:0;transition:all .12s}.mat-row:hover .mat-delete-btn{opacity:1}.mat-delete-btn:hover{background:var(--red-bg);color:var(--red)}.st-action-btn{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--label-3);opacity:0;transition:all .12s}.st-row:hover .st-action-btn{opacity:1}.st-action-btn:hover{background:#007aff1a;color:var(--cyan)}.st-action-btn-danger:hover{background:var(--red-bg);color:var(--red)}.mat-row-add{cursor:pointer;border-bottom:1px solid var(--separator-soft)}.mat-row-add:hover{background:#0066cc0a}.mat-cat-child{display:flex;align-items:center;gap:6px;padding:5px 14px 5px 32px;font-size:12.5px;color:var(--label-2);cursor:pointer;transition:background .1s}.mat-cat-child:hover{background:#00000008}.mat-cat-child-code{font-size:11px;color:var(--label-4);font-weight:500;min-width:50px;font-variant-numeric:tabular-nums}.mat-cat-child-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-cat-child-stock{font-size:11px;color:var(--label-4);font-weight:500;min-width:20px;text-align:right}.inline-search-container{position:relative;width:100%}.inline-search-row{display:flex;align-items:center;gap:6px;padding:4px 8px}.inline-search-input{flex:1;border:none;outline:none;background:none;font-size:13px;font-family:inherit;color:var(--label-3);border-bottom:1px dashed var(--separator);padding:3px 0}.inline-search-input::placeholder{color:var(--label-4);font-style:italic}.inline-search-input:focus{border-bottom-color:var(--blue);color:var(--label)}.inline-suggestions{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--surface-solid);border:1px solid var(--separator);border-radius:8px;box-shadow:var(--shadow-md);max-height:260px;overflow-y:auto}.inline-suggestion{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;cursor:pointer;transition:background .08s}.inline-suggestion:hover,.inline-suggestion.selected{background:var(--blue-light)}.sugg-code{font-size:11.5px;color:var(--label-4);font-weight:500;min-width:60px;font-variant-numeric:tabular-nums}.sugg-nom{flex:1;color:var(--label)}.sugg-stock{font-size:11px;color:var(--label-4);min-width:24px;text-align:right}.mat-groupe-count{font-size:11.5px;color:var(--label-4);font-weight:400;margin-left:8px}.mat-groupe-badge{font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:4px;margin-left:6px;background:var(--blue-light);color:var(--blue)}.mat-groupe-actions{display:flex;align-items:center;gap:2px;width:auto;margin-left:8px}.mat-row-texte{background:#00000004;border-bottom:1px solid var(--separator-soft)}.mat-row-sous-total{background:#28a74508;border-bottom:1px solid var(--separator-soft)}.add-line-menu-container{position:relative}.add-line-menu-btn{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--separator);background:none;cursor:pointer;color:var(--label-4);transition:all .12s}.add-line-menu-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.add-line-dropdown{position:absolute;top:100%;right:0;z-index:100;background:var(--surface-solid);border:1px solid var(--separator);border-radius:8px;box-shadow:var(--shadow-md);min-width:160px;padding:4px 0;margin-top:4px}.add-line-option{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;cursor:pointer;color:var(--label);transition:background .08s}.add-line-option:hover{background:var(--blue-light)}.context-menu{position:fixed;z-index:1000;background:var(--surface-solid);border:1px solid var(--separator);border-radius:8px;box-shadow:var(--shadow-lg);min-width:160px;padding:4px 0}.context-menu-item{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;cursor:pointer;color:var(--label);transition:background .08s}.context-menu-item:hover{background:var(--blue-light)}.context-menu-item.danger{color:var(--red)}.context-menu-item.danger:hover{background:var(--red-bg)}.context-menu-separator{height:1px;background:var(--separator-soft);margin:3px 8px}.col-editor-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;animation:fadeIn .12s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.col-editor{width:700px;max-width:90vw;max-height:80vh;background:var(--surface-solid);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .15s ease}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.col-editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;border-bottom:1px solid var(--separator);flex-shrink:0}.col-editor-title{font-size:16px;font-weight:600;color:var(--label)}.col-editor-close{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--label-3);transition:all .12s}.col-editor-close:hover{background:#00000012;color:var(--label)}.col-editor-body{flex:1;display:flex;min-height:0;overflow:hidden}.col-editor-available{flex:1;display:flex;flex-direction:column;border-right:1px solid var(--separator-soft);min-width:0}.col-editor-search{display:flex;align-items:center;gap:7px;padding:10px 16px;border-bottom:1px solid var(--separator-soft)}.col-editor-search input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;color:var(--label);width:100%}.col-editor-search input::placeholder{color:var(--label-4)}.col-editor-list{flex:1;overflow-y:auto;padding:8px 0}.col-editor-list::-webkit-scrollbar{width:6px}.col-editor-list::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}.col-editor-category{margin-bottom:4px}.col-editor-cat-label{padding:10px 16px 4px;font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.06em}.col-editor-item{display:flex;align-items:center;gap:10px;padding:7px 16px;cursor:pointer;transition:background .08s;font-size:13px;color:var(--label)}.col-editor-item:hover{background:#00000008}.col-editor-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue);cursor:pointer;flex-shrink:0}.col-editor-item-label{flex:1}.col-editor-item-format{font-size:10.5px;color:var(--label-4);font-weight:500;padding:1px 5px;border-radius:4px;background:#78788014}.col-editor-selected{width:260px;flex-shrink:0;display:flex;flex-direction:column}.col-editor-selected-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--separator-soft);font-size:12px;font-weight:600;color:var(--label-3);text-transform:uppercase;letter-spacing:.04em}.col-editor-reset{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;border:none;background:none;cursor:pointer;font-size:11.5px;font-weight:500;color:var(--blue);font-family:inherit;transition:background .12s}.col-editor-reset:hover{background:var(--blue-light)}.col-editor-selected-list{flex:1;overflow-y:auto;padding:4px 0}.col-editor-selected-list::-webkit-scrollbar{width:4px}.col-editor-selected-list::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.col-editor-selected-item{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;color:var(--label);cursor:grab;transition:background .08s}.col-editor-selected-item:hover{background:#00000008}.col-editor-grip{color:var(--label-4);opacity:.4;flex-shrink:0;cursor:grab}.col-editor-selected-item:hover .col-editor-grip{opacity:.8}.col-editor-selected-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-editor-remove{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--label-4);opacity:0;transition:all .12s;flex-shrink:0}.col-editor-selected-item:hover .col-editor-remove{opacity:1}.col-editor-remove:hover{background:var(--red-bg);color:var(--red)}.col-editor-empty{padding:20px 14px;text-align:center;font-size:12.5px;color:var(--label-4)}.col-editor-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--separator);flex-shrink:0}.content-with-panel{position:relative}.content .table-area{display:contents}.detail-panel{position:absolute;top:0;right:0;bottom:0;width:400px;background:var(--surface-solid);border-left:1px solid var(--separator);box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;overflow-y:auto;z-index:20;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.detail-panel::-webkit-scrollbar{width:6px}.detail-panel::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.detail-panel-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 12px;gap:12px;border-bottom:1px solid var(--separator-soft)}.detail-panel-title-area{flex:1;min-width:0}.detail-panel-subtitle{font-size:11.5px;font-weight:600;color:var(--label-4);letter-spacing:.3px;text-transform:uppercase;margin-bottom:4px}.detail-panel-title{font-size:17px;font-weight:700;color:var(--label);line-height:1.3;margin-bottom:8px}.detail-panel-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.detail-panel-close{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--label-4);transition:all .12s}.detail-panel-close:hover{background:#0000000f;color:var(--label)}.detail-panel-quick{padding:12px 20px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--separator-soft)}.detail-panel-quick-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--blue);text-decoration:none;transition:opacity .12s}.detail-panel-quick-item:hover{opacity:.7}div.detail-panel-quick-item{color:var(--label-3)}.detail-panel-body{padding:8px 0 20px}.detail-panel-section{padding:8px 0}.detail-panel-section-label{font-size:10.5px;font-weight:700;color:var(--label-4);text-transform:uppercase;letter-spacing:.5px;padding:6px 20px;margin-bottom:2px}.detail-panel-fields{display:flex;flex-direction:column}.detail-panel-field{display:flex;align-items:baseline;gap:12px;padding:5px 20px;min-height:28px}.detail-panel-field:hover{background:#00000005}.detail-panel-field-label{width:110px;flex-shrink:0;font-size:12px;color:var(--label-4);font-weight:500}.detail-panel-field-value{flex:1;font-size:13px;color:var(--label);word-break:break-word}.btn-sm{font-size:12px!important;padding:4px 10px!important;height:28px!important}.table tbody tr.row-selected{background:var(--blue-light)!important}.table tbody tr.row-selected:hover{background:var(--blue-mid)!important}.table tbody tr.row-detail-active{background:#0066cc0f!important;box-shadow:inset 3px 0 0 var(--blue)}.batch-bar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--blue);border-radius:var(--r-sm);color:#fff;animation:fadeIn .15s ease}.batch-count{font-size:13px;font-weight:600;white-space:nowrap}.batch-actions{display:flex;align-items:center;gap:6px;flex:1;justify-content:flex-end}.batch-bar .btn-secondary{background:#ffffff26!important;color:#fff!important;border:1px solid rgba(255,255,255,.2)!important}.batch-bar .btn-secondary:hover{background:#ffffff40!important}.table input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--blue)}.neo-modal-overlay{position:fixed;inset:0;z-index:9999;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:neo-fade-in .15s ease-out}@keyframes neo-fade-in{0%{opacity:0}to{opacity:1}}@keyframes neo-modal-in{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.neo-modal{background:var(--surface-solid, #fff);border:1px solid var(--separator, rgba(60,60,67,.18));border-radius:14px;box-shadow:0 20px 60px #0003,0 0 0 .5px #0000000d;min-width:340px;max-width:440px;width:90%;padding:24px;animation:neo-modal-in .2s cubic-bezier(.32,.72,0,1)}.neo-modal-title{font-size:16px;font-weight:700;color:var(--label, #1D1D1F);margin-bottom:6px;letter-spacing:-.02em}.neo-modal-message{font-size:13.5px;color:var(--label-2, #3A3A3C);line-height:1.5;margin-bottom:18px}.neo-modal-input{width:100%;padding:9px 12px;border:1px solid var(--separator, rgba(60,60,67,.18));border-radius:8px;font-size:14px;font-family:inherit;color:var(--label, #1D1D1F);background:var(--bg, #F5F5F7);outline:none;margin-bottom:18px;transition:border-color .12s}.neo-modal-input:focus{border-color:var(--blue, #0066CC);background:#fff;box-shadow:0 0 0 3px #0066cc1f}.neo-modal-input::placeholder{color:var(--label-4, #8E8E93)}.neo-modal-actions{display:flex;gap:8px;justify-content:flex-end}.neo-modal-btn{padding:8px 18px;border-radius:8px;font-size:13.5px;font-weight:500;font-family:inherit;border:none;cursor:pointer;transition:all .12s}.neo-modal-btn-cancel{background:#78788024;color:var(--label, #1D1D1F)}.neo-modal-btn-cancel:hover{background:#78788038}.neo-modal-btn-confirm{background:var(--blue, #0066CC);color:#fff}.neo-modal-btn-confirm:hover{background:#0055ab}.neo-modal-btn-confirm.danger{background:var(--red, #FF3B30)}.neo-modal-btn-confirm.danger:hover{background:#e0332b}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f5f7,#e8e8ed)}.login-card{width:380px;background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014,0 1px 3px #0000000a;padding:40px 36px;text-align:center}.login-logo{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:24px}.login-logo-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#007aff,#5856d6);color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center}.login-logo-text{font-size:18px;font-weight:700;color:var(--label, #1d1d1f)}.login-title{font-size:22px;font-weight:700;color:var(--label);margin:0 0 4px}.login-subtitle{font-size:13px;color:var(--label-4, #98989D);margin:0 0 20px}.login-error{display:flex;align-items:center;gap:6px;justify-content:center;padding:10px 14px;margin-bottom:16px;font-size:13px;background:#ff3b3014;color:var(--red, #FF3B30);border-radius:8px;border:1px solid rgba(255,59,48,.15)}.login-form{display:flex;flex-direction:column;gap:12px}.login-field{position:relative;display:flex;align-items:center}.login-field-icon{position:absolute;left:12px;color:var(--label-4);pointer-events:none}.login-field input{width:100%;padding:12px 12px 12px 38px;font-size:14px;border:1px solid var(--separator, rgba(60,60,67,.12));border-radius:10px;background:var(--bg-tertiary, #f5f5f7);color:var(--label);transition:all .15s}.login-field input:focus{outline:none;border-color:var(--blue, #007AFF);box-shadow:0 0 0 3px #007aff1f;background:#fff}.login-btn{width:100%;padding:12px;font-size:15px;font-weight:600;color:#fff;background:var(--blue, #007AFF);border:none;border-radius:10px;cursor:pointer;transition:all .15s;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:6px}.login-btn:hover{filter:brightness(1.05)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:24px;font-size:11px;color:var(--label-4)}.top-user-menu{position:absolute;top:100%;right:0;margin-top:6px;background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:10px;box-shadow:0 6px 20px #00000024;min-width:220px;z-index:9999;overflow:hidden}.top-user-menu-header{padding:12px 14px}.top-user-menu-sep{height:1px;background:var(--separator)}.top-user-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;color:var(--label);background:none;border:none;cursor:pointer;text-align:left}.top-user-menu-item:hover{background:var(--bg-hover, rgba(0,0,0,.04))}.top-user-menu-item.danger{color:var(--red, #FF3B30)}.top-user-menu-item.danger:hover{background:#ff3b3014}.tfa-card{border:1px solid var(--separator, #e5e7eb);border-radius:10px;padding:18px 20px;display:flex;flex-direction:column;gap:14px}.tfa-card.tfa-active{border-color:#22c55e4d;background:#22c55e08}.tfa-header{display:flex;align-items:flex-start;gap:12px}.tfa-title{font-size:14px;font-weight:600;color:var(--label, #1d1d1f)}.tfa-desc{font-size:12px;color:var(--label-4, #888);margin-top:2px}.tfa-qr{display:flex;justify-content:center;padding:8px 0}.tfa-secret{font-size:12px;color:var(--label-3);text-align:center}.tfa-secret code{display:block;margin-top:4px;font-size:13px;font-weight:600;color:var(--label);letter-spacing:.5px;word-break:break-all;background:var(--bg-tertiary, #f5f5f7);padding:6px 10px;border-radius:6px}.tfa-verify{display:flex;flex-direction:column;gap:8px}.tfa-code-input{display:flex;gap:8px;align-items:center;justify-content:center}.tfa-code-input input{border:1px solid var(--separator);border-radius:8px;font-family:monospace;color:var(--label)}.tfa-code-input input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #007aff1f}.tfa-error{font-size:12px;color:var(--red, #FF3B30);text-align:center}.tfa-btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:8px 16px;font-size:13px;font-weight:500;border:1px solid var(--separator);border-radius:8px;background:var(--surface-solid, #fff);color:var(--label-3);cursor:pointer}.tfa-btn:hover{background:var(--bg-hover, rgba(0,0,0,.04))}.tfa-btn.primary{background:var(--blue, #007AFF);color:#fff;border-color:var(--blue)}.tfa-btn.primary:hover{filter:brightness(1.05)}.tfa-btn.primary:disabled{opacity:.5}.tfa-btn.danger{color:var(--red, #FF3B30);border-color:#ff3b304d}.tfa-btn.danger:hover{background:#ff3b3014}.planning-toast{position:absolute;top:12px;right:16px;background:var(--success, #28A745);color:#fff;font-size:12px;font-weight:500;padding:5px 14px;border-radius:6px;z-index:100;animation:toastIn .25s ease,toastOut .3s ease 1.2s forwards;pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}.planning-container{position:relative;display:flex;flex-direction:column;height:100%;background:var(--bg);overflow:hidden}.planning-container.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.planning-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;border-bottom:1px solid var(--separator);background:var(--surface-solid);flex-shrink:0}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px}.btn-toolbar{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--blue);color:var(--blue);border-radius:var(--r-sm);font-size:12px;cursor:pointer;transition:all .15s}.btn-toolbar:hover{background:var(--blue);color:#fff}.btn-zoom{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--separator);color:var(--label-3);border-radius:var(--r-sm);cursor:pointer;transition:all .15s}.btn-zoom:hover:not(:disabled){background:var(--bg-hover);color:var(--label);border-color:var(--blue)}.btn-zoom:disabled{opacity:.3;cursor:not-allowed}.btn-fit{margin-left:4px}.zoom-label{font-size:11px;color:var(--label-3);min-width:50px;text-align:center;font-variant-numeric:tabular-nums}.planning-table-section{overflow-y:auto;overflow-x:auto;background:var(--surface-solid);border-bottom:none;flex-shrink:0}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;padding:40px}.btn-init{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:var(--blue);color:#fff;border:none;border-radius:var(--r-md);font-size:14px;cursor:pointer;transition:opacity .15s}.btn-init:hover{opacity:.9}.planning-table{width:100%;border-collapse:collapse;font-size:12px}.planning-table thead{position:sticky;top:0;z-index:2}.planning-table th{padding:6px 10px;text-align:left;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--label-3);background:var(--glass-dark);border-bottom:1px solid var(--separator);white-space:nowrap;overflow:hidden}.planning-table th.col-header{position:relative;cursor:grab;-webkit-user-select:none;user-select:none}.planning-table th.col-header:active{cursor:grabbing}.col-header-text{pointer-events:none}.planning-table th.col-dragging{opacity:.4}.planning-table th.col-drag-over{background:var(--blue);color:#fff}.col-resizer{position:absolute;top:0;right:0;width:5px;height:100%;cursor:col-resize;z-index:3;background:transparent;transition:background .1s}.col-resizer:hover,.planning-container.col-resizing .col-resizer{background:var(--blue)}.planning-table td{padding:4px 10px;color:var(--label);border-bottom:1px solid var(--separator);height:36px;overflow:hidden}.planning-table .row-parent{background:var(--glass-dark);cursor:pointer;-webkit-user-select:none;user-select:none}.planning-table .row-parent:hover{background:var(--bg-hover)}.planning-table .row-parent td{padding:10px 16px}.planning-table .btn-expand{background:transparent;border:none;color:var(--label-3);cursor:pointer;padding:2px;display:flex;align-items:center}.planning-table .project-name{font-size:13px}.planning-table .row-periode:hover{background:var(--bg-hover)}.planning-table .inline-input{background:transparent;border:1px solid transparent;color:var(--label);padding:4px 6px;border-radius:var(--r-sm);font-size:12px;width:100%;transition:all .15s;box-sizing:border-box}.planning-table .inline-input:hover{border-color:var(--separator);background:var(--surface-solid)}.planning-table .inline-input:focus{outline:none;border-color:var(--blue);background:var(--surface-solid)}.planning-table .inline-time{width:100%}.planning-table .inline-type{width:100%;font-size:12px;padding:4px 6px;cursor:pointer}.planning-table input[type=date].inline-input,.planning-table input[type=time].inline-input{cursor:pointer}.planning-table input[type=date].inline-input::-webkit-calendar-picker-indicator,.planning-table input[type=time].inline-input::-webkit-calendar-picker-indicator{filter:invert(.5);opacity:.5;cursor:pointer}.type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.type-planif{background:#3b82f626;color:#3b82f6}.type-util{background:#7c3aed26;color:#7c3aed}.type-custom{background:#f59e0b26;color:#f59e0b}.planning-table .actions-cell{text-align:center}.planning-table .btn-delete{padding:4px 6px;background:transparent;border:none;color:var(--label-4);cursor:pointer;border-radius:var(--r-sm);opacity:0;transition:all .15s}.planning-table .row-periode:hover .btn-delete{opacity:1}.planning-table .btn-delete:hover{background:var(--red-bg);color:var(--red)}.planning-table .grip-cell{cursor:grab;text-align:center}.planning-table .grip-cell:active{cursor:grabbing}.planning-table .grip{color:var(--label-4);opacity:0;transition:opacity .15s}.planning-table .row-periode:hover .grip{opacity:1}.planning-table .row-periode.dragging{opacity:.4}.planning-table .row-periode.drag-over td{position:relative}.planning-table .row-periode.drag-over td:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue)}.planning-separator{height:10px;background:var(--glass-dark);border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);cursor:row-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.planning-separator:hover,.planning-separator.active{background:var(--bg-hover)}.separator-grip{display:flex;gap:4px}.separator-grip span{display:block;width:20px;height:2px;border-radius:1px;background:var(--label-4);opacity:.5}.planning-separator:hover .separator-grip span,.planning-separator.active .separator-grip span{background:var(--blue);opacity:1}.planning-gantt-section{flex:1;overflow:hidden;background:var(--surface-solid);min-height:0}.gantt-wrapper{display:flex;height:100%}.gantt-labels{width:200px;min-width:200px;border-right:1px solid var(--separator);flex-shrink:0}.gantt-label-header{padding:8px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--label-3);background:var(--glass-dark);border-bottom:1px solid var(--separator);display:flex;align-items:center}.gantt-label-body{padding:6px 12px}.gantt-project-info{display:flex;flex-direction:column;gap:2px}.gantt-project-title{font-weight:600;font-size:13px;color:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-project-sub{font-size:11px;color:var(--label-3)}.gantt-scroll{flex:1;overflow-x:auto;overflow-y:hidden;min-width:0}.gantt-header{display:flex;position:sticky;top:0;z-index:2;background:var(--glass-dark);border-bottom:1px solid var(--separator)}.gantt-day-col{flex-shrink:0;border-right:1px solid var(--separator)}.gantt-day-col.weekend{background:var(--bg-secondary)}.gantt-day-col.weekend .gantt-day-label{color:var(--label-4)}.gantt-day-label{padding:6px 4px;text-align:center;font-size:11px;font-weight:600;color:var(--label);border-bottom:1px solid var(--separator);white-space:nowrap}.gantt-subs{display:flex}.gantt-sub{text-align:center;font-size:9px;color:var(--label-4);padding:2px 0;border-right:1px solid var(--separator);overflow:hidden;white-space:nowrap}.gantt-sub:last-child{border-right:none}.gantt-body{position:relative;background:var(--surface-solid)}.gantt-body.dragging{cursor:grabbing}.gantt-day-grid{position:absolute;top:0;bottom:0;border-right:1px solid var(--separator);pointer-events:none}.gantt-day-grid.weekend{background:var(--bg-secondary)}.gantt-bar{position:absolute;height:28px;border-radius:var(--r-sm);display:flex;align-items:center;overflow:hidden;transition:box-shadow .15s;z-index:1}.gantt-bar:hover{box-shadow:var(--shadow-md);z-index:2}.gantt-bar-resize{width:8px;height:100%;cursor:col-resize;flex-shrink:0;z-index:3}.gantt-bar-resize:hover{background:#fff3}.gantt-bar-resize-left{border-radius:var(--r-sm) 0 0 var(--r-sm)}.gantt-bar-resize-right{border-radius:0 var(--r-sm) var(--r-sm) 0}.gantt-bar-content{flex:1;display:flex;align-items:center;gap:8px;padding:0 4px;cursor:grab;overflow:hidden;min-width:0}.gantt-bar-content:active{cursor:grabbing}.gantt-bar-label{font-size:11px;font-weight:600;color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gantt-bar-dates{font-size:9px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-loading{padding:40px;text-align:center;color:var(--label-3)}.ctx-menu{position:fixed;z-index:9999;min-width:200px;background:var(--bg-secondary, #fff);border:1px solid var(--border-color, rgba(0,0,0,.12));border-radius:8px;padding:4px 0;box-shadow:0 4px 12px #0000001f,0 1px 3px #00000014;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:ctxIn .12s ease}@keyframes ctxIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ctx-menu-header{padding:6px 12px 4px;font-size:11px;font-weight:600;color:var(--label-3, #888);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-color, rgba(0,0,0,.08));margin-bottom:2px}.ctx-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;border:none;background:none;font-size:13px;color:var(--label-1, #1d1d1f);cursor:pointer;text-align:left}.ctx-item:hover{background:var(--primary, #0066CC);color:#fff}.ctx-item:hover svg{color:#fff}.ctx-item svg{flex-shrink:0;color:var(--label-3, #888)}.ctx-danger{color:var(--error, #FF3B30)}.ctx-danger svg{color:var(--error, #FF3B30)}.ctx-danger:hover{background:var(--error, #FF3B30);color:#fff}.ctx-danger:hover svg{color:#fff}.ctx-sep{height:1px;margin:3px 8px;background:var(--border-color, rgba(0,0,0,.08))}.modal.modal-edit-groupe{width:550px;max-width:550px;background:var(--bg-secondary);border:none;border-radius:4px}.modal-header-rentman{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-color)}.modal-header-rentman h2{font-size:13px;font-weight:500;color:var(--text-primary);margin:0}.modal-header-rentman .close-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer}.modal-body-rentman{padding:16px}.grp-row{display:flex;gap:12px;margin-bottom:16px}.grp-field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.grp-field label{font-size:11px;color:var(--text-secondary)}.grp-field input,.grp-field select,.grp-field textarea{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;padding:8px;font-size:13px;color:var(--text-primary);font-family:inherit}.grp-field textarea{resize:vertical;min-height:60px}.grp-periode-row{margin-bottom:12px}.grp-periode-row>label{display:block;font-size:12px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.grp-periode-dates{display:flex;gap:10px}.grp-date-box{flex:1;display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;padding:8px 10px;cursor:pointer}.grp-date-box:hover{border-color:var(--info)}.grp-date-label{font-size:10px;color:var(--text-tertiary);min-width:70px}.grp-date-value{font-size:13px;color:var(--text-primary);flex:1}.grp-edit-icon{color:var(--info)}.modal-footer-rentman{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-color)}.btn-rentman{padding:8px 16px;font-size:13px;border-radius:4px;cursor:pointer}.btn-rentman.btn-cancel{background:var(--bg-hover);border:none;color:var(--text-primary)}.btn-rentman.btn-save{background:var(--info);border:none;color:#fff}.modal.modal-dates{width:800px;max-width:800px;background:var(--bg-secondary);border:none;border-radius:4px}.modal-body-dates{padding:0}.dates-section{border-bottom:1px solid var(--border-color)}.dates-section-header{display:flex;align-items:center;padding:12px 16px;background:var(--bg-hover);cursor:pointer;font-size:12px;font-weight:600;color:var(--text-primary)}.dates-section-header .dates-summary{margin-left:auto;font-weight:400;color:var(--text-secondary);margin-right:8px}.dates-section-body{padding:16px}.dates-section-body p{font-size:12px;color:var(--text-secondary);margin:0 0 16px}.dates-columns{display:flex;gap:32px}.dates-col{flex:1}.dates-col h5{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.dates-radio{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;cursor:pointer}.dates-radio input[type=radio]{margin-top:4px;accent-color:var(--info)}.dates-radio>div{flex:1}.dates-radio span{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:6px}.dates-radio select{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;padding:8px;font-size:12px;color:var(--text-primary)}.dates-radio select:disabled{opacity:.4}.dates-manual{display:flex;gap:8px}.dates-manual input{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;padding:8px;font-size:12px;color:var(--text-secondary)}.dates-manual input:not(:disabled){color:var(--text-primary)}.dates-manual input:disabled{opacity:.4}.dates-manual input[type=date]{flex:1}.dates-manual input[type=time]{width:80px}.projet-materiel{display:flex;flex:1;min-height:0;gap:0}.projet-materiel.sidebar-collapsed .panel-right{border-radius:4px;border-left:1px solid var(--border-color)}.panel-left{max-width:600px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px 0 0 4px;display:flex;flex-direction:column;overflow:hidden}.btn-toggle-sidebar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all .15s}.btn-toggle-sidebar:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-tertiary)}.table-search-box{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;flex:1;max-width:280px;transition:border-color .15s}.table-search-box:focus-within{border-color:var(--primary);background:var(--bg-subtle-hover)}.table-search-box svg{color:var(--text-tertiary);flex-shrink:0}.table-search-box input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:12px;outline:none}.table-search-box input::placeholder{color:var(--text-tertiary)}.search-box{display:flex;align-items:center;gap:8px;padding:8px 10px;margin:8px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;transition:border-color .15s}.search-box:focus-within{border-color:var(--primary);background:var(--bg-subtle-hover)}.search-box input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:13px}.search-box input:focus{outline:none}.search-box svg{color:var(--text-tertiary);flex-shrink:0}.clear-search{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;display:flex;border-radius:3px}.clear-search:hover{color:var(--text-primary);background:var(--bg-subtle-active)}.categories-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.list-header{display:flex;justify-content:space-between;padding:6px 12px;font-size:10px;font-weight:600;letter-spacing:.5px;color:var(--text-tertiary);text-transform:uppercase;background:var(--bg-dark);border-bottom:1px solid var(--border-color)}.inline-input::-webkit-outer-spin-button,.inline-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inline-input[type=number]{-moz-appearance:textfield}.category-row{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;cursor:pointer;border-bottom:1px solid var(--bg-subtle);transition:all .12s}.category-row:hover{background:var(--bg-subtle)}.category-row.selected-cat{background:var(--primary-bg-hover);border-left:2px solid var(--primary)}.category-row.root-row{padding:8px 10px;font-weight:600;background:var(--bg-subtle);border-bottom:1px solid var(--border-color)}.category-name{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--text-primary);min-width:0;flex:1}.cat-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.cat-label:hover{color:var(--primary-light)}.mat-tree-row{display:flex;align-items:center;gap:6px;padding:4px 10px;cursor:pointer;border-bottom:1px solid var(--bg-subtle);transition:background .12s}.mat-tree-row:hover{background:var(--primary-bg)}.mat-tree-info{display:flex;flex-direction:column;gap:0;min-width:0;flex:1}.mat-tree-icon{color:var(--text-tertiary);flex-shrink:0}.mat-tree-name{font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-tree-code{font-family:monospace;font-size:9px;color:var(--text-tertiary);flex-shrink:0}.mat-tree-stocks{display:flex;gap:3px;flex-shrink:0;margin-left:auto}.stock-badge{display:inline-block;min-width:22px;padding:1px 5px;border-radius:8px;font-size:10px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums;cursor:default}.stock-badge.in-stock{background:#22c55e26;color:#4ade80}.stock-badge.no-stock{background:#ef44441f;color:#f87171}.stock-columns-header{display:flex;align-items:center;gap:4px;flex-shrink:0}.stock-col-pos{font-size:9px;color:var(--text-tertiary);flex-shrink:0;opacity:.7}.stock-columns-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-tertiary);cursor:pointer;transition:all .15s;flex-shrink:0}.stock-columns-btn:hover{background:var(--bg-subtle-active);color:var(--text-primary);border-color:var(--border-color)}.stock-columns-menu-wrapper{position:relative}.stock-columns-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 8px 24px var(--shadow-color);z-index:1000;min-width:160px;overflow:hidden}.stock-columns-menu-title{padding:8px 10px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);background:var(--bg-dark)}.stock-columns-menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;color:var(--text-primary);cursor:pointer;transition:background .12s}.stock-columns-menu-item:hover{background:var(--bg-hover)}.stock-columns-menu-item input[type=checkbox]{width:13px;height:13px;accent-color:var(--primary)}.stock-columns-menu-item span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-icon{color:#d4973a;flex-shrink:0;opacity:.7}.category-count{font-size:10px;color:var(--text-tertiary);flex-shrink:0;min-width:25px;text-align:right;font-variant-numeric:tabular-nums}.materiels-list{background:var(--bg-dark)}.materiel-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px 8px 24px;cursor:pointer;border-bottom:1px solid var(--border-color);font-size:13px}.materiel-row:hover{background:var(--bg-hover)}.materiel-row.selected{background:var(--primary-bg-hover);border-left:3px solid var(--primary)}.materiel-info{display:flex;align-items:center;gap:8px}.mat-indent{color:var(--text-tertiary);font-size:11px}.mat-name{color:var(--text-primary)}.mat-qty{color:var(--text-secondary)}.search-results{flex:1;overflow-y:auto}.search-results-header{padding:6px 12px;font-size:11px;color:var(--text-secondary);background:var(--bg-dark);border-bottom:1px solid var(--border-color)}.search-result-row{display:flex;align-items:center;gap:8px;padding:5px 10px;border-bottom:1px solid var(--bg-subtle);cursor:pointer;transition:background .12s}.search-result-row:hover,.search-result-row.mat-checked{background:var(--primary-bg)}.search-result-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.search-result-name{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-code{font-family:monospace;font-size:9px;color:var(--text-tertiary)}.mat-checkbox{width:13px;height:13px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.mat-tree-row.mat-checked{background:var(--primary-bg)!important}.selection-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--primary-bg);border-top:1px solid rgba(124,58,237,.25);flex-shrink:0}.selection-count{font-size:12px;font-weight:600;color:var(--primary-light)}.selection-actions{display:flex;gap:6px}.btn-selection{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;border:none}.btn-selection.clear{background:var(--bg-subtle-active);color:var(--text-secondary)}.btn-selection.clear:hover{background:var(--bg-subtle-active);color:var(--text-primary)}.btn-selection.add{background:var(--primary);color:#fff}.btn-selection.add:hover{background:#6d28d9}.resa-row.drag-over{border-top:2px solid var(--primary)}.resa-row[draggable]{transition:opacity .2s}.groupes-table.dragging-active .resa-row td>*{pointer-events:none}.groupes-table.dragging-active .ligne-libre-row td>*{pointer-events:none}.mat-columns-menu-wrapper{position:relative}.mat-columns-btn{display:flex;align-items:center;justify-content:center;width:32px;height:30px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-tertiary);cursor:pointer}.mat-columns-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.mat-columns-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.mat-columns-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 8px 24px var(--shadow-color);z-index:1000;min-width:180px;overflow:hidden}.mat-columns-menu-header{padding:10px 12px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);background:var(--bg-dark)}.mat-columns-menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:12px;color:var(--text-primary);cursor:pointer}.mat-columns-menu-item:hover{background:var(--bg-hover)}.mat-columns-menu-item.disabled{opacity:.5;cursor:default}.mat-columns-menu-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--primary)}.mat-columns-menu-item span{flex:1}.mat-columns-menu-item svg{color:var(--text-tertiary)}.mat-columns-menu-separator{height:1px;background:var(--border-color);margin:4px 0}.mat-columns-menu-action{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;color:var(--text-secondary);cursor:pointer}.mat-columns-menu-action:hover{background:var(--bg-hover);color:var(--text-primary)}.mat-preset-save{display:flex;gap:4px;padding:4px 8px 8px}.mat-preset-input{flex:1;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);padding:4px 8px;font-size:12px}.mat-preset-input:focus{outline:none;border-color:var(--primary)}.mat-preset-save-btn{background:var(--primary);color:#fff;border:none;border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer}.mat-preset-save-btn:hover{background:#6d28d9}.mat-columns-menu-preset{display:flex;align-items:center;padding:6px 12px;font-size:12px;cursor:pointer}.mat-columns-menu-preset span{flex:1;color:var(--text-primary)}.mat-columns-menu-preset:hover{background:var(--bg-hover)}.mat-preset-overwrite,.mat-preset-delete{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center}.mat-preset-overwrite:hover{color:var(--primary);background:var(--primary-bg)}.mat-preset-delete:hover{color:var(--error);background:var(--error-bg)}.groupes-table th{position:relative;-webkit-user-select:none;user-select:none}.groupes-table th .th-content{display:flex;align-items:center;gap:4px}.groupes-table th .col-drag-handle{color:var(--text-tertiary);cursor:grab;opacity:0;transition:opacity .15s;flex-shrink:0}.groupes-table th:hover .col-drag-handle{opacity:1}.groupes-table th.col-dragging{opacity:.5;background:var(--bg-hover)}.col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent}.col-resize-handle:hover,.col-resize-handle:active{background:var(--primary)}.groupe-row.drop-target{background:var(--primary-bg-hover)!important;box-shadow:inset 0 0 0 2px #7c3aed66}.groupe-row.groupe-drag-over{border-top:3px solid var(--primary)}.groupe-row.groupe-selected{background:var(--primary-bg)!important;border-left:3px solid var(--primary)}.selected-groupe-indicator{font-size:12px;color:var(--primary-light);margin-right:auto}.groupe-row[draggable]{transition:opacity .2s}.inline-add-row{opacity:.5}.inline-add-row td{border-bottom:2px solid var(--border-color)!important}.inline-add-row:focus-within{opacity:1}.inline-add-input{width:100%;background:transparent!important;border:1px dashed var(--border-color)!important;color:var(--text-primary);font-size:12px;padding:6px 8px;border-radius:4px}.inline-add-input:focus{border-color:var(--primary)!important;border-style:solid!important;outline:none}.inline-add-input::placeholder{color:var(--text-secondary);font-style:italic}.inline-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 8px 24px var(--shadow-color);z-index:100;max-height:240px;overflow-y:auto;min-width:300px}.inline-suggestions.drop-up{top:auto;bottom:100%;box-shadow:0 -8px 24px var(--shadow-color)}.inline-suggestion{display:flex;gap:12px;padding:8px 12px;cursor:pointer;font-size:12px;align-items:center}.inline-suggestion:hover,.inline-suggestion.selected{background:var(--primary-bg-hover)}.sugg-code{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--primary-light);min-width:100px;flex-shrink:0}.sugg-nom{color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-menu-dropdown{position:fixed;z-index:9999;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 24px var(--shadow-color);width:220px;padding:4px 0}.add-menu-item{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:13px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.add-menu-item:hover{background:var(--primary-bg-hover)}.add-menu-separator{height:1px;background:var(--border-color);margin:4px 0}.ligne-libre-row{background:var(--primary-bg)}.ligne-type-texte{background:var(--info-bg)!important}.ligne-texte-cell{padding:2px 8px!important}.ligne-type-bloc_texte{background:#93c5fd08!important}.ligne-bloc-texte-cell{padding:4px 8px!important}.rich-text-editor{position:relative;width:100%}.rich-text-editor.rich-focused{z-index:20}.rich-toolbar{display:flex;align-items:center;gap:2px;padding:3px 4px;background:var(--bg-dark);border:1px solid var(--border-color);border-bottom:none;border-radius:4px 4px 0 0;flex-wrap:wrap}.rich-btn{display:flex;align-items:center;justify-content:center;width:24px;height:22px;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-secondary);cursor:pointer;transition:all .1s}.rich-btn:hover{background:var(--bg-subtle-active);color:var(--text-primary);border-color:var(--border-color)}.rich-separator{width:1px;height:16px;background:var(--border-color);margin:0 3px}.rich-color-wrapper{position:relative}.rich-color-palette{position:absolute;top:100%;left:0;margin-top:4px;display:flex;gap:3px;padding:5px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px var(--shadow-color);z-index:30}.rich-color-swatch{width:18px;height:18px;border-radius:3px;border:1px solid var(--bg-subtle-active);cursor:pointer;transition:transform .1s}.rich-color-swatch:hover{transform:scale(1.2);border-color:#fff}.rich-size-wrapper{position:relative}.rich-size-btn{width:auto!important;padding:0 5px!important;gap:3px}.rich-size-label{font-size:10px;font-weight:500}.rich-size-dropdown{position:absolute;top:100%;left:0;margin-top:4px;display:flex;flex-direction:column;padding:3px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px var(--shadow-color);z-index:30;min-width:60px}.rich-size-option{display:flex;align-items:center;padding:3px 8px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:3px;transition:all .1s;white-space:nowrap}.rich-size-option:hover{background:var(--bg-subtle-active);color:var(--text-primary)}.rich-content{outline:none;font-family:inherit}.rich-content:empty:before{content:attr(data-placeholder);color:var(--text-tertiary);font-style:italic;pointer-events:none}.rich-content-inline{padding:4px 8px;font-weight:600;font-size:13px;color:#93c5fd;border:1px solid transparent;border-radius:4px;min-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:border-color .15s}.rich-focused .rich-content-inline{border-color:var(--primary);background:var(--bg-subtle);border-radius:0 0 4px 4px;white-space:normal}.rich-content-block{padding:6px 8px;font-size:13px;color:var(--text-secondary);line-height:1.5;border:1px solid var(--bg-subtle-active);border-radius:4px;min-height:50px;max-height:300px;overflow-y:auto;transition:border-color .15s}.rich-focused .rich-content-block{border-color:var(--primary);background:var(--bg-subtle);border-radius:0 0 4px 4px}.ligne-type-sous_total{background:#f59e0b0d!important;border-top:1px solid rgba(245,158,11,.2)}.ligne-sous-total-label{font-weight:600;color:var(--warning);font-size:12px}.sous-total-montant{font-weight:700;color:var(--warning)!important}.context-menu{position:fixed;z-index:9999;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 32px var(--bg-overlay);min-width:240px;padding:4px 0;animation:contextFadeIn .1s ease-out}@keyframes contextFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-header{padding:8px 14px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:13px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.context-menu-item:hover{background:var(--primary-bg-hover)}.context-menu-danger{color:var(--error)}.context-menu-danger:hover{background:var(--error-bg)}.resa-row.cut-item,.ligne-libre-row.cut-item{opacity:.4}.resa-row.editing-line,.ligne-libre-row.editing-line{cursor:text}.resa-row.editing-line .grip-cell,.ligne-libre-row.editing-line .grip-cell{opacity:.2;pointer-events:none}.clipboard-indicator{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary);padding:2px 8px;background:var(--primary-bg);border-radius:4px;white-space:nowrap}.clipboard-indicator .clipboard-clear{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:1px;display:flex;border-radius:3px}.clipboard-indicator .clipboard-clear:hover{color:var(--text-primary);background:var(--bg-subtle-active)}.context-has-submenu{position:relative}.context-has-submenu .submenu-arrow{margin-left:auto;opacity:.5}.context-submenu{display:none;position:absolute;left:100%;top:-4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 8px 24px var(--shadow-color);min-width:140px;padding:4px 0;z-index:1}.context-has-submenu:hover>.context-submenu{display:block}.context-has-submenu:hover{background:var(--primary-bg)}@media(max-width:1200px){.context-submenu{left:auto;right:100%}}.context-menu-separator{height:1px;background:var(--border-color);margin:4px 0}.groupe-grip-cell,.grip-cell{width:24px!important;max-width:24px!important;padding:0 2px!important;cursor:grab}.grip{cursor:grab}.grip:active{cursor:grabbing}html.resizing,html.resizing *{cursor:col-resize!important;user-select:none!important;-webkit-user-select:none!important}.panel-resizer{width:5px;background:var(--border-color);cursor:col-resize;transition:background .15s;flex-shrink:0}.panel-resizer:hover,.panel-resizer:active{background:var(--primary)}.panel-right{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-left:none;border-radius:0 4px 4px 0;display:flex;flex-direction:column;overflow:hidden}.panel-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-dark)}.btn-action{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary);color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer}.btn-action:hover{opacity:.9}.groupes-container{flex:1;overflow:auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--text-secondary)}.empty-state svg{opacity:.5}.groupes-table{width:100%;border-collapse:collapse;font-size:13px}.groupes-table th{padding:6px 8px;text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);background:var(--bg-dark);border-bottom:1px solid var(--border-color);white-space:nowrap;position:sticky;top:0;z-index:10}.groupes-table td{padding:4px 8px;border-bottom:1px solid var(--bg-subtle);color:var(--text-primary)}.groupe-row{background:var(--bg-dark);border-bottom:1px solid var(--border-color)!important}.groupe-row td{padding-top:8px!important;padding-bottom:8px!important;border-bottom:1px solid var(--border-color)!important}.groupe-row:hover{background:var(--bg-hover)}.groupe-cell{padding-left:8px!important}.groupe-info{display:flex;flex-direction:column;gap:1px}.groupe-info strong{font-size:13px;letter-spacing:.2px}.groupe-periode{font-size:10px;color:var(--text-secondary);opacity:.8}.groupe-coef-cell,.groupe-remise-cell{padding:2px 4px!important}.groupe-inline{background:var(--bg-subtle-hover)!important;border:1px solid var(--bg-subtle-active)!important;font-weight:600}.groupe-inline:focus{border-color:var(--primary)!important}.resa-row{background:var(--bg-card)}.resa-row td{vertical-align:middle;height:36px;padding:2px 8px}.resa-row:hover{background:var(--bg-hover)}.resa-row.warning{background:#f59e0b0a}.resa-row.warning:hover{background:#f59e0b14}.resa-name{font-size:13px;color:var(--text-primary);vertical-align:middle;cursor:default}.resa-indent{display:none}.resa-code-cell{font-family:monospace;font-size:11px;color:var(--text-tertiary)}.grip{color:var(--text-tertiary);cursor:grab;opacity:.4;transition:opacity .15s}.resa-row:hover .grip,.groupe-row:hover .grip{opacity:1}.actions-cell{display:flex;gap:2px;justify-content:flex-end;opacity:0;transition:opacity .15s;width:40px!important;max-width:40px!important}.resa-row:hover .actions-cell,.groupe-row:hover .actions-cell{opacity:1}.btn-icon{padding:4px 6px;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.danger:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}.badge-dispo{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500}.badge-dispo.ok{background:#22c55e26;color:#22c55e}.badge-dispo.warning{background:var(--warning-bg);color:var(--warning)}.badge-dispo.loading{background:var(--bg-dark);color:var(--text-secondary)}.badge-dispo.blocked{background:var(--error-bg);color:var(--error)}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal-header h2{font-size:16px;font-weight:600;color:var(--text-primary)}.close-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border-color)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;color:var(--text-secondary)}.input{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px}.input:focus{outline:none;border-color:var(--primary)}.btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.search-input{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px}.search-input input{flex:1;padding:10px 0;background:transparent;border:none;color:var(--text-primary)}.search-results{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:6px;margin-top:8px}.search-result-item{display:flex;gap:12px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border-color)}.search-result-item:hover{background:var(--bg-hover)}.mat-ref{font-weight:500;color:var(--primary);font-size:12px}.mat-nom{color:var(--text-primary)}.selected-materiel{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--primary-bg);border:1px solid var(--primary);border-radius:6px}.selected-info{display:flex;flex-direction:column;gap:2px}.btn-clear{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.btn-clear:hover{color:var(--text-primary)}.projet-materiel>.loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-secondary)}.inline-input{background:transparent;border:1px solid transparent;color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:13px;transition:all .15s}.inline-input:hover{border-color:var(--border-color);background:var(--bg-input)}.inline-input:focus{outline:none;border-color:var(--primary);background:var(--bg-input)}.inline-qty{width:60px;text-align:center}.inline-input.inline-prix,.inline-input.inline-jours,.inline-input.inline-coef,.inline-input.inline-remise{width:100%;max-width:80px;padding:4px 6px;text-align:right;font-size:12px;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-primary);transition:all .15s}.inline-input.inline-prix:hover,.inline-input.inline-jours:hover,.inline-input.inline-coef:hover,.inline-input.inline-remise:hover{border-color:var(--border-color);background:var(--bg-subtle)}.inline-input.inline-prix:focus,.inline-input.inline-jours:focus,.inline-input.inline-coef:focus,.inline-input.inline-remise:focus{border-color:var(--info);background:var(--info-bg);outline:none}.inline-remise-wrap{display:flex;align-items:center;gap:2px}.remise-pct{font-size:11px;color:var(--text-secondary)}.montant-cell{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap;font-size:13px}.groupe-row .montant-cell{font-weight:700;font-size:14px;color:var(--primary)}.projet-finance{display:flex;flex-direction:column;gap:16px;padding:0 1px}.fin-header-bar{display:flex;align-items:center;justify-content:space-between;background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);padding:16px 20px}.fin-header-left{display:flex;align-items:center;gap:14px}.fin-header-label{font-size:11px;font-weight:700;color:var(--label-4);text-transform:uppercase;letter-spacing:.5px}.fin-header-amount{font-size:16px;font-weight:700;color:var(--label);font-variant-numeric:tabular-nums;margin-top:2px}.fin-header-circles{display:flex;align-items:center;gap:24px}.fin-circle-item{display:flex;align-items:center;gap:10px}.fin-circle-label{font-size:10px;font-weight:700;color:var(--label-4);text-transform:uppercase;letter-spacing:.4px}.fin-circle-value{font-size:14px;font-weight:600;color:var(--label);margin-top:1px}.fin-two-cols{display:grid;grid-template-columns:3fr 2fr;gap:16px;min-height:200px}.fin-col{background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);display:flex;flex-direction:column;overflow:visible}.fin-col-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--separator);gap:8px}.fin-col-title{font-size:12px;font-weight:700;color:var(--label-3);text-transform:uppercase;letter-spacing:.5px}.fin-col>.devis-cards{padding:12px}.fin-col>.empty-finance{flex:1}.apercu-financier{background:var(--surface-solid, #fff);border:1px solid var(--separator, rgba(60,60,67,.12));border-radius:var(--radius-md, 10px);overflow:hidden}.ap-header-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-tertiary, #f5f5f7);border-bottom:1px solid var(--separator);font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--label-3, #636366);text-transform:uppercase}.ap-header-marge{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--label-3)}.ap-table{width:100%;border-collapse:collapse;font-size:13px}.ap-table thead th{padding:8px 14px;font-size:11px;font-weight:600;color:var(--label-4, #98989D);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--separator);text-align:right}.ap-th-cat{text-align:left!important}.ap-th-num{width:140px}.ap-tr td{padding:8px 14px;border-bottom:1px solid rgba(60,60,67,.06)}.ap-tr-zero td{color:var(--label-4)}.ap-tr-sub td{font-size:12px;padding-top:4px;padding-bottom:4px;border-bottom:none}.ap-tr-summary td{font-weight:600}.ap-td-cat{font-weight:500;color:var(--label, #1d1d1f)}.ap-td-num{text-align:right;font-variant-numeric:tabular-nums}.ap-dim{color:var(--label-4)}.ap-td-total{font-weight:600}.ap-benefice{font-weight:500}.ap-tr-separator td{padding:0;height:1px;background:var(--separator)}.ap-tr-grand td{padding:10px 14px;font-size:13.5px}.ap-recap{padding:12px 16px;border-top:1px solid var(--separator);display:flex;flex-direction:column;gap:6px;background:var(--bg-tertiary, #f5f5f7)}.ap-recap-row{display:flex;justify-content:space-between;font-size:13px;color:var(--label-3)}.ap-recap-ht span:last-child{font-weight:600;color:var(--label)}.ap-recap-tva{position:relative}.ap-recap-tva-rate{font-size:11px;color:var(--label-4)}.ap-recap-ttc{padding-top:8px;margin-top:4px;border-top:1px solid var(--separator);font-weight:700;font-size:14px;color:var(--label)}.ap-recap-ttc-val{color:var(--blue, #007AFF)}.finance-section-tabs{display:flex;gap:0;border-bottom:1px solid var(--separator)}.section-tab{display:flex;align-items:center;gap:6px;padding:10px 18px;font-size:13px;font-weight:500;color:var(--label-3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s}.section-tab:hover{color:var(--label)}.section-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.devis-cards{display:flex;flex-direction:column;gap:10px;overflow:visible}.devis-card{background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);padding:14px 16px;cursor:pointer;transition:all .15s}.devis-card:hover{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.devis-card.actif{border-left:3px solid var(--blue)}.devis-card.annule{opacity:.5}.devis-card-header{display:flex;justify-content:space-between;align-items:center}.devis-card-left{display:flex;align-items:center;gap:8px}.devis-card-numero{font-size:14px;font-weight:600;color:var(--label)}.devis-card-version{font-size:12px;color:var(--label-4)}.devis-card-statut{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;border:1px solid}.devis-card-montant{font-size:16px;font-weight:700;color:var(--label);font-variant-numeric:tabular-nums}.ttc-label{font-size:11px;color:var(--label-4);font-weight:400}.devis-card-details{display:flex;gap:8px;margin-top:6px;font-size:12px;color:var(--label-4)}.devis-card-actions{display:flex;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(60,60,67,.06);position:relative;overflow:visible}.card-action-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:500;color:var(--label-3);background:var(--bg-tertiary, #f5f5f7);border:1px solid var(--separator);border-radius:6px;cursor:pointer;transition:all .15s}.card-action-btn:hover{background:var(--bg-hover, rgba(0,0,0,.04));color:var(--label)}.card-action-btn.danger:hover{background:#ff3b301a;color:var(--red, #FF3B30)}.section-toolbar{display:flex;gap:8px;margin-bottom:12px}.empty-finance{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;color:var(--label-4);text-align:center}.empty-finance p{font-size:14px;margin:0}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--separator)}.editor-header-left{display:flex;align-items:center;gap:10px}.editor-header-actions{display:flex;align-items:center;gap:6px}.btn-back-sm{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--separator);border-radius:8px;background:var(--surface-solid);cursor:pointer;color:var(--label-3);transition:all .15s}.btn-back-sm:hover{background:var(--bg-hover);color:var(--label)}.editor-numero{font-size:16px;font-weight:700;color:var(--label)}.editor-version{font-size:13px;color:var(--label-4)}.btn-action-sm{display:flex;align-items:center;gap:5px;padding:6px 12px;font-size:12.5px;font-weight:500;color:var(--label-3);background:var(--surface-solid);border:1px solid var(--separator);border-radius:7px;cursor:pointer;transition:all .15s}.btn-action-sm:hover{background:var(--bg-hover);color:var(--label)}.btn-action-sm.blue{color:var(--blue);border-color:#007aff4d}.btn-action-sm.blue:hover{background:#007aff14}.btn-action-sm.green{color:var(--green, #34C759);border-color:#34c7594d}.btn-action-sm.green:hover{background:#34c75914}.btn-action-sm.red{color:var(--red, #FF3B30);border-color:#ff3b304d}.btn-action-sm.red:hover{background:#ff3b3014}.editor-infos{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);padding:14px 16px}.infos-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.info-field{display:flex;flex-direction:column;gap:4px}.info-field.wide{grid-column:span 2}.info-field label{font-size:11px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.3px}.info-field input,.info-field textarea{font-size:13px;padding:6px 10px;border:1px solid var(--separator);border-radius:6px;background:var(--bg-tertiary, #f5f5f7);color:var(--label);font-family:inherit}.info-field input:focus,.info-field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #007aff26}.calcul-prix-panel{background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);overflow:hidden}.panel-title{font-size:12px;font-weight:700;color:var(--label-3);text-transform:uppercase;letter-spacing:.5px;padding:10px 16px;margin:0;background:var(--bg-tertiary);border-bottom:1px solid var(--separator)}.calcul-layout{display:grid;grid-template-columns:2fr 1fr;min-height:0}.calcul-left{border-right:1px solid var(--separator)}.calcul-table{width:100%;border-collapse:collapse;font-size:12.5px}.calcul-table thead th{padding:8px 12px;font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--separator);text-align:right}.calcul-table thead th:first-child{text-align:left}.calcul-table tbody td{padding:7px 12px;border-bottom:1px solid rgba(60,60,67,.04)}.grille-nom{font-weight:500;color:var(--label)}.cell-money{text-align:right;font-variant-numeric:tabular-nums}.cell-number{text-align:center}.cell-total{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--label)}.remise-val{color:var(--red, #FF3B30)}.calcul-input{width:56px;text-align:center;padding:3px 4px;font-size:12px;border:1px solid var(--separator);border-radius:4px;background:var(--bg-tertiary);color:var(--label)}.calcul-input:focus{outline:none;border-color:var(--blue)}.calcul-totaux-row td{padding-top:10px;border-top:1px solid var(--separator)}.recap-card{padding:14px 16px}.recap-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;color:var(--label-3)}.recap-bold{font-weight:600;color:var(--label)}.recap-separator{height:1px;background:var(--separator);margin:6px 0}.recap-row.total-final{font-weight:600;font-size:13.5px;color:var(--label)}.recap-row.total-final.ttc{font-size:15px;color:var(--blue)}.editable-row{align-items:center}.recap-input{width:60px;text-align:right;padding:3px 6px;font-size:13px;border:1px solid var(--separator);border-radius:4px;background:var(--bg-tertiary);color:var(--label)}.recap-input:focus{outline:none;border-color:var(--blue)}.editor-body{flex:1;min-height:0}.lignes-toolbar{display:flex;gap:8px;margin-bottom:10px}.add-menu-wrapper{position:relative}.add-menu-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:var(--surface-solid);border:1px solid var(--separator);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:100;min-width:180px;padding:4px}.add-menu-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;font-size:13px;color:var(--label);background:none;border:none;border-radius:5px;cursor:pointer;text-align:left}.add-menu-dropdown button:hover{background:var(--blue);color:#fff}.lignes-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--surface-solid);border:1px solid var(--separator);border-radius:var(--radius-md, 10px);overflow:hidden}.lignes-table thead th{padding:8px 10px;font-size:10.5px;font-weight:600;color:var(--label-4);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--separator);text-align:left;background:var(--bg-tertiary)}.lignes-table tbody td{padding:6px 10px;border-bottom:1px solid rgba(60,60,67,.04);vertical-align:middle}.ligne-devis:hover{background:#007aff08}.ligne-optionnelle{opacity:.5;font-style:italic}.ligne-groupe-header td{padding:10px;font-weight:600;font-size:12px;color:var(--blue);background:#007aff0a}.groupe-nom{margin-right:12px}.groupe-total{float:right;font-variant-numeric:tabular-nums}.ligne-sous-titre td{font-weight:600;font-size:12.5px;color:var(--label);padding:8px 10px;background:#00000003}.cell-designation{max-width:300px;overflow:hidden;text-overflow:ellipsis}.designation-main{display:block;color:var(--label)}.designation-sub{display:block;font-size:11px;color:var(--label-4);margin-top:1px}.badge-option{font-size:10px;padding:1px 5px;border-radius:3px;background:#f59e0b1a;color:#f59e0b;margin-left:6px}.inline-edit{width:100%;padding:3px 6px;font-size:12.5px;border:1px solid var(--blue);border-radius:4px;background:#fff;color:var(--label)}.inline-number{width:52px;text-align:center;padding:2px 4px;font-size:12px;border:1px solid var(--separator);border-radius:4px;background:var(--bg-tertiary);color:var(--label)}.inline-number:focus{outline:none;border-color:var(--blue)}.inline-number.right{text-align:right;width:65px}.action-btn-sm{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:4px;color:var(--label-4);cursor:pointer}.action-btn-sm:hover{background:#ff3b301a;color:var(--red)}.editable{cursor:pointer}.editable:hover{color:var(--blue)}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.catalogue-modal{background:var(--surface-solid, #fff);border-radius:14px;width:520px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.modal-header h2{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;margin:0;color:var(--label)}.btn-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--label-3);cursor:pointer}.btn-close:hover{background:var(--separator)}.catalogue-search{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--separator);color:var(--label-4)}.catalogue-search input{flex:1;border:none;background:none;font-size:14px;color:var(--label);outline:none}.catalogue-results{flex:1;overflow-y:auto;padding:6px}.catalogue-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s}.catalogue-item:hover{background:var(--blue);color:#fff}.catalogue-item:hover .cat-item-code,.catalogue-item:hover .cat-item-cat,.catalogue-item:hover .cat-item-prix{color:#fffc}.cat-item-info{display:flex;align-items:center;gap:8px}.cat-item-code{font-size:11px;color:var(--label-4);font-weight:600;font-family:monospace}.cat-item-nom{font-size:13px;font-weight:500}.cat-item-cat{font-size:11px;color:var(--label-4)}.cat-item-prix{font-size:12.5px;font-weight:600;color:var(--label-3);font-variant-numeric:tabular-nums;white-space:nowrap}.no-results{font-size:13px;color:var(--label-4);padding:20px;text-align:center}.docs-dropdown-wrapper{position:relative}.docs-dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:10px;box-shadow:0 6px 20px #00000024;z-index:9999;min-width:280px;padding:4px}.docs-dropdown-menu button{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;font-size:13px;color:var(--label);background:none;border:none;border-radius:6px;cursor:pointer;text-align:left}.docs-dropdown-menu button:hover{background:var(--blue);color:#fff}.docs-dropdown-menu button:hover .variant-desc{color:#ffffffb3}.variant-label{font-weight:500}.variant-desc{font-size:11px;color:var(--label-4)}.btn-primary-sm{display:flex;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:600;color:#fff;background:var(--blue, #007AFF);border:none;border-radius:7px;cursor:pointer;transition:all .15s}.btn-primary-sm:hover{filter:brightness(1.1)}.btn-primary-sm:disabled{opacity:.5;cursor:not-allowed}.btn-secondary-sm{display:flex;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:500;color:var(--label-3);background:var(--surface-solid);border:1px solid var(--separator);border-radius:7px;cursor:pointer}.btn-secondary-sm:hover{background:var(--bg-hover);color:var(--label)}.spin{animation:spin .8s linear infinite}.loading-state{display:flex;align-items:center;justify-content:center;padding:40px}.loading-state.small{padding:20px}.spinner{width:24px;height:24px;border:2px solid var(--separator);border-top-color:var(--blue);border-radius:50%;animation:spin .6s linear infinite}.documents-layout{display:flex;flex:1;min-height:0;gap:0;border:1px solid var(--separator);border-radius:var(--radius-md, 10px);overflow:hidden;background:var(--surface-solid, #fff)}.documents-sidebar{width:220px;min-width:220px;background:var(--bg-tertiary, #f5f5f7);border-right:1px solid var(--separator);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:12px;font-weight:700;color:var(--label-3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--separator)}.dossier-list{padding:6px}.dossier-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:13px;color:var(--label);border-radius:6px;cursor:pointer;transition:all .1s;position:relative}.dossier-item:hover{background:#0000000a}.dossier-item.active{background:#007aff1a;color:var(--blue);font-weight:500}.dossier-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dossier-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dossier-count{font-size:10px;color:var(--label-4);background:#0000000f;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.dossier-del{opacity:0;background:none;border:none;color:var(--label-4);cursor:pointer;padding:2px;transition:opacity .15s}.dossier-item:hover .dossier-del{opacity:1}.dossier-del:hover{color:var(--red)}.dossier-rename-input{flex:1;padding:2px 6px;font-size:13px;border:1px solid var(--blue);border-radius:4px;background:#fff;color:var(--label);outline:none}.documents-main{flex:1;display:flex;flex-direction:column;min-width:0}.documents-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--separator)}.header-left{display:flex;align-items:baseline;gap:8px}.header-title{font-size:14px;font-weight:600;color:var(--label)}.file-count{font-size:12px;color:var(--label-4)}.upload-progress{padding:0 16px}.progress-bar{height:4px;background:var(--separator);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--blue);border-radius:2px;transition:width .3s}.documents-content{flex:1;overflow-y:auto;padding:16px;position:relative}.documents-content.drag-active{background:#007aff05}.drop-overlay{position:absolute;inset:8px;border:2px dashed var(--blue);border-radius:12px;background:#007aff0a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--blue);font-size:14px;font-weight:500;z-index:10}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:60px 20px;color:var(--label-4);border:2px dashed var(--separator);border-radius:12px;cursor:pointer;transition:border-color .15s}.empty-state:hover{border-color:var(--blue);color:var(--blue)}.empty-state p{font-size:14px;margin:0;font-weight:500}.empty-state span{font-size:12px}.documents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.doc-card{background:var(--surface-solid, #fff);border:1px solid var(--separator);border-radius:8px;overflow:hidden;transition:all .15s}.doc-card:hover{border-color:#007aff4d;box-shadow:0 2px 8px #0000000f}.doc-thumbnail{height:130px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);position:relative;cursor:pointer;overflow:hidden}.doc-thumbnail img{width:100%;height:100%;object-fit:cover}.doc-icon-large{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--label-4)}.doc-ext{font-size:9px;font-weight:700;padding:1px 5px;background:#0000000f;border-radius:3px;color:var(--label-3)}.doc-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .15s}.doc-thumbnail:hover .doc-overlay{opacity:1}.doc-info{padding:10px 12px}.doc-name{font-size:13px;font-weight:500;color:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta{display:flex;gap:8px;margin-top:4px;font-size:11px;color:var(--label-4)}.doc-notes-preview{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:var(--label-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-folder-badge{display:inline-block;margin-top:4px;font-size:10px;padding:1px 6px;border:1px solid;border-radius:4px;color:var(--label-3)}.doc-actions{display:flex;gap:2px;padding:6px 8px;border-top:1px solid rgba(60,60,67,.06)}.share-indicator{display:flex;align-items:center;color:var(--green);margin-right:auto}.btn-icon-sm{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:5px;color:var(--label-4);cursor:pointer;transition:all .1s}.btn-icon-sm:hover{background:#0000000f;color:var(--label)}.btn-icon-sm.danger:hover{background:#ff3b301a;color:var(--red)}.preview-modal{max-width:1200px;width:90vw;height:85vh;background:var(--surface-solid);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--separator);font-size:14px;font-weight:600;color:var(--label)}.preview-actions{display:flex;gap:6px;align-items:center}.preview-body{flex:1;display:flex;align-items:center;justify-content:center;background:#1a1a1a;overflow:auto}.preview-body img{max-width:100%;max-height:100%;object-fit:contain}.preview-body iframe{width:100%;height:100%;border:none}.edit-modal,.share-modal{max-width:480px;width:90vw;background:var(--surface-solid);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--separator)}.modal-header h3{margin:0;font-size:15px;font-weight:600;color:var(--label)}.modal-body{padding:16px 18px}.modal-body .form-group{margin-bottom:12px}.modal-body .form-group label{display:block;font-size:12px;font-weight:600;color:var(--label-3);margin-bottom:4px}.modal-body .form-group input,.modal-body .form-group select,.modal-body .form-group textarea{width:100%;padding:7px 10px;font-size:13px;border:1px solid var(--separator);border-radius:6px;background:var(--bg-tertiary);color:var(--label);font-family:inherit}.modal-body .form-group input:focus,.modal-body .form-group textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #007aff1f}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--separator)}.share-link-row{display:flex;gap:6px}.share-link-row input{flex:1;padding:7px 10px;font-size:12px;border:1px solid var(--separator);border-radius:6px;background:var(--bg-tertiary);color:var(--label)}.share-expires{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:12px;color:var(--label-4)}.share-create-section p{font-size:13px;color:var(--label-3);margin:0 0 12px}.btn-danger-outline{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:12px;color:var(--red);background:none;border:1px solid var(--red);border-radius:6px;cursor:pointer}.btn-danger-outline:hover{background:#ff3b3014}.materiel-detail-page{padding:0;background:var(--bg-tertiary);flex:1;overflow-y:auto}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.header-left{display:flex;align-items:center;gap:16px}.btn-back{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:8px;border-radius:6px;cursor:pointer;transition:all .2s}.btn-back:hover{background:var(--border-color);color:var(--text-primary)}.header-info .header-code{font-size:12px;color:#4ecdc4;font-weight:600;text-transform:uppercase}.header-info h1{font-size:20px;font-weight:600;margin:0;color:var(--text-primary)}.btn-save{display:flex;align-items:center;gap:8px;background:var(--border-color);color:var(--text-secondary);border:1px solid var(--border-color);padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.btn-save.has-changes,.btn-save:hover{background:#4ecdc4;color:#000;border-color:#4ecdc4}.detail-tabs{display:flex;gap:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:0 24px}.tab-btn{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text-secondary);padding:14px 20px;cursor:pointer;font-size:14px;font-weight:500;border-bottom:2px solid transparent;transition:all .2s}.tab-btn:hover{color:var(--text-primary);background:var(--bg-subtle)}.tab-btn.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.detail-content{padding:24px}.tab-content{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.tab-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.content-layout{display:grid;grid-template-columns:1fr 300px;gap:24px}.content-main{display:flex;flex-direction:column;gap:24px}.content-sidebar{display:flex;flex-direction:column;gap:16px}.section-card{background:var(--bg-secondary);border-radius:8px;padding:20px}.section-card h3{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full-width{grid-column:1 / -1}.form-field label{font-size:12px;color:var(--text-secondary);font-weight:500}.form-field input,.form-field select,.form-field textarea{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:10px 12px;color:var(--text-primary);font-size:14px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#4ecdc4;outline:none}.input-with-unit{display:flex;align-items:center}.input-with-unit input{border-radius:6px 0 0 6px;flex:1}.input-unit{background:var(--border-color);border:1px solid var(--border-color);border-left:none;padding:10px 12px;color:var(--text-secondary);font-size:13px;border-radius:0 6px 6px 0}.sidebar-card{background:var(--bg-secondary);border-radius:8px;padding:16px}.sidebar-card h4{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase}.stock-summary{display:flex;flex-direction:column;gap:8px}.stock-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-color);font-size:14px}.stock-line.total{border-bottom:none;border-top:1px solid var(--border-color);padding-top:12px;margin-top:4px;font-weight:600}.stock-value{color:#4ecdc4;font-weight:600}.btn-primary{display:flex;align-items:center;gap:8px;background:#4ecdc4;color:#000;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:500;font-size:14px;transition:all .2s}.btn-primary:hover{background:#3dbdb5}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:flex;align-items:center;gap:8px;background:var(--border-color);color:var(--text-primary);border:1px solid var(--border-color);padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:500;font-size:14px}.btn-secondary:hover{background:var(--border-color)}.data-table{width:100%;border-collapse:collapse;margin-top:16px}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;background:var(--bg-tertiary)}.data-table tbody tr:hover{background:#4ecdc40d}.data-table .mono{font-family:SF Mono,monospace;font-size:13px}.status-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-badge.disponible{background:#4ecdc426;color:#4ecdc4}.status-badge.reserve{background:#ffc10726;color:#ffc107}.status-badge.loue,.status-badge.en_location{background:#2196f326;color:#2196f3}.status-badge.maintenance,.status-badge.reparation{background:#ff572226;color:#ff5722}.stock-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stock-card{background:var(--bg-secondary);border-radius:8px;padding:20px;text-align:center}.stock-card.total{background:linear-gradient(135deg,#2a3a38 0%,var(--bg-secondary) 100%);border:1px solid #4ecdc4}.stock-card-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;color:var(--text-secondary);font-size:13px}.stock-card.total .stock-card-header{color:#4ecdc4}.stock-card-value{font-size:36px;font-weight:700;color:var(--text-primary);line-height:1}.stock-card.total .stock-card-value{color:#4ecdc4}.stock-card-label{font-size:12px;color:var(--text-tertiary);margin-top:4px}.mvt-type{display:flex;align-items:center;gap:8px}.mvt-icon{padding:4px;border-radius:4px}.mvt-icon.achat{color:#4caf50;background:#4caf5026}.mvt-icon.vente{color:#f44336;background:#f4433626}.mvt-icon.transfert{color:#2196f3;background:#2196f326}.mvt-icon.inventaire{color:#9c27b0;background:#9c27b026}.mvt-icon.perte{color:#ff9800;background:#ff980026}.mvt-qte{font-weight:600;font-family:SF Mono,monospace}.mvt-qte.positive{color:#4caf50}.mvt-qte.negative{color:#f44336}.mvt-dest{color:var(--text-secondary);font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--text-tertiary);text-align:center}.empty-state.small{padding:32px}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{margin:0 0 16px}.loading-state{padding:32px;text-align:center;color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:var(--bg-secondary);border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px var(--shadow-color)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.btn-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.btn-close:hover{color:var(--text-primary)}.modal-body{padding:20px;overflow-y:auto}.modal-body .form-grid{grid-template-columns:repeat(2,1fr)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}@media(max-width:1200px){.content-layout{grid-template-columns:1fr}.content-sidebar{flex-direction:row;flex-wrap:wrap}.sidebar-card{flex:1;min-width:200px}}@media(max-width:768px){.form-grid,.modal-body .form-grid{grid-template-columns:1fr}.detail-tabs{overflow-x:auto;padding:0 16px}.tab-btn{white-space:nowrap}.stock-cards{grid-template-columns:repeat(2,1fr)}}.page-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-secondary);font-size:16px}.apercu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.apercu-card{background:var(--bg-secondary);border-radius:8px;padding:20px;text-align:center}.apercu-card h4{font-size:12px;color:var(--text-secondary);text-transform:uppercase;margin:0 0 12px}.apercu-value{font-size:24px;font-weight:700;color:#4ecdc4}.apercu-value.big{font-size:36px}.apercu-card p{font-size:12px;color:var(--text-tertiary);margin:4px 0 0}.dimensions-inputs{display:flex;align-items:center;gap:8px}.dimensions-inputs input{width:60px;text-align:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:10px 8px;color:var(--text-primary)}.dimensions-inputs span{color:var(--text-tertiary)}.dimensions-inputs .input-unit{background:var(--border-color);padding:10px 12px;border-radius:6px}.priorite-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#4ecdc4;color:#000;border-radius:50%;font-size:12px;font-weight:700}.type-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.type-badge.maintenance{background:#2196f326;color:#2196f3}.type-badge.reparation{background:#ff572226;color:#ff5722}.type-badge.controle{background:#9c27b026;color:#9c27b0}.type-badge.nettoyage{background:#4caf5026;color:#4caf50}.btn-icon{background:transparent;border:none;color:var(--text-tertiary);padding:6px;cursor:pointer;border-radius:4px;transition:all .2s}.btn-icon:hover{background:#ff572226;color:#ff5722}.text-success{color:#4caf50}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:#4ecdc41a}.search-input{display:flex;align-items:center;gap:10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:0 12px}.search-input input{flex:1;background:transparent;border:none;padding:12px 0;color:var(--text-primary);font-size:14px}.search-input input:focus{outline:none}.search-input svg{color:var(--text-tertiary)}.search-results{margin-top:16px;max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:6px}.search-result-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:all .2s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#4ecdc41a}.search-result-item:hover svg{color:#4ecdc4}.result-info{display:flex;flex-direction:column;gap:2px}.result-name{font-weight:500;color:var(--text-primary)}.result-code{font-size:12px;color:var(--text-secondary);font-family:monospace}.search-result-item svg{color:var(--text-tertiary)}.modal-grid{grid-template-columns:repeat(2,1fr)}.detail-tabs{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.detail-tabs::-webkit-scrollbar{height:4px}.detail-tabs::-webkit-scrollbar-track{background:transparent}.detail-tabs::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.status-badge.planifie{background:#ffc10726;color:#ffc107}.status-badge.realise{background:#4caf5026;color:#4caf50}.status-badge.annule{background:#9e9e9e26;color:#9e9e9e}.status-badge.en_cours{background:#2196f326;color:#2196f3}.apercu-tab{padding:0!important}.apercu-stats-bar{display:flex;align-items:stretch;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:16px 24px;gap:24px;overflow-x:auto}.stat-item{display:flex;flex-direction:column;align-items:center;min-width:100px;padding:0 16px;border-right:1px solid var(--border-color)}.stat-item:last-child{border-right:none}.stat-item.main{min-width:150px}.stat-values{display:flex;align-items:baseline;gap:4px}.stat-big{font-size:36px;font-weight:600;color:var(--text-primary)}.stat-separator{font-size:24px;color:var(--text-tertiary)}.stat-total{font-size:24px;color:var(--text-secondary)}.stat-labels{display:flex;gap:24px;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-value{display:flex;align-items:baseline;gap:6px}.stat-num{font-size:20px;font-weight:600;color:var(--text-primary)}.stat-pct{font-size:12px;color:var(--text-tertiary)}.stat-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;white-space:nowrap}.stat-label.warning{color:var(--warning)}.apercu-grid-2cols{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--border-color)}.apercu-section{background:var(--bg-dark);border-right:1px solid var(--border-color)}.apercu-section:last-child{border-right:none}.apercu-section.full-width{grid-column:1 / -1;border-right:none;border-top:1px solid var(--border-color)}.apercu-section .section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.apercu-section .section-header h3{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.apercu-section .section-body{padding:20px;min-height:120px}.empty-text{color:var(--text-tertiary);font-size:14px;font-style:italic}.btn-text{background:transparent;border:none;color:#4ecdc4;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px}.btn-text:hover{color:#3dbdb5}.projet-list{display:flex;flex-direction:column;gap:8px}.projet-item{display:flex;align-items:center;gap:16px;padding:10px 12px;background:var(--bg-tertiary);border-radius:4px}.projet-item.clickable{cursor:pointer}.projet-item.clickable:hover{background:#4ecdc41a}.projet-nom{flex:1;color:var(--text-primary)}.projet-ref{font-family:monospace;color:var(--text-secondary);font-size:12px}.projet-qte{color:#4ecdc4;font-size:13px}.reparation-list{display:flex;flex-direction:column;gap:8px}.reparation-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-tertiary);border-radius:4px}.rep-date{color:var(--text-secondary);font-size:13px}.rep-desc{flex:1;color:var(--text-primary)}.rep-statut{font-size:11px;padding:2px 8px;border-radius:3px;text-transform:uppercase}.rep-statut.planifie{background:#ffc10726;color:#ffc107}.rep-statut.en_cours{background:#2196f326;color:#2196f3}.historique-tab{padding:0!important}.historique-layout{display:grid;grid-template-columns:350px 1fr;min-height:400px}.historique-sauvegardes{background:var(--bg-dark);border-right:1px solid var(--border-color)}.historique-sauvegardes h3,.historique-modifications h3{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:16px 20px;margin:0;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.historique-sauvegardes .data-table{margin:0}.historique-sauvegardes .data-table tbody tr.selected{background:#4ecdc41a}.historique-sauvegardes .data-table tbody tr.selected td:first-child{border-left:3px solid #4ecdc4}.historique-modifications{background:var(--bg-dark)}.modifications-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.historique-modifications .data-table{margin:0}.action-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;font-size:14px;font-weight:700}.action-icon.create{background:#4caf5026;color:#4caf50}.action-icon.update{background:#2196f326;color:#2196f3}.action-icon.delete{background:#f4433626;color:#f44336}.action-badge{padding:2px 8px;border-radius:3px;font-size:11px;text-transform:uppercase}.action-badge.create{background:#4caf5026;color:#4caf50}.action-badge.update{background:#2196f326;color:#2196f3}.old-value{color:var(--text-secondary);text-decoration:line-through}.new-value{color:#4ecdc4}.data-table.compact{font-size:13px}.data-table.compact th,.data-table.compact td{padding:8px 12px}@media(max-width:1024px){.apercu-grid-2cols{grid-template-columns:1fr}.apercu-section{border-right:none;border-bottom:1px solid var(--border-color)}.historique-layout{grid-template-columns:1fr}.historique-sauvegardes{border-right:none;border-bottom:1px solid var(--border-color);max-height:200px;overflow-y:auto}}@media(max-width:768px){.apercu-stats-bar{flex-wrap:wrap;gap:16px}.stat-item{min-width:80px;padding:0 8px}.stat-big{font-size:28px}.stat-total{font-size:18px}}.tree-layout-tab{padding:0!important}.tree-layout{display:grid;grid-template-columns:350px 1fr;min-height:500px;height:calc(100vh - 280px)}.tree-panel{background:var(--bg-dark);border-right:1px solid var(--border-color);display:flex;flex-direction:column}.tree-search{display:flex;align-items:center;gap:8px;padding:12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.tree-search svg{color:var(--text-tertiary);flex-shrink:0}.tree-search input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:14px;outline:none}.tree-search input::placeholder{color:var(--text-tertiary)}.clear-search{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center}.clear-search:hover{color:var(--text-primary)}.tree-header{display:flex;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.tree-content{flex:1;overflow-y:auto;padding:8px 0}.tree-list{font-size:13px}.tree-node-header{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;color:var(--text-primary);transition:background .15s}.tree-node-header:hover{background:#4ecdc41a}.tree-node-header.expandable{cursor:pointer}.tree-node-header svg{flex-shrink:0;color:var(--text-tertiary)}.folder-icon{color:var(--warning)!important}.tree-node-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-materiel-item{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;color:var(--text-secondary);transition:all .15s}.tree-materiel-item:hover{background:#4ecdc426;color:#4ecdc4}.tree-materiel-dash{color:var(--text-tertiary)}.tree-materiel-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-empty{padding:20px;text-align:center;color:var(--text-tertiary);font-style:italic}.tree-table-panel{background:var(--bg-dark);display:flex;flex-direction:column}.tree-table-header{display:flex;justify-content:flex-end;align-items:center;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.btn-affichages{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:6px 12px;font-size:13px;border-radius:4px;cursor:pointer}.btn-affichages:hover{border-color:var(--text-tertiary);color:var(--text-primary)}.tree-table-panel .data-table{margin:0}.tree-table-panel .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.tree-table-panel .empty-state h3{margin:16px 0 8px;color:var(--text-primary);font-size:16px}.empty-hint{color:var(--text-tertiary);font-size:13px;margin-top:8px}@media(max-width:1024px){.tree-layout{grid-template-columns:280px 1fr}}@media(max-width:768px){.tree-layout{grid-template-columns:1fr;grid-template-rows:250px 1fr}.tree-panel{border-right:none;border-bottom:1px solid var(--border-color)}}.category-dropdown-wrapper{position:relative}.category-dropdown-trigger{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:14px;transition:border-color .2s}.category-dropdown-trigger:hover{border-color:#4ecdc4}.category-dropdown-trigger .folder-icon{color:var(--warning);flex-shrink:0}.category-dropdown-trigger span{flex:1}.category-dropdown-trigger .chevron{color:var(--text-tertiary);transition:transform .2s}.category-dropdown-trigger .chevron.open{transform:rotate(180deg)}.category-dropdown-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;max-height:300px;overflow-y:auto;z-index:100;box-shadow:0 8px 24px var(--shadow-color)}.category-dropdown-item{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;color:var(--text-primary);font-size:13px;transition:background .15s}.category-dropdown-item:hover{background:#4ecdc41a}.category-dropdown-item.selected{background:#4ecdc426;color:#4ecdc4}.category-dropdown-item .expand-btn{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:pointer}.category-dropdown-item .expand-btn:hover{color:var(--text-primary)}.category-item-content{display:flex;align-items:center;gap:6px;flex:1}.category-item-content .folder-icon{color:var(--warning)}.no-category{color:var(--text-secondary);font-style:italic}.category-dropdown-menu{animation:dropdownSlide .15s ease-out}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.entretien-type-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.entretien-type-card{display:flex;gap:12px;padding:16px;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.entretien-type-card:hover{border-color:var(--text-tertiary)}.entretien-type-card.selected{border-color:#4ecdc4;background:#4ecdc414}.entretien-type-card .card-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.entretien-type-card .card-icon.disponible{background:var(--success-bg);color:var(--success)}.entretien-type-card .card-icon.bloquant{background:var(--error-bg);color:var(--error)}.entretien-type-card .card-content h4{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--text-primary)}.entretien-type-card .card-content p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.4}.entretien-type-card.selected .card-content h4{color:#4ecdc4}.dispo-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.dispo-badge.utilisable{background:var(--success-bg);color:var(--success)}.dispo-badge.bloquant{background:var(--error-bg);color:var(--error)}.data-table tbody tr.row-bloquant{background:#ef44440d}.data-table tbody tr.row-bloquant:hover{background:var(--error-bg)}@media(max-width:600px){.entretien-type-cards{grid-template-columns:1fr}}.modal-overlay .modal-content:has(.entretien-type-cards){max-width:700px;width:95%}.modal-overlay .modal-content:has(.entretien-type-cards) .modal-body{max-height:none;overflow:visible}.modal-overlay .modal-content:has(.entretien-type-cards) .form-grid.modal-grid{grid-template-columns:1fr 1fr 1fr}.modal-overlay .modal-content:has(.entretien-type-cards) .form-field.full-width{grid-column:1 / -1}.modal-overlay .modal-content:has(.entretien-type-cards) textarea{resize:none;height:60px}@media(max-width:700px){.modal-overlay .modal-content:has(.entretien-type-cards) .form-grid.modal-grid{grid-template-columns:1fr 1fr}}.sidebar-card.image-card{padding:0;overflow:hidden}.materiel-image-container{width:100%;aspect-ratio:4/3;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.materiel-image{width:100%;height:100%;object-fit:cover}.materiel-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-tertiary)}.materiel-image-placeholder span{font-size:12px}.btn-upload-image{width:100%;padding:10px;background:var(--bg-hover);border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.btn-upload-image:hover{background:var(--border-color);color:#4ecdc4}.sidebar-card.qrcode-card{text-align:center}.qrcode-container{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0}.qrcode-placeholder{color:var(--text-tertiary);padding:10px;background:var(--bg-tertiary);border-radius:8px}.qrcode-value{font-family:monospace;font-size:13px;color:var(--text-secondary)}.stock-line.zero{opacity:.5}.stock-line.zero .stock-value{color:var(--text-tertiary)}.remarques-section{display:flex;flex-direction:column;gap:12px}.remarque-field label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.remarque-field .remarque-hint{color:var(--text-tertiary);font-style:italic}.remarque-field textarea{width:100%;padding:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px;resize:none}.etiquettes-container{display:flex;flex-direction:column;gap:8px}.etiquettes-list{display:flex;flex-wrap:wrap;gap:6px}.etiquette-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#4ecdc426;color:#4ecdc4;border-radius:4px;font-size:11px}.etiquette-tag .remove-tag{background:none;border:none;color:#4ecdc4;cursor:pointer;padding:0;margin-left:2px;font-size:14px;line-height:1;opacity:.6}.etiquette-tag .remove-tag:hover{opacity:1}.etiquette-input{width:100%;padding:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px}.etiquette-input:focus{outline:none;border-color:#4ecdc4}.etiquette-input::placeholder{color:var(--text-tertiary)}.btn-ai{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,var(--primary-light) 0%,#6366f1 100%);border:none;border-radius:6px;color:#fff;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s}.btn-ai:hover:not(:disabled){background:linear-gradient(135deg,var(--primary) 0%,#4f46e5 100%);transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-bg)}.btn-ai:disabled{opacity:.6;cursor:not-allowed}.btn-ai .spinning{animation:spin 1s linear infinite}.remarque-field textarea{width:100%;padding:10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px;resize:none}.remarque-field textarea:focus{outline:none;border-color:#4ecdc4}.modal-image-select{max-width:800px;width:95%;max-height:90vh}.modal-image-select .modal-body{display:flex;flex-direction:column;gap:20px;max-height:calc(90vh - 140px);overflow-y:auto}.image-preview-section{display:flex;justify-content:center;padding:16px;background:var(--bg-dark);border-radius:8px}.image-preview-container{width:200px;height:150px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:8px;overflow:hidden}.image-preview{max-width:100%;max-height:100%;object-fit:contain}.image-preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-tertiary)}.image-preview-placeholder svg{opacity:.5}.image-suggestions-section,.image-upload-section{background:var(--bg-card);border-radius:8px;padding:16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h4{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:500;color:var(--text-primary)}.btn-small{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--border-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.btn-small:hover:not(:disabled){background:var(--border-color)}.btn-small:disabled{opacity:.5;cursor:not-allowed}.image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:120px}.image-grid-item{position:relative;aspect-ratio:4/3;border-radius:6px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .2s;background:var(--bg-tertiary)}.image-grid-item img{width:100%;height:100%;object-fit:cover}.image-grid-item:hover{border-color:#4ecdc4;transform:scale(1.02)}.image-grid-item.selected{border-color:#4ecdc4;box-shadow:0 0 0 2px #4ecdc44d}.image-selected-badge{position:absolute;top:6px;right:6px;background:#4ecdc4;color:#000;border-radius:50%;padding:4px;display:flex;align-items:center;justify-content:center}.image-grid-loading,.image-grid-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;color:var(--text-secondary);font-size:13px}.upload-zone{display:flex;justify-content:center;padding:20px}.btn-upload{display:flex;align-items:center;gap:10px;padding:12px 24px;background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-tertiary) 100%);border:2px dashed var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s}.btn-upload:hover{border-color:#4ecdc4;background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-tertiary) 100%)}@media(max-width:600px){.image-grid{grid-template-columns:repeat(2,1fr)}.modal-image-select{max-width:100%}}.qrcode-rfid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.qrcode-rfid-header h4{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:500;color:var(--text-primary)}.btn-print-qr{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--border-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-print-qr:hover{background:var(--border-color);color:var(--text-primary)}.qrcode-container{display:flex;justify-content:center;padding:16px 0}.qrcode-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--bg-tertiary);border-radius:8px}.qrcode-wrapper .qrcode-value{font-family:JetBrains Mono,Fira Code,monospace;font-size:14px;font-weight:600;color:#4ecdc4;letter-spacing:1px}.qrcode-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;color:var(--text-tertiary)}.qrcode-placeholder span{font-size:11px}.rfid-field{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.rfid-field label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.rfid-field input{width:100%;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:JetBrains Mono,Fira Code,monospace}.rfid-field input:focus{outline:none;border-color:#4ecdc4}.rfid-field input::placeholder{color:var(--text-tertiary);font-family:inherit}@media print{body *{visibility:hidden}#qr-print-zone,#qr-print-zone *{visibility:visible}#qr-print-zone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff!important;padding:20px}#qr-print-zone .qrcode-value{color:#000!important}}.series-table .rfid-input-inline{width:140px;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:11px;font-family:JetBrains Mono,Fira Code,monospace}.series-table .rfid-input-inline:focus{outline:none;border-color:#4ecdc4}.series-table .rfid-input-inline::placeholder{color:var(--text-tertiary)}.btn-qr-small{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--border-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-qr-small:hover{background:var(--border-color);color:#4ecdc4;border-color:#4ecdc4}.modal-qr-serie{max-width:400px;width:95%}.qr-serie-content{display:flex;flex-direction:column;align-items:center;padding:20px;background:#fff;border-radius:8px}.qr-serie-info{text-align:center;margin-bottom:8px}.qr-serie-label{display:block;font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}.qr-serie-value{font-size:16px;font-weight:600;color:#000}.qr-serie-value.mono{font-family:JetBrains Mono,Fira Code,monospace}.qr-serie-code{margin:20px 0;padding:15px;background:#fff;border-radius:8px}.qr-serie-url{font-size:18px;font-weight:700;color:#000;font-family:JetBrains Mono,Fira Code,monospace;letter-spacing:1px}.qr-serie-rfid{display:flex;align-items:center;gap:6px;margin-top:12px;padding:6px 12px;background:#e0f7fa;border-radius:4px;font-size:12px;color:#00838f;font-family:JetBrains Mono,Fira Code,monospace}.actions-cell{display:flex;gap:4px;justify-content:center}.btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--border-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--border-color);color:var(--text-primary)}.btn-icon.danger:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}.modal-serie-edit{max-width:600px;width:95%}.modal-serie-edit .form-grid{display:grid;gap:16px}.modal-serie-edit .form-grid.two-cols{grid-template-columns:repeat(2,1fr)}.modal-serie-edit .form-group{display:flex;flex-direction:column;gap:6px}.modal-serie-edit .form-group.full-width{grid-column:1 / -1}.modal-serie-edit label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);font-weight:500}.modal-serie-edit input,.modal-serie-edit select,.modal-serie-edit textarea{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px}.modal-serie-edit input:focus,.modal-serie-edit select:focus,.modal-serie-edit textarea:focus{outline:none;border-color:#4ecdc4}.modal-serie-edit input:disabled{opacity:.6;cursor:not-allowed}.modal-serie-edit textarea{resize:vertical;min-height:80px}@media(max-width:600px){.modal-serie-edit .form-grid.two-cols{grid-template-columns:1fr}}.type-info-card{background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-hover) 100%)}.type-info-list{display:flex;flex-direction:column;gap:8px}.type-info-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-subtle);border-radius:6px;font-size:12px;color:var(--text-secondary)}.type-info-item svg{color:#4ecdc4;flex-shrink:0}.type-info-item.virtual{background:#a855f71a;border:1px solid rgba(168,85,247,.2)}.type-info-item.virtual svg{color:#a855f7}.type-info-item.virtual span{color:#a855f7;font-weight:500}.proprietes-card{background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-hover) 100%)}.propriete-group{margin-bottom:16px}.propriete-group:last-child{margin-bottom:0}.propriete-label{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.propriete-options{display:flex;flex-direction:column;gap:6px}.propriete-options.small{flex-direction:row;gap:8px}.propriete-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s;text-align:left}.propriete-btn:hover{background:var(--bg-subtle-hover);border-color:var(--border-color)}.propriete-btn.active{background:#4ecdc41a;border-color:#4ecdc4;color:var(--text-primary)}.propriete-btn.active svg{color:#4ecdc4}.propriete-btn.active.virtual{background:#a855f71a;border-color:#a855f7}.propriete-btn.active.virtual svg{color:#a855f7}.propriete-btn.active.sale{background:#fbbf241a;border-color:#fbbf24}.propriete-btn.active.sale svg{color:#fbbf24}.propriete-btn svg{flex-shrink:0;color:var(--text-tertiary)}.propriete-text{display:flex;flex-direction:column;gap:2px}.propriete-title{font-size:13px;font-weight:500}.propriete-desc{font-size:11px;color:var(--text-tertiary)}.propriete-btn.active .propriete-desc{color:var(--text-secondary)}.propriete-options.small .propriete-btn{flex:1;justify-content:center;padding:8px 16px;font-size:13px;font-weight:500}.proprietes-section{background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-hover) 100%)}.proprietes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.proprietes-grid .propriete-group{margin-bottom:0}.proprietes-grid .propriete-options.horizontal{flex-direction:column;gap:8px}.detail-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.back-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.header-icon{display:flex;align-items:center;color:var(--primary)}.detail-header h1{font-size:var(--text-lg);font-weight:var(--font-semibold)}.header-right{display:flex;gap:var(--spacing-sm)}.detail-tabs{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:0 var(--spacing-lg);flex-shrink:0;overflow-x:auto}.tab-btn{padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--text-primary);border-bottom-color:var(--primary)}.detail-body{display:grid;grid-template-columns:1fr 340px;gap:var(--spacing-md);padding:var(--spacing-md);overflow-y:auto;flex:1}.main-column{display:flex;flex-direction:column;gap:var(--spacing-md)}.detail-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.section-header h2{font-size:11px;font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.section-action{background:none;border:none;color:var(--primary);font-size:11px;font-weight:var(--font-medium);cursor:pointer;display:flex;align-items:center;gap:4px}.section-action:hover{color:var(--primary-light)}.section-content{padding:var(--spacing-md)}.form-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-row:last-child{margin-bottom:0}.form-group{flex:1;display:flex;flex-direction:column;gap:4px}.form-group.flex-2{flex:2}.form-group label{font-size:11px;color:var(--text-tertiary)}.form-group input,.form-group select,.form-group textarea{background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 10px;color:var(--text-primary);font-size:var(--text-sm);font-family:inherit}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--border-color)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);background:var(--bg-secondary)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.input-with-action{position:relative;display:flex;align-items:center}.input-with-action input{flex:1;padding-right:30px}.input-loader{position:absolute;right:10px;width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.inline-form{background:var(--bg-tertiary);border:1px solid var(--primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.checkbox-inline{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-secondary)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-left:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:var(--spacing-sm);text-align:left;font-size:11px;font-weight:var(--font-medium);color:var(--text-tertiary);text-transform:uppercase;border-bottom:1px solid var(--border-color)}.data-table td{padding:var(--spacing-sm);font-size:var(--text-sm);border-bottom:1px solid var(--border-color)}.badge-sm{display:inline-block;padding:2px 6px;background:var(--primary-bg);color:var(--primary);font-size:9px;font-weight:var(--font-semibold);border-radius:var(--radius-full);text-transform:uppercase}.badge-sm.ml{margin-left:var(--spacing-sm)}.icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.icon-btn.danger:hover{background:var(--error-bg);color:var(--error)}.side-column{display:flex;flex-direction:column;gap:var(--spacing-sm)}.side-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.side-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.side-card-header h3{font-size:11px;font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.side-action{background:none;border:none;color:var(--primary);font-size:10px;font-weight:var(--font-medium);cursor:pointer}.side-action:hover{color:var(--primary-light)}.side-card-content{padding:var(--spacing-sm) var(--spacing-md)}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);height:120px;background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-tertiary);cursor:pointer;font-size:var(--text-sm)}.image-placeholder:hover{border-color:var(--primary);color:var(--primary)}.side-list{display:flex;flex-direction:column}.side-list-item{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:var(--text-sm);border-bottom:1px solid var(--border-color)}.side-list-item:last-child{border-bottom:none}.side-list-meta{color:var(--text-tertiary);font-size:11px}.remark-field{margin-bottom:var(--spacing-sm)}.remark-field:last-child{margin-bottom:0}.remark-field label{display:block;font-size:11px;color:var(--text-tertiary);margin-bottom:4px}.remark-field textarea{width:100%;background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--spacing-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit;resize:vertical}.remark-field textarea:hover{border-color:var(--border-color)}.remark-field textarea:focus{outline:none;border-color:var(--primary)}.tags-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag{padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:11px;color:var(--text-secondary)}.empty-text{color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic}.bottom-section{margin-top:auto}.bottom-tabs{display:flex;align-items:center;padding:0 var(--spacing-md);border-bottom:1px solid var(--border-color)}.bottom-tab-btn{padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.bottom-tab-btn:hover{color:var(--text-primary)}.bottom-tab-btn.active{color:var(--text-primary);border-bottom-color:var(--primary)}.bottom-tabs-actions{display:flex;gap:var(--spacing-md);margin-left:auto}.bottom-content{padding:var(--spacing-lg)}.empty-state-sm{text-align:center;padding:var(--spacing-lg)}.empty-state-sm p{font-weight:var(--font-medium);margin-bottom:var(--spacing-xs)}.empty-state-sm span{display:block;font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.btn-sm{padding:6px 12px;font-size:13px}.editing-row{background:var(--primary-bg)}.editing-row td{padding:var(--spacing-xs)}.editing-row input{width:100%;padding:6px 8px;background:var(--bg-tertiary);border:1px solid var(--primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm)}.edit-cell{display:flex;gap:4px}.edit-cell input{flex:1}.action-btns{display:flex;gap:4px}.icon-btn.success{color:var(--success)}.icon-btn.success:hover{background:var(--success-bg)}.data-table tr{cursor:pointer}.data-table tr:hover{background:var(--bg-hover)}.import-export{padding:0}.import-step{display:flex;flex-direction:column;gap:20px}.step-header{display:flex;flex-direction:column;gap:4px}.step-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.step-header p{margin:0;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.btn-back-import{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;padding:0;margin-bottom:4px}.btn-back-import:hover{color:var(--text-primary)}.entity-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.entity-card{background:var(--bg-secondary, #fff);border:1px solid var(--border-color);border-radius:10px;padding:24px;cursor:pointer;transition:all .2s;position:relative}.entity-card:hover{border-color:var(--text-tertiary);transform:translateY(-2px)}.entity-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.entity-card h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary)}.entity-card p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.4}.entity-arrow{position:absolute;top:24px;right:24px;color:var(--text-tertiary)}.entity-card:hover .entity-arrow{color:var(--text-primary)}.upload-zone{border:2px dashed var(--border-color);border-radius:12px;padding:60px 40px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:all .2s;color:var(--text-secondary)}.upload-zone:hover,.upload-zone.dragover{border-color:var(--primary, #0066CC);background:var(--primary-bg, rgba(0,102,204,.06));color:var(--primary, #0066CC)}.upload-zone.loading{cursor:wait;border-color:var(--text-tertiary)}.upload-main{font-size:16px;font-weight:500;color:var(--text-primary)}.upload-sub{font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}.mapping-layout{display:flex;flex-direction:column;gap:20px}.mapping-table-wrap{overflow-x:auto}.mapping-table{width:100%;border-collapse:collapse;font-size:13px}.mapping-table th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--text-secondary);padding:8px 12px;background:var(--bg-tertiary, #F5F5F7);border-bottom:1px solid var(--border-color)}.mapping-table td{padding:8px 12px;border-bottom:1px solid var(--bg-tertiary, #F5F5F7)}.mapping-table tr.missing-required{background:var(--error-bg, rgba(255,59,48,.08))}.field-name{font-weight:500;color:var(--text-primary);white-space:nowrap}.required-star{color:var(--error, #FF3B30);margin-left:2px}.mapping-select{width:100%;background:var(--bg-tertiary, #F5F5F7);border:1px solid var(--border-color);border-radius:4px;padding:6px 10px;color:var(--text-primary);font-size:13px;outline:none}.mapping-select:focus{border-color:var(--primary, #0066CC)}.preview-cell{max-width:200px}.preview-values{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.preview-empty{color:var(--text-tertiary)}.preview-section h3{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 8px}.preview-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:6px}.preview-table{width:100%;border-collapse:collapse;font-size:12px}.preview-table th{background:var(--bg-tertiary, #F5F5F7);padding:6px 10px;text-align:left;color:var(--text-secondary);font-size:11px;border-bottom:1px solid var(--border-color);white-space:nowrap}.preview-table td{padding:6px 10px;border-bottom:1px solid var(--bg-tertiary, #F5F5F7);color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-num{color:var(--text-tertiary);font-size:11px}.mapping-actions{display:flex;align-items:center;gap:12px;padding-top:8px}.btn-import{display:flex;align-items:center;gap:6px}.mapping-warning{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--warning, #FF9500)}.import-progress{align-items:center;justify-content:center;padding:80px 0;color:var(--text-secondary)}.import-progress h2{color:var(--text-primary)}.import-result{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 0}.result-icon.success{color:var(--success, #28A745)}.result-icon.warning{color:var(--warning, #FF9500)}.import-result h2{margin:0;color:var(--text-primary)}.result-stats{display:flex;gap:24px;margin:8px 0}.result-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-num{font-size:28px;font-weight:700}.stat-label{font-size:12px;color:var(--text-secondary)}.result-stat.success .stat-num{color:var(--success, #28A745)}.result-stat.warning .stat-num{color:var(--warning, #FF9500)}.result-stat.neutral .stat-num{color:var(--text-secondary)}.result-errors{width:100%;max-width:600px;background:var(--error-bg, rgba(255,59,48,.08));border:1px solid var(--error-bg, rgba(255,59,48,.08));border-radius:8px;padding:12px 16px}.result-errors h3{margin:0 0 8px;font-size:13px;color:var(--error, #FF3B30);display:flex;align-items:center;gap:6px}.errors-list{max-height:200px;overflow-y:auto}.error-line{display:flex;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px solid var(--error-bg, rgba(255,59,48,.08))}.error-row{color:var(--error, #FF3B30);font-weight:600;white-space:nowrap}.error-msg{color:var(--text-secondary)}.result-actions{margin-top:12px;display:flex;gap:10px}.depot-selector{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary, #F5F5F7);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;color:var(--text-secondary);font-size:13px}.depot-selector label{font-weight:500;color:var(--text-primary);white-space:nowrap}.depot-select{max-width:250px}.progress-bar-wrap{display:flex;align-items:center;gap:12px;width:100%;max-width:400px;margin-top:8px}.progress-bar{flex:1;height:8px;background:var(--bg-tertiary, #F5F5F7);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;transition:width .3s ease}.progress-pct{font-size:14px;font-weight:600;color:var(--text-primary);min-width:40px;text-align:right}.import-error{display:flex;align-items:center;gap:8px;background:var(--error-bg, rgba(255,59,48,.08));border:1px solid var(--error-bg, rgba(255,59,48,.08));border-radius:6px;padding:10px 14px;font-size:13px;color:var(--error, #FF3B30)}@media(max-width:900px){.entity-cards{grid-template-columns:1fr}}.wysi-editor{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:500px;background:var(--bg-tertiary, #f5f5f7);border-radius:var(--radius-md, 10px);overflow:hidden;border:1px solid var(--separator)}.wysi-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-solid, #fff);border-bottom:1px solid var(--separator);gap:8px}.wysi-toolbar-left,.wysi-toolbar-right{display:flex;align-items:center;gap:6px}.wysi-select{padding:6px 10px;font-size:13px;border:1px solid var(--separator);border-radius:6px;background:var(--bg-tertiary);color:var(--label);min-width:220px}.wysi-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;font-size:12.5px;font-weight:500;color:var(--label-3);background:var(--surface-solid);border:1px solid var(--separator);border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.wysi-btn:hover{background:var(--bg-hover);color:var(--label)}.wysi-btn:disabled{opacity:.4;cursor:not-allowed}.wysi-btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.wysi-btn.primary:hover{filter:brightness(1.1)}.wysi-btn.danger:hover{background:#ff3b301a;color:var(--red)}.wysi-unsaved{font-size:11px;color:var(--orange, #F59E0B);font-weight:500;padding:4px 8px;background:#f59e0b1a;border-radius:4px}.wysi-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:var(--surface-solid);border:1px solid var(--separator);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:100;min-width:180px;padding:4px}.wysi-dropdown button{display:block;width:100%;padding:7px 12px;font-size:13px;color:var(--label);background:none;border:none;border-radius:5px;cursor:pointer;text-align:left}.wysi-dropdown button:hover{background:var(--blue);color:#fff}.wysi-body{display:flex;flex:1;min-height:0}.wysi-icon-sidebar{width:48px;background:#2c2c2e;display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:4px;flex-shrink:0}.wysi-icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:none;color:#8e8e93;cursor:pointer;transition:all .15s}.wysi-icon-btn:hover{color:#fff;background:#ffffff1a}.wysi-icon-btn.active{color:var(--blue);background:#007aff26;border-left:2px solid var(--blue)}.wysi-document-area{flex:1;overflow-y:auto;padding:24px;display:flex;justify-content:center}.wysi-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--label-4);width:100%;min-height:400px;border:2px dashed var(--separator);border-radius:12px}.wysi-document{width:595px;background:#fff;box-shadow:0 2px 12px #0000001a;border-radius:4px;padding:20px;min-height:842px;display:flex;flex-direction:column;gap:2px}.wysi-module{position:relative;border:1px solid transparent;border-radius:4px;transition:all .15s;cursor:pointer}.wysi-module:hover{border-color:#007aff4d}.wysi-module.selected{border-color:var(--blue);box-shadow:0 0 0 2px #007aff26}.wysi-module.drag-over{border-top:2px solid var(--blue)}.wysi-module-overlay{position:absolute;top:-1px;left:-1px;right:-1px;display:flex;align-items:center;gap:6px;padding:2px 6px;background:var(--blue);color:#fff;font-size:10px;font-weight:600;border-radius:4px 4px 0 0;opacity:0;transition:opacity .15s;z-index:5}.wysi-module:hover .wysi-module-overlay,.wysi-module.selected .wysi-module-overlay{opacity:1}.wysi-grip{cursor:grab}.wysi-module-label{flex:1;display:flex;align-items:center;gap:4px}.wysi-module-del{background:none;border:none;color:#ffffffb3;cursor:pointer;padding:2px}.wysi-module-del:hover{color:#fff}.wysi-module-preview{padding:8px 10px;font-size:11px;color:var(--label-3);min-height:28px}.wysi-prev-header{display:flex;justify-content:space-between;padding:4px 0}.wysi-prev-company{font-size:14px;font-weight:700;color:var(--blue)}.wysi-prev-doctype{font-size:12px;font-weight:600;color:var(--label)}.wysi-prev-infos{display:flex;gap:8px}.wysi-prev-box{flex:1;border:1px solid #e5e5e5;border-radius:4px;padding:6px 8px;font-size:10px;color:var(--label-4);font-weight:600}.wysi-prev-texte{font-size:11px;color:var(--label-3);line-height:1.5}.wysi-prev-table{overflow:hidden}.wysi-prev-table table{width:100%;font-size:9px;border-collapse:collapse}.wysi-prev-table th{background:#f5f5f7;padding:3px 6px;text-align:left;font-weight:600;border-bottom:1px solid #ddd}.wysi-prev-table td{padding:3px 6px;border-bottom:1px solid #eee}.wysi-prev-totaux{text-align:right;font-size:11px;font-weight:600}.wysi-prev-signature{font-size:11px;color:var(--label-3)}.wysi-prev-bank{font-size:10px;color:var(--label-4)}.wysi-prev-footer{font-size:9px;color:var(--label-4);border-top:1px dashed var(--blue);background:#007aff08;border-radius:4px;padding:6px 8px}.wysi-prev-saut{text-align:center;font-size:10px;color:var(--label-4);padding:6px 0;border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.wysi-prev-image{text-align:center;color:var(--label-4)}.wysi-right-panel{width:320px;background:var(--surface-solid, #fff);border-left:1px solid var(--separator);overflow-y:auto;flex-shrink:0}.wysi-panel-title{font-size:12px;font-weight:700;color:var(--label-3);text-transform:uppercase;letter-spacing:.5px;padding:14px 16px 8px}.wysi-palette{padding-bottom:16px}.wysi-cat-label{font-size:10px;font-weight:700;color:var(--label-4);text-transform:uppercase;letter-spacing:.4px;padding:10px 16px 4px}.wysi-cat-items{padding:0 8px}.wysi-bloc-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:13px;color:var(--label);border-radius:6px;cursor:grab;transition:all .1s}.wysi-bloc-item:hover{background:#007aff0f;color:var(--blue)}.wysi-options{display:flex;flex-direction:column;height:100%}.wysi-options-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--separator);font-size:13px;font-weight:600;color:var(--label)}.wysi-options-header span{display:flex;align-items:center;gap:6px}.wysi-close-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--label-3);cursor:pointer}.wysi-close-btn:hover{background:var(--separator)}.wysi-options-body{padding:12px 16px;flex:1;overflow-y:auto}.wysi-styles-panel{padding-bottom:16px}.wysi-section{padding:0 16px;margin-bottom:16px}.wysi-section-title{font-size:11px;font-weight:700;color:var(--label-4);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;padding-top:4px}.wysi-field{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.wysi-field>span:first-child{font-size:11px;font-weight:600;color:var(--label-4)}.wysi-field input[type=text],.wysi-field input[type=number],.wysi-field textarea,.wysi-field select{padding:6px 8px;font-size:13px;border:1px solid var(--separator);border-radius:5px;background:var(--bg-tertiary);color:var(--label);font-family:inherit}.wysi-field input:focus,.wysi-field textarea:focus,.wysi-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #007aff1f}.wysi-field input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--separator);border-radius:4px;cursor:pointer}.wysi-field input[type=range]{width:100%}.wysi-range-val{font-size:11px;color:var(--label-4)}.wysi-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--label);padding:4px 0;cursor:pointer}.wysi-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue)}.wysi-margins-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wysi-margins-grid label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--label-4)}.wysi-margins-grid input{padding:5px 6px;font-size:12px;border:1px solid var(--separator);border-radius:4px;background:var(--bg-tertiary);color:var(--label);width:100%}.reglages-page{padding:0;flex:1;overflow:hidden;display:flex;flex-direction:column;background:var(--bg)}.reglages-page .page-header{padding:24px 30px;border-bottom:1px solid var(--border-color)}.reglages-page .page-header h1{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:600;color:var(--text-primary);margin:0}.reglages-page .reglages-layout{display:grid;grid-template-columns:250px 1fr;flex:1;overflow:hidden}.reglages-page .reglages-sidebar{background:var(--bg-card);border-right:1px solid var(--border-color);padding:12px 0;overflow-y:auto}.reglages-page .sidebar-group{margin-bottom:4px}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--text-tertiary);border:1px dashed var(--bg-subtle-active);border-radius:8px;margin-top:16px}.placeholder-content p{font-size:14px;color:var(--text-tertiary)}.reglages-page .sidebar-group-label{padding:12px 24px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.reglages-page .sidebar-tab{display:flex;align-items:center;gap:12px;width:100%;padding:12px 24px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s;text-align:left}.reglages-page .sidebar-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.reglages-page .sidebar-tab.active{background:var(--bg-hover);color:var(--primary);border-left:3px solid var(--primary)}.reglages-page .reglages-content{padding:30px;overflow-y:auto}.reglages-page .settings-section{max-width:800px}.reglages-page .section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.reglages-page .section-header h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.reglages-page .section-header p{font-size:14px;color:var(--text-secondary);margin:0}.reglages-page .btn-add{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.reglages-page .btn-add:hover{filter:brightness(.9)}.reglages-page .items-list{display:flex;flex-direction:column;gap:8px}.reglages-page .item-row{display:flex;align-items:center;gap:16px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;transition:all .2s}.reglages-page .item-row:hover{border-color:var(--border-color)}.reglages-page .item-row.inactive{opacity:.5}.reglages-page .item-row.drag-over-item{border-top:2px solid var(--primary, #007AFF)}.reglages-page .item-row[draggable=true]{cursor:grab}.reglages-page .item-row.active-role{border-color:var(--primary, #007AFF);background:#007aff0d}.reglages-page .item-row[draggable=true]:active{cursor:grabbing}.reglages-page .item-order{display:flex;flex-direction:column;gap:2px}.reglages-page .item-order button{background:transparent;border:none;color:var(--text-secondary);padding:2px;cursor:pointer;border-radius:4px}.reglages-page .item-order button:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.reglages-page .item-order button:disabled{opacity:.3;cursor:not-allowed}.reglages-page .item-info{flex:1;display:flex;align-items:center;gap:12px}.reglages-page .item-code{font-weight:600;color:var(--primary);font-size:13px;min-width:60px}.reglages-page .item-code-small{font-size:11px;color:var(--text-secondary);font-family:monospace}.reglages-page .item-name{font-weight:500;color:var(--text-primary)}.reglages-page .item-detail{font-size:13px;color:var(--text-secondary)}.reglages-page .item-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:13px;font-weight:500}.reglages-page .item-status{min-width:70px}.reglages-page .badge-actif{font-size:11px;color:var(--success)}.reglages-page .badge-inactif{font-size:11px;color:var(--error)}.reglages-page .item-actions{display:flex;gap:8px}.reglages-page .item-actions button{padding:6px;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.reglages-page .item-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.reglages-page .item-actions button.danger:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}.reglages-page .empty-text{padding:40px;text-align:center;color:var(--text-secondary);font-style:italic}.reglages-page .item-tarif{display:flex;align-items:center;gap:8px;min-width:140px}.reglages-page .tarif-value{font-size:13px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.reglages-page .badge-tarif-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.reglages-page .badge-tarif-type.tarif-jour{background:#3b82f626;color:#60a5fa}.reglages-page .badge-tarif-type.tarif-heure{background:#10b98126;color:#34d399}.reglages-page .badge-tarif-type.tarif-forfait{background:#a855f726;color:#c084fc}.reglages-page .badge-tarif-type.tarif-km{background:#fbbf2426;color:#fbbf24}.reglages-page .badge-tarif-type.tarif-repas{background:#f9731626;color:#fb923c}.reglages-page .badge-tarif-type.tarif-nuit{background:#8b5cf626;color:#a78bfa}.reglages-page .modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.reglages-page .modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:hidden}.reglages-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color)}.reglages-page .modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.reglages-page .close-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.reglages-page .modal-body{padding:24px;overflow-y:auto}.reglages-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.reglages-page .form-group{display:flex;flex-direction:column;gap:6px}.reglages-page .form-group.span-2{grid-column:span 2}.reglages-page .form-group label{font-size:12px;color:var(--text-secondary)}.reglages-page .input{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px}.reglages-page .input:focus{outline:none;border-color:var(--primary)}.reglages-page .checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px!important;color:var(--text-primary)!important;cursor:pointer}.reglages-page .checkbox-label input{width:16px;height:16px;accent-color:var(--primary)}.reglages-page .color-presets{display:flex;gap:8px;flex-wrap:wrap}.reglages-page .color-preset{width:36px;height:36px;border-radius:6px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.reglages-page .color-preset:hover{transform:scale(1.1)}.reglages-page .color-preset.active{border-width:2px}.reglages-page .preview-badge{display:inline-block;padding:6px 14px;border-radius:4px;font-size:13px;font-weight:500}.reglages-page .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color)}.reglages-page .btn-secondary{padding:10px 20px;background:transparent;border:1px solid var(--border-color);color:var(--text-primary);border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.reglages-page .btn-secondary:hover{background:var(--bg-hover)}.reglages-page .btn-primary{padding:10px 20px;background:var(--primary);border:none;color:#fff;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.reglages-page .btn-primary:hover{filter:brightness(.9)}.reglages-page .page-loading{display:flex;align-items:center;justify-content:center;height:50vh;color:var(--text-secondary)}@media(max-width:768px){.reglages-page .reglages-layout{grid-template-columns:1fr}.reglages-page .reglages-sidebar{display:flex;overflow-x:auto;padding:0;border-right:none;border-bottom:1px solid var(--border-color)}.reglages-page .sidebar-tab{white-space:nowrap;border-left:none!important;border-bottom:3px solid transparent}.reglages-page .sidebar-tab.active{border-bottom-color:var(--primary)}}.categories-tree-list{background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.cat-tree{padding:8px 0}.cat-tree-row{display:flex;align-items:center;gap:8px;padding:10px 12px;transition:background .15s}.cat-tree-row:hover{background:#0066cc0f}.cat-tree-toggle{display:flex;align-items:center;justify-content:center;width:20px;cursor:pointer;color:var(--text-tertiary)}.cat-tree-toggle:hover{color:var(--text-primary)}.cat-folder-icon{color:var(--warning);flex-shrink:0}.cat-tree-name{flex:1;color:var(--text-primary);font-size:14px}.cat-tree-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.cat-tree-row:hover .cat-tree-actions{opacity:1}.cat-tree-actions button{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);padding:4px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.cat-tree-actions button:hover{background:#0066cc1a;border-color:var(--primary);color:var(--primary)}.cat-tree-actions button.danger:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}.cat-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--border-color);cursor:grab;padding:0 4px;margin-right:4px}.cat-drag-handle:hover{color:var(--text-secondary)}.cat-tree-row[draggable=true]{cursor:grab}.cat-tree-row[draggable=true]:active{cursor:grabbing}.cat-tree-row.drag-over{background:#0066cc1f!important;border:2px dashed var(--primary);border-radius:4px}.cat-root-drop{display:none;padding:12px 16px;margin:8px 12px;border:2px dashed var(--border-color);border-radius:6px;color:var(--text-tertiary);font-size:13px;text-align:center;transition:all .2s}.cat-root-drop.active{display:block}.cat-root-drop:hover{border-color:var(--primary);background:#0066cc0f;color:var(--primary)}.cat-grille-badge{font-size:10px;padding:1px 6px;border:1px solid;border-radius:10px;font-weight:500;margin-left:4px;white-space:nowrap}.societe-settings{display:flex;flex-direction:column;gap:20px}.societe-header{display:flex;justify-content:space-between;align-items:center}.societe-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.societe-loading{display:flex;align-items:center;gap:8px;padding:40px;color:var(--text-secondary);justify-content:center}.societe-sections{display:flex;gap:4px;border-bottom:1px solid var(--bg-subtle-active);padding-bottom:0}.section-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:13px;border-bottom:2px solid transparent;transition:all .2s}.section-tab:hover{color:var(--text-primary)}.section-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.societe-form{display:flex;flex-direction:column;gap:24px}.form-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--bg-subtle)}.societe-settings .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.societe-settings .form-grid .form-group.full{grid-column:1 / -1}.societe-settings .form-grid .form-group label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.societe-settings .form-grid .form-group input,.societe-settings .form-grid .form-group select,.societe-settings .form-grid .form-group textarea{width:100%;padding:8px 12px;background:var(--bg-subtle);border:1px solid var(--bg-subtle-active);border-radius:6px;color:var(--text-primary);font-size:13px;transition:border-color .2s}.societe-settings .form-grid .form-group input:focus,.societe-settings .form-grid .form-group select:focus,.societe-settings .form-grid .form-group textarea:focus{outline:none;border-color:var(--primary)}.societe-settings .form-grid .form-group textarea{resize:vertical;font-family:inherit}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-hint{display:block;font-size:11px;color:var(--text-tertiary);margin-top:4px}.section-desc{font-size:13px;color:var(--text-secondary);margin:0 0 16px}.agences-numerotation{display:flex;flex-direction:column;gap:16px}.agence-numerotation-card{background:var(--bg-subtle);border:1px solid var(--bg-subtle-active);border-radius:8px;padding:16px}.agence-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text-primary);font-size:14px}.agence-code{color:var(--text-tertiary);font-weight:400;font-size:12px}.agence-card-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.agence-card-fields .form-group label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.agence-card-fields .form-group input{width:100%;padding:8px 12px;background:var(--bg-subtle);border:1px solid var(--bg-subtle-active);border-radius:6px;color:var(--text-primary);font-size:13px}.agence-card-fields .form-group input:focus{outline:none;border-color:var(--primary)}.agence-card-preview{font-size:12px;color:var(--text-tertiary)}.agence-card-preview code{background:var(--primary-bg);color:var(--primary);padding:2px 8px;border-radius:4px;font-size:12px}.form-section-title{border-top:1px solid var(--border-color, rgba(60,60,67,.12));padding-top:12px;margin-top:4px}.form-section-title span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary, #8e8e93)}.label-hint{font-size:11px;font-weight:400;color:var(--text-tertiary, #8e8e93);margin-left:4px}.type-color-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}.grille-row .item-info{display:flex;flex-direction:column;gap:6px}.grille-paliers-preview{display:flex;flex-wrap:wrap;gap:4px}.palier-chip{display:inline-block;padding:2px 8px;background:var(--bg-tertiary, #f5f5f7);border-radius:10px;font-size:11px;color:var(--label-secondary, #666);font-variant-numeric:tabular-nums}.grille-usage{font-size:11px;color:var(--label-tertiary, #999)}.grille-modal{max-width:520px}.grille-paliers-section{margin-top:16px}.grille-paliers-section h3{font-size:13px;font-weight:600;margin-bottom:8px}.paliers-table{width:100%;border-collapse:collapse;margin-bottom:8px}.paliers-table th{text-align:left;font-size:11px;font-weight:600;color:var(--label-secondary, #666);padding:6px 8px;border-bottom:1px solid var(--separator, #e5e5e5)}.paliers-table td{padding:4px 8px}.paliers-table td input{width:100%;padding:6px 8px;border:1px solid var(--separator, #e5e5e5);border-radius:6px;font-size:13px;text-align:right}.paliers-table td input:focus{border-color:var(--cyan, #007AFF);outline:none;box-shadow:0 0 0 2px #007aff26}.btn-link{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--cyan, #007AFF);font-size:13px;cursor:pointer;padding:4px 0}.btn-link:hover{text-decoration:underline}.btn-icon{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--label-secondary, #666)}.btn-icon:hover{background:var(--bg-hover, rgba(0,0,0,.04))}.btn-icon.danger{color:var(--red, #ff3b30)}.cat-grille-select{font-size:11px;padding:2px 6px;border:1px solid var(--separator, #e5e5e5);border-radius:4px;background:#fff;color:var(--label-secondary, #666);max-width:160px}.cat-grille-select.inherited{font-style:italic;color:var(--label-tertiary, #999);border-style:dashed}.cat-grille-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:1px 6px;border-radius:8px;background:var(--bg-tertiary, #f5f5f7);color:var(--label-secondary, #666)}.cat-grille-badge .cat-grille-dot{width:6px;height:6px;border-radius:50%;display:inline-block}@media(max-width:768px){.societe-settings .form-grid{grid-template-columns:1fr}.societe-sections{overflow-x:auto}}.admin-layout{display:flex;height:100vh;background:#f0f1f3;font-family:-apple-system,SF Pro Text,Helvetica Neue,sans-serif}.admin-sidebar{width:240px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column;flex-shrink:0}.admin-sidebar-logo{display:flex;align-items:center;gap:10px;padding:18px 16px;font-size:16px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.08)}.admin-logo-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#e74c3c,#c0392b);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.admin-nav{flex:1;padding:12px 8px}.admin-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;border-radius:8px;cursor:pointer;color:#fff9;transition:all .15s}.admin-nav-item:hover{background:#ffffff14;color:#fff}.admin-nav-item.active{background:#e74c3c33;color:#e74c3c}.admin-sidebar-bottom{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08)}.admin-user-info{flex:1;font-size:13px}.admin-logout{background:none;border:none;color:#fff6;cursor:pointer;padding:6px}.admin-logout:hover{color:#e74c3c}.admin-content{flex:1;overflow-y:auto;padding:24px 32px}.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px 18px}.admin-card-title{font-size:13px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.5px;margin:0 0 14px}.admin-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tenant-card{cursor:pointer;transition:all .15s}.tenant-card:hover{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.tenant-card-main{display:flex;align-items:center;gap:12px}.tenant-avatar{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tenant-info{flex:1}.tenant-name{font-size:15px;font-weight:600;color:#1d1d1f}.tenant-slug{font-size:12px;color:#888;margin-top:1px}.tenant-plan{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px}.tenant-inactive{font-size:10px;padding:2px 8px;border-radius:4px;background:#fee2e2;color:#dc2626;font-weight:600}.tenant-card-stats{display:flex;gap:16px;margin-top:10px;padding-top:10px;border-top:1px solid #f3f4f6}.tenant-stat{display:flex;align-items:center;gap:4px;font-size:12px;color:#888}.admin-search{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#888}.admin-search input{flex:1;border:none;outline:none;font-size:14px;color:#1d1d1f;background:none}.admin-search button{background:none;border:none;cursor:pointer;color:#888}.admin-form{display:flex;flex-direction:column;gap:12px}.admin-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#666}.admin-form input,.admin-form select{padding:8px 10px;font-size:13px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;color:#1d1d1f}.admin-form input:focus,.admin-form select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;border:1px solid #e5e7eb;border-radius:7px;background:#fff;color:#333;cursor:pointer;transition:all .15s}.admin-btn:hover{background:#f3f4f6}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn.primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.admin-btn.primary:hover{background:#2563eb}.admin-btn.danger{color:#dc2626}.admin-btn.danger:hover{background:#fee2e2}.admin-modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.admin-module-item{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:500;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s;color:#888}.admin-module-item:hover{border-color:#3b82f6}.admin-module-item.active{border-color:#22c55e;color:#1d1d1f;background:#22c55e0a}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:600;color:#888;text-transform:uppercase;border-bottom:1px solid #e5e7eb}.admin-table td{padding:10px;border-bottom:1px solid #f3f4f6}.admin-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-modal{background:#fff;border-radius:14px;padding:24px;width:440px;max-width:90vw;box-shadow:0 20px 60px #0003}.admin-modal h2{font-size:17px;font-weight:700;margin:0 0 16px}.admin-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
