.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:16px;padding:12px 18px;font-weight:900;cursor:pointer;transition:.2s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;box-shadow:0 12px 30px rgba(37,99,235,.22)}.btn-soft{background:#eef2ff;color:#1e3a8a}.btn-dark{background:var(--dark);color:#fff}.btn-sm{padding:9px 12px;border-radius:12px;font-size:.86rem}.input{width:100%;border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px 13px;outline:none;transition:.2s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.10)}label{display:block;font-weight:800;font-size:.88rem;margin:0 0 7px}.panel,.auth-card,.feature-card,.doc-card,.stat-card,.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:22px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{margin:0;font-size:1.2rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;background:#fff;border:1px solid var(--border);padding:14px;border-radius:20px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat-card{padding:20px}.stat-card span{color:var(--muted);font-weight:800}.stat-card strong{display:block;font-size:2rem;margin:8px 0;letter-spacing:-.04em}.stat-card a{color:var(--primary);font-weight:900}.doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.doc-card{padding:18px}.doc-card-head{display:flex;align-items:center;justify-content:space-between}.badge{display:inline-flex;padding:7px 10px;background:#f1f5f9;color:#334155;border-radius:999px;font-size:.78rem;font-weight:900}.doc-totals{display:grid;gap:8px;padding:12px;background:#f8fafc;border-radius:16px;margin:12px 0}.doc-actions{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:12px}.doc-actions a,.danger-link{font-weight:900;color:var(--primary);font-size:.9rem}.danger-link{color:var(--danger)!important}.empty-state{grid-column:1/-1;background:#fff;border:1px dashed var(--border);padding:34px;text-align:center;border-radius:22px;color:var(--muted)}.items-table-wrap{overflow:auto}.items-table,.data-table{width:100%;border-collapse:separate;border-spacing:0 10px}.items-table th,.data-table th{text-align:left;color:#64748b;font-size:.82rem}.items-table td,.data-table td{background:#f8fafc;padding:10px;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7}.items-table td:first-child,.data-table td:first-child{border-left:1px solid #eef2f7;border-radius:14px 0 0 14px}.items-table td:last-child,.data-table td:last-child{border-right:1px solid #eef2f7;border-radius:0 14px 14px 0}.icon-btn{width:40px;height:40px;border:0;border-radius:14px;background:#fee2e2;color:#991b1b;font-size:1.4rem;font-weight:900;cursor:pointer}.totals-box{margin-top:16px;margin-left:auto;max-width:420px;display:grid;gap:10px}.totals-box>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:14px}.totals-box .input{max-width:160px}.sticky-actions{position:sticky;bottom:18px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:20px;padding:12px;display:flex;gap:10px;box-shadow:var(--shadow);z-index:20}.auth-wrap{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:40px 16px}.auth-card{width:min(460px,100%);padding:28px}.auth-card.wide{width:min(900px,100%)}.auth-card h1{margin:8px 0 12px;font-size:2rem;letter-spacing:-.04em}.pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.price-card{border:1px solid var(--border);border-radius:22px;padding:22px;background:#fff}.price-card.primary{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff,#fff)}.price{font-size:2.2rem;font-weight:950;letter-spacing:-.05em;margin:10px 0}.hero-section{min-height:calc(100vh - 72px);display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:center;max-width:1180px;margin:0 auto;padding:72px 24px}.hero-content h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.95;letter-spacing:-.07em;margin:10px 0}.hero-content p{font-size:1.15rem;color:#475569;max-width:650px}.hero-actions,.trust-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.trust-row span{background:#fff;border:1px solid var(--border);padding:9px 12px;border-radius:999px;font-weight:800;color:#334155}.glass-card{background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.6);border-radius:32px;padding:26px;box-shadow:0 30px 90px rgba(15,23,42,.16)}.mini-invoice{background:#fff;border-radius:24px;padding:22px;border:1px solid var(--border)}.mini-head{display:flex;justify-content:space-between}.mini-line{height:14px;background:#e2e8f0;border-radius:999px;margin:18px 0}.mini-line.short{width:70%}.mini-grid{display:grid;grid-template-columns:1fr auto;gap:12px}.features-section{max-width:1180px;margin:0 auto;padding:30px 24px 80px}.section-title h2{font-size:2rem;letter-spacing:-.05em}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.feature-card{padding:22px}.preview-wrap{overflow:auto}.invoice-template{width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#111827;padding:18mm;box-shadow:var(--shadow);border-radius:12px;display:flex;flex-direction:column}.invoice-top{display:flex;justify-content:space-between;gap:30px;border-bottom:3px solid var(--accent);padding-bottom:18px}.company-logo{max-width:110px;max-height:80px;object-fit:contain;margin-bottom:10px}.company-block h2,.invoice-meta h1{margin:0 0 8px}.invoice-meta{text-align:right}.invoice-meta h1{text-transform:uppercase;color:var(--accent);font-size:2.3rem}.small-line{font-size:.82rem;color:#64748b}.client-box{margin:24px 0;padding:16px;border:1px solid #e5e7eb;border-radius:16px;background:#f9fafb}.client-box span{text-transform:uppercase;font-size:.75rem;color:#64748b;font-weight:900}.client-box h3{margin:5px 0}.invoice-lines{width:100%;border-collapse:collapse;margin:22px 0}.invoice-lines th{background:var(--accent);color:#fff;text-align:left;padding:12px}.invoice-lines td{border-bottom:1px solid #e5e7eb;padding:12px}.invoice-bottom{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:24px}.notes-box{background:#f9fafb;border-radius:16px;padding:16px}.invoice-summary{display:grid;gap:8px}.invoice-summary div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e5e7eb}.grand-total{background:var(--accent)!important;color:#fff;border:0!important;border-radius:12px;padding:14px!important}.invoice-company-footer{margin-top:auto;border-top:2px solid var(--accent);padding-top:10px;font-size:.72rem;color:#475569;line-height:1.45}.footer-company-name{font-weight:950;color:#111827;text-align:center;margin-bottom:6px}.footer-lines{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:center;text-align:center}.footer-lines span{display:inline-flex;gap:3px}.footer-lines strong{color:#111827}.template-modern .invoice-company-footer{border-top-color:var(--accent)}.template-pro .invoice-company-footer{background:#f8fafc;border-radius:14px;padding:12px;margin-top:auto}.template-modern .invoice-top{border:0;background:linear-gradient(135deg,var(--accent),#111827);color:#fff;border-radius:24px;padding:22px}.template-modern .invoice-meta h1{color:#fff}.template-pro{border-top:10px solid var(--accent)}.template-pro .client-box{border-left:6px solid var(--accent)}.print-actions{position:sticky;top:0;display:flex;gap:10px;justify-content:center;background:#f8fafc;padding:12px;z-index:99}.toast-container{position:fixed;right:18px;top:86px;display:grid;gap:10px;z-index:100}.toast{background:#fff;border:1px solid var(--border);border-left:5px solid var(--primary);box-shadow:var(--shadow);border-radius:14px;padding:12px 14px;font-weight:800}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--success)}@media(max-width:980px){.hero-section{grid-template-columns:1fr}.feature-grid,.stats-grid,.doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.form-grid,.pricing-grid,.feature-grid,.stats-grid,.doc-grid,.filter-bar{grid-template-columns:1fr}.hero-section{padding:36px 16px}.hero-card{display:none}.items-table{min-width:760px}.invoice-template{width:100%;min-height:auto;padding:18px}.invoice-top,.invoice-bottom{grid-template-columns:1fr;display:grid}.invoice-company-footer{margin-top:24px}.invoice-meta{text-align:left}.table-card{overflow:auto}.data-table{min-width:720px}}@media print{body{background:#fff}.print-actions,.topbar,.bottom-nav,.sidebar,.sidebar-overlay{display:none!important}.invoice-template{box-shadow:none;border-radius:0;width:210mm;min-height:297mm;margin:0;padding:14mm}.app-shell{padding:0}@page{size:A4;margin:0}}

/* =========================================================
   PRINT FIX - iPhone/Safari A4 one page invoice/devis
   ========================================================= */
.print-page{
    background:#eef2f7;
}
.print-page .invoice-template{
    box-sizing:border-box;
}
@media print{
    @page{
        size:A4 portrait;
        margin:0;
    }
    html,
    body{
        width:210mm!important;
        min-width:210mm!important;
        height:297mm!important;
        min-height:297mm!important;
        margin:0!important;
        padding:0!important;
        background:#fff!important;
        overflow:hidden!important;
        -webkit-print-color-adjust:exact!important;
        print-color-adjust:exact!important;
    }
    body.print-page{
        display:block!important;
    }
    .print-actions,
    .topbar,
    .bottom-nav,
    .sidebar,
    .sidebar-overlay{
        display:none!important;
        visibility:hidden!important;
    }
    .print-page .invoice-template{
        position:relative!important;
        display:block!important;
        box-sizing:border-box!important;
        width:210mm!important;
        height:297mm!important;
        min-height:0!important;
        max-height:297mm!important;
        margin:0!important;
        padding:10mm 14mm 27mm!important;
        background:#fff!important;
        border-radius:0!important;
        box-shadow:none!important;
        overflow:hidden!important;
        page-break-before:avoid!important;
        page-break-after:avoid!important;
        page-break-inside:avoid!important;
        break-inside:avoid!important;
    }
    .print-page .invoice-top{
        padding-bottom:9px!important;
        gap:18px!important;
        page-break-inside:avoid!important;
        break-inside:avoid!important;
    }
    .print-page .company-logo{
        max-width:80px!important;
        max-height:58px!important;
        margin-bottom:5px!important;
    }
    .print-page .company-block h2{
        font-size:14pt!important;
        line-height:1.12!important;
        margin:0!important;
    }
    .print-page .invoice-meta h1{
        font-size:22pt!important;
        line-height:1.1!important;
        margin:0 0 5px!important;
    }
    .print-page .invoice-meta p{
        margin:3px 0!important;
        font-size:9.5pt!important;
    }
    .print-page .client-box{
        margin:12px 0!important;
        padding:9px 11px!important;
        border-radius:10px!important;
        page-break-inside:avoid!important;
        break-inside:avoid!important;
    }
    .print-page .client-box h3,
    .print-page .client-box p{
        margin:3px 0!important;
        font-size:9.5pt!important;
    }
    .print-page .invoice-lines{
        margin:12px 0!important;
        font-size:8.8pt!important;
        page-break-inside:auto!important;
    }
    .print-page .invoice-lines th{
        padding:7px 8px!important;
    }
    .print-page .invoice-lines td{
        padding:6px 8px!important;
        line-height:1.25!important;
    }
    .print-page .invoice-bottom{
        display:grid!important;
        grid-template-columns:1fr 76mm!important;
        gap:10mm!important;
        margin-top:10px!important;
        page-break-inside:avoid!important;
        break-inside:avoid!important;
    }
    .print-page .notes-box{
        padding:9px 11px!important;
        border-radius:10px!important;
        font-size:8.8pt!important;
    }
    .print-page .notes-box p{
        margin:5px 0 0!important;
    }
    .print-page .invoice-summary{
        gap:3px!important;
        font-size:9pt!important;
    }
    .print-page .invoice-summary div{
        padding:5px 0!important;
    }
    .print-page .grand-total{
        padding:8px 10px!important;
        border-radius:8px!important;
    }
    .print-page .invoice-company-footer{
        position:absolute!important;
        left:14mm!important;
        right:14mm!important;
        bottom:8mm!important;
        margin:0!important;
        padding-top:6px!important;
        font-size:7.2pt!important;
        line-height:1.25!important;
        page-break-inside:avoid!important;
        break-inside:avoid!important;
    }
    .print-page .footer-company-name{
        margin-bottom:4px!important;
        font-size:8.5pt!important;
    }
    .print-page .footer-lines{
        gap:2px 7px!important;
    }
    .print-page .footer-lines span{
        white-space:nowrap!important;
    }
    .print-page .template-pro .invoice-company-footer{
        border-radius:0!important;
        background:transparent!important;
        padding:6px 0 0!important;
    }
}

@media screen and (max-width:680px){
    .print-page{
        background:#eef2f7;
        padding:0;
    }
    .print-page .print-actions{
        position:sticky;
        top:0;
        z-index:100;
    }
    .print-page .invoice-template{
        width:210mm;
        min-height:297mm;
        padding:14mm;
        transform:scale(.48);
        transform-origin:top left;
        margin:10px auto;
    }
}

/* =========================================================
   Multi-entreprise + stock + Minimal Blue model
   ========================================================= */
.filter-bar-5{grid-template-columns:repeat(5,minmax(0,1fr))}.stats-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.stock-toggle-box,.switch-card{background:#f8fafc;border:1px solid var(--border);border-radius:16px;padding:12px}.switch-line{display:flex;align-items:center;gap:10px;margin:0;font-weight:900}.switch-line input{width:20px;height:20px;accent-color:var(--primary)}.stock-toggle-box small{display:block;color:var(--muted);font-weight:700;margin-top:6px}.stock-alert{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:16px;padding:12px 14px;margin-bottom:12px;font-weight:900}.doc-form:not(.stock-enabled) .product-col{display:none}.doc-form.stock-enabled .product-col{display:table-cell}.company-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-company-card{display:flex;align-items:center;gap:12px;background:#f8fafc;border:1px solid var(--border);border-radius:18px;padding:12px}.mini-company-card img{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:12px;border:1px solid var(--border)}.mini-company-card div{flex:1}.mini-company-card small{display:block;color:var(--muted);font-weight:800;margin-top:4px}.product-select{min-width:220px}.stock-enabled .items-table{min-width:980px}

.template-minimal_blue{--accent:#1e88e5!important;padding:16mm 16mm 22mm;border-radius:0;box-shadow:var(--shadow);font-family:Arial,Helvetica,sans-serif}.template-minimal_blue .invoice-top{border:0;padding:0;margin-bottom:34mm;display:flex;align-items:flex-start}.template-minimal_blue .company-block{display:flex;align-items:flex-start;gap:18px}.template-minimal_blue .company-logo{width:70px;height:70px;object-fit:contain;margin:0}.template-minimal_blue .company-block h2{font-size:28px;letter-spacing:6px;text-transform:uppercase;margin:18px 0 0;color:#111}.template-minimal_blue .invoice-meta{margin-top:58mm;text-align:right}.template-minimal_blue .invoice-meta h1{font-size:30px;letter-spacing:8px;font-weight:400;color:#111}.template-minimal_blue .invoice-meta p{font-size:15px;margin:4px 0;color:#111}.template-minimal_blue .client-box{width:330px;background:#eee;border:0;border-radius:30px;margin:-28mm 0 12mm;padding:18px 24px}.template-minimal_blue .client-box span{font-size:26px;font-weight:400;color:#111;text-transform:uppercase}.template-minimal_blue .client-box h3{font-size:15px;margin:12px 0 3px}.template-minimal_blue .client-box p{font-size:14px;color:#111;margin:3px 0}.template-minimal_blue .invoice-lines{border-collapse:collapse;margin-top:0;border-top:8px solid #1e88e5}.template-minimal_blue .invoice-lines th{background:#e9e9e9;color:#111;font-weight:500;padding:14px;border-right:1px solid #111}.template-minimal_blue .invoice-lines th:last-child{border-right:0}.template-minimal_blue .invoice-lines td{border-bottom:1px solid #111;border-right:1px solid #111;padding:14px;color:#111}.template-minimal_blue .invoice-lines td:last-child{border-right:0}.template-minimal_blue .invoice-bottom{grid-template-columns:1fr 320px;margin-top:34px}.template-minimal_blue .notes-box{display:none}.template-minimal_blue .invoice-summary div{border:0;font-size:16px;justify-content:flex-end;gap:8px}.template-minimal_blue .invoice-summary .grand-total{background:transparent!important;color:#111!important;font-size:26px;font-weight:400}.template-minimal_blue .invoice-company-footer{border-top:2px solid #1e88e5;text-align:center;color:#111;font-size:13px;padding-top:16px}.template-minimal_blue .footer-company-name{display:none}.template-minimal_blue .footer-lines{display:block;text-align:center}.template-minimal_blue .footer-lines span{display:block;margin:3px 0}.template-minimal_blue .footer-lines span strong{display:none}
@media(max-width:980px){.filter-bar-5,.stats-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}.company-list{grid-template-columns:1fr}}@media(max-width:680px){.filter-bar-5,.stats-grid-5{grid-template-columns:1fr}.template-minimal_blue .invoice-top,.template-minimal_blue .invoice-bottom{display:grid;grid-template-columns:1fr}.template-minimal_blue .invoice-meta{text-align:left;margin-top:24px}.template-minimal_blue .client-box{margin:20px 0;width:auto}.template-minimal_blue .company-block h2{font-size:20px;letter-spacing:3px}.template-minimal_blue .invoice-lines{min-width:760px}}


/* =========================================================
   10 modèles facture/devis Maroc - preview HTML
   ========================================================= */
.template-maroc_corporate{--accent:#006233!important;border-top:8px solid #c1272d}.template-maroc_corporate .invoice-top{border:0;background:#063b2f;color:#fff;border-radius:22px;padding:22px}.template-maroc_corporate .invoice-meta h1{color:#fff}.template-maroc_corporate .client-box{border-left:6px solid #c1272d;background:#f7fbf8}.template-maroc_corporate .invoice-lines th{background:#006233}.template-maroc_corporate .grand-total{background:#c1272d!important}.template-maroc_corporate .invoice-company-footer{border-top-color:#006233}
.template-tpe_clean{--accent:#111827!important;border:1px solid #d1d5db;box-shadow:0 10px 30px rgba(15,23,42,.08)}.template-tpe_clean .invoice-top{border-bottom:1px solid #111827}.template-tpe_clean .invoice-meta h1{color:#111827;letter-spacing:3px}.template-tpe_clean .client-box{background:#fff;border:1px solid #111827;border-radius:0}.template-tpe_clean .invoice-lines th{background:#f3f4f6;color:#111;border-top:1px solid #111;border-bottom:1px solid #111}.template-tpe_clean .invoice-lines td{border-bottom:1px solid #111}.template-tpe_clean .grand-total{background:#111827!important;color:#fff!important;border-radius:0!important}.template-tpe_clean .notes-box{background:#fff;border:1px solid #d1d5db;border-radius:0}.template-tpe_clean .invoice-company-footer{border-top:1px solid #111}
.template-commerce_stock{--accent:#0891b2!important}.template-commerce_stock .invoice-top{border:0;border-left:10px solid #0891b2;background:linear-gradient(90deg,#ecfeff,#fff);padding:22px;border-radius:18px}.template-commerce_stock .invoice-meta h1{color:#0e7490}.template-commerce_stock .client-box{background:#ecfeff;border-color:#a5f3fc}.template-commerce_stock .invoice-lines th{background:#0891b2}.template-commerce_stock .invoice-lines td:nth-child(2),.template-commerce_stock .invoice-lines td:nth-child(3){background:#f0fdff}.template-commerce_stock .grand-total{background:#0e7490!important}.template-commerce_stock .invoice-company-footer{border-top-color:#0891b2}
.template-service_agency{--accent:#7c3aed!important}.template-service_agency .invoice-top{border:0;background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;border-radius:30px;padding:24px}.template-service_agency .invoice-meta h1{color:#fff}.template-service_agency .client-box{background:#faf5ff;border-color:#e9d5ff;border-radius:24px}.template-service_agency .invoice-lines th{background:#7c3aed}.template-service_agency .invoice-lines tr:nth-child(even) td{background:#faf5ff}.template-service_agency .grand-total{background:linear-gradient(135deg,#7c3aed,#db2777)!important}.template-service_agency .invoice-company-footer{border-top-color:#7c3aed}
.template-restaurant_cafe{--accent:#b45309!important}.template-restaurant_cafe{background:#fffaf0}.template-restaurant_cafe .invoice-top{border-bottom:4px double #b45309}.template-restaurant_cafe .invoice-meta h1{color:#92400e}.template-restaurant_cafe .client-box{background:#fffbeb;border-color:#fcd34d;border-radius:22px}.template-restaurant_cafe .invoice-lines th{background:#b45309}.template-restaurant_cafe .invoice-lines td{border-bottom-color:#fde68a}.template-restaurant_cafe .grand-total{background:#92400e!important}.template-restaurant_cafe .notes-box{background:#fffbeb}.template-restaurant_cafe .invoice-company-footer{border-top-color:#b45309}
.template-btp_construction{--accent:#f59e0b!important;border-top:12px solid #111827}.template-btp_construction .invoice-top{border:0;background:#111827;color:#fff;border-radius:6px;padding:20px}.template-btp_construction .invoice-meta h1{color:#f59e0b}.template-btp_construction .client-box{background:#fffbeb;border-left:8px solid #f59e0b;border-radius:8px}.template-btp_construction .invoice-lines th{background:#f59e0b;color:#111}.template-btp_construction .invoice-lines td{border-bottom:1px solid #d1d5db}.template-btp_construction .grand-total{background:#111827!important;color:#fbbf24!important}.template-btp_construction .invoice-company-footer{border-top-color:#111827}

/* =========================================================
   Pack modèles Maroc performants - Facture Pro
   Objectif : modèles A4 légers, lisibles, compatibles PDF direct
   ========================================================= */
.template-maroc_standard_plus{--accent:#006233!important;border-top:8px solid #c1272d}.template-maroc_standard_plus .invoice-top{border:0;background:#063b2f;color:#fff;border-radius:18px;padding:22px}.template-maroc_standard_plus .invoice-meta h1{color:#fff}.template-maroc_standard_plus .client-box{background:#f7fbf8;border-left:6px solid #c1272d}.template-maroc_standard_plus .invoice-lines th{background:#006233}.template-maroc_standard_plus .grand-total{background:#c1272d!important}.template-maroc_standard_plus .invoice-company-footer{border-top-color:#006233}
.template-ice_rc_officiel{--accent:#1f2937!important;border:1px solid #d1d5db;box-shadow:0 8px 24px rgba(15,23,42,.08)}.template-ice_rc_officiel .invoice-top{border-bottom:1px solid #111827}.template-ice_rc_officiel .invoice-meta h1{color:#111827;letter-spacing:2px}.template-ice_rc_officiel .client-box{background:#fff;border:1px solid #111827;border-radius:0}.template-ice_rc_officiel .invoice-lines th{background:#f3f4f6;color:#111;border-top:1px solid #111;border-bottom:1px solid #111}.template-ice_rc_officiel .invoice-lines td{border-bottom:1px solid #111}.template-ice_rc_officiel .grand-total{background:#111827!important;color:#fff!important;border-radius:0!important}.template-ice_rc_officiel .notes-box{background:#fff;border:1px solid #d1d5db;border-radius:0}.template-ice_rc_officiel .invoice-company-footer{border-top:1px solid #111}
.template-auto_entrepreneur{--accent:#2563eb!important}.template-auto_entrepreneur{background:#ffffff}.template-auto_entrepreneur .invoice-top{border-top:7px solid #2563eb;border-bottom:0;background:linear-gradient(180deg,#eff6ff,#fff);padding:22px;border-radius:22px}.template-auto_entrepreneur .client-box{background:#eff6ff;border-color:#bfdbfe}.template-auto_entrepreneur .invoice-lines th{background:#2563eb}.template-auto_entrepreneur .grand-total{background:#2563eb!important}.template-auto_entrepreneur .invoice-company-footer{border-top-color:#2563eb}
.template-sarl_premium{--accent:#0f172a!important}.template-sarl_premium .invoice-top{border:0;background:linear-gradient(135deg,#020617,#1e3a8a);color:#fff;border-radius:26px;padding:24px}.template-sarl_premium .invoice-meta h1{color:#fff}.template-sarl_premium .client-box{background:#f8fafc;border-color:#cbd5e1;border-radius:22px}.template-sarl_premium .invoice-lines th{background:#0f172a}.template-sarl_premium .invoice-lines tr:nth-child(even) td{background:#f8fafc}.template-sarl_premium .grand-total{background:#0f172a!important}.template-sarl_premium .invoice-company-footer{border-top-color:#0f172a}
.template-commerce_retail_plus{--accent:#0891b2!important}.template-commerce_retail_plus .invoice-top{border:0;border-left:10px solid #0891b2;background:linear-gradient(90deg,#ecfeff,#fff);padding:22px;border-radius:18px}.template-commerce_retail_plus .invoice-meta h1{color:#0e7490}.template-commerce_retail_plus .client-box{background:#ecfeff;border-color:#a5f3fc}.template-commerce_retail_plus .invoice-lines th{background:#0891b2}.template-commerce_retail_plus .invoice-lines td:nth-child(2),.template-commerce_retail_plus .invoice-lines td:nth-child(3){background:#f0fdff}.template-commerce_retail_plus .grand-total{background:#0e7490!important}.template-commerce_retail_plus .invoice-company-footer{border-top-color:#0891b2}
.template-prestation_service_plus{--accent:#7c3aed!important}.template-prestation_service_plus .invoice-top{border:0;background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;border-radius:30px;padding:24px}.template-prestation_service_plus .invoice-meta h1{color:#fff}.template-prestation_service_plus .client-box{background:#faf5ff;border-color:#e9d5ff;border-radius:24px}.template-prestation_service_plus .invoice-lines th{background:#7c3aed}.template-prestation_service_plus .invoice-lines tr:nth-child(even) td{background:#faf5ff}.template-prestation_service_plus .grand-total{background:linear-gradient(135deg,#7c3aed,#2563eb)!important}.template-prestation_service_plus .invoice-company-footer{border-top-color:#7c3aed}
.template-cabinet_medical{--accent:#0d9488!important}.template-cabinet_medical .invoice-top{border:0;background:linear-gradient(135deg,#0f766e,#0d9488);color:#fff;border-radius:22px;padding:22px}.template-cabinet_medical .invoice-meta h1{color:#fff}.template-cabinet_medical .client-box{background:#f0fdfa;border-color:#99f6e4;border-radius:22px}.template-cabinet_medical .invoice-lines th{background:#0d9488}.template-cabinet_medical .grand-total{background:#0f766e!important}.template-cabinet_medical .invoice-company-footer{border-top-color:#0d9488}
.template-formation_ecole{--accent:#ea580c!important}.template-formation_ecole .invoice-top{border-top:8px solid #ea580c;border-bottom:0;background:#fff7ed;padding:22px;border-radius:22px}.template-formation_ecole .invoice-meta h1{color:#c2410c}.template-formation_ecole .client-box{background:#fff7ed;border-color:#fed7aa}.template-formation_ecole .invoice-lines th{background:#ea580c}.template-formation_ecole .grand-total{background:#c2410c!important}.template-formation_ecole .invoice-company-footer{border-top-color:#ea580c}
.template-transport_livraison{--accent:#f97316!important;border-top:12px solid #111827}.template-transport_livraison .invoice-top{border:0;background:#111827;color:#fff;border-radius:6px;padding:20px}.template-transport_livraison .invoice-meta h1{color:#f97316}.template-transport_livraison .client-box{background:#fff7ed;border-left:8px solid #f97316;border-radius:8px}.template-transport_livraison .invoice-lines th{background:#f97316;color:#111}.template-transport_livraison .invoice-lines td{border-bottom:1px solid #d1d5db}.template-transport_livraison .grand-total{background:#111827!important;color:#fdba74!important}.template-transport_livraison .invoice-company-footer{border-top-color:#111827}
.template-minimal_noir_luxe{--accent:#111827!important;border:1px solid #111827;box-shadow:0 8px 24px rgba(15,23,42,.08)}.template-minimal_noir_luxe .invoice-top{border-bottom:2px solid #111827}.template-minimal_noir_luxe .invoice-meta h1{color:#111827;letter-spacing:5px;font-weight:400}.template-minimal_noir_luxe .client-box{background:#fff;border:1px solid #111827;border-radius:0}.template-minimal_noir_luxe .invoice-lines th{background:#111827;color:#fff}.template-minimal_noir_luxe .invoice-lines td{border-bottom:1px solid #111827}.template-minimal_noir_luxe .grand-total{background:#111827!important;color:#fff!important;border-radius:0!important}.template-minimal_noir_luxe .notes-box{background:#fff;border:1px solid #111827;border-radius:0}.template-minimal_noir_luxe .invoice-company-footer{border-top:1px solid #111827}

/* Mise à jour PDF / stock */
.product-cell{display:flex;align-items:center;gap:10px;min-width:190px}.product-thumb{width:46px;height:46px;object-fit:cover;border-radius:12px;border:1px solid var(--border,#e5e7eb);background:#fff}.doc-form .muted{display:block;margin-top:4px;color:var(--muted,#64748b);font-size:12px}.stock-toggle-box small{display:block;margin-top:6px;color:var(--muted,#64748b)}
.doc-preview-card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 20px 55px rgba(15,23,42,.10);padding:28px;max-width:960px;margin:0 auto;color:#111827}.doc-preview-top{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid var(--doc-accent,#2563eb);padding-bottom:18px;margin-bottom:20px}.doc-preview-brand{display:flex;align-items:center;gap:14px}.doc-preview-brand img{width:64px;height:64px;object-fit:contain}.doc-preview-brand strong{font-size:22px}.doc-preview-brand small,.doc-preview-title span{display:block;color:#64748b}.doc-preview-title{text-align:right}.doc-preview-title strong{display:block;font-size:34px;color:var(--doc-accent,#2563eb);text-transform:uppercase;letter-spacing:.08em}.doc-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.doc-preview-grid>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:16px}.doc-preview-grid b{color:var(--doc-accent,#2563eb);text-transform:uppercase;font-size:12px;letter-spacing:.05em}.doc-preview-grid p{margin:6px 0;color:#334155}.doc-preview-table{width:100%;border-collapse:collapse;margin:12px 0 22px}.doc-preview-table th{background:var(--doc-accent,#2563eb);color:#fff;text-align:left;padding:12px}.doc-preview-table td{border:1px solid #e5e7eb;padding:12px}.doc-preview-bottom{display:grid;grid-template-columns:1fr 320px;gap:22px}.doc-preview-bottom>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:16px}.doc-preview-totals p{display:flex;justify-content:space-between;margin:0;padding:9px 0;border-bottom:1px solid #e5e7eb}.doc-preview-totals .grand{background:var(--doc-accent,#2563eb);color:#fff;margin:8px -16px -16px;padding:14px 16px;border-radius:0 0 16px 16px;border-bottom:0}@media(max-width:760px){.doc-preview-top,.doc-preview-grid,.doc-preview-bottom{grid-template-columns:1fr;display:grid}.doc-preview-title{text-align:left}}

/* Paramètres facture / UX mobile ajoutée */
.settings-section-title{margin:22px 0 12px;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--primary,#2563eb)}
.settings-option-card{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:18px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.settings-option-card small{display:block;margin-top:8px;color:var(--muted,#64748b);line-height:1.5}.settings-nested{margin-top:12px}.inline-field-actions{display:flex;gap:10px;align-items:center}.inline-field-actions .input{flex:1}.doc-settings-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border,#e5e7eb);background:linear-gradient(135deg,#f8fafc,#fff);border-radius:18px;padding:14px}.doc-settings-summary strong{display:block}.doc-settings-summary small{display:block;color:var(--muted,#64748b);font-size:12px;margin-top:3px}.stock-enabled .product-col{display:table-cell}.doc-form:not(.stock-enabled) .product-col{display:none}.stock-alert{border:1px solid #bae6fd;background:#eff6ff;color:#075985;border-radius:14px;padding:12px 14px;font-weight:800;margin-bottom:12px}.template-preview-page .preview-wrap{max-width:980px;margin:0 auto}.template-preview-notice{margin-bottom:16px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:18px;padding:14px 16px;font-weight:800}#offline-bar{position:fixed;left:16px;right:16px;bottom:calc(90px + env(safe-area-inset-bottom,0px));z-index:9999;background:#111827;color:#fff;border-radius:18px;padding:12px 16px;text-align:center;font-weight:800;box-shadow:0 18px 40px rgba(15,23,42,.25)}
@media(max-width:760px){.inline-field-actions{flex-direction:column;align-items:stretch}.doc-settings-summary{align-items:stretch;flex-direction:column}.settings-option-card{padding:14px}.items-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.items-table{min-width:720px}}

@media print{.print-page .a4-doc{width:210mm!important;min-height:297mm!important;height:auto!important;margin:0!important;padding:12mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;break-after:auto!important;page-break-after:auto!important}.print-page .a4-header,.print-page .a4-box,.print-page .a4-totals,.print-page .a4-footer{break-inside:avoid;page-break-inside:avoid}.print-page .a4-items tr{break-inside:avoid;page-break-inside:avoid}}
.a4-signature span{display:block;margin-bottom:2mm}.a4-signature img{display:block;max-width:100%;max-height:15mm;object-fit:contain;margin-top:1mm}.a4-item-title{display:flex;align-items:flex-start;gap:2.5mm;min-width:0}.a4-item-title img{width:13mm;height:13mm;object-fit:cover;border:1px solid #e5e7eb;border-radius:4px;background:#fff;flex:0 0 auto}.a4-item-title div{min-width:0}
/* =========================================================
   Renderer A4 centralisé - Factures & devis Maroc
   ========================================================= */
.compliance-card{background:#fffbeb;border:1px solid #fde68a;color:#78350f;border-radius:16px;padding:14px 16px;margin:0 0 14px}.compliance-card strong{display:block;margin-bottom:8px}.compliance-card ul{margin:0;padding-left:18px}.compliance-card li{margin:4px 0;font-weight:800}.inline-action-form{display:inline-flex;margin:0}.button-link{border:0;background:transparent;padding:0;cursor:pointer;font:inherit}.doc-actions .button-link{font-weight:900;color:var(--primary);font-size:.9rem}.a4-doc{box-sizing:border-box;max-width:100%;--tpl-accent:#2563eb;--tpl-dark:#111827;--tpl-soft:#f8fafc;width:210mm;min-height:297mm;margin:0 auto 24px;background:#fff;color:#111827;padding:15mm;box-shadow:var(--shadow);border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;gap:8mm;font-family:Inter,Arial,sans-serif;line-height:1.35}.a4-doc *{box-sizing:border-box}.a4-doc p{margin:0}.a4-header{display:grid;grid-template-columns:minmax(0,1fr) 58mm;gap:12mm;align-items:stretch;border-bottom:2px solid var(--tpl-accent);padding-bottom:7mm}.a4-brand{display:flex;gap:5mm;align-items:flex-start;min-width:0}.a4-logo{width:24mm;height:18mm;object-fit:contain;border:1px solid #e5e7eb;border-radius:4px;padding:2mm;background:#fff}.a4-logo-mark{width:18mm;height:18mm;display:grid;place-items:center;background:var(--tpl-accent);color:#fff;font-weight:900;font-size:18pt;border-radius:5px}.a4-kicker{margin:0 0 2mm;color:var(--tpl-accent);font-size:8pt;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.a4-brand h2{margin:0 0 2mm;font-size:19pt;line-height:1.08;color:var(--tpl-dark)}.a4-company-lines{display:grid;gap:1.2mm;color:#475569;font-size:8.2pt}.a4-company-lines span{overflow-wrap:anywhere}.a4-title-card{border:1px solid #e5e7eb;border-radius:6px;background:var(--tpl-soft);padding:5mm;text-align:right;display:grid;align-content:center;gap:1.8mm}.a4-title-card span{font-size:9pt;font-weight:900;text-transform:uppercase;color:var(--tpl-accent);letter-spacing:.12em}.a4-title-card strong{font-size:15pt;overflow-wrap:anywhere}.a4-title-card small{color:#475569;font-weight:800}.a4-badges{display:flex;flex-wrap:wrap;gap:2mm;margin-top:-4mm}.a4-badges span{border:1px solid #e5e7eb;border-radius:999px;padding:1.4mm 2.4mm;background:#fff;font-size:7.4pt;font-weight:800;color:#334155}.a4-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:6mm}.a4-box{border:1px solid #e5e7eb;border-radius:6px;background:#fff;padding:5mm}.a4-box h3{margin:0 0 3mm;color:var(--tpl-accent);font-size:8.5pt;text-transform:uppercase;letter-spacing:.08em}.a4-box .tpl-line{margin:0 0 1.6mm;font-size:8.6pt;color:#334155;overflow-wrap:anywhere}.a4-box .tpl-line span{color:#64748b;font-weight:900}.a4-box .tpl-strong{font-size:10pt;color:#111827}.a4-items{width:100%;border-collapse:collapse;table-layout:fixed}.a4-items th{background:var(--tpl-dark);color:#fff;text-align:left;padding:3.2mm 2.8mm;font-size:7.8pt;text-transform:uppercase;letter-spacing:.05em}.a4-items td{border-bottom:1px solid #e5e7eb;padding:3.2mm 2.8mm;font-size:8.4pt;vertical-align:top;overflow-wrap:anywhere}.a4-items th:not(:first-child),.a4-items td:not(:first-child){text-align:right;white-space:nowrap}.a4-items td:first-child strong{display:block;font-weight:800}.a4-items td:first-child small{display:block;margin-top:1mm;color:#64748b;font-size:7.2pt}.a4-bottom{display:grid;grid-template-columns:minmax(0,1fr) 72mm;gap:8mm;align-items:start;margin-top:auto}.a4-extra{display:grid;gap:4mm}.a4-amount-words{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:6px;padding:4mm;font-size:8pt}.a4-amount-words span{display:block;margin-bottom:1.5mm;color:#64748b;font-weight:900;text-transform:uppercase}.a4-amount-words strong{display:block;color:#111827}.a4-totals{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;background:#fff}.a4-totals>div:not(.a4-signature){display:flex;justify-content:space-between;gap:5mm;padding:3mm 3.5mm;border-bottom:1px solid #e5e7eb;font-size:8.5pt}.a4-totals .is-grand{background:var(--tpl-accent);color:#fff;font-size:10pt}.a4-totals .is-strong strong{color:var(--tpl-accent)}.a4-signature{height:22mm;padding:3.5mm;color:#64748b;font-size:8pt;font-weight:900;text-transform:uppercase}.a4-footer{border-top:1.5px solid var(--tpl-accent);padding-top:3mm;text-align:center;color:#475569;font-size:7.3pt;display:grid;gap:1.2mm}.a4-footer strong{color:#111827}.a4-layout-band .a4-header,.a4-layout-premium .a4-header{background:var(--tpl-dark);color:#fff;border:0;border-radius:6px;padding:7mm}.a4-layout-band .a4-brand h2,.a4-layout-premium .a4-brand h2,.a4-layout-band .a4-company-lines,.a4-layout-premium .a4-company-lines{color:#fff}.a4-layout-band .a4-title-card,.a4-layout-premium .a4-title-card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.24);color:#fff}.a4-layout-maroc{border-top:5mm solid #006233}.a4-layout-maroc .a4-header{border-bottom-color:#c1272d}.a4-layout-official,.a4-layout-luxe{border-color:var(--tpl-dark)}.a4-layout-official .a4-title-card,.a4-layout-luxe .a4-title-card{background:#fff;border-color:var(--tpl-dark)}.a4-layout-retail .a4-header{border-left:4mm solid var(--tpl-accent);padding-left:6mm;background:linear-gradient(90deg,var(--tpl-soft),#fff)}.a4-layout-ticket{background:#fffdf7}.a4-layout-ticket .a4-items th{background:var(--tpl-accent)}.a4-layout-project .a4-header{border-top:4mm solid var(--tpl-dark);background:var(--tpl-soft);padding:6mm}.a4-layout-health .a4-header,.a4-layout-education .a4-header{background:var(--tpl-soft);border-left:4mm solid var(--tpl-accent);padding:6mm}.a4-layout-minimal .a4-header{border-bottom:1px solid var(--tpl-accent)}.a4-layout-luxe .a4-items th{background:#111827}
@media(max-width:900px){.preview-wrap{margin-left:0;margin-right:0;padding:0;max-width:100%;box-sizing:border-box}.a4-doc{width:100%;min-height:auto;padding:18px;border-radius:8px;gap:18px}.a4-header,.a4-meta-grid,.a4-bottom{grid-template-columns:1fr}.a4-title-card{text-align:left}.a4-brand{gap:14px}.a4-logo,.a4-logo-mark{width:58px;height:58px}.a4-items thead{display:none}.a4-items,.a4-items tbody,.a4-items tr,.a4-items td{display:block;width:100%}.a4-items tr{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;overflow:hidden;background:#fff}.a4-items td{display:grid;grid-template-columns:110px 1fr;gap:12px;border-bottom:1px solid #eef2f7;text-align:left!important;white-space:normal!important}.a4-items td:before{content:attr(data-label);font-weight:900;color:#64748b}.a4-items td:last-child{border-bottom:0}.a4-totals{max-width:none}.doc-actions{align-items:center}.inline-action-form{width:100%}.button-link{min-height:44px}}@media(max-width:680px){.doc-form .items-table{min-width:0;border-spacing:0}.doc-form .items-table thead{display:none}.doc-form .items-table,.doc-form .items-table tbody,.doc-form .items-table tr,.doc-form .items-table td{display:block;width:100%}.doc-form .items-table tr{border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc;padding:10px;margin-bottom:12px}.doc-form .items-table td{border:0!important;border-radius:0!important;background:transparent;padding:8px 0;display:grid;gap:6px}.doc-form .items-table td:before{content:attr(data-label);font-size:12px;font-weight:900;color:#64748b}.doc-form .items-table td[data-label=\"Action\"]{display:flex;justify-content:flex-end}.totals-box{max-width:none;margin-left:0}.sticky-actions{left:14px;right:14px;bottom:calc(14px + var(--bottom-nav-height));position:sticky}.a4-brand h2{font-size:1.25rem}.a4-title-card strong{font-size:1rem}}@media print{body{background:#fff!important}.a4-doc{width:210mm!important;min-height:297mm!important;margin:0!important;padding:12mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;page-break-after:always}.a4-doc:last-child{page-break-after:auto}.a4-header{break-inside:avoid}.a4-box,.a4-totals,.a4-footer{break-inside:avoid}.a4-items tr{break-inside:avoid}.preview-wrap{overflow:visible!important}@page{size:A4;margin:0}}

/* Dashboard circulaire et cartes facture */
.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:800;border:1px solid;white-space:nowrap}
.status-badge:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.status-paid{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0}.status-unpaid{color:#dc2626;background:#fef2f2;border-color:#fecaca}.status-draft{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.status-sent{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.status-pending{color:#d97706;background:#fffbeb;border-color:#fde68a}.status-cancelled{color:#6b7280;background:#f9fafb;border-color:#e5e7eb}.status-accepted{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.status-refused{color:#dc2626;background:#fef2f2;border-color:#fecaca}
.dashboard-head{align-items:flex-end;gap:14px}.dashboard-period{margin:.25rem 0 0;color:#64748b;font-size:.9rem;font-weight:700}.dashboard-filter-toggle{display:none;white-space:nowrap}.page-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.dash-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-bottom:20px;align-items:end}.filter-field{display:flex;flex-direction:column;gap:5px;min-width:0}.filter-label{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:0}.dash-filter-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.dash-filter-actions .btn{min-height:42px}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.kpi-donut-card{min-width:0;background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.06)}.kpi-cash{border-top:4px solid #f97316}.kpi-invoices{border-top:4px solid #2563eb}.kpi-quotes{border-top:4px solid #059669}.kpi-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.kpi-eyebrow{display:block;font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:0;margin-bottom:4px}.kpi-card-head h2{margin:0;color:#0f172a;font-size:1.05rem;font-weight:900;letter-spacing:0}.kpi-card-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:#f8fafc;color:#334155;border:1px solid #e2e8f0}.kpi-cash .kpi-card-icon{background:#fff7ed;color:#f97316;border-color:#fed7aa}.kpi-invoices .kpi-card-icon{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.kpi-quotes .kpi-card-icon{background:#ecfdf5;color:#059669;border-color:#a7f3d0}.kpi-card-body{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center}.kpi-money-list,.kpi-status-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;min-width:0}.kpi-money-list div,.kpi-status-list li{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #eef2f7;border-radius:8px;background:#f8fafc}.kpi-money-list span,.kpi-status-list span{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#475569;font-size:.82rem;font-weight:800}.kpi-money-list strong,.kpi-status-list strong{color:#0f172a;font-size:.9rem;font-weight:900;text-align:right;overflow-wrap:anywhere}.kpi-donut-wrap{position:relative;width:150px;max-width:100%;aspect-ratio:1;margin-left:auto}.kpi-donut-wrap canvas{width:100%!important;height:100%!important;display:block}.donut-center{position:absolute;inset:24%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;min-width:0}.donut-center span{font-size:.68rem;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:0}.donut-center strong{max-width:100%;font-size:.95rem;font-weight:900;color:#0f172a;line-height:1.05;overflow-wrap:anywhere}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;background:#64748b}.status-dot.draft{background:#64748b}.status-dot.sent{background:#2563eb}.status-dot.unpaid{background:#dc2626}.status-dot.paid{background:#16a34a}.status-dot.cancelled{background:#94a3b8}.status-dot.pending{background:#d97706}.status-dot.accepted{background:#059669}.status-dot.refused{background:#dc2626}
.list-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:200px}.search-wrap .si{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8;display:flex}.search-wrap .input{padding-left:38px}#result-count{white-space:nowrap;font-size:.85rem;font-weight:700}.doc-list-table-wrap{background:#fff;border:1px solid #bfdbfe;border-radius:8px;overflow:auto;box-shadow:0 12px 30px rgba(37,99,235,.12)}.empty-state-v2{text-align:center;padding:48px 24px}.empty-state-v2 .empty-icon{display:flex;justify-content:center;margin-bottom:14px;opacity:.3}.empty-state-v2 h3{font-size:1.1rem;font-weight:800;color:#334155;margin-bottom:6px}.empty-state-v2 p{color:#64748b;font-size:.9rem;margin-bottom:18px}
.invoice-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.invoice-card{min-width:0;background:#fff;border:3px solid #2563eb;border-radius:8px;padding:14px;box-shadow:0 16px 38px rgba(37,99,235,.16)}.invoice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #dbeafe}.invoice-card-title{min-width:0;display:grid;gap:5px}.invoice-card-title span{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:0}.invoice-card-title a{font-size:1.05rem;font-weight:900;color:#0f172a;overflow-wrap:anywhere}.invoice-card-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.invoice-card-body div{min-width:0;background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;padding:9px 10px}.invoice-card-body span{display:block;color:#64748b;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:0;margin-bottom:3px}.invoice-card-body strong{display:block;color:#0f172a;font-size:.88rem;font-weight:900;overflow-wrap:anywhere}.invoice-card-total{background:#eff6ff!important;border-color:#bfdbfe!important}.invoice-card-total strong{font-size:1rem;color:#1d4ed8}.invoice-card-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #dbeafe}.invoice-card-actions .inline-action-form{display:inline-flex;width:auto;margin:0}
.btn-icon{width:34px;height:34px;min-width:34px;padding:0;display:inline-grid;place-items:center;border-radius:10px}.btn-view{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.btn-edit{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.btn-pdf{background:#fdf4ff;color:#7c3aed;border:1px solid #e9d5ff}.btn-share{background:#eef2ff;color:#4f46e5;border:1px solid #c7d2fe}.btn-delete{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.btn-view:hover{background:#dbeafe}.btn-edit:hover{background:#dcfce7}.btn-pdf:hover{background:#f3e8ff}.btn-share:hover{background:#e0e7ff}.btn-delete:hover{background:#fee2e2}
@media(max-width:860px){.dashboard-kpi-grid{grid-template-columns:1fr}.kpi-card-body{grid-template-columns:minmax(0,1fr) 160px}.kpi-donut-wrap{width:160px}.dash-filter-bar{grid-template-columns:1fr 1fr}.dash-filter-actions{grid-column:1/-1}}
@media(max-width:600px){.dashboard-head{align-items:flex-start}.page-head-actions{width:100%}.dashboard-filter-toggle{display:inline-flex}.dash-filter-bar{display:none;grid-template-columns:1fr;padding:14px;margin-top:-6px}.dash-filter-bar.is-open{display:grid}.dash-filter-actions{display:grid;grid-template-columns:1fr;align-items:stretch}.dash-filter-actions .btn{width:100%;justify-content:center}.dashboard-kpi-grid{gap:12px}.kpi-donut-card{padding:14px}.kpi-card-body{grid-template-columns:1fr;gap:12px}.kpi-donut-wrap{width:min(190px,64vw);margin:2px auto 0}.kpi-money-list div,.kpi-status-list li{padding:8px 9px}.donut-center strong{font-size:.88rem}.invoice-card-grid{grid-template-columns:1fr;gap:12px}.invoice-card{padding:12px}.invoice-card-head{flex-direction:column;align-items:flex-start}.invoice-card-body{grid-template-columns:1fr}.invoice-card-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.invoice-card-actions .btn-icon{width:100%;min-width:0}.invoice-card-actions .inline-action-form{width:100%}}
.quote-card-actions{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:380px){.quote-card-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
.invoice-filter-bar{grid-template-columns:repeat(5,minmax(0,1fr)) auto}
@media(max-width:860px){.invoice-filter-bar{grid-template-columns:1fr 1fr}}@media(max-width:600px){.invoice-filter-bar{grid-template-columns:1fr}}

/* PWA Android install shortcut */
.pwa-install-shortcut{position:fixed;right:16px;bottom:calc(var(--bottom-nav-height,74px) + 28px + env(safe-area-inset-bottom,0px));z-index:10000;display:none;align-items:center;gap:8px;border:1px solid rgba(37,99,235,.28);background:#111827;color:#fff;border-radius:999px;padding:11px 14px;font-weight:950;box-shadow:0 16px 38px rgba(15,23,42,.24);cursor:pointer}.pwa-install-shortcut.is-visible{display:inline-flex}.pwa-install-shortcut__mark{width:22px;height:22px;border-radius:999px;background:#2563eb;display:grid;place-items:center;font-size:18px;line-height:1}.is-pwa-standalone .pwa-install-shortcut{display:none!important}@media(max-width:600px){.pwa-install-shortcut{right:12px;bottom:calc(var(--bottom-nav-height,74px) + 20px + env(safe-area-inset-bottom,0px));padding:10px 12px;font-size:.86rem}}

/* Pages inspirées de la sauvegarde htdocs(6) */
.ops-page{--ops-accent:#06b6d4;--ops-dark:#0f172a;--ops-soft:#f5f7ff}.ops-head{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px rgba(15,23,42,.08);align-items:center}.ops-head h1{letter-spacing:0}.ops-subtitle{margin:6px 0 0;color:#64748b;font-size:.92rem;font-weight:800;line-height:1.45}.ops-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.ops-stats article{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(15,23,42,.06);min-width:0}.ops-stats span{display:block;color:#64748b;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:0;margin-bottom:6px}.ops-stats strong{display:block;color:#0f172a;font-size:1.28rem;font-weight:950;overflow-wrap:anywhere}.ops-panel{border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.08)}.ops-panel .panel-head h2{display:inline-flex;align-items:center;gap:8px}.ops-filter{grid-template-columns:minmax(0,360px) auto;border-radius:18px;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.settings-page .company-list{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.settings-page .mini-company-card{border-radius:18px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.05)}.settings-page .mini-company-card.active{border-color:#93c5fd;background:#eff6ff}.settings-page .company-card-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.settings-completeness{border:1px solid #e5e7eb;background:linear-gradient(135deg,#f8fafc,#fff);border-radius:18px;padding:14px;margin-bottom:16px}.settings-completeness>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.settings-completeness span{color:#64748b;font-size:.78rem;font-weight:900;text-transform:uppercase}.settings-completeness strong{font-size:1.1rem}.settings-completeness-track{height:8px;background:#e2e8f0;border-radius:999px;margin-top:10px;overflow:hidden}.settings-completeness-track i{display:block;height:100%;background:linear-gradient(90deg,#06b6d4,#2563eb);border-radius:999px}.settings-completeness small{display:flex;align-items:center;gap:6px;color:#92400e;font-weight:800;margin-top:8px}.co-avatar{width:42px;height:42px;border-radius:14px;background:#0f172a;color:#fff;display:grid;place-items:center;font-weight:950;flex:0 0 auto}
.clients-page .ops-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.client-form-panel{margin-bottom:18px}.delivery-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:14px}.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}.client-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 24px rgba(15,23,42,.07);padding:14px;display:flex;gap:12px;align-items:center;min-width:0}.client-avatar{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#0f172a,#2563eb);color:#fff;display:grid;place-items:center;font-weight:950;flex:0 0 auto}.client-info{min-width:0;flex:1}.client-info strong{display:block;font-size:.98rem;font-weight:950;color:#0f172a;overflow-wrap:anywhere}.client-info span,.client-info small{display:block;color:#64748b;font-size:.8rem;font-weight:800;margin-top:3px;overflow-wrap:anywhere}.client-card-actions{display:flex;gap:7px;flex:0 0 auto}
.stock-action-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-bottom:18px}.stock-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.stock-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.08);overflow:hidden;display:grid;grid-template-columns:110px minmax(0,1fr);min-width:0}.stock-card-media{background:#f8fafc;border-right:1px solid #e5e7eb;display:grid;place-items:center;min-height:100%;color:#94a3b8}.stock-card-media img{width:100%;height:100%;object-fit:cover}.stock-card-main{padding:14px;min-width:0}.stock-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.stock-card-head span:not(.status-badge){display:block;color:#64748b;font-size:.72rem;font-weight:900;text-transform:uppercase}.stock-card h3{margin:3px 0 0;font-size:1rem;font-weight:950;color:#0f172a;overflow-wrap:anywhere}.stock-card small{color:#64748b;font-weight:800}.stock-card p{margin:9px 0 0;color:#475569;font-size:.86rem;line-height:1.45}.stock-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.stock-metrics div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:8px;min-width:0}.stock-metrics span{display:block;color:#64748b;font-size:.68rem;font-weight:900;text-transform:uppercase}.stock-metrics strong{display:block;margin-top:3px;color:#0f172a;font-size:.8rem;font-weight:950;overflow-wrap:anywhere}.stock-card-action{margin-top:12px}
@media(max-width:900px){.ops-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-action-grid{grid-template-columns:1fr}.stock-card-grid{grid-template-columns:1fr}.stock-card{grid-template-columns:96px minmax(0,1fr)}}@media(max-width:620px){.ops-head{padding:15px}.ops-stats,.clients-page .ops-stats{grid-template-columns:1fr}.ops-filter{grid-template-columns:1fr}.delivery-panel{grid-template-columns:1fr}.client-grid{grid-template-columns:1fr}.client-card{align-items:flex-start}.client-card-actions{flex-direction:column}.stock-card{grid-template-columns:1fr}.stock-card-media{min-height:130px;border-right:0;border-bottom:1px solid #e5e7eb}.stock-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

.stock-control-panel{display:grid;gap:14px;margin-bottom:18px}.stock-control-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stock-control-actions .btn{white-space:nowrap}.stock-filter{margin:0;box-shadow:none}.stock-form-panel{margin-bottom:18px;border-color:#bfdbfe}.stock-form-panel .panel-head{align-items:flex-start}.stock-form-panel .panel-head>div{min-width:0}@media(max-width:620px){.stock-control-actions{display:grid;grid-template-columns:1fr}.stock-control-actions .btn{width:100%;justify-content:center}.stock-form-panel .panel-head{display:grid;gap:10px}.stock-form-panel .panel-head .btn{width:100%;justify-content:center}}
