@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/manrope-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/manrope-latin-800-normal.woff2)format("woff2")}:root{--ink:#0f172a;--ink-soft:#475569;--ink-faint:#94a3b8;--surface:#fff;--surface-alt:#f8fafc;--surface-sunken:#f1f5f9;--border:#0f172a17;--border-strong:#0f172a29;--accent:#4f46e5;--accent-dark:#4338ca;--accent-soft:#4f46e517;--accent-soft-strong:#4f46e529;--success:#059669;--success-soft:#d1fae5;--danger:#dc2626;--danger-soft:#fee2e2;--warning:#b45309;--warning-soft:#fef3c7;--neutral-soft:#e2e8f0;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:999px;--shadow-sm:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0d;--shadow-md:0 6px 16px #0f172a0f, 0 2px 6px #0f172a0a;--shadow-lg:0 16px 40px #0f172a1f}*{box-sizing:border-box}html{overflow-x:hidden}body{background:var(--surface-alt);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}::selection{background:var(--accent-soft-strong)}.app-loading{height:100vh;color:var(--ink-faint);justify-content:center;align-items:center;gap:10px;font-size:.88rem;display:flex}.app-loading:before{content:"";border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dp-logo{align-items:center;gap:9px;display:inline-flex}.dp-logo-mark{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex;box-shadow:0 3px 8px #4f46e547}.dp-logo-word{letter-spacing:-.01em;color:var(--ink);font-size:1.05rem;font-weight:800}.dp-logo-word span{color:var(--accent)}.dp-logo.lg .dp-logo-mark{border-radius:13px;width:46px;height:46px}.dp-logo.lg .dp-logo-word{font-size:1.5rem}.auth-wrap{background:radial-gradient(ellipse 60% 50% at 15% 10%, #4f46e512 0%, transparent 55%), radial-gradient(ellipse 50% 40% at 90% 90%, #4f46e50d 0%, transparent 55%), var(--surface-alt);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:40px 34px}.auth-logo{justify-content:center;margin-bottom:28px;display:flex}.auth-tabs{background:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:26px;padding:4px;display:flex}.auth-tabs button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:9px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .15s}.auth-tabs button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-form label{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:.78rem;font-weight:600;display:flex}.auth-form input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:12px 14px;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-error{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);padding:11px 13px;font-size:.82rem;font-weight:500}.auth-submit{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:4px;padding:13px;font-family:inherit;font-size:.92rem;font-weight:700;transition:background .15s,transform .1s}.auth-submit:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px)}.auth-submit:disabled{opacity:.6;cursor:default;transform:none}.layout{min-height:100vh}.layout-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:20;background:#ffffffe6;justify-content:space-between;align-items:center;gap:22px;padding:12px 24px;display:flex;position:sticky;top:0}.layout-logo{display:flex}.layout-nav{flex-wrap:wrap;flex:1;gap:3px;display:flex}.layout-nav button{border-radius:var(--radius-full);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-family:inherit;font-size:.84rem;font-weight:600;transition:all .15s}.layout-nav button:hover{background:var(--surface-sunken);color:var(--ink)}.layout-nav button.active{background:var(--accent-soft);color:var(--accent)}.layout-user{color:var(--ink-soft);align-items:center;gap:10px;font-size:.82rem;display:flex}.layout-user>span{color:var(--ink);font-weight:600;display:none}.layout-reglages,.layout-logout{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;padding:7px 13px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s}.layout-reglages:hover,.layout-logout:hover{border-color:var(--border-strong);color:var(--ink)}.layout-reglages.active{background:var(--accent);border-color:var(--accent);color:#fff}.layout-main{max-width:760px;margin:0 auto;padding:32px 24px 60px}.layout-burger{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-direction:column;flex-shrink:0;justify-content:center;gap:4px;width:34px;height:34px;padding:0;display:none}.layout-burger span{background:var(--ink);border-radius:2px;width:16px;height:2px;margin:0 auto;transition:transform .2s,opacity .2s;display:block}.layout-burger.open span:first-child{transform:translateY(6px)rotate(45deg)}.layout-burger.open span:nth-child(2){opacity:0}.layout-burger.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.layout-mobile-backdrop{z-index:25;background:#0f172a40;position:fixed;inset:0}.layout-mobile-menu{background:var(--surface);border-left:1px solid var(--border);width:min(78vw,300px);box-shadow:var(--shadow-lg);z-index:30;flex-direction:column;gap:2px;padding:76px 16px 24px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.layout-mobile-menu button{text-align:left;border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:13px 14px;font-family:inherit;font-size:.92rem;font-weight:600}.layout-mobile-menu button.active{background:var(--accent-soft);color:var(--accent)}.layout-mobile-menu button:hover:not(.active){background:var(--surface-sunken)}.layout-mobile-logout{color:var(--danger)!important}.layout-mobile-divider{background:var(--border);height:1px;margin:8px 6px}.layout-mobile-org{color:var(--ink-faint);padding:6px 14px 4px;font-size:.78rem;font-weight:700}@media (width>=720px){.layout-user>span{display:inline}}.page-wrap h1{letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;font-size:1.4rem;font-weight:800}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.page-header h1{margin:0}.page-empty{color:var(--ink-faint);text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:36px 20px;font-size:.88rem}.page-error{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:.84rem;font-weight:500}.page-success{background:var(--success-soft);color:var(--success);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:16px;padding:12px 14px;font-size:.84rem;font-weight:500}.page-hint{color:var(--ink-faint);margin:-10px 0 20px;font-size:.84rem;line-height:1.6}.dashboard-org{color:var(--ink-soft);margin:0 0 24px;font-size:.92rem}.dashboard-section-title{color:var(--ink);margin:8px 0 14px;font-size:1.02rem;font-weight:800}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 18px;font-family:inherit;font-size:.85rem;font-weight:700;transition:all .15s}.btn-primary:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:default;transform:none}.btn-secondary-solid{background:var(--surface);color:var(--ink);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 18px;font-family:inherit;font-size:.85rem;font-weight:700;transition:all .15s}.btn-secondary-solid:hover{border-color:var(--accent);color:var(--accent)}.btn-secondary{border:1.5px dashed var(--border-strong);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:9px 15px;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .15s}.btn-secondary:hover{border-color:var(--accent);background:var(--accent-soft)}.btn-danger-text{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-family:inherit;font-size:.8rem;font-weight:600}.btn-danger-text:hover{text-decoration:underline}.btn-relancer{border:1.5px solid var(--accent);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;padding:6px 13px;font-family:inherit;font-size:.76rem;font-weight:700;transition:all .15s}.btn-relancer:hover:not(:disabled){background:var(--accent);color:#fff}.btn-relancer:disabled{opacity:.6;cursor:default}.btn-convertir{background:var(--success);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 13px;font-family:inherit;font-size:.76rem;font-weight:700;transition:background .15s}.btn-convertir:hover:not(:disabled){background:#047857}.btn-convertir:disabled{opacity:.6;cursor:default}.btn-transmettre{background:var(--ink);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 13px;font-family:inherit;font-size:.76rem;font-weight:700;transition:background .15s}.btn-transmettre:hover:not(:disabled){background:#1e293b}.btn-transmettre:disabled{opacity:.6;cursor:default}.facture-badge{color:var(--success);white-space:nowrap;font-size:.74rem;font-weight:700}.relance-info{color:var(--ink-faint);white-space:nowrap;font-size:.72rem}.inline-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:15px;margin-bottom:20px;padding:22px;display:flex}.inline-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.inline-form label{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:.76rem;font-weight:600;display:flex}.inline-form input,.inline-form select{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--ink);padding:10px 12px;font-family:inherit;font-size:.87rem;transition:border-color .15s}.inline-form input:focus,.inline-form select:focus{border-color:var(--accent);background:var(--surface);outline:none}.inline-form input:disabled,.inline-form select:disabled{opacity:.55;cursor:not-allowed}.client-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.client-item,.devis-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;transition:box-shadow .15s,border-color .15s;display:flex}.client-item:hover,.devis-item:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.client-name{color:var(--ink);font-size:.92rem;font-weight:700}.client-meta{color:var(--ink-faint);margin-top:3px;font-size:.78rem}.devis-item-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.devis-item-main{flex:160px;min-width:0}.devis-item-main .client-name{overflow-wrap:break-word}.devis-total-live{color:var(--ink);border-top:1px dashed var(--border);padding-top:8px;font-size:.92rem}.lignes-list{flex-direction:column;gap:8px;display:flex}.ligne-row{grid-template-columns:1fr 70px 90px 80px 28px;align-items:center;gap:8px;display:grid}.ligne-row input,.ligne-row select{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--ink);padding:9px 11px;font-family:inherit;font-size:.84rem}.ligne-row input:focus,.ligne-row select:focus{border-color:var(--accent);background:var(--surface);outline:none}.ligne-remove{color:var(--danger);cursor:pointer;background:0 0;border:none;font-size:1.2rem;line-height:1}.service-picker{border:1.5px dashed var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);align-self:flex-start;padding:10px 12px;font-family:inherit;font-size:.84rem;font-weight:600}.filtres-row{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.filtre-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--ink-soft);cursor:pointer;padding:7px 15px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s}.filtre-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}.statut-badge{border-radius:var(--radius-full);white-space:nowrap;padding:4px 11px;font-size:.72rem;font-weight:700}.statut-brouillon{background:var(--neutral-soft);color:var(--ink-soft)}.statut-envoye{background:var(--accent-soft-strong);color:var(--accent-dark)}.statut-accepte{background:var(--success-soft);color:var(--success)}.statut-refuse{background:var(--danger-soft);color:var(--danger)}.statut-expire{background:var(--warning-soft);color:var(--warning)}.statut-paiement-emise{background:var(--neutral-soft);color:var(--ink-soft)}.statut-paiement-payee{background:var(--success-soft);color:var(--success)}.statut-paiement-impayee{background:var(--danger-soft);color:var(--danger)}.statut-paiement-en_retard{background:var(--warning-soft);color:var(--warning)}.statut-transmission-non_transmise{background:var(--neutral-soft);color:var(--ink-soft)}.statut-transmission-transmise{background:var(--accent-soft-strong);color:var(--accent-dark)}.statut-transmission-recue{background:var(--success-soft);color:var(--success)}.statut-transmission-rejetee{background:var(--danger-soft);color:var(--danger)}.statut-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);padding:5px 9px;font-family:inherit;font-size:.76rem;font-weight:600}.dashboard-actions{flex-wrap:wrap;gap:10px;margin:4px 0 28px;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:32px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px}.stat-value{color:var(--ink);letter-spacing:-.01em;font-size:1.55rem;font-weight:800}.stat-label{color:var(--ink-faint);margin-top:5px;font-size:.76rem;font-weight:600}.stat-sublabel{color:var(--danger);margin-top:2px;font-size:.7rem;font-weight:600}.reglages-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:24px}.reglages-section h2{color:var(--ink);margin:0 0 16px;font-size:.96rem;font-weight:800}.reglages-section .inline-form{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.reglages-info-box{background:var(--accent-soft);border:1px solid var(--accent-soft-strong);border-radius:var(--radius-sm);color:var(--ink-soft);margin-top:16px;padding:14px 16px;font-size:.82rem;line-height:1.6}.reglages-info-box strong{color:var(--ink)}@media (width<=719px){.layout-nav,.layout-user{display:none}.layout-burger{display:flex}}@media (width>=720px){.layout-mobile-menu,.layout-mobile-backdrop{display:none!important}}@media (width<=600px){.layout-header{padding:10px 16px}.layout-main{padding:24px 16px 48px}.inline-form-row{grid-template-columns:1fr}.stats-grid,.ligne-row{grid-template-columns:1fr 1fr}.ligne-designation{grid-column:1/-1}}
