:root{--color-bg:#080808;--color-surface:#1a1a1ad9;--color-surface-2:#202020d9;--color-border:#1e1e1e;--color-border-light:#2e2e2e;--color-primary:#d4151b;--color-primary-dark:#a50f14;--color-primary-light:#e83a3f;--color-text:#fff;--color-text-muted:#888;--color-text-faint:#444;--color-success:#22c55e;--font-display:"Barlow Condensed", sans-serif;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--shadow-md:0 4px 16px #0006;--transition-fast:.15s ease;--header-height:64px}*{box-sizing:border-box}html{color-scheme:dark;background-color:var(--color-bg)}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;margin:0;line-height:1.5}a{color:var(--color-primary);text-decoration:none}.header-wrap{z-index:100;position:sticky;top:0}nav{align-items:center;gap:var(--space-4,1rem);height:var(--header-height);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);background-color:#0a0a0af0;padding-inline:1.5rem;display:flex}.logo{flex-shrink:0;align-items:center;gap:.6rem;text-decoration:none;display:flex}.logo__icon{border-radius:var(--radius-sm);flex-shrink:0;width:32px;height:32px}.logo__wordmark{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text);white-space:nowrap;font-size:1.35rem;font-weight:800;line-height:1}.logo__accent{color:var(--color-primary)}.logo__suffix{font-family:var(--font-sans);color:var(--color-text-muted);text-transform:none;letter-spacing:0;border-left:1px solid var(--color-border-light);padding-left:.5rem;font-size:.75rem;font-weight:500}.nav-links{flex:1;align-items:center;gap:.25rem;display:flex}.nav-links a{border-radius:var(--radius-md);color:var(--color-text-muted);transition:color var(--transition-fast), background-color var(--transition-fast);white-space:nowrap;padding:.5rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none}.nav-links a:hover{color:var(--color-text);background-color:var(--color-surface);text-decoration:none}.nav-links a.active{color:var(--color-text);background-color:var(--color-surface)}#logout-link{color:var(--color-text-muted);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:border-color var(--transition-fast), color var(--transition-fast);padding:.5rem .75rem;font-size:.875rem}#logout-link:hover{border-color:var(--color-primary);color:var(--color-primary);text-decoration:none}main{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem}main.wide{max-width:1400px}h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.01em;color:var(--color-text);margin:0 0 .25rem;font-size:2rem;font-weight:800}h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.005em;color:var(--color-text);margin:2.5rem 0 .25rem;font-size:1.25rem;font-weight:700}.card h2:first-child{margin-top:0}table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-lg);width:100%;margin-top:1.5rem;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem 1rem;font-size:.875rem}th{background:var(--color-surface-2);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:600}th.th-sort{cursor:pointer;user-select:none;transition:color var(--transition-fast)}th.th-sort:hover{color:var(--color-text)}.sort-icon{opacity:.45;margin-left:.15rem;font-size:.9em}th.th-sort.sort-active .sort-icon{opacity:1;color:var(--color-primary)}tr:last-child td{border-bottom:none}.statut-select{width:auto;min-width:8.5rem}form.card,.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-primary);margin-top:1.5rem;padding:1.5rem}.search-bar input[type=search]{margin-top:0}.form-grid-2{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.form-grid-npa{grid-template-columns:100px 1fr;gap:.5rem;display:grid}.total-preview{text-align:right;margin-top:1rem;font-weight:600}.form-error{color:var(--color-primary-light);margin-top:1rem}.form-success{color:var(--color-success);margin-top:1rem}label{color:var(--color-text-muted);margin-top:1rem;margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}input,select,textarea{background-color:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);font-size:.9rem;font-family:var(--font-sans);box-sizing:border-box;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.6rem .75rem}input::placeholder,textarea::placeholder{color:var(--color-text-faint)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #d4151b33}button{background:var(--color-primary);color:#fff;border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-sans);transition:all var(--transition-fast);margin-top:1rem;padding:.6rem 1.25rem}button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}button.secondary{color:var(--color-text);border-color:var(--color-border-light);background:0 0}button.secondary:hover{border-color:var(--color-primary);color:var(--color-primary);background:0 0}button.danger{color:var(--color-primary-light);border-color:var(--color-primary-light);background:0 0}button.danger:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.ligne-row{grid-template-columns:1fr 80px 100px 40px;align-items:center;gap:.5rem;margin-top:.5rem;display:grid}.ligne-desc-cell{align-items:center;gap:.4rem;display:flex}.ligne-desc-cell .ligne-desc{flex:1;min-width:0}.ligne-swatch{border:1px solid var(--color-border-light);vertical-align:middle;border-radius:50%;flex:none;width:1.1rem;height:1.1rem;display:inline-block}.ligne-swatch--empty{visibility:hidden}td.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.actions a{display:inline-flex}.actions button{margin:0;padding:.45rem .85rem;font-size:.8rem}.empty{color:var(--color-text-muted);font-style:italic}.client-info{flex-direction:column;gap:.9rem;display:flex}.client-info__row{color:var(--color-text);align-items:center;gap:.85rem;font-size:.95rem;line-height:1.4;display:flex}a.client-info__row:hover{color:var(--color-primary)}a.client-info__row:hover .client-info__icon{border-color:var(--color-primary);color:var(--color-primary)}.client-info__icon{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border-light);width:2.1rem;height:2.1rem;color:var(--color-text-muted);transition:border-color var(--transition-fast), color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.client-info__icon svg{width:1.05rem;height:1.05rem}.client-info__notes{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin:.4rem 0 0;padding-top:.9rem;font-size:.875rem}#toast-container{z-index:1000;flex-direction:column;gap:.5rem;max-width:calc(100vw - 2rem);display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{background:var(--color-surface-2);border:1px solid var(--color-border-light);border-left:3px solid var(--color-primary);color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);max-width:320px;padding:.75rem 1rem;font-size:.875rem;transform:translateY(8px)}.toast--visible{opacity:1;transform:translateY(0)}.toast--success{border-left-color:var(--color-success)}.toast--error{border-left-color:var(--color-primary-light)}#confirm-overlay{z-index:1001;background:#0009;justify-content:center;align-items:center;padding:1rem;display:none;position:fixed;inset:0}.confirm-box{background:var(--color-surface-2);border:1px solid var(--color-primary);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-md);padding:1.5rem}.confirm-box p{color:var(--color-text);margin:0 0 1.25rem;font-size:.95rem}.confirm-box__actions{justify-content:flex-end;gap:.5rem;display:flex}.confirm-box__actions button{margin-top:0}#pdf-preview-overlay{z-index:1001;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:none;position:fixed;inset:0}.pdf-preview-box{background:var(--color-surface-2);border:1px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;width:100%;max-width:900px;height:100%;max-height:90vh;display:flex;overflow:hidden}.pdf-preview-box__header{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.pdf-preview-box__title{color:var(--color-text);margin:0;font-size:.95rem;font-weight:600}.pdf-preview-box__actions{gap:.5rem;display:flex}.pdf-preview-box__actions button{margin-top:0}.pdf-preview-box__frame{background:var(--color-surface-1,#fff);border:none;flex:1}.chart{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.chart-row{grid-template-columns:3.5rem 1fr auto;align-items:center;gap:.75rem;display:grid}.chart-row__label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.chart-row__track{background:var(--color-surface-2);border-radius:var(--radius-full);height:.6rem;overflow:hidden}.chart-row__bar{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width .3s}.chart-row__value{color:var(--color-text);white-space:nowrap;font-size:.85rem}.stat-single{align-items:baseline;gap:.75rem;margin-top:.75rem;display:flex}.stat-single__label{font-family:var(--font-display);color:var(--color-text-muted);font-size:1rem;font-weight:700}.stat-single__value{font-family:var(--font-display);color:var(--color-primary);font-size:2rem;font-weight:800}@media (width<=640px){nav{flex-wrap:wrap;gap:.5rem;height:auto;padding:.75rem 1rem}.nav-links{flex-wrap:wrap;gap:.25rem}main{padding:1.5rem 1rem}h1{font-size:1.5rem}.form-grid-2,.form-grid-npa{grid-template-columns:1fr}.ligne-row{grid-template-columns:1fr 1fr auto;grid-template-areas:"desc desc desc""qte prix remove"}.ligne-row .ligne-desc-cell{grid-area:desc}.ligne-row .ligne-qte{grid-area:qte}.ligne-row .ligne-prix{grid-area:prix}.ligne-row .remove-ligne{grid-area:remove}table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.chart-row{grid-template-columns:2.5rem 1fr;grid-template-areas:"label value""track track";row-gap:.3rem}.chart-row__label{grid-area:label}.chart-row__value{text-align:right;grid-area:value}.chart-row__track{grid-area:track}}
