.alerts{display:grid;gap:8px;margin-bottom:16px}
.alert{padding:12px 15px;border-radius:10px;border:1px solid}
.alert.warning{background:#fff8e1;border-color:#f2cf69;color:#805b10}
.alert.danger{background:#fdecec;border-color:#efb4b4;color:var(--red)}
.alert a{font-weight:700;margin-left:6px}
.settings-help{margin-top:0;color:var(--muted)}
.required{color:var(--red)}
.role-list{display:grid;gap:10px}.role-list>div{display:flex;justify-content:space-between;gap:15px;padding:13px;border:1px solid var(--border);border-radius:12px}.role-list small{color:var(--muted);text-align:right}.status.warning,.status.important{background:#fff3cd;color:#7a5700}.status.danger{background:#fdecec;color:var(--red)}.security-kpis{margin-bottom:18px}
.platform-link{display:block;text-align:center;margin-top:18px;font-weight:700}.platform-badge{display:inline-block;padding:6px 10px;border-radius:99px;background:#eaf2ff;color:#2459a9;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.platform-page{min-height:100vh}.platform-header{height:82px;padding:0 34px;background:#071426;color:white}.platform-header,.platform-header>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.platform-header .brand{padding:0}.platform-header small{display:block;color:#9eb4cf}.platform-header form{margin:0}.platform-main{margin:0 auto;padding:34px;max-width:1500px}.platform-title{display:flex;justify-content:space-between;margin-bottom:22px}.platform-title h1{margin:10px 0 4px;font-size:32px}.platform-title p{color:var(--muted)}.platform-grid{grid-template-columns:1.4fr 1fr;margin:18px 0}code{background:#edf3fa;padding:5px 8px;border-radius:7px}@media(max-width:900px){.platform-grid{grid-template-columns:1fr}.platform-main{padding:20px 14px}.platform-header{padding:0 16px}}
.impersonation{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:#fff3cd;color:#6f5200;display:flex;align-items:center;justify-content:space-between;gap:12px}.impersonation form{margin:0}.impersonation button{padding:8px 12px;background:#7a5700}
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.quick-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.quick-actions a{display:grid;grid-template-columns:36px 1fr;column-gap:10px;align-items:center;background:white;border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:0 6px 20px #14203308;transition:.15s}.quick-actions a:hover{transform:translateY(-2px);box-shadow:0 10px 25px #2563eb18}.quick-actions span{grid-row:1/3;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#eef5ff;color:var(--blue);font-weight:800}.quick-actions b{font-size:13px;color:var(--text)}.quick-actions small{font-size:11px;color:var(--muted)}@media(max-width:1100px){.quick-actions{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.quick-actions{grid-template-columns:1fr}}
.form-workspace.with-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);gap:20px;align-items:start}.live-preview{position:sticky;top:18px;border-radius:18px;background:#e9eef5;border:1px solid #dce3ec;overflow:hidden;box-shadow:0 12px 38px #14203314}.preview-toolbar{display:flex;justify-content:space-between;padding:11px 15px;background:#101f35;color:#dce8f5;font-size:12px}.preview-toolbar span{color:#7ee2b8;font-weight:800}.paper-preview{margin:18px;background:white;min-height:570px;padding:28px;box-shadow:0 8px 25px #14203315;color:#172235}.paper-head,.paper-meta,.paper-object,.paper-totals>div,.paper-status{display:flex;justify-content:space-between;gap:15px}.paper-head{padding-bottom:22px;border-bottom:2px solid #172235}.paper-head>div:first-child{display:grid;grid-template-columns:38px 1fr;align-items:center;column-gap:10px}.paper-head small{grid-column:2;color:#778397}.paper-logo{grid-row:1/3;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#38bdf8,#4f46e5);color:white;display:grid;place-items:center;font-weight:900}.paper-kind{text-align:right;display:flex;flex-direction:column}.paper-kind strong{font-size:23px;letter-spacing:.08em}.paper-kind span{color:#64748b}.paper-meta{margin:26px 0}.paper-meta>div{display:flex;flex-direction:column}.paper-meta small,.paper-object small,.client-details small{font-size:9px;letter-spacing:.1em;color:#8490a2}.paper-object{flex-direction:column;padding:14px;background:#f5f8fc;border-radius:9px}.preview-lines{margin:22px 0}.preview-lines th,.preview-lines td{font-size:11px;padding:10px 8px}.paper-totals{width:58%;margin-left:auto}.paper-totals>div{padding:7px 0}.paper-totals .grand-total{border-top:2px solid #172235;font-size:16px}.paper-status{margin-top:25px;padding:10px 12px;border-radius:8px;background:#eef5ff}.paper-preview footer{text-align:center;margin-top:45px;padding-top:15px;border-top:1px solid #e2e8f0;color:#94a3b8;font-size:9px}.client-card-preview{margin:18px;background:white;min-height:480px;padding:30px;border-radius:4px;box-shadow:0 8px 25px #14203315;text-align:center}.client-avatar{width:72px;height:72px;margin:0 auto 12px;border-radius:22px;background:linear-gradient(135deg,#38bdf8,#4f46e5);display:grid;place-items:center;color:white;font-size:24px;font-weight:900}.client-card-preview h2{margin:18px 0 4px}.client-card-preview>p{color:var(--muted)}.client-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left;margin-top:25px}.client-details>div{padding:13px;background:#f7f9fc;border-radius:10px;display:flex;flex-direction:column;gap:5px}.client-details b{font-size:12px;overflow-wrap:anywhere}@media(max-width:1180px){.form-workspace.with-preview{grid-template-columns:1fr}.live-preview{position:static}.paper-preview{max-width:700px;margin:18px auto}}@media(max-width:600px){.paper-preview{margin:8px;padding:18px;min-height:520px}.paper-meta{flex-direction:column}.paper-totals{width:100%}.client-details{grid-template-columns:1fr}}
.portfolio-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:22px 25px;border-radius:18px;background:linear-gradient(115deg,#0b1f3a,#174c78);color:white;box-shadow:0 12px 34px #0b1f3a24}.portfolio-intro h2{margin:5px 0 6px;font-size:24px}.portfolio-intro p{margin:0;color:#c8daeb}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.16em;color:#7dd3fc}.portfolio-create{display:flex;gap:9px;flex-wrap:wrap}.portfolio-intro .ghost{background:#ffffff12;color:white;border-color:#ffffff42}.portfolio-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.portfolio-kpis article{padding:16px 18px;background:white;border:1px solid var(--border);border-radius:14px}.portfolio-kpis small{display:block;color:var(--muted);margin-bottom:7px}.portfolio-kpis strong{font-size:20px}.portfolio-filters{padding:18px;margin-bottom:18px}.portfolio-filters form{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr));gap:13px;align-items:end}.portfolio-filters label span{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.filter-search{grid-column:span 2}.filter-actions{display:flex;justify-content:flex-end;align-items:center;gap:13px}.filter-actions a{font-weight:700;font-size:13px}.portfolio-results .panel-head p{margin:4px 0 14px;color:var(--muted)}.record-type{display:inline-flex;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.record-type.client{background:#e8f5ff;color:#13608b}.record-type.devis{background:#f2ecff;color:#6236a5}.record-type.ventes{background:#e8f8ef;color:#157347}.record-object{max-width:280px;overflow:hidden;text-overflow:ellipsis}.open-record{font-weight:750;white-space:nowrap}@media(max-width:1200px){.portfolio-kpis{grid-template-columns:repeat(3,1fr)}.portfolio-filters form{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.portfolio-intro{align-items:flex-start;flex-direction:column}.portfolio-kpis{grid-template-columns:repeat(2,1fr)}.portfolio-kpis article:last-child{grid-column:1/-1}.portfolio-filters form{grid-template-columns:1fr}.filter-search{grid-column:auto}.filter-actions{justify-content:space-between}.portfolio-results{padding:14px}}
.sidebar nav a,.side-bottom a,.logout{display:flex;align-items:center;gap:11px}.sidebar nav a svg,.side-bottom svg,.logout svg{width:18px;height:18px;flex:0 0 auto}.button svg,button svg,.open-record svg{width:17px;height:17px;vertical-align:-3px;margin-right:6px}.login-shell{width:min(1120px,94vw);min-height:680px;margin:35px auto;display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border:1px solid #ffffff60;border-radius:30px;overflow:hidden;box-shadow:0 35px 100px #0009}.login-visual{position:relative;display:flex;flex-direction:column;padding:38px 46px;background:radial-gradient(circle at 15% 10%,#2563eb55,transparent 30%),linear-gradient(145deg,#071426,#0d3159);color:white;overflow:hidden}.login-visual:after{content:"";position:absolute;width:330px;height:330px;border:1px solid #ffffff15;border-radius:50%;right:-150px;top:-110px}.login-brand,.mobile-brand{display:flex;align-items:center;gap:12px;font-size:17px;position:relative;z-index:1}.login-copy{margin:auto 0;position:relative;z-index:1}.trust-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #7dd3fc55;background:#38bdf811;border-radius:99px;color:#bae6fd;font-size:11px;font-weight:750}.trust-pill svg{width:15px}.login-copy h2{font-size:42px;line-height:1.08;letter-spacing:-.045em;margin:22px 0 14px}.login-copy h2 em{font-style:normal;color:#67e8f9}.login-copy p{max-width:500px;color:#b8cbe0;line-height:1.65}.login-copy img{display:block;width:min(390px,80%);height:220px;object-fit:contain;margin:18px auto -10px;filter:drop-shadow(0 20px 30px #0004)}.trust-row{position:relative;z-index:1;display:flex;gap:18px;color:#a9c0d7;font-size:11px}.trust-row span{display:flex;align-items:center;gap:6px}.trust-row svg{width:14px}.login-shell .login-card{width:auto;box-shadow:none;border:0;border-radius:0;padding:70px 55px;display:flex;flex-direction:column;justify-content:center}.mobile-brand{display:none}.form-kicker{font-size:10px;letter-spacing:.14em;color:#2563eb;font-weight:900}.login-shell .login-card h1{margin:9px 0 4px}.login-shell .login-card p{margin:0 0 27px}.password-field{display:block;position:relative;margin-bottom:15px}.password-field input{margin:0;padding-right:48px}.password-toggle{position:absolute;right:5px;top:5px;width:39px;height:39px;padding:0;display:grid;place-items:center;background:transparent;color:#718096;box-shadow:none}.password-toggle:hover{background:#eef4ff;box-shadow:none;transform:none}.password-toggle svg{margin:0}.login-security{display:flex;gap:8px;align-items:flex-start;margin-top:15px;padding:10px;border-radius:10px;background:#f4f8fd;color:#64748b;font-size:11px;line-height:1.4}.login-security svg{width:16px;flex:0 0 auto;color:#0f9f6e}@media(max-width:850px){.login-shell{display:block;min-height:0;width:min(470px,92vw);margin:24px auto}.login-visual{display:none}.login-shell .login-card{padding:38px 34px}.mobile-brand{display:flex;margin-bottom:32px}}@media(max-width:480px){.login-shell{margin:14px auto;border-radius:22px}.login-shell .login-card{padding:29px 23px}}
.motion-reveal{opacity:0;will-change:transform,opacity;transition:opacity .58s cubic-bezier(.22,1,.36,1) var(--reveal-delay),transform .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay),filter .58s ease var(--reveal-delay)}.motion-reveal.reveal-rise{transform:translateY(var(--reveal-distance)) scale(.985)}.motion-reveal.reveal-soft{transform:scale(.975);filter:blur(3px)}.motion-reveal.reveal-slide{transform:translateX(var(--reveal-distance))}.motion-reveal.is-visible{opacity:1;transform:none;filter:none}.kpis article,.portfolio-kpis article,.quick-actions a{transform-origin:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.kpis article:hover,.portfolio-kpis article:hover,.quick-actions a:hover{transform:translateY(-4px) rotate(var(--hover-angle));border-color:#bfdbfe;box-shadow:0 16px 38px #2563eb1c}.ambient-orb{position:fixed;z-index:-1;pointer-events:none;left:var(--orb-x);top:var(--orb-y);width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#38bdf812,transparent 68%);filter:blur(8px);animation:orb-drift var(--orb-duration) ease-in-out infinite alternate}@keyframes orb-drift{to{transform:translate3d(-55px,70px,0) scale(1.18)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-reveal{opacity:1!important;transform:none!important;filter:none!important}.ambient-orb{display:none}}
.demo-login-button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin-top:14px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#ecfeff);color:#1d4ed8;transition:.2s}.demo-login-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #2563eb1c}.demo-login-button>svg{width:20px}.demo-login-button>svg:last-child{width:16px}.demo-login-button b,.demo-login-button small{display:block}.demo-login-button small{margin-top:2px;color:#64748b;font-size:10px}.tab-visual{position:relative;display:flex;align-items:center;gap:20px;margin-bottom:18px;padding:20px 24px;border-radius:18px;color:#fff;overflow:hidden;box-shadow:0 12px 30px #14203318}.tab-visual-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:#ffffff18;border:1px solid #ffffff25}.tab-visual-icon svg{width:29px;height:29px}.tab-visual span{font-size:9px;font-weight:900;letter-spacing:.14em;color:#bae6fd}.tab-visual h2{margin:4px 0 3px;font-size:21px}.tab-visual p{margin:0;color:#d2e3f1;font-size:12px}.tab-clients{background:linear-gradient(120deg,#075985,#0891b2)}.tab-fournisseurs{background:linear-gradient(120deg,#3730a3,#6366f1)}.tab-devis{background:linear-gradient(120deg,#581c87,#9333ea)}.tab-ventes{background:linear-gradient(120deg,#065f46,#059669)}.tab-achats{background:linear-gradient(120deg,#7c2d12,#ea580c)}.tab-tresorerie{background:linear-gradient(120deg,#713f12,#d97706)}.tab-visual-decoration{margin-left:auto;display:flex;align-items:end;gap:7px;height:60px}.tab-visual-decoration span{display:block;width:12px;border-radius:5px 5px 2px 2px;background:#ffffff35}.tab-visual-decoration span:nth-child(1){height:24px}.tab-visual-decoration span:nth-child(2){height:43px}.tab-visual-decoration span:nth-child(3){height:58px}@media(max-width:600px){.tab-visual{padding:17px}.tab-visual p,.tab-visual-decoration{display:none}.tab-visual-icon{width:48px;height:48px}}
.login-page .login-shell{padding:0;max-width:1120px}.login-page .login-visual{margin:0}.login-page .login-card{margin:0}
body.login-page{display:block;overflow-x:hidden;overflow-y:auto;min-height:100vh;padding:1px 0}.login-page .login-shell{width:min(1120px,calc(100vw - 32px));min-height:min(680px,calc(100vh - 40px));margin:20px auto;padding:0;border:0;background:#071426}.login-page .login-visual{width:100%;min-width:0;border:0}.login-page .login-card{width:100%;min-width:0;background:#fff}@media(max-width:850px){body.login-page{padding:1px 0}.login-page .login-shell{width:min(470px,calc(100vw - 24px));min-height:0;margin:12px auto;background:#fff}}
.brand .brand-mark,.logo.brand-mark{display:block;object-fit:cover;background:#fff;border:0;padding:0}.brand .brand-mark{width:46px;height:46px;border-radius:14px;box-shadow:0 10px 28px #07142655;flex:0 0 auto}.login-brand .brand-mark,.mobile-brand .brand-mark{width:50px;height:50px;border-radius:15px}.login-brand .brand-mark{box-shadow:0 12px 30px #0005}.paper-logo.brand-mark{width:38px;height:38px;object-fit:cover;border-radius:10px;background:#fff}.platform-header .brand-mark{width:44px;height:44px}.doc-logo{width:58px;height:58px;object-fit:cover;border-radius:15px;border:1px solid #dfe7ef;background:#fff}@media(max-width:600px){.brand .brand-mark{width:42px;height:42px}}
.quote-builder{grid-column:1/-1;padding:18px;border:1px solid #dbe5f0;border-radius:15px;background:linear-gradient(145deg,#f8fbff,#fff)}.quote-builder-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.quote-builder-head span{font-size:9px;font-weight:900;letter-spacing:.14em;color:#2563eb}.quote-builder-head h2{margin:4px 0;font-size:18px}.quote-builder-head p{margin:0;color:var(--muted);font-size:11px}.quote-line-labels,.quote-line-row{display:grid;grid-template-columns:minmax(220px,2.5fr) 70px 90px 100px 82px 82px 105px 82px;gap:7px;align-items:center}.quote-line-labels{padding:0 7px 7px;color:#718096;font-size:9px;font-weight:850;text-transform:uppercase}.quote-line-row{margin-bottom:8px;padding:8px 7px;border:1px solid #e6ebf2;border-radius:11px;background:#fff;box-shadow:0 4px 12px #14203308}.quote-line-row input,.quote-line-row select{min-width:0;padding:9px 8px;font-size:11px}.ql-description{font-weight:650}.ql-total{text-align:right;font-size:11px}.ql-actions{display:flex}.ql-actions button{padding:5px;background:transparent;color:#718096;box-shadow:none}.ql-actions button:hover{color:#2563eb;background:#eef4ff;box-shadow:none}.ql-actions svg{width:14px;margin:0}.quote-editor-summary{display:flex;justify-content:flex-end;gap:19px;margin-top:13px;padding-top:13px;border-top:1px solid #dfe7ef}.quote-editor-summary span{font-size:11px;color:#64748b}.quote-editor-summary b,.quote-editor-summary strong{margin-left:6px;color:#142033}.quote-editor-summary strong{font-size:15px;color:#1d4ed8}.preview-lines{white-space:normal}.preview-lines td:first-child{max-width:220px;overflow-wrap:anywhere}.paper-preview{aspect-ratio:210/297;height:auto;min-height:650px}.paper-preview:after{content:"A4 · Aperçu proportionnel";display:block;margin-top:14px;text-align:right;color:#b0bac8;font-size:8px}@media(max-width:900px){.quote-line-labels{display:none}.quote-line-row{grid-template-columns:2fr 70px 90px 1fr}.quote-line-row .ql-discount,.quote-line-row .ql-vat{display:block}.ql-total{text-align:left}.ql-actions{justify-content:flex-end}}@media(max-width:600px){.quote-builder-head{align-items:flex-start;flex-direction:column}.quote-line-row{grid-template-columns:1fr 1fr}.quote-line-row .ql-description{grid-column:1/-1}.ql-actions{grid-column:1/-1}.quote-editor-summary{flex-direction:column;gap:6px}}
.quote-builder{container-type:inline-size;min-width:0;max-width:100%;overflow:hidden}.quote-line-row{width:100%;max-width:100%;min-width:0}.quote-line-row>*{min-width:0}.ql-actions{max-width:100%;flex-wrap:wrap}.ql-actions button{flex:0 0 25px}.quote-builder-head>div{min-width:0}.quote-builder-head .button{flex:0 0 auto}@container (max-width:950px){.quote-line-labels{display:none}.quote-line-row{grid-template-columns:minmax(170px,2fr) 65px 82px minmax(85px,1fr)}.ql-total{text-align:left}.ql-actions{justify-content:flex-end}}@container (max-width:570px){.quote-line-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.quote-line-row .ql-description{grid-column:1/-1}.quote-line-row .ql-total{align-self:center}.quote-line-row .ql-actions{grid-column:1/-1;justify-content:flex-end}.quote-builder-head{align-items:flex-start;flex-direction:column}.quote-builder-head .button{width:100%}.quote-editor-summary{display:grid;grid-template-columns:1fr 1fr}.quote-editor-summary span:last-child{grid-column:1/-1;padding-top:8px;border-top:1px solid #dfe7ef}.quote-editor-summary span{display:flex;justify-content:space-between}}@container (max-width:360px){.quote-line-row{grid-template-columns:1fr}.quote-line-row .ql-description,.quote-line-row .ql-actions{grid-column:auto}.quote-editor-summary{grid-template-columns:1fr}.quote-editor-summary span:last-child{grid-column:auto}}
