/* R14: one visual system. Deliberately does not style document content or canvases. */
:root{--pph-green:#176a51;--pph-green-dark:#10513e;--pph-ink:#1c382d;--pph-muted:#53695e;--pph-line:#dce6e0;--pph-paper:#f4f7f5;--pph-soft:#eaf4ee;--pph-header-h:100px}
body.pph-unified{--green:var(--pph-green);--ink:var(--pph-ink);--muted:var(--pph-muted);--line:var(--pph-line);--paper:var(--pph-paper);font-family:Inter,Arial,Helvetica,sans-serif;color:var(--pph-ink);background:var(--pph-paper);margin:0;line-height:1.5}
.pph-unified *{box-sizing:border-box}.pph-unified [hidden]{display:none!important}
.pph-unified a,.pph-unified button,.pph-unified input,.pph-unified select,.pph-unified textarea,.pph-unified summary{touch-action:manipulation}
.pph-unified :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #77b99a;outline-offset:3px}
.pph-header.site-head{position:sticky;inset-block-start:0;z-index:75;background:#fff;border:0;border-block-end:1px solid var(--pph-line);box-shadow:0 2px 12px #153a2504;padding:0}
.pph-header .pph-header-inner.wrap{width:100%;max-width:1400px;min-height:78px;display:flex;align-items:center;gap:28px;margin:auto;padding:12px 30px}
.pph-brand{display:flex;align-items:center;gap:11px;flex-shrink:0;text-decoration:none;color:var(--pph-ink)!important;font-size:26px;font-weight:780;letter-spacing:-1.2px;line-height:1.05;white-space:nowrap}
.pph-brand-icon{display:grid;place-items:center;background:var(--pph-green);color:#fff;width:37px;height:41px;border-radius:11px 11px 11px 3px;transform:rotate(-4deg)}
.pph-brand-icon svg{width:24px;height:24px;transform:rotate(4deg)}.pph-brand-dot{color:var(--pph-green)}
.pph-brand small{display:block;font-size:10px;letter-spacing:.05em;font-weight:500;line-height:1.4;color:var(--pph-muted);margin-block-start:5px}
.pph-header .pph-nav.site-nav{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;margin:0}
.pph-header .pph-nav>a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 13px;border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:600;color:#4e6358;text-decoration:none;text-transform:none;letter-spacing:0;white-space:nowrap;background:transparent}
.pph-nav>a svg{width:18px;height:18px;flex-shrink:0}.pph-header .pph-nav>a:hover{background:#f1f6f3;color:var(--pph-green)}
.pph-header .pph-nav>a[aria-current]{background:var(--pph-soft);border-color:#cee2d5;color:var(--pph-green-dark)}
.pph-header-actions{display:flex;gap:10px;align-items:center;margin-inline-start:auto;flex-shrink:0}
.pph-header .pph-language{margin:0;display:flex;align-items:center}.pph-header .pph-language select{min-width:93px;width:auto;max-width:115px;min-height:42px;border:1px solid var(--pph-line);border-radius:9px;background:#fff;color:var(--pph-ink);padding:8px 9px;font:12px Inter,Arial,sans-serif;cursor:pointer}
.pph-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.pph-menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--pph-line);border-radius:10px;background:#fff;padding:11px;color:var(--pph-ink);flex-direction:column;justify-content:center;gap:5px;cursor:pointer}
.pph-menu-toggle>span{height:2px;display:block;width:20px;background:currentColor;border-radius:2px}.pph-menu-open .pph-menu-toggle{background:var(--pph-soft);border-color:#bad8c8}
.pph-preview-ribbon{margin:0;padding:5px 16px;background:#eef4ef;border-block-start:1px solid #e1ebe4;color:#52675a;text-align:center;font-size:10px;line-height:1.5;font-weight:500;letter-spacing:.03em}
.pph-preview-ribbon>a{margin-inline-start:14px;color:#32654a;font-weight:650;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:24px}.pph-examples-main{max-width:850px;padding:50px 25px 80px;margin:auto;min-height:65vh}.pph-examples-main h1{font-size:36px;line-height:1.2;letter-spacing:-1px}.pph-examples-main p{color:var(--pph-muted);font-size:15px;line-height:1.8}.pph-example-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.pph-examples-main .pph-example-footnote{font-size:12px;margin-top:30px}.demo-mail-bar{display:none}
.pph-unified .local-boundary{border-block-end:1px solid #e0e9e3;background:#f5f8f6;color:var(--pph-muted);font-size:12px;padding:10px 20px;text-align:center;margin:0}
.pph-unified .eyebrow{color:#5a7868;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.pph-unified :is(.local-list-main,.billing-main){max-width:1260px;padding:38px 30px 52px;margin:auto}
.pph-unified :is(.local-list-heading,.billing-heading,.r8-client-head){align-items:center;gap:24px;margin-block-end:26px}
.pph-unified :is(.local-list-heading,.billing-heading,.r8-client-head) h1{font-size:34px;line-height:1.15;letter-spacing:-1px;margin:7px 0 12px;color:var(--pph-ink)}
.pph-unified :is(.local-list-heading,.billing-heading,.r8-client-head) p:not(.eyebrow){color:var(--pph-muted);font-size:14px;line-height:1.7}
.pph-unified :is(.btn,.b,.local-primary,.local-open,.workspace-button,.workspace-close){border-radius:10px;border-color:#c5d8cc;min-height:44px;padding:11px 16px;font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;font-family:inherit;line-height:1.4;box-shadow:none;color:var(--pph-green-dark);background:#fff;transition:background .15s,border-color .15s}
.pph-unified :is(.btn,.b,.local-primary,.local-open,.workspace-button,.workspace-close):hover:not(:disabled){background:#eff6f1;border-color:#9cbca9;color:var(--pph-green-dark)}
.pph-unified :is(.btn.solid,.b.solid,.local-primary){background:var(--pph-green);border-color:var(--pph-green);color:#fff}
.pph-unified :is(.btn.solid,.b.solid,.local-primary):hover:not(:disabled){background:var(--pph-green-dark);border-color:var(--pph-green-dark);color:#fff}
.pph-unified :is(.btn,.b,.local-primary):disabled{opacity:.45;cursor:not-allowed}
.pph-unified .b.sm{min-height:36px;padding:7px 10px;font-size:12px;width:auto}
.pph-unified :is(.local-search,.r8-client-search label,.billing-grid label){font-size:13px;gap:8px;color:var(--pph-muted)}
.pph-unified :is(.local-search,.r8-client-search,.billing-main,.invoice-main,.r6-card,.modal,.remote-send) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea){border:1px solid #bfd2c6;border-radius:9px;background:#fff;font:15px/1.5 Inter,Arial,sans-serif;color:var(--pph-ink);min-height:44px;padding:10px 12px}
.pph-unified :is(.r9-summary button,.local-quote-table,.r8-client-card,.billing-card,.invoice-card){border-color:var(--pph-line);border-radius:14px;background:#fff;box-shadow:0 3px 14px #163b2303}
.pph-unified .r6-card{border-radius:14px;border-color:var(--pph-line)}.pph-unified :is(input,textarea,select,[tabindex],h1,h2){scroll-margin-top:calc(var(--pph-header-h) + 20px)}
@media(min-width:901px){.pph-unified .r6-preview-side{top:calc(var(--pph-header-h) + 16px)}}
.pph-unified .r9-summary{gap:12px}.pph-unified .r9-summary button{min-height:82px;padding:16px 20px}.pph-unified .r9-summary button[aria-pressed=true]{border-color:#8bb79d;background:#f0f7f2;box-shadow:inset 0 0 0 1px #8bb79d}
.pph-unified .local-quote-table th{background:#f2f7f3;color:#516a5a;font-size:12px;padding:15px 18px}.pph-unified .local-quote-table td{padding:19px 18px;font-size:14px}.pph-unified .local-quote-table .row-actions :is(a,button){min-height:40px;font-size:12px;border-radius:8px}
.pph-unified :is(.status-badge,.r9-status,.billing-status){border-radius:7px;font-size:12px;letter-spacing:0}.pph-unified .local-quote-table .danger{color:#a13b36;border-color:transparent;background:transparent}
.pph-unified :is(.local-backup,.r9-empty,.local-empty){border-radius:15px;border-color:var(--pph-line)}
.pph-unified .pph-footer{max-width:1340px;margin:auto;padding:27px 30px;display:flex;gap:25px;align-items:center;color:var(--pph-muted);font-size:12px;border-block-start:1px solid var(--pph-line)}
.pph-footer>a{color:var(--pph-green);min-height:38px;display:inline-flex;align-items:center}.pph-footer .pph-footer-brand{color:var(--pph-ink);font-weight:750;font-size:19px;letter-spacing:-.8px;text-decoration:none}.pph-footer>span{flex:1;line-height:1.6}
/* Signature: same visual cues, unchanged file engine and placement layer. */
.pph-signature .app{grid-template-columns:304px minmax(0,1fr);min-height:calc(100dvh - var(--pph-header-h));background:var(--pph-paper)}
.pph-signature .panel{background:#fff;border-inline-end:1px solid var(--pph-line);border-left:0;border-right:0;top:var(--pph-header-h);height:calc(100dvh - var(--pph-header-h));padding:24px 22px calc(var(--pph-sign-actions-height,100px) + 24px)}
.pph-signature .sect{margin-block-end:27px}.pph-signature .sect h2{font-size:11px;color:#526c5c;letter-spacing:.1em;gap:8px}.pph-signature .hint{font-size:13px;color:var(--pph-muted);line-height:1.65}
.pph-signature .sigcard{border-color:var(--pph-line);border-radius:10px;padding:12px}.pph-signature .sigcard.selected{border-color:var(--pph-green);box-shadow:0 0 0 2px #d6eade}.pph-signature .sigcard .tag{font-size:9px;letter-spacing:.05em}.pph-signature .sigcard .del{min-width:34px;min-height:38px;font-size:18px;border-radius:7px;color:#64776b}
.pph-signature .empty{border-color:#d0ded5;border-radius:10px;background:#fafcfb;font-size:13px;padding:20px 13px}.pph-signature .filechip{border-color:#9fc6ae;background:#f3f8f4;padding:9px;border-radius:0 7px 7px 0;font-size:12px}
.pph-signature .viewer{background:#f2f6f3;min-width:0;padding:28px 32px calc(var(--pph-sign-actions-height,100px) + 32px)}
.pph-sign-heading{max-width:800px;margin:26px auto 0;text-align:center}.pph-sign-heading h1{font-size:clamp(26px,3vw,38px);letter-spacing:-1.2px;line-height:1.18;margin:11px 0 14px}.pph-sign-heading>p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--pph-muted);max-width:520px;margin:0 auto}
.pph-sign-steps{display:flex;justify-content:center;gap:25px;list-style:none;padding:0;margin:24px 0 0;font-size:12px;color:#536e5d}.pph-sign-steps li{display:flex;align-items:center;gap:8px}.pph-sign-steps b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid #c5d9ca;background:#fff;color:var(--pph-green);font-size:11px}
.pph-signature .dropzone{border:1.5px dashed #a6c1af;border-radius:18px;max-width:800px;margin:27px auto 35px;padding:37px 27px;background:#fff}.pph-signature .dropzone.over{border-color:var(--pph-green);background:#f2faf5;box-shadow:0 0 0 4px #dceee2}.pph-signature .dropzone h3{font-size:19px;color:var(--pph-ink);letter-spacing:-.25px}.pph-signature .dropzone p{font-size:14px;color:var(--pph-muted)}
.pph-signature .dropzone::before{content:'';display:block;width:40px;height:50px;border:1.5px solid #85b398;border-radius:6px;background:linear-gradient(#dae9de,#dae9de) 9px 14px/22px 2px no-repeat,linear-gradient(#dae9de,#dae9de) 9px 23px/17px 2px no-repeat,linear-gradient(#dae9de,#dae9de) 9px 32px/22px 2px no-repeat,#f3f9f5;margin:0 auto 20px}
.pph-has-pdf .pph-sign-heading{display:none}.pph-signature.pph-has-pdf .viewer{padding-top:26px}.pph-signature .toolbar{background:#fff;border-color:var(--pph-line);box-shadow:0 -5px 20px #183b2708;gap:12px;padding:12px 24px}.pph-signature .toolbar .info{font-size:12px;letter-spacing:0;text-transform:none;color:var(--pph-muted)}.pph-signature .toolbar .acts{gap:8px}.pph-signature .toolbar .b{font-size:13px;min-height:44px;padding:10px 15px}
.pph-signature #bandeauSignature{background:#ecf5ef;border-color:#cee1d5;color:var(--pph-ink);border-radius:0}.pph-signature #signatureActions .b.creux{color:#9a4036;border-color:#dfc8c2;background:#fff}.pph-recipient-context .pph-nav{visibility:hidden;pointer-events:none}
.pph-signature .modal{background:#173c2c70;backdrop-filter:blur(3px)}.pph-signature .modal>div{border-radius:17px;border-color:var(--pph-line);box-shadow:0 24px 70px #112f2526}.pph-signature .modal h2{letter-spacing:-.6px}.pph-signature :is(.champ-mini,.texte-favoris){border-color:#c7d9ce;border-radius:9px}.pph-signature .connecte{border-color:#d9e6dd;border-inline-start:3px solid var(--pph-green);border-radius:8px}
.pph-unified .product-home{padding-block:60px}.pph-unified .home-hero{gap:65px}.pph-unified .home-hero h1{color:var(--pph-ink)}.pph-unified .home-document{background:#e7f0e8;border:1px solid #d4e4d8}.pph-unified .home-products article{border-radius:16px;border-color:var(--pph-line)}
@media(max-width:1100px){.pph-header .pph-header-inner.wrap{gap:16px;padding-inline:24px}.pph-brand{font-size:24px}.pph-brand small{display:none}.pph-header .pph-nav>a{padding:10px;font-size:12px;gap:6px}.pph-nav>a svg{width:16px}}
@media(max-width:1100px){
 .pph-header .pph-header-inner.wrap{min-height:70px;padding:12px 18px;gap:12px}.pph-brand{font-size:25px}.pph-brand-icon{width:33px;height:37px}.pph-header-actions{gap:8px}.pph-menu-toggle{display:flex}.pph-header .pph-language select{min-height:44px;font-size:12px;max-width:108px}
 .pph-header .pph-nav.site-nav{display:none;position:absolute;inset-block-start:100%;inset-inline:0;flex-direction:column;align-items:stretch;gap:5px;background:#fff;border-bottom:1px solid var(--pph-line);padding:14px 18px 18px;box-shadow:0 16px 25px #12332414;max-height:calc(100dvh - var(--pph-header-h));overflow:auto}.pph-menu-open .pph-nav.site-nav{display:flex}.pph-header .pph-nav>a{justify-content:flex-start;font-size:15px;min-height:48px;padding:12px 15px;gap:12px}.pph-nav>a svg{width:20px;height:20px}
 .pph-signature .app{grid-template-columns:260px minmax(0,1fr)}.pph-signature .panel{padding-inline:17px}.pph-signature .viewer{padding-inline:22px}.pph-sign-heading{margin-top:12px}.pph-sign-steps{gap:14px}.pph-signature .dropzone{padding:28px 20px}
}
@media(max-width:680px){
 .pph-unified :is(.local-list-main,.billing-main){padding:25px 17px 38px}.pph-unified :is(.local-list-heading,.billing-heading,.r8-client-head) h1{font-size:29px}.pph-unified :is(.local-list-heading,.billing-heading,.r8-client-head){gap:15px;margin-bottom:22px}.pph-unified :is(.local-list-heading,.r8-client-head){align-items:flex-start}.pph-unified .local-quote-table td{padding:0}.pph-unified .local-quote-table .row-actions :is(a,button){min-height:44px}.pph-unified .pph-footer{padding:22px 18px;gap:12px;flex-wrap:wrap}.pph-footer>span{flex-basis:100%;order:2}.pph-footer>a:last-child{margin-inline-start:auto}
 .pph-signature .app{display:flex;flex-direction:column;min-height:calc(100dvh - var(--pph-header-h))}.pph-signature .panel{position:static;top:auto;height:auto;max-height:none;border-inline-end:0;border-block-end:1px solid var(--pph-line);padding:18px 17px 20px;overflow:visible;order:1;width:100%}.pph-signature .viewer{padding:22px 17px calc(var(--pph-sign-actions-height,100px) + 24px);order:0;width:100%;min-width:0}.pph-signature:not(.pph-has-pdf) .panel{padding-bottom:24px}.pph-sign-heading{margin:0 auto;text-align:start}.pph-sign-heading h1{font-size:29px;letter-spacing:-1px;margin:9px 0 13px}.pph-sign-heading>p:not(.eyebrow){font-size:14px;text-align:start}.pph-sign-steps{justify-content:flex-start;gap:18px;margin-top:19px}.pph-signature .dropzone{margin-top:22px;padding:26px 17px 28px;border-radius:14px}.pph-signature .dropzone h3{font-size:17px}.pph-signature .dropzone p{font-size:13px;line-height:1.6}.pph-signature .dropzone .b{width:100%;padding:12px}.pph-signature .dropzone::before{width:31px;height:39px;background-size:16px 2px,12px 2px,16px 2px;background-position:7px 10px,7px 18px,7px 26px;margin-bottom:17px}
 .pph-signature.pph-has-pdf .panel{order:0;max-height:245px;overflow:auto;overscroll-behavior:contain;padding-bottom:18px}.pph-signature.pph-has-pdf .viewer{order:1;padding-top:20px}.pph-signature .panel .b.sm{min-height:44px}.pph-signature .toolbar{padding:10px 13px;gap:9px}.pph-signature .toolbar .acts{width:100%;gap:7px}.pph-signature .toolbar .b{padding:10px 11px;font-size:12px;flex:1;min-width:0}.pph-signature .toolbar .b.solid{flex:1 1 100%}.pph-signature .toolbar .info{font-size:11px;line-height:1.5}.pph-signature .modal{padding:12px}.pph-signature .modal>div{max-width:100%;border-radius:13px}
 .pph-unified .product-home{padding:35px 19px}.pph-unified .home-hero{gap:30px}.pph-unified .home-hero h1{font-size:40px}.pph-unified .home-products{margin-top:38px}
}
@media(max-width:360px){.pph-header .pph-header-inner.wrap{padding-inline:12px;gap:8px}.pph-brand{font-size:23px;gap:8px}.pph-brand-icon{width:30px;height:34px}.pph-header-actions{gap:6px}.pph-header .pph-language select{min-width:82px;max-width:90px;font-size:11px;padding-inline:5px}.pph-preview-ribbon{font-size:9px;padding-inline:9px}.pph-sign-steps{gap:12px;font-size:11px}.pph-sign-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.pph-unified *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.pph-header,.pph-footer,.pph-preview-ribbon{display:none!important}}

@media(max-width:400px){.pph-header .pph-header-inner.wrap{padding-inline:12px;gap:10px}.pph-brand{font-size:22px;gap:8px}.pph-brand-icon{width:29px;height:33px}.pph-brand small{font-size:8px}.pph-header-actions{gap:7px}.pph-header .pph-language select{min-width:80px;max-width:85px;padding-inline:5px}.pph-menu-toggle{width:40px}}
.pph-unified .etat-reseau{bottom:calc(var(--pph-sign-actions-height,0px) + 12px)}
/* R23: translated labels must not compress their adjacent action buttons. */
.pph-signature{--pph-sign-panel-width:304px}
.pph-signature .sect h2{min-width:0;text-align:start;line-height:1.5;flex-wrap:wrap}
.pph-signature .sect h2>.b.sm{flex:0 0 auto;min-inline-size:max-content;min-block-size:44px;white-space:nowrap;overflow-wrap:normal;word-break:normal;letter-spacing:0;padding-inline:12px}
.signature-instructions{padding-inline-start:20px}.signature-instructions li+li{margin-block-start:8px}
.pph-signature .toolbar{left:0;right:0;inset-inline-start:var(--pph-sign-panel-width);flex-wrap:wrap;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.pph-signature .toolbar .info{flex:1 1 170px;min-width:0;overflow-wrap:anywhere}
.pph-signature .toolbar .acts{flex:0 1 auto;max-width:100%;min-width:0;flex-wrap:wrap;justify-content:flex-end}
.pph-signature .toolbar .b{white-space:normal;overflow-wrap:normal;word-break:normal}
html[dir=rtl] .apprentissage-lancer,html[dir=rtl] .apprentissage-accueil{text-align:start}
@media(max-width:1100px){.pph-signature{--pph-sign-panel-width:260px}}
@media(max-width:680px){.pph-signature{--pph-sign-panel-width:0px}.pph-signature .toolbar .acts{flex:1 1 100%;width:100%}}
