/* CashFlow Studio: canvas WebGL léger et contrôles de mouvement accessibles. */
.ambient-scene{isolation:isolate}
.cashflow-canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;opacity:.54;pointer-events:none;transition:opacity .35s ease}
.cashflow-canvas-fallback{display:none}
.ambient-orb,.ambient-scales,.floating-coin{z-index:1}
.ambient-scene:after{z-index:2}
html[data-theme="dark"] .cashflow-canvas{opacity:.68}
html[data-theme="dark"] .ambient-orb{opacity:.27}

.motion-tilt{transform-style:preserve-3d;transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s ease,border-color .32s ease}
.motion-tilt:hover{transform:perspective(950px) rotateX(var(--motion-y,0deg)) rotateY(var(--motion-x,0deg)) translateY(-2px)}
.motion-tilt:active{transform:perspective(950px) scale(.988)}
.motion-reveal{opacity:0;transform:translate3d(0,17px,-10px) rotateX(1.2deg);transition:opacity .64s cubic-bezier(.2,.75,.25,1),transform .72s cubic-bezier(.2,.75,.25,1)}
.motion-reveal.motion-revealed{opacity:1;transform:none}
.motion-tilt.motion-reveal:hover{transform:perspective(950px) rotateX(var(--motion-y,0deg)) rotateY(var(--motion-x,0deg)) translateY(-2px)}
.nav-item.motion-tilt:hover,.mobile-tabs button.motion-tilt:hover{transform:perspective(700px) rotateX(var(--motion-y,0deg)) rotateY(var(--motion-x,0deg)) translateY(-1px)}
.mascot-card .mascot-character{transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.75,.3,1)}
.mascot-card.is-listening .mascot-character{transform:perspective(460px) rotateY(-5deg) translateY(-2px)}
.mascot-card.is-attentive .mascot-halo{animation-duration:1.8s}
.mascot-card.is-balanced .mascot-art:after{content:"✦";position:absolute;top:16px;left:54%;z-index:3;color:#bc923c;font-size:16px;text-shadow:0 0 14px #dfc36f;animation:studioSpark .72s ease-out both}
.mascot-card.is-balanced .mascot-arm-right{transform:rotate(-25deg)}
.mascot-card.is-balanced .mascot-character{animation:characterHop .58s cubic-bezier(.28,.84,.42,1.25) 1}
.mascot-card.is-error .mascot-character{animation:mascotConcern .34s ease-in-out 2}
.mascot-card.is-error .mascot-arm-right{transform:rotate(-44deg)}
@keyframes studioSpark{0%{opacity:0;transform:translateY(10px) scale(.45) rotate(-24deg)}55%{opacity:1;transform:translateY(-6px) scale(1.16) rotate(12deg)}100%{opacity:.78;transform:translateY(-14px) scale(.9) rotate(0)}}
@keyframes mascotConcern{50%{transform:translateX(-3px) rotate(-1deg)}}

@media(max-width:850px){
  .cashflow-canvas{opacity:.43}
  html[data-theme="dark"] .cashflow-canvas{opacity:.55}
  .motion-tilt:hover,.motion-tilt.motion-reveal:hover,.nav-item.motion-tilt:hover,.mobile-tabs button.motion-tilt:hover{transform:none}
}
@media(max-width:560px){.cashflow-canvas{opacity:.35}.ambient-scene:after{opacity:.38}}
@media(prefers-reduced-motion:reduce){
  .cashflow-canvas{opacity:.22;transition:none}
  body:before,body:after{animation:none!important}
  .motion-tilt,.motion-tilt:hover,.motion-tilt:active,.motion-reveal,.motion-reveal.motion-revealed,.motion-tilt.motion-reveal:hover{opacity:1;transform:none!important;transition:none!important;animation:none!important}
  .mascot-card.is-balanced .mascot-character,.mascot-card.is-balanced .mascot-art:after{animation:none!important}
  .mascot-card.is-error .mascot-character{animation:none!important}
  .mascot-card.is-listening .mascot-character{transform:none!important}
}
@page{size:A4;margin:16mm}
@media print{
  .cashflow-canvas{display:none!important}
  #printArea{display:block!important}
  .invoice-paper{display:block!important;width:100%;max-width:none;margin:0;padding:0;color:#17382f;font:10.5pt/1.5 Arial,sans-serif}
  .invoice-head{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;padding:0 0 19px;border-bottom:3px solid #176e5c}
  .invoice-issuer{display:flex;align-items:flex-start;gap:14px;min-width:0}
  .invoice-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:#176e5c}
  .invoice-mark svg{width:27px;height:27px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .invoice-kicker,.invoice-ref small,.invoice-party small{display:block;color:#9a783d;font-size:7pt;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}
  .invoice-issuer h1{margin:2px 0 5px;color:#17382f;font:700 27pt/1.05 Georgia,serif;letter-spacing:-.7px}
  .invoice-issuer b{font-size:11pt}.invoice-issuer p{margin:3px 0;color:#65766e;font-size:8.5pt}
  .invoice-ref{display:grid;justify-items:end;gap:5px;min-width:185px;padding:13px 15px;border:1px solid #dce7dd;border-radius:12px;background:#f5f8f3}
  .invoice-ref strong{color:#176e5c;font-size:15pt;letter-spacing:.2px}.invoice-ref span{color:#65766e;font-size:8pt}.invoice-ref em{margin-top:2px;padding:4px 8px;border-radius:20px;background:#e8f2e9;color:#24654f;font-size:7pt;font-style:normal;font-weight:750}
  .invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 25px}
  .invoice-party{display:grid;gap:4px;min-height:93px;padding:12px 14px;border:1px solid #e1e8df;border-radius:10px;background:#fbfcf9}
  .invoice-party b{color:#21483c;font-size:10pt}.invoice-party span{color:#697970;font-size:8pt}.invoice-customer{background:#f2f7f2}
  .invoice-paper table{width:100%;border-collapse:collapse;margin:0 0 20px}
  .invoice-paper th{padding:9px 8px;background:#1b5145;color:#fff;text-align:left;font-size:7.5pt;letter-spacing:.35px}
  .invoice-paper td{padding:10px 8px;border-bottom:1px solid #e4e9e1;color:#40564d;font-size:8.5pt;vertical-align:top}
  .invoice-paper th:last-child,.invoice-paper td:last-child{text-align:right;white-space:nowrap}
  .invoice-paper tbody tr:nth-child(even){background:#fafbf8}
  .invoice-bottom{display:grid;grid-template-columns:minmax(0,1fr) 245px;align-items:end;gap:20px;margin-top:20px}
  .invoice-note{max-width:320px;color:#738078;font-size:8pt;line-height:1.55}.invoice-note b{color:#315d4e;font-size:9pt}.invoice-note p{margin:7px 0 0}
  .invoice-total{width:100%;padding:11px 13px;border:1px solid #e0e7de;border-radius:11px;background:#f7f9f5}
  .invoice-total div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;color:#63736b;font-size:8pt}
  .invoice-total .grand{margin-top:4px;padding-top:10px;border-top:1px solid #cddbd0;color:#17382f;font-size:10pt;font-weight:750}
  .invoice-footer{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin-top:31px;padding-top:11px;border-top:1px solid #dfe7df;color:#547064;font-size:7.5pt}
  .invoice-footer span:first-child{font-weight:800;letter-spacing:.25px}.invoice-footer small{grid-column:1/-1;color:#8b958e;font-size:7pt}
}
