:root{--t-bg:#f3f5f8;--t-surface:#fff;--t-surface-2:#f1f3f7;--t-border:#e2e6ed;--t-text:#182233;--t-text-dim:#6b7686;--t-accent:#ff6a1a;--t-accent-soft:#ffe7d6;--t-accent-2:#c24e00;--t-danger:#d9363e;--t-danger-soft:#fbe7e8;--t-success:#12875a;--t-success-soft:#e1f5ec;--t-info:#2461c7;--t-info-soft:#e7effc;--t-sidebar-bg:#101d34;--t-sidebar-text:#eaeef6;--t-sidebar-text-dim:#8c99b5;--t-sidebar-active:#ffffff12;--t-radius:12px;--t-shadow:0 1px 2px #1018280a, 0 2px 6px #1018280d}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--t-bg);color:var(--t-text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,sans-serif}h1,h2,h3,.stat-num{font-family:Manrope,sans-serif;font-weight:800}.brand,.nav-item span,.step-label{text-transform:uppercase;letter-spacing:.03em;font-family:Manrope,sans-serif;font-weight:700}.mono{font-family:JetBrains Mono,monospace}button{cursor:pointer;font-family:inherit}a{color:inherit}#app{min-height:100vh;display:flex}#sidebar{background:var(--t-sidebar-bg);flex-direction:column;flex-shrink:0;width:230px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}body.is-planning-view #sidebar{display:none}body.is-planning-view.sidebar-forced #sidebar{display:flex}.planning-menu-toggle{z-index:500;background:var(--t-sidebar-bg);color:#fff;cursor:pointer;border:none;border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:none;position:fixed;top:14px;left:14px;box-shadow:0 4px 12px #0003}body.is-planning-view .planning-menu-toggle{display:flex}.brand{color:var(--t-accent);align-items:center;gap:8px;margin:4px 6px 22px;font-size:20px;display:flex}.user-menu-wrap{position:relative}.user-menu-btn{text-align:left;background:0 0;border:none;width:100%;padding:0}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.user-menu-chevron{opacity:.7;margin-left:auto;font-size:11px}.user-menu{z-index:50;background:var(--t-surface);border:1px solid var(--t-border);box-shadow:var(--t-shadow);border-radius:8px;margin-top:4px;display:none;position:absolute;top:100%;left:6px;right:6px;overflow:hidden}.user-menu.open{display:block}.user-menu button{text-align:left;width:100%;color:var(--t-text);background:0 0;border:none;padding:10px 12px;font-size:13px;font-weight:500}.user-menu button:hover{background:var(--t-surface-2)}#sidebar .user-menu-name,#sidebar .user-menu-chevron{color:var(--t-sidebar-text)}#topbar .user-menu-name,#topbar .user-menu-chevron{color:var(--t-text)}#sidebar .brand{color:var(--t-sidebar-text)}.brand-dot{background:var(--t-accent);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #ff6a1a40}.nav-items{flex-direction:column;flex:1;gap:3px;display:flex}.nav-item{color:var(--t-sidebar-text-dim);letter-spacing:.02em;text-transform:uppercase;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;font-weight:600;display:flex}.nav-item svg{flex-shrink:0;width:18px;height:18px}.nav-item.active{background:var(--t-sidebar-active);color:var(--t-sidebar-text)}.nav-item.active svg{color:var(--t-accent)}.sidebar-foot{color:var(--t-sidebar-text-dim);border-top:1px solid #ffffff14;margin-top:10px;padding:10px 6px 0;font-size:11px}#main{flex-direction:column;flex:1;min-width:0;display:flex}#topbar{background:var(--t-surface);border-bottom:1px solid var(--t-border);z-index:5;justify-content:space-between;align-items:center;padding:14px 16px;display:none;position:sticky;top:0}#topbar .brand{color:var(--t-text);margin:0;font-size:17px}#topbar .brand-dot{background:var(--t-accent)}#content{width:100%;max-width:1080px;margin:0 auto;padding:22px 26px 120px;transition:max-width .15s}#content.is-planning{margin-top:-14px;padding-top:0}#content.is-planning .plus-subnav{margin-bottom:4px;padding-bottom:3px}#content.is-planning .page-head{margin-bottom:2px}#content.content-wide{max-width:1600px}#content.is-planning{max-width:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.page-head h1{color:var(--t-text);text-transform:none;letter-spacing:0;margin:0;font-size:23px}.btn{border:1px solid var(--t-border);background:var(--t-surface);color:var(--t-text);border-radius:8px;align-items:center;gap:6px;padding:10px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.btn.primary{background:var(--t-accent);border-color:var(--t-accent);color:#fff}.btn.ghost{background:0 0}.btn.small{padding:6px 10px;font-size:12px}.btn.danger{border-color:var(--t-danger);color:var(--t-danger);background:0 0}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.quick-actions{flex-direction:column;gap:8px;margin-bottom:22px;display:flex}.quick-action{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow);text-align:left;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.quick-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.quick-icon svg{width:20px;height:20px}.quick-text{flex-direction:column;flex:1;display:flex}.quick-text b{font-family:Manrope,sans-serif;font-size:14px}.quick-text small{color:var(--t-text-dim);text-transform:none;margin-top:2px;font-size:12px;font-weight:400}.quick-chevron{color:var(--t-text-dim);font-size:20px}.stat-card{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow);padding:16px;position:relative;overflow:hidden}.quick-action{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow);text-align:left;width:100%;padding:14px 16px}.dash-topbar{margin-bottom:16px}.dash-search-wrap{position:relative}.dash-search-wrap svg{display:none}.dash-search-wrap input{width:100%}.dash-greetrow{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:18px;display:flex}.dash-greeting{color:var(--t-text);text-transform:none;letter-spacing:0;margin:0;font-size:21px}.dash-subtitle,.dash-date-pill{display:none}.dash-columns3{display:block}.dash-revenue-full{display:none}.dash-revenue-controls{align-items:center;gap:14px;display:flex}.dash-revenue-card{position:relative}#revenueTooltip{background:var(--t-text);color:#fff;pointer-events:none;z-index:30;white-space:nowrap;border-radius:8px;padding:7px 11px;font-size:12px;line-height:1.5;display:none;position:absolute;box-shadow:0 6px 16px #00000040}#revenueTooltip b{font-weight:700}.dash-revenue-total{color:var(--t-text-dim);font-size:13px}.dash-revenue-total b{color:var(--t-text);font-family:JetBrains Mono,monospace;font-size:14px}.dash-period-select{border-radius:8px;width:auto;padding:7px 10px;font-size:12.5px}.topclient-row{border-bottom:1px solid var(--t-border);align-items:center;gap:12px;padding:12px 0;display:flex}.topclient-row:last-child{border-bottom:none}.topclient-rank{background:var(--t-surface-2);width:24px;height:24px;color:var(--t-text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Manrope,sans-serif;font-size:11.5px;font-weight:700;display:flex}.topclient-mid{flex:1;min-width:0}.topclient-name{color:var(--t-text);font-size:13.5px;font-weight:600}.topclient-amount{color:var(--t-text);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:700}.dash-col+.dash-col{margin-top:18px}.stat-card-top{display:none}.section-title-row{justify-content:space-between;align-items:center;margin-top:20px;margin-bottom:10px;display:flex}.section-link{color:var(--t-accent-2);font-size:12.5px;font-weight:600;text-decoration:none}.activity-card{padding:6px 16px}.activity-row{border-bottom:1px solid var(--t-border);align-items:center;gap:12px;padding:12px 0;display:flex}.activity-row:last-child{border-bottom:none}.activity-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.activity-icon svg{width:17px;height:17px}.activity-icon.success{background:var(--t-success-soft);color:var(--t-success)}.activity-icon.info{background:var(--t-info-soft);color:var(--t-info)}.activity-icon.warn{background:var(--t-accent-soft);color:var(--t-accent-2)}.avatar-circle{background:var(--t-sidebar-bg);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-family:Manrope,sans-serif;font-size:12.5px;font-weight:700;display:flex}.activity-mid{flex:1;min-width:0}.activity-label{color:var(--t-text);font-size:13.5px;font-weight:600}.activity-sub{color:var(--t-text-dim);margin-top:1px;font-size:12px}.activity-right{text-align:right;flex-shrink:0}.activity-amount{color:var(--t-text);font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:700}.activity-time{color:var(--t-text-dim);margin-top:1px;font-size:11px}.summary-row{color:var(--t-text-dim);justify-content:space-between;align-items:center;font-size:13px;display:flex}.reglement-bulk-bar{background:var(--t-sidebar-bg);color:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;font-size:13.5px;display:flex;position:sticky;bottom:16px;box-shadow:0 10px 30px #00000040}.planning-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.planning-unscheduled{width:100%}.planning-unsched-list{background:var(--t-surface-2);border-radius:10px;flex-direction:column;gap:8px;min-height:70px;padding:8px;display:flex}.planning-week{width:100%}.planning-scroll{padding-right:4px}.planning-week-block{margin-bottom:26px}.planning-week-block:last-child{margin-bottom:4px}.planning-week-label{text-align:center;background:var(--t-bg);z-index:4;margin-bottom:10px;padding:4px 0;font-size:14px;font-weight:700;position:sticky;top:0}.planning-week-label.is-current-week{color:var(--t-accent-2)}.planning-calendar{border:1px solid var(--t-border);background:var(--t-surface);border-radius:10px;width:100%;display:flex}.planning-hourcol{border-right:1px solid var(--t-border);background:var(--t-surface);z-index:3;flex-shrink:0;width:42px}.planning-hourcol-spacer{border-bottom:1px solid var(--t-border);height:56px}.planning-hour-tick{color:var(--t-text-dim);border-bottom:1px solid var(--t-border);box-sizing:border-box;justify-content:center;align-items:flex-start;padding-top:4px;font-family:JetBrains Mono,monospace;font-size:10.5px;display:flex}.planning-daycol{border-right:1px solid var(--t-border);flex:1;min-width:0;overflow:hidden}.planning-daycol.is-non-ouvre{background:#eef0f3}.planning-daycol.is-non-ouvre .planning-day-head{color:var(--t-text-dim);background:#e4e7eb}.planning-daycol:last-child{border-right:none}.planning-day-head{box-sizing:border-box;height:56px;color:var(--t-text-dim);border-bottom:1px solid var(--t-border);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:6px 10px;font-size:11px;display:flex}.planning-day-head.is-today{color:var(--t-accent-2);background:var(--t-accent-soft);font-weight:700}.planning-day-head b{color:var(--t-text);font-size:13px;font-weight:700}.planning-day-grid{position:relative}.planning-hour-row{border-bottom:1px solid var(--t-border);box-sizing:border-box;transition:background .12s;position:absolute;left:0;right:0}.planning-hour-row.is-pause{background:repeating-linear-gradient(45deg,#b4b4be24,#b4b4be24 6px,#0000 6px 12px)}.planning-pause-overlay{pointer-events:none;z-index:4;background:repeating-linear-gradient(45deg,#78788738,#78788738 6px,#0000 6px 12px);position:absolute;left:0;right:0}.planning-hour-tick.is-pause{color:var(--t-text-dim);font-weight:600}.planning-hour-row.drag-over{background:var(--t-accent-soft)}.planning-card{background:var(--t-surface);border:1px solid var(--t-border);cursor:grab;box-sizing:border-box;border-radius:8px;width:100%;padding:12px;font-size:12.5px;position:relative}.planning-card:active{cursor:grabbing}.planning-card-scheduled{border-left:3px solid var(--t-accent);z-index:1;width:auto;padding:5px 7px;position:absolute;left:3px;right:3px;overflow:hidden;box-shadow:0 2px 6px #1018281a}.planning-card-title{white-space:normal;padding-right:14px;font-size:12.5px;font-weight:700;line-height:1.4}.planning-card-sub{color:var(--t-text-dim);white-space:normal;margin-top:2px;font-size:11px;line-height:1.4}.planning-card-amount{margin-top:5px;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:700}.planning-card-controls{gap:3px;margin-top:3px;display:flex}.planning-time,.planning-quick-date{width:100%;margin-top:5px;padding:3px 4px;font-size:10.5px}.planning-quick-date::-webkit-calendar-picker-indicator{opacity:.55;filter:grayscale();cursor:pointer;padding:2px}.planning-enddate,.planning-technicien-select{width:100%;margin-top:3px;padding:3px 4px;font-size:9.5px}.planning-card-continuation{opacity:.6;cursor:default;border-style:dashed}.planning-duree{flex:1;padding:3px;font-size:10px}.planning-time{flex:1.2;margin-top:0;padding:3px 4px;font-size:10px}.planning-unschedule{color:var(--t-text-dim);cursor:pointer;z-index:2;background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1;position:absolute;top:2px;right:2px}.planning-shift-left{background:var(--t-surface);border:1px solid var(--t-border);color:var(--t-text-dim);cursor:pointer;z-index:3;border-radius:5px;padding:1px 5px;font-size:12px;line-height:1.4;position:absolute;bottom:2px;left:2px}.planning-shift-left:hover{background:var(--t-accent);color:#fff;border-color:var(--t-accent)}.planning-resize-v{cursor:ns-resize;z-index:2;border-radius:3px;height:7px;position:absolute;bottom:0;left:8px;right:8px}.planning-resize-v:hover{background:var(--t-accent)}.planning-resize-h{cursor:ew-resize;z-index:2;border-radius:3px;width:7px;position:absolute;top:8px;bottom:8px;right:0}.planning-resize-h:hover{background:var(--t-accent)}.planning-resize-corner{cursor:nwse-resize;z-index:3;border-bottom-right-radius:6px;width:12px;height:12px;position:absolute;bottom:0;right:0}.planning-resize-corner:hover{background:var(--t-accent)}.planning-resize-corner-big{width:18px;height:18px}.planning-resize-corner-big:after{content:"";border-right:2.5px solid var(--t-text-dim);border-bottom:2.5px solid var(--t-text-dim);opacity:.6;width:8px;height:8px;position:absolute;bottom:3px;right:3px}.planning-resize-corner-big:hover:after{opacity:1;border-color:#fff}.metier-palette{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.chantier-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px;display:grid}.chantier-a4{border:1px solid var(--t-border);cursor:pointer;background:#fff;border-radius:4px;flex-direction:column;padding:16px 14px;transition:transform .12s,box-shadow .12s;display:flex;position:relative;box-shadow:0 2px 8px #10141e14}.chantier-a4:hover{transform:translateY(-3px);box-shadow:0 10px 22px #10141e29}.chantier-a4-type{text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--t-accent);margin-bottom:8px;padding:3px 0;font-size:9.5px;font-weight:700}.chantier-a4-type.neuf{border-color:var(--t-success);color:var(--t-success)}.chantier-a4-type.rehab{border-color:var(--t-accent);color:var(--t-accent-2)}.chantier-a4-nom{margin-bottom:6px;font-size:12.5px;font-weight:700;line-height:1.3}.chantier-a4-client{color:var(--t-text-dim);margin-bottom:3px;font-size:10.5px}.chantier-a4-adresse{color:var(--t-text-dim);margin-bottom:8px;font-size:9.5px;line-height:1.3}.chantier-a4-dates{color:var(--t-text-dim);margin-top:auto;font-size:9px}.chantier-a4-statut{margin-top:6px}.chantier-a4-montant{color:var(--navy,#101d34);margin-top:10px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.chantier-a4-avancement-box{align-items:center;gap:10px;margin-top:9px;display:flex}.chantier-a4-avancement-ring{--pct:0;background:conic-gradient(var(--t-accent) calc(var(--pct)*1%), var(--t-surface-2) 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:background .6s cubic-bezier(.4,1.6,.6,1);display:flex}.chantier-a4-avancement-ring span{width:25px;height:25px;color:var(--t-accent-2);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:8.5px;font-weight:800;display:flex}.chantier-a4-avancement-bar{background:var(--t-surface-2);border-radius:3px;flex:1;height:5px;overflow:hidden}.chantier-a4-avancement-fill{background:linear-gradient(90deg,#ff6a1a,#5bc97a);border-radius:3px;height:100%;transition:width .5s}.chantier-a4-footer{border-top:1px dashed var(--t-border);flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:10px;display:flex}.a4-stat{border-radius:20px;align-items:center;gap:3px;padding:3px 9px;font-size:10.5px;font-weight:700;display:inline-flex}.a4-stat-cr{color:#2e7bc9;background:#e8f2ff}.a4-stat-devis{color:#7b4fd9;background:#f2ecff}.a4-stat-facture{color:#1f9d55;background:#e6f9ee}.chantier-sections{grid-template-columns:1fr 1fr;gap:22px;display:grid}.chantier-hero{background:linear-gradient(135deg, var(--navy,#101d34) 0%, #1c2f52 100%);color:#fff;border-radius:16px;margin-bottom:18px;padding:22px 24px;box-shadow:0 6px 20px #10141e26}.chantier-hero-top{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.chantier-hero-top .card-sub{color:#ffffffbf}.chantier-hero-stats{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.hero-stat{align-items:center;gap:10px;display:flex}.hero-ring{--pct:0;background:conic-gradient(var(--t-accent) calc(var(--pct)*1%), #ffffff2e 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;transition:background 1s cubic-bezier(.4,1.6,.6,1);display:flex}.hero-ring span{background:var(--navy,#101d34);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:12px;font-weight:700;display:flex}.hero-stat-label{color:#ffffffad;font-size:10.5px;line-height:1.3}.hero-stat-block{text-align:left}.hero-stat-value{margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:17px;font-weight:700}.chantier-tabs{border-bottom:2px solid var(--t-border);flex-wrap:wrap;gap:6px;margin-bottom:20px;padding-bottom:0;display:flex}.chantier-tab-btn{cursor:pointer;color:var(--t-text-dim);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;margin-bottom:-2px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.chantier-tab-btn:hover{color:var(--t-text);background:var(--t-surface-2)}.chantier-tab-btn.is-active{color:var(--t-accent);border-bottom-color:var(--t-accent)}.chantier-tab-content{animation:.25s chantierTabFade}@keyframes chantierTabFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.chantier-hero-stats{gap:16px}.chantier-tabs{flex-wrap:nowrap;overflow-x:auto}.chantier-tab-btn{white-space:nowrap}}@media (width<=860px){.chantier-sections{grid-template-columns:1fr}}.chantier-section{background:var(--t-surface);border:1px solid var(--t-border);border-radius:10px;padding:16px}.chantier-file-row{border-bottom:1px solid var(--t-border);align-items:center;gap:10px;padding:7px 0;display:flex}.chantier-file-row a{color:var(--t-accent-2);text-overflow:ellipsis;white-space:nowrap;flex:1;text-decoration:underline;overflow:hidden}.chantier-todo-row{border-bottom:1px solid var(--t-border);justify-content:space-between;align-items:center;gap:10px;padding:7px 0;display:flex}.chantier-todo-row label{cursor:pointer;flex:1;align-items:center;gap:8px;display:flex}.chantier-todo-row.is-done span{color:var(--t-text-dim);text-decoration:line-through}.dpgf-totals{border-top:1px solid var(--t-border);gap:24px;margin-top:12px;padding-top:10px;font-size:13px;display:flex}.ligne-chapitre-row td{background:var(--t-surface-2);font-weight:700}.dpgf-ligne-row.is-complete{opacity:.5}.dpgf-ligne-row.is-complete input:not([type=checkbox]){pointer-events:none}.dpgf-import-banner{background:var(--t-accent-soft);border:1px dashed var(--t-accent);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;display:flex}.todo-progress-wrap{align-items:center;gap:10px;margin-bottom:14px;display:flex}.todo-progress-bar{background:var(--t-surface-2);border-radius:5px;flex:1;height:8px;overflow:hidden}.todo-progress-fill{background:linear-gradient(90deg, var(--t-accent), var(--t-success));border-radius:5px;height:100%;transition:width .35s}.todo-progress-label{color:var(--t-text-dim);white-space:nowrap;font-size:11.5px;font-weight:700}.todo-add-row{gap:8px;margin-bottom:16px;display:flex}.todo-add-row input{flex:1}.todo-kanban{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=760px){.todo-kanban{grid-template-columns:1fr}}.todo-kanban-col{background:var(--t-surface-2);border-radius:10px;flex-direction:column;gap:8px;min-height:120px;padding:10px;transition:background .15s;display:flex}.todo-kanban-col-header{border-bottom:2px solid var(--t-border);justify-content:space-between;align-items:center;padding:2px 4px 8px;font-size:12.5px;font-weight:700;display:flex}.todo-kanban-col-a_faire{border-color:var(--t-text-dim);color:var(--t-text-dim)}.todo-kanban-col-en_cours{border-color:var(--t-accent);color:var(--t-accent-2)}.todo-kanban-col-fait{border-color:var(--t-success);color:var(--t-success)}.todo-kanban-count{background:#00000014;border-radius:10px;padding:1px 8px;font-size:11px}.todo-kanban-col-body{flex-direction:column;gap:8px;min-height:60px;display:flex}.todo-kanban-card{border:1px solid var(--t-border);cursor:grab;background:#fff;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px;transition:box-shadow .15s,transform .1s;display:flex;box-shadow:0 1px 3px #10141e0f}.todo-kanban-card:hover{transform:translateY(-1px);box-shadow:0 4px 10px #10141e1f}.todo-kanban-card:hover .todo-remove{opacity:1}.todo-kanban-card:active{cursor:grabbing}.todo-kanban-card-text{word-break:break-word;font-size:12.5px;line-height:1.4}.todo-kanban-card-meta{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.todo-meta-badge{background:var(--t-surface-2);color:var(--t-text-dim);border-radius:6px;padding:2px 6px;font-size:10px}.todo-meta-badge.is-late{color:var(--t-danger);background:#fde8e8;font-weight:700}.todo-kanban-empty{color:var(--t-text-dim);text-align:center;border:1px dashed var(--t-border);border-radius:8px;padding:14px 6px;font-size:11.5px}.todo-remove{cursor:pointer;color:var(--t-text-dim);opacity:0;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 5px;font-size:12px;transition:opacity .15s}.todo-remove:hover{background:var(--t-danger);color:#fff}.achats-grand-total{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.achats-totals{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;display:grid}@media (width<=760px){.achats-totals{grid-template-columns:1fr}}.achats-total-card{border:1px solid var(--t-border);cursor:pointer;background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;transition:all .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #10141e0d}.achats-total-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10141e1a}.achats-total-card.is-active{border-color:var(--cat-color,var(--t-accent));box-shadow:0 0 0 2px var(--cat-color,var(--t-accent)) inset}.achats-total-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:19px;display:flex}.achats-total-info{flex:1;min-width:0}.achats-total-label{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:700}.achats-total-montant{margin-top:1px;font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.achats-total-bar-wrap{background:var(--t-surface-2);border-radius:3px;width:100%;height:4px;margin-top:2px;overflow:hidden}.achats-total-bar{border-radius:3px;height:100%;transition:width .5s}.achat-add-card{background:var(--t-surface-2);border-radius:12px;margin-bottom:16px;padding:14px 16px}.achat-add-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.achat-add-row select,.achat-add-row input{background:#fff;width:auto}.achat-add-row input[type=text]{flex:1;min-width:160px}.achat-add-row input[type=number]{width:130px}.achat-add-row input[type=date]{width:150px}.achat-salarie-zone{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.achat-salarie-zone select,.achat-salarie-zone input{background:#fff;width:auto}.achats-list{flex-direction:column;gap:6px;display:flex}.achat-row{border:1px solid var(--t-border);border-left:3px solid var(--cat-color,var(--t-border));background:#fff;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:12.5px;transition:box-shadow .12s;display:flex}.achat-row:hover{box-shadow:0 2px 8px #10141e12}.achat-row:hover .todo-remove{opacity:1}.achat-row-icon{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:flex}.achat-row-main{flex:1;min-width:0}.achat-designation{font-weight:600}.achat-date{color:var(--t-text-dim);margin-top:1px;font-size:11px}.achat-montant{white-space:nowrap;font-family:JetBrains Mono,monospace;font-weight:700}.stats-table-wrap{border:1px solid var(--t-border);border-radius:12px;overflow-x:auto}.stats-table{border-collapse:collapse;background:#fff;width:100%;font-size:13px}.stats-table thead th{background:var(--t-surface-2);text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--t-text-dim);white-space:nowrap;padding:12px 14px;font-size:11px;font-weight:700}.stats-table tbody td{border-top:1px solid var(--t-border);white-space:nowrap;padding:12px 14px}.stats-table tbody tr:hover{background:var(--t-surface-2)}.stats-num{font-family:JetBrains Mono,monospace}.controle-facture-card{border:1px solid var(--t-border);border-radius:12px;margin-bottom:14px;padding:14px 16px}.controle-facture-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.controle-ligne-ok{background:#f3fbf5}.controle-ligne-ecart{background:#fff2f2}.controle-ligne-absent{background:#fff9ec}.facture-verrou-banner{color:#a30f22;background:#fff0f0;border:1px solid #ffc9c9;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.vehicule-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.vehicule-card{border:1px solid var(--t-border);cursor:pointer;background:#fff;border-radius:14px;padding:16px;transition:all .18s;box-shadow:0 1px 3px #10141e0d}.vehicule-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #10141e1a}.vehicule-card-top{align-items:center;gap:10px;margin-bottom:12px;display:flex}.vehicule-icon{flex-shrink:0;font-size:26px}.vehicule-card-nom{font-size:14.5px;font-weight:700}.vehicule-card-plate{color:var(--t-text-dim);letter-spacing:.03em;font-family:JetBrains Mono,monospace;font-size:11.5px}.vehicule-card-specs{flex-direction:column;gap:4px;margin-bottom:12px;font-size:12.5px;display:flex}.vehicule-spec-icon{margin-right:4px}.vehicule-card-badges{flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.vehicule-mini-badge{background:var(--t-surface-2);color:var(--t-text-dim);border-radius:7px;align-items:center;gap:4px;width:fit-content;padding:4px 9px;font-size:11px;display:inline-flex}.vehicule-mini-badge.is-on{background:var(--t-accent-soft);color:var(--t-accent-2);font-weight:700}.vehicule-card-footer{border-top:1px dashed var(--t-border);padding-top:8px}.vehicule-ct-row{background:var(--t-surface-2);border-radius:8px;margin-bottom:12px;padding:7px 10px;font-size:12px}.vehicule-ct-row.is-blinking{color:#a30f22;background:#ffdcdc;animation:1s ease-in-out infinite ctBlink}.vehicule-ct-tag{background:var(--t-danger);color:#fff;letter-spacing:.02em;border-radius:5px;margin-left:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}@keyframes ctBlink{0%,to{background:#ffdcdc}50%{background:#ff9797}}.vehicule-hero{background:var(--t-surface-2);border-radius:14px;margin-bottom:22px;padding:18px 20px}.vehicule-hero-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;display:grid}.vehicule-hero-label{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;font-size:10.5px;font-weight:700}.vehicule-hero-value{font-size:15px;font-weight:700}.vehicule-abonnement-row{border-bottom:1px solid var(--t-border);align-items:center;gap:10px;padding:10px 0;font-size:13px;display:flex}.vehicule-abonnement-row:last-child{border-bottom:none}.entretien-add-row{background:var(--t-surface-2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:14px 16px;display:flex}.entretien-add-row input[type=text]{background:#fff;flex:1;min-width:180px}.entretien-add-row input[type=number]{background:#fff;width:120px}.entretien-add-row input[type=date]{background:#fff;width:150px}.vehicule-filtres{align-items:center;gap:8px;margin-bottom:18px;display:flex}.vehicule-vue-toggle{border:1px solid var(--t-border);border-radius:8px;gap:0;margin-left:auto;display:flex;overflow:hidden}.vehicule-vue-toggle button{cursor:pointer;color:var(--t-text-dim);background:#fff;border:none;padding:7px 12px;font-size:14px}.vehicule-vue-toggle button:first-child{border-right:1px solid var(--t-border)}.vehicule-vue-toggle button.is-active{background:var(--t-accent);color:#fff}.vehicule-liste-wrap{border:1px solid var(--t-border);border-radius:12px;overflow-x:auto}.vehicule-liste-row{cursor:pointer;transition:background .12s}.vehicule-liste-row:hover{background:var(--t-surface-2)}.entretien-edit-row{background:var(--t-accent-soft);flex-wrap:wrap}.entretien-edit-row input{background:#fff}.vehicule-schema-wrap{flex-direction:column;align-items:flex-start;margin-top:6px;display:flex}.vehicule-schema-svg{border:1px solid var(--t-border);-webkit-user-select:none;user-select:none;background:#fff;border-radius:10px;width:140px;height:auto}.tva-toggle-row{border:1px solid var(--t-border);border-radius:8px;gap:0;width:fit-content;display:flex;overflow:hidden}.tva-toggle-btn{cursor:pointer;color:var(--t-text-dim);background:#fff;border:none;padding:9px 16px;font-size:13px;font-weight:600;transition:all .15s}.tva-toggle-btn:first-child{border-right:1px solid var(--t-border)}.tva-toggle-btn.is-active{background:var(--t-accent);color:#fff}.notif-wrap{border-right:1px solid var(--t-border);align-items:center;margin-right:4px;padding-right:12px;display:flex;position:relative}.notif-bell-btn{background:var(--t-surface-2);cursor:pointer;width:36px;height:36px;color:var(--t-text-dim);border:none;border-radius:50%;justify-content:center;align-items:center;line-height:1;transition:all .15s;display:flex;position:relative}.notif-bell-btn svg{width:18px;height:18px}.notif-bell-btn:hover{background:var(--t-accent-soft);color:var(--t-accent-2);transform:scale(1.05)}.notif-badge{background:var(--t-danger);color:#fff;border:2px solid #fff;border-radius:9px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9.5px;font-weight:800;position:absolute;top:-2px;right:-2px;box-shadow:0 1px 3px #0003}.notif-badge.is-urgent{animation:1.2s ease-in-out infinite unreadBlink}.notif-panel{z-index:900;background:#fff;border-radius:14px;width:350px;max-height:440px;padding:8px;display:none;position:absolute;top:calc(100% + 12px);right:-6px;overflow-y:auto;box-shadow:0 14px 36px #10141e42}.notif-item{cursor:pointer;color:var(--t-text);border-radius:10px;align-items:flex-start;gap:11px;padding:11px;font-size:12.5px;transition:background .12s;display:flex}.notif-item:hover{background:var(--t-surface-2)}.notif-item.is-urgent{background:#fff0f0}.notif-item.is-urgent:hover{background:#ffe3e3}.notif-item-icon{flex-shrink:0;font-size:16px}.notif-empty{text-align:center;color:var(--t-text-dim);padding:26px 20px;font-size:12.5px}.notif-see-all{text-align:center;cursor:pointer;width:100%;color:var(--t-accent-2);border:none;border-top:1px solid var(--t-border);background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:11px;font-size:12px;font-weight:700;display:flex}.notif-see-all-plus{background:var(--t-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:13px;font-weight:800;line-height:1;display:inline-flex}.notif-see-all:hover{background:var(--t-surface-2);border-radius:8px}.notif-panel-header{color:var(--t-text-dim);border-bottom:1px solid var(--t-border);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 8px 10px;font-size:12px;font-weight:700;display:flex}.notif-list-check{flex-direction:column;gap:2px;display:flex}.notif-item-check{cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:9px 8px;font-size:12px;transition:background .12s;display:flex}.notif-item-check:hover{background:var(--t-surface-2)}.notif-item-check.is-urgent{background:#fff5f5}.notif-checkbox{flex-shrink:0;margin-top:2px}.notif-panel-footer{border-top:1px solid var(--t-border);margin-top:6px;padding:10px 8px 4px}.notif-panel-footer .btn{width:100%}.infos-diverses-split{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=600px){.infos-diverses-split{grid-template-columns:1fr}}.infos-diverses-split textarea{resize:vertical;width:100%;height:100%;min-height:150px}.securite-shortcut{cursor:pointer;background:linear-gradient(135deg,#fff4ec,#ffe9db);border:1px solid #ffcda3;border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;transition:all .15s;display:flex}.securite-shortcut:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff6a1a26}.securite-shortcut-title{margin-bottom:4px;font-size:13.5px;font-weight:700}.securite-shortcut-line{color:var(--t-text-dim);font-size:12px}.securite-shortcut-alert{color:var(--t-danger);margin-top:4px;font-size:11.5px;font-weight:700}.securite-shortcut-link{color:var(--t-accent-2);margin-top:6px;font-size:11.5px;font-weight:700}.unread-dot{background:var(--t-danger);border-radius:50%;width:8px;height:8px;margin-right:5px;animation:1s ease-in-out infinite unreadBlink;display:inline-block}.chantier-file-row.is-unread{font-weight:700}@keyframes unreadBlink{0%,to{opacity:1}50%{opacity:.15}}.vehicule-card.is-vendu{opacity:.65}.vehicule-vendu-info{background:var(--t-surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px;font-size:13px;display:flex}.stats-charts-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px;display:grid}.stats-chart-card-wide{grid-column:1/-1}.stats-chart-wrap{height:280px;margin-top:10px;position:relative}@media (width<=900px){.stats-charts-grid{grid-template-columns:1fr}}.avancement-presets{gap:4px;display:flex}.avancement-preset-btn{background:var(--t-surface-2);border:1px solid var(--t-border);color:var(--t-text-dim);cursor:pointer;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700;transition:all .12s}.avancement-preset-btn:hover{background:var(--t-accent);border-color:var(--t-accent);color:#fff}.dpgf-devis-source-badge{color:var(--t-accent-2);margin-top:2px;font-size:9.5px;display:block}.dpgf-toggle-btn{justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:16px;font-weight:700;line-height:1;display:flex}.dpgf-planif-progress{color:var(--t-text-dim);margin-bottom:3px;font-size:10.5px;font-weight:700}.dpgf-planif-taches{flex-wrap:wrap;gap:3px;margin-bottom:4px;display:flex}.dpgf-planif-taches .btn{padding:2px 6px;font-size:10px}.chantier-subsection-title{border-top:1px solid var(--t-border);margin-top:14px;padding-top:12px;font-size:13px;font-weight:700}.metier-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0;transition:transform .1s}.metier-swatch:hover{transform:scale(1.1)}.metier-swatch.is-selected{border-color:var(--t-text);box-shadow:0 0 0 2px var(--t-surface), 0 0 0 4px var(--t-text)}.planning-sav-bar{pointer-events:none;z-index:2;background:var(--t-danger);width:6px;animation:1s ease-in-out infinite savBlink;position:absolute;top:0;bottom:0;left:0}.planning-lien-badge{background:var(--t-accent-soft);color:var(--t-accent-2);vertical-align:middle;border-radius:8px;margin-left:5px;padding:1px 5px;font-size:9.5px;font-weight:700;display:inline-block}.planning-card-pj{color:var(--t-accent-2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:4px;font-size:10.5px;text-decoration:underline;display:inline-block;overflow:hidden}.planning-filter-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:13px;line-height:1}.planning-filter-icon-btn:hover{background:var(--t-surface-2)}.planning-logement-badge{background:var(--t-success-soft);color:var(--t-success);vertical-align:middle;border-radius:8px;margin-left:5px;padding:1px 5px;font-size:9.5px;font-weight:700;display:inline-block}@keyframes savBlink{0%,to{opacity:1}50%{opacity:.15}}body.is-resizing-v,body.is-resizing-v *{cursor:ns-resize!important;-webkit-user-select:none!important;user-select:none!important}body.is-resizing-h,body.is-resizing-h *{cursor:ew-resize!important;-webkit-user-select:none!important;user-select:none!important}body.is-resizing-corner,body.is-resizing-corner *{cursor:nwse-resize!important;-webkit-user-select:none!important;user-select:none!important}.planning-card-scheduled.is-resize-active{box-shadow:0 0 0 2px var(--t-accent), 0 6px 16px #1018282e;z-index:5;transition:none}.planning-daycol.is-resize-target{background:var(--t-accent-soft)}.planning-unschedule:hover{color:var(--t-danger)}.reglement-bulk-bar b{color:#fff;font-family:JetBrains Mono,monospace}.summary-row b{color:var(--t-text);font-family:JetBrains Mono,monospace;font-size:14px}.progress-bar{background:var(--t-surface-2);border-radius:6px;height:7px;margin-top:7px;overflow:hidden}.progress-fill{border-radius:6px;height:100%;transition:width .3s}.stat-card .stat-label{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.06em;font-family:Inter,sans-serif;font-size:11.5px;font-weight:600}.stat-card .stat-num{text-transform:none;letter-spacing:0;margin-top:4px;font-size:26px}.stat-card.warn .stat-num{color:var(--t-accent-2)}.stat-card.danger .stat-num{color:var(--t-danger)}.stat-card.ok .stat-num{color:var(--t-success)}.section-title{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.08em;margin:26px 0 10px;font-size:13px;font-weight:700}.card{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow);margin-bottom:10px;padding:16px}@keyframes flashHighlight{0%,to{box-shadow:var(--t-shadow);border-color:var(--t-border);background:var(--t-surface)}25%,75%{box-shadow:0 0 0 3px var(--t-accent);border-color:var(--t-accent);background:var(--t-accent-soft)}50%{box-shadow:var(--t-shadow);border-color:var(--t-border);background:var(--t-surface)}}.flash-highlight{animation:.65s ease-in-out 2 flashHighlight}.search-focus{outline:3px solid var(--t-accent);outline-offset:-1px;border-radius:var(--t-radius)}.view-modal{z-index:200;background:#10141e99;justify-content:center;align-items:flex-start;padding:40px 16px;display:none;position:fixed;inset:0;overflow:auto}.attachment-float{z-index:600;background:#fff;border-radius:10px;flex-direction:column;gap:8px;width:650px;min-width:280px;height:600px;min-height:280px;padding:10px 10px 14px;transition:box-shadow .15s;position:fixed;overflow:hidden;box-shadow:0 14px 38px #10141e59,0 0 0 1px #10141e0f}.attachment-float-resize{cursor:nwse-resize;z-index:2;width:20px;height:20px;position:absolute;top:2px;left:2px}.attachment-float-resize:after{content:"";border-left:2.5px solid var(--t-text-dim);border-top:2.5px solid var(--t-text-dim);opacity:.5;width:10px;height:10px;position:absolute;top:4px;left:4px}.attachment-float-resize:hover:after{border-color:var(--t-accent);opacity:1}.attachment-float:hover{box-shadow:0 18px 46px #10141e66,0 0 0 1px #10141e14}.attachment-float-header{cursor:grab;color:var(--navy,#101d34);border-bottom:1px dashed var(--t-border);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 6px;font-size:12px;font-weight:700;display:flex}.attachment-float-header:active{cursor:grabbing}.attachment-float-header span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-float-body{text-align:center;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.attachment-float-body img{object-fit:contain;border-radius:4px;max-width:100%;max-height:100%;margin:0 auto;display:block}.attachment-float-body iframe{border:none;border-radius:4px;width:100%;height:100%}.attachment-float-dl,.attachment-float-close{background:var(--t-surface-2);text-align:center;cursor:pointer;width:24px;height:24px;color:var(--t-text-dim);border:none;border-radius:6px;font-size:12px;line-height:24px;text-decoration:none;display:inline-block}.attachment-float-dl:hover,.attachment-float-close:hover{background:var(--t-accent);color:#fff}.view-modal.open{display:flex}.view-modal-panel{box-sizing:border-box;color:#182233;background:#fff;border-radius:12px;width:100%;max-width:210mm;padding:14mm;font-family:Inter,Arial,sans-serif;font-size:10.5pt;position:relative;box-shadow:0 20px 60px #00000059}.view-modal-close{background:var(--t-surface-2);width:32px;height:32px;color:var(--t-text);cursor:pointer;z-index:2;border:none;border-radius:50%;font-size:16px;position:absolute;top:12px;right:12px}.view-modal-actions{justify-content:flex-end;gap:8px;margin:0 44px 10mm 0;display:flex}@media (width<=860px){.view-modal{padding:0}.view-modal-panel{border-radius:0;min-height:100vh;padding:16mm 6mm}}.card-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-title{font-size:14.5px;font-weight:700}.card-sub{color:var(--t-text-dim);margin-top:3px;font-size:12.5px}.numref{color:var(--t-text-dim);letter-spacing:.04em;font-size:11px}.numref-lg{color:var(--t-text);letter-spacing:.02em;font-size:14.5px;font-weight:700}.amount{font-family:JetBrains Mono,monospace;font-size:15px;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.badge.gray{background:var(--t-surface-2);color:var(--t-text-dim)}.badge.info{background:var(--t-info-soft);color:var(--t-info)}.badge.success{background:var(--t-success-soft);color:var(--t-success)}.badge.danger{background:var(--t-danger-soft);color:var(--t-danger)}.badge.warn{background:var(--t-accent-soft);color:var(--t-accent-2)}.badge.yellow{color:#8a6d00;background:#fff3c4}.empty{color:var(--t-text-dim);text-align:center;border:1px dashed var(--t-border);border-radius:var(--t-radius);padding:30px 10px;font-size:13.5px}#toastBox{z-index:10000;opacity:0;text-align:center;pointer-events:none;border-radius:11px;width:auto;min-width:240px;max-width:90%;padding:12px 20px;font-size:13px;line-height:1.5;transition:opacity .25s,transform .25s;display:none;position:fixed;bottom:26px;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 12px 32px #00000040}#toastBox.show{opacity:1;transform:translate(-50%)translateY(0)}#toastBox.error{color:#ffd9da;border:1px solid var(--t-danger);background:#3a1a1d}#toastBox.success{color:#c9f2d9;background:#16281e;border:1px solid #2e7d4f}@media (width<=860px){#toastBox{bottom:78px}}#noStorageBanner{z-index:9997;background:var(--t-accent-2);color:#3a2400;text-align:center;padding:9px 16px;font-size:12.5px;font-weight:600;line-height:1.5;position:fixed;top:0;left:0;right:0}#noStorageBanner b{font-weight:800}body.has-no-storage-banner #app{padding-top:42px}#deskTopStrip{justify-content:flex-end;align-items:center;gap:8px;padding:22px 26px 0;display:flex}.ghost-toggle{flex-shrink:0;width:34px;height:19px;display:inline-block;position:relative}.ghost-toggle input{opacity:0;width:0;height:0;position:absolute}.ghost-toggle-slider{background:var(--t-border);cursor:pointer;border-radius:20px;transition:all .2s;position:absolute;inset:0}.ghost-toggle-slider:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:2.5px;left:2.5px;box-shadow:0 1px 3px #00000040}.ghost-toggle input:checked+.ghost-toggle-slider{background:var(--t-accent)}.ghost-toggle input:checked+.ghost-toggle-slider:before{transform:translate(15px)}#companyLabelDesktop{color:var(--t-text-dim);letter-spacing:.02em;font-size:13px;font-weight:500}#companyLabelMobile{color:var(--t-text-dim);letter-spacing:.02em;white-space:nowrap;font-size:12px;font-weight:500}@media (width<=860px){#deskTopStrip{display:none}}@media (width>=861px){#companyLabelMobile{display:none}}#toastBox.success{color:#c9f5df;border-color:var(--t-success);background:#123a28}.form-panel{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow);margin-bottom:18px;padding:18px}.form-panel h3{text-transform:none;letter-spacing:0;margin:0 0 14px;font-size:15px}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.metier-checkbox-list{background:var(--t-surface-2);border-radius:10px;flex-wrap:wrap;gap:8px 16px;padding:10px 12px;display:flex}.metier-checkbox-item{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.metier-checkbox-item input{width:auto;margin:0}.address-trio{grid-column:1/-1;grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-weight:600}.row-mic{gap:6px;display:flex}input[type=text],input[type=tel],input[type=number],input[type=date],textarea,select{background:var(--t-surface);border:1px solid var(--t-border);color:var(--t-text);border-radius:7px;width:100%;padding:9px 10px;font-family:inherit;font-size:13.5px}input:disabled{color:var(--t-text-dim);background:var(--t-surface-2)}textarea{resize:vertical;min-height:64px}.mic-btn{background:var(--t-surface-2);border:1px solid var(--t-border);width:36px;color:var(--t-text-dim);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.suggest-box{z-index:20;background:var(--t-surface);border:1px solid var(--t-border);box-shadow:var(--t-shadow);border-radius:8px;max-height:220px;margin-top:3px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.suggest-item{border-bottom:1px solid var(--t-border);cursor:pointer;padding:9px 12px;font-size:12.5px}.suggest-item:last-child{border-bottom:none}.suggest-item:hover{background:var(--t-surface-2)}.suggest-item b{font-size:13px;display:block}.suggest-item small{color:var(--t-text-dim);font-size:11px}.suggest-empty{color:var(--t-text-dim);padding:10px 12px;font-size:12px}.art-pick{width:72px;color:var(--t-text-dim);flex-shrink:0;padding:0 6px;font-size:11px}.mic-btn.listening{background:var(--t-accent-soft);border-color:var(--t-accent);color:var(--t-accent-2);animation:1s infinite pulseSoft}@keyframes pulseSoft{0%{box-shadow:0 0 #ff6a1a59}to{box-shadow:0 0 0 8px #ff6a1a00}}.lignes-table{border-collapse:collapse;width:100%;margin-top:4px}.lignes-table th{color:var(--t-text-dim);text-transform:uppercase;text-align:left;letter-spacing:.05em;padding:4px 6px;font-size:10.5px}.lignes-table td{padding:4px 6px}.lignes-table input,.lignes-table select{padding:7px 8px;font-size:13px}.totals-box{border-top:1px solid var(--t-border);justify-content:flex-end;gap:22px;margin-top:10px;padding-top:10px;font-size:13.5px;display:flex}.totals-box b{font-family:JetBrains Mono,monospace}.row-chapitre td{padding-top:14px}.row-chapitre .chapitre-input{background:var(--t-accent-soft);border:1px solid var(--t-accent);color:var(--t-accent-2);text-transform:uppercase;letter-spacing:.03em;font-size:13.5px;font-weight:700}.row-commentaire .commentaire-input{border:1px dashed var(--t-border);color:var(--t-text-dim);background:0 0;min-height:44px;padding:7px 9px;font-size:13.5px;font-style:italic}.drag-handle{cursor:grab;color:var(--t-text-dim);-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;padding:0 2px;font-size:15px}.drag-handle:active{cursor:grabbing}tr.dnd-row.drag-over-top td{border-top:2px dashed var(--t-accent)}tr.dnd-row.drag-over-bottom td{border-bottom:2px dashed var(--t-accent)}.row-subtotal td{color:var(--t-text-dim);border-bottom:1px solid var(--t-border);padding:4px 6px 12px;font-size:12px}.step-indicator{align-items:center;margin-bottom:20px;display:flex}.step-item{cursor:pointer;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.step-circle{background:var(--t-surface-2);border:2px solid var(--t-border);width:30px;height:30px;color:var(--t-text-dim);border-radius:50%;justify-content:center;align-items:center;font-family:Manrope,sans-serif;font-size:13px;font-weight:700;display:flex}.step-item.active .step-circle{background:var(--t-accent);border-color:var(--t-accent);color:#fff}.step-item.done .step-circle{background:var(--t-success-soft);border-color:var(--t-success);color:var(--t-success)}.step-label{color:var(--t-text-dim);font-size:9.5px}.step-item.active .step-label{color:var(--t-text)}.step-line{background:var(--t-border);flex:1;height:2px;margin:0 6px 19px}.controles-list{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.controle-item{border-bottom:1px solid var(--t-border);justify-content:space-between;align-items:center;padding:12px 4px;font-size:13.5px;display:flex}.controle-item input{width:18px;height:18px;accent-color:var(--t-accent)}.photo-grid{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.photo-thumb{border:1px solid var(--t-border);border-radius:8px;width:84px;height:84px;position:relative;overflow:hidden}.photo-add{border:2px dashed var(--t-border);width:84px;height:84px;color:var(--t-text-dim);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;font-weight:300;display:flex}.photo-add:hover{border-color:var(--t-accent);color:var(--t-accent)}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb button{color:#fff;background:#141923a6;border:none;border-radius:50%;width:20px;height:20px;font-size:11px;line-height:1;position:absolute;top:3px;right:3px}.sig-wrap{border:1px dashed var(--t-border);background:var(--t-surface-2);border-radius:8px;margin-top:6px}#sigCanvas,#sigCanvasTech{touch-action:none;cursor:crosshair;width:100%;height:150px;display:block}#voiceFab{z-index:40;background:var(--t-accent);color:#fff;border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:fixed;bottom:22px;right:28px;box-shadow:0 8px 20px #ff6a1a59}#voiceFab svg{width:26px;height:26px}#voiceFab.listening{animation:1.2s infinite ring}@keyframes ring{0%{box-shadow:0 0 #ff6a1a73}70%{box-shadow:0 0 0 22px #ff6a1a00}to{box-shadow:0 0 #ff6a1a00}}#voiceModal{z-index:50;background:#10141e8c;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}#voiceModal.open{display:flex}#voiceModal .panel{background:var(--t-surface);border:1px solid var(--t-border);border-radius:16px 16px 0 0;width:100%;max-width:560px;max-height:80vh;padding:22px 20px 26px;overflow:auto}@media (width>=640px){#voiceModal{align-items:center}#voiceModal .panel{border-radius:16px}}.voice-status{color:var(--t-text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12.5px;font-weight:700}.voice-transcript{min-height:26px;margin-bottom:14px;font-size:16px}.voice-resume{background:var(--t-surface-2);border:1px solid var(--t-border);border-radius:8px;margin-bottom:14px;padding:12px;font-size:13.5px}.voice-hint{color:var(--t-text-dim);margin-bottom:16px;font-size:12px;line-height:1.5}.settings-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.plus-subnav{border-bottom:1px solid var(--t-border);gap:8px;margin-bottom:20px;padding-bottom:12px;display:flex}.plus-subnav-btn{background:var(--t-surface-2);border:1px solid var(--t-border);color:var(--t-text-dim);border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600}.plus-subnav-btn.active{background:var(--t-accent);border-color:var(--t-accent);color:#fff}footer.note{color:var(--t-text-dim);border-top:1px dashed var(--t-border);margin-top:20px;padding-top:14px;font-size:11.5px}#bottomnav{display:none}@media (width<=860px){#sidebar{display:none}#topbar{display:flex}#content{padding:16px 14px 110px}.field-grid,.address-trio{grid-template-columns:1fr}#bottomnav{background:var(--t-surface);border-top:1px solid var(--t-border);z-index:30;padding:6px 4px calc(6px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}#bottomnav .nav-item{color:var(--t-text-dim);text-align:center;flex-direction:column;flex:1;gap:2px;padding:6px 2px;font-size:9.5px}#bottomnav .nav-item.active{background:var(--t-accent-soft);color:var(--t-accent-2)}#bottomnav .nav-item.active svg{color:var(--t-accent-2)}#voiceFab{width:58px;height:58px;bottom:78px;right:20px}.settings-grid{grid-template-columns:1fr}.step-label{display:none}}@media (width>=861px){.stat-card{transition:transform .18s,box-shadow .18s}.stat-card:before{content:"";background:var(--t-border);width:4px;position:absolute;top:0;bottom:0;left:0}.stat-card.warn:before{background:var(--t-accent)}.stat-card.danger:before{background:var(--t-danger)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #10182817}.quick-action{transition:transform .18s,box-shadow .18s,border-color .18s}.quick-action:hover{border-color:var(--t-accent);transform:translateY(-2px);box-shadow:0 8px 22px #10182817}.dash-search-wrap{max-width:480px;position:relative}.dash-search-wrap svg{width:18px;height:18px;color:var(--t-text-dim);pointer-events:none;display:block;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.dash-search-wrap input{background:var(--t-surface);border-radius:11px;height:44px;padding-left:42px;font-size:14px}.dash-greetrow{align-items:center;margin-bottom:26px}.dash-greeting{font-size:26px}.dash-subtitle{color:var(--t-text-dim);margin-top:4px;font-size:13.5px;display:block}.dash-date-pill{background:var(--t-surface);border:1px solid var(--t-border);color:var(--t-text);box-shadow:var(--t-shadow);border-radius:10px;align-items:center;padding:9px 16px;font-size:12.5px;font-weight:600;display:inline-flex}.dash-quickgrid,.quick-actions{display:none}.stat-card-top{margin-bottom:10px;display:block}.stat-icon{border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.stat-icon svg{width:19px;height:19px}.dash-columns3{grid-template-columns:1.3fr 1fr 1fr;align-items:start;gap:22px;display:grid}.planning-layout{flex-wrap:nowrap}.planning-unscheduled{flex-shrink:0;align-self:flex-start;width:230px;position:sticky;top:16px}.planning-unsched-list{max-height:calc(100vh - 220px);overflow-y:auto}.planning-week{flex:1;min-width:0}.planning-daycol{min-width:0}.planning-card{width:auto}.dash-revenue-full{margin-bottom:24px;display:block}.dash-revenue-card svg{max-height:290px}.dash-col+.dash-col,.section-title-row{margin-top:0}}#printArea{box-sizing:border-box;color:#182233;z-index:9999;background:#fff;width:210mm;padding:14mm;font-family:Inter,Arial,sans-serif;font-size:10.5pt;display:none;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:0 0 40px #00000040}.p-print-planning h1{margin:0 0 4px;font-size:16pt}.p-print-weeklabel{color:#555;margin-bottom:16px;font-size:11pt;font-weight:600}.p-print-day{page-break-inside:avoid;margin-bottom:14px}.p-print-daytitle{text-transform:capitalize;border-bottom:1.5px solid #182233;margin-bottom:6px;padding-bottom:3px;font-size:11.5pt;font-weight:700}.p-print-item{border-bottom:1px dotted #ccc;padding:3px 0;font-size:10pt}.p-print-empty{color:#999;padding:3px 0;font-size:9.5pt;font-style:italic}#printArea table{border-collapse:collapse;width:100%}.p-company{font-family:Manrope,sans-serif;font-size:17pt;font-weight:800}.p-tagline{color:#6b7686;margin-top:1mm;font-size:8.5pt}.p-doctitle{text-align:right;font-family:Manrope,sans-serif;font-size:15pt;font-weight:800}.p-docmeta{text-align:right;color:#6b7686;margin-top:1.5mm;font-size:9.5pt;line-height:1.5}.p-rule{border-bottom:2.5px solid #ff6a1a;margin:4mm 0 6mm}.p-parties td{vertical-align:top;width:50%;padding-right:8mm}.p-label{letter-spacing:1px;text-transform:uppercase;color:#6b7686;margin-bottom:1.5mm;font-size:8pt;font-weight:700}.p-name{margin-bottom:1mm;font-size:11pt;font-weight:700}.p-line{color:#3a4454;font-size:9.5pt;line-height:1.5}.p-locataire{background:#f1f3f7;border-left:2.5px solid #ff6a1a;margin-top:3mm;padding:2.5mm 3mm}.p-lignes{margin-top:7mm}.p-lignes th{text-transform:uppercase;letter-spacing:.5px;color:#6b7686;text-align:left;border-bottom:1px solid #e2e6ed;padding:2mm;font-size:8pt}.p-lignes th.num,.p-lignes td.num{text-align:right}.p-lignes td{vertical-align:top;border-bottom:.5px solid #eef0f4;padding:2.3mm 2mm;font-size:9.5pt}.p-lignes tr,.p-totals,.p-notes,.p-sign,.p-locataire{break-inside:avoid;page-break-inside:avoid}.p-chapitre td{color:#c24e00;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #ffe7d6;padding-top:5mm;font-size:9.5pt;font-weight:700}.p-comment td{color:#6b7686;border-bottom:none;font-size:9pt;font-style:italic}.p-subtotal td{color:#6b7686;border-bottom:none;padding-top:1mm;padding-bottom:4mm;font-size:8.5pt}.p-totals{width:65mm;margin-top:5mm;margin-left:auto}.p-totals td{padding:1.6mm 0;font-size:9.5pt}.p-totals td.label{color:#6b7686}.p-totals td.val{text-align:right;font-family:JetBrains Mono,monospace}.p-totals tr.grand td{border-top:1.5px solid #182233;padding-top:3mm;font-size:12.5pt;font-weight:700}.p-notes{background:#f8f9fb;border:1px solid #e2e6ed;border-radius:2mm;margin-top:9mm;padding:3.5mm 4mm;font-size:9pt}.p-sign{margin-top:10mm}.p-sign td{vertical-align:top;color:#6b7686;width:50%;font-size:9pt}.p-sigline{border-top:.75px solid #c7cdd6;width:60mm;margin-top:14mm;padding-top:1.5mm}.p-footer{color:#9aa3b2;text-align:center;border-top:.5px solid #e2e6ed;margin-top:10mm;padding-top:3mm;font-size:7.5pt}.p-section-title{letter-spacing:1px;text-transform:uppercase;color:#6b7686;margin:8mm 0 2mm;font-size:8pt;font-weight:700}.p-photos{flex-wrap:wrap;gap:4mm;margin-top:2mm;display:flex}.p-photo{object-fit:cover;border:1px solid #e2e6ed;border-radius:2mm;width:42mm;height:42mm}.p-signature-img{max-width:55mm;max-height:20mm;margin-top:2mm;display:block}@media print{#app,#topbar,#bottomnav,#voiceFab,#voiceModal,.no-print{display:none!important}body{color:#182233;background:#fff}}#printArea.is-landscape{width:297mm}.p-print-grid{border-collapse:collapse;table-layout:fixed;width:100%}.p-print-grid th,.p-print-grid td{vertical-align:top;border:1px solid #c7cdd6;padding:2mm}.p-print-grid th{color:#fff;text-transform:uppercase;letter-spacing:.3px;background:#182233;padding:2.5mm 2mm;font-size:9pt}.p-print-grid .p-day-cell{text-transform:capitalize;text-align:center;vertical-align:middle;background:#f1f3f7;width:26mm;font-size:9.5pt;font-weight:700}.p-print-grid .p-work-cell{height:22mm}.p-print-job{background:#fff6ee;border-left:2px solid #ff6a1a;border-radius:1mm;margin-bottom:1.2mm;padding:1mm 1.2mm;font-size:7.8pt;line-height:1.35}.p-print-job b{font-size:8pt;display:block}.p-print-job .p-job-adresse{color:#555}.p-print-job .p-job-metier{color:#c24e00;font-weight:700}.p-print-empty-cell{color:#bbb;text-align:center;padding-top:6mm;font-size:8pt}
