:root{--bg: #f1f5f6;--bg2: #e5ecee;--surface: #ffffff;--fg: #14252d;--fg2: #4a5e68;--fg3: #7d8f98;--border: #d3dee2;--accent: #1c5a4d;--accent-fg: #ffffff;--ink: #11212a;--ice: #bcd7e2;--green: #1d7a5f;--green-bg: #d9efe6;--red: #b42318;--red-bg: #fde4e1;--amber: #b4501a;--amber-bg: #fbe9db;--radius: 8px;--shadow: 0 1px 2px rgba(17,33,42,.06), 0 6px 18px -8px rgba(17,33,42,.18);--font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body: "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0c171d;--bg2: #15252d;--surface: #12222a;--fg: #eaf1f3;--fg2: #a5b6bd;--fg3: #6e8089;--border: #24363f;--accent: #4fb59b;--accent-fg: #07201a;--ink: #0a1419;--green: #4fb59b;--green-bg: #12332b;--red: #f08a80;--red-bg: #3a1b18;--amber: #f0a070;--amber-bg: #3a2417;--shadow: 0 1px 2px rgba(0,0,0,.4);color-scheme:dark}}:root[data-theme=dark]{--bg: #0c171d;--bg2: #15252d;--surface: #12222a;--fg: #eaf1f3;--fg2: #a5b6bd;--fg3: #6e8089;--border: #24363f;--accent: #4fb59b;--accent-fg: #07201a;--ink: #0a1419;--green: #4fb59b;--green-bg: #12332b;--red: #f08a80;--red-bg: #3a1b18;--amber: #f0a070;--amber-bg: #3a2417;--shadow: 0 1px 2px rgba(0,0,0,.4);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}img{max-width:100%}[hidden]{display:none!important}.loading{height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--fg);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page{min-height:100vh;padding:0 16px}.container{max-width:680px;margin:0 auto;padding:0 16px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:32px}.logo{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.5px;color:var(--fg);text-decoration:none}.logo:before,.client-logo:before,.auth-logo:before{content:"";width:24px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 16 L8 3 L12.5 10 L16 6 L24 16Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 16 L8 3 L12.5 10 L16 6 L24 16Z'/%3E%3C/svg%3E") center / contain no-repeat}.topbar{gap:12px}.topbar-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}h1{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.6px;line-height:1.2;text-wrap:balance}h2{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:-.3px;text-wrap:balance}h3{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:opacity .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-secondary{background:var(--surface);color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-ghost{background:transparent;color:var(--fg2);padding:6px 10px}.btn-ghost:hover{color:var(--fg);background:var(--bg2)}.btn-lg{padding:15px 24px;font-size:16px;font-weight:600;width:100%;border-radius:10px;line-height:1.3}.btn-danger{background:var(--red);color:#fff}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}label{font-size:13px;font-weight:500;color:var(--fg2);letter-spacing:.01em}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input,textarea,select{padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-size:15px;font-family:inherit;outline:none;transition:border-color .15s;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}textarea{resize:vertical;min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 480px){.form-row{grid-template-columns:1fr}}.form-hint{font-size:12px;color:var(--fg3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:500}.badge-en_attente{background:var(--amber-bg);color:var(--amber)}.badge-signe,.badge-paye{background:var(--green-bg);color:var(--green)}.badge-expire{background:var(--bg2);color:var(--fg3)}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px}.auth-box{width:100%;max-width:400px}.auth-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-1px;margin-bottom:8px;color:var(--fg)}.auth-tagline{color:var(--fg2);font-size:14px;margin-bottom:32px}.auth-footer{margin-top:20px;text-align:center;font-size:13px;color:var(--fg2)}.auth-footer a{color:var(--fg);font-weight:500}.error-msg{background:var(--red-bg);color:var(--red);border-radius:var(--radius);padding:10px 14px;font-size:13px;margin-bottom:16px}.devis-list{display:flex;flex-direction:column;gap:10px}.devis-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-decoration:none;color:var(--fg);transition:border-color .15s,background .15s}.devis-row:hover{border-color:var(--accent)}.devis-row-left{display:flex;flex-direction:column;gap:3px;min-width:0}.devis-client{font-weight:500;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.devis-desc{font-size:13px;color:var(--fg2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.devis-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.devis-amount{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.empty{text-align:center;padding:60px 20px;color:var(--fg2)}.empty h3{color:var(--fg);margin-bottom:8px}.empty p{font-size:14px;margin-bottom:24px}.client-page{min-height:100vh;padding:0 16px 48px;max-width:520px;margin:0 auto}.client-logo{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.4px}.client-pro{font-size:13px;color:var(--fg2);margin-top:2px}.client-header{padding:24px 0 20px;margin-bottom:20px}.hero{position:relative;margin:0 -16px 24px;padding:22px 20px 26px;color:#eef5f7;background:var(--ink) url(/contours.svg) center / cover no-repeat;border-radius:0 0 22px 22px;overflow:hidden}.hero .client-logo{color:#eef5f7}.hero-pro{margin-top:26px;font-size:13px;color:var(--ice)}.hero h1{color:#fff;font-size:30px;margin-top:4px}.hero-when{margin-top:8px;font-size:14px;color:#d4e4ea}.hero-price{margin-top:18px;display:flex;align-items:baseline;gap:8px}.hero-price strong{font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}.hero-price span{font-size:13px;color:var(--ice)}.devis-card{margin-bottom:24px}.line-item{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.line-item:last-child{border-bottom:none}.line-item-label{color:var(--fg2)}.line-item-value{font-weight:500;font-variant-numeric:tabular-nums}.line-item-total .line-item-label,.line-item-total .line-item-value{font-size:16px;font-weight:700;color:var(--fg)}.signature-block{margin-bottom:24px}.signature-block h3{margin-bottom:16px}.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--fg2);margin-bottom:16px;cursor:pointer;line-height:1.5}.checkbox-row input[type=checkbox],.checkbox-row input[type=radio]{width:18px;height:18px;flex-shrink:0;margin-top:1px;cursor:pointer}.legal-notice{font-size:11px;color:var(--fg3);margin-top:20px;line-height:1.6}.success-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 16px;gap:12px}.success-icon{width:56px;height:56px;border-radius:50%;background:var(--green-bg);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:8px}.success-page h2{margin-bottom:4px}.success-page p{color:var(--fg2);font-size:14px;max-width:300px}.divider{border:none;border-top:1px solid var(--border);margin:24px 0}.montant-display{font-size:32px;font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.card-success{border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 5%,var(--bg))}.steps-bar{display:flex;align-items:flex-start;margin:0 4px 26px}.step{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;flex:1}.step-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;position:relative;z-index:1;background:var(--surface);border:2px solid var(--border);color:var(--fg3)}.step-done .step-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.step-active .step-dot{background:var(--surface);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}.step-label{font-size:12px;font-weight:600;color:var(--fg3)}.step-done .step-label,.step-active .step-label{color:var(--fg)}.step-line{position:absolute;top:12px;left:calc(50% + 16px);right:calc(-50% + 16px);height:0;border-top:2px dashed var(--border);z-index:0}.step-done .step-line{border-top:2px solid var(--accent)}.tag{font-size:12px;font-weight:600;border-radius:99px;padding:2px 9px;background:var(--bg2);color:var(--fg2)}.tag-todo{background:var(--red-bg);color:var(--red)}.tag-ok{background:var(--green-bg);color:var(--green)}.is-todo{border:2px solid var(--red)!important;background:var(--red-bg)!important}.req{color:var(--red);font-weight:700;margin-left:2px}.todo-box{border:2px solid var(--red);border-radius:10px;padding:10px 14px;margin-top:16px;color:var(--red);font-size:14px;background:var(--red-bg)}.todo-box ul{margin:6px 0 0 18px;padding:0}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-weight:500;flex:1 1 150px}.choice input{width:auto;accent-color:var(--sapin, #1c5a4d)}.choice.on{border-color:var(--green);background:var(--green-bg)}.row-todo{outline:2px solid var(--red);border-radius:10px;background:var(--red-bg)}.block-title{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.block-title .n{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--accent)}.stripe-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:color-mix(in srgb,var(--accent) 8%,var(--bg));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px;flex-wrap:wrap}.stripe-msg{border-radius:var(--radius);padding:12px 16px;font-size:14px;margin-bottom:16px}.stripe-msg-ok{background:color-mix(in srgb,var(--green) 12%,var(--bg));color:var(--green)}.stripe-msg-warn{background:color-mix(in srgb,var(--amber) 12%,var(--bg));color:var(--amber)}.devis-item{display:flex;flex-direction:column;gap:6px}.quick-send{display:flex;gap:8px;padding:0 2px}.quick-send .btn{padding:6px 14px;font-size:13px;text-decoration:none}.btn{text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.checkbox-row input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;margin-top:0;border:1.5px solid var(--fg3);border-radius:6px;background:var(--surface);display:inline-grid;place-content:center;transition:background .12s,border-color .12s}.checkbox-row input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");background-size:14px;background-position:center;background-repeat:no-repeat}.checkbox-row{font-size:14px;color:var(--fg);line-height:1.5;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:10px;align-items:center}.checkbox-row a{color:var(--accent);font-weight:600}.is-todo{border:1.5px solid var(--border)!important;background:var(--surface)!important}.row-todo{outline:none;background:var(--surface)}.show-errors .is-todo{border:2px solid var(--red)!important;background:var(--red-bg)!important}.show-errors .row-todo{border-color:var(--red);background:var(--red-bg)}.req{color:var(--red)}.progress-box{margin-top:18px;padding:14px 16px;border-radius:12px;background:var(--bg2);color:var(--fg2);font-size:14px}.progress-head strong{color:var(--fg);font-variant-numeric:tabular-nums}.progress-bar{height:6px;border-radius:99px;background:var(--border);margin-top:10px;overflow:hidden}.progress-bar span{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .25s ease}.progress-box ul{margin:12px 0 0 18px;color:var(--red)}.progress-box.ready{background:var(--green-bg);color:var(--green);font-weight:600}.btn[data-pending=true]{background:var(--bg2);color:var(--fg3);border:1.5px dashed var(--border)}.btn[data-pending=true]:hover{opacity:1}@media (max-width: 560px){.hide-sm{display:none!important}.topbar{margin-bottom:20px;padding:14px 0}}.topbar-actions{flex-wrap:nowrap}.devis-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:0;overflow:hidden;box-shadow:var(--shadow)}.devis-item .devis-row{border:none;border-radius:0;background:transparent;padding:16px 18px}.devis-item .devis-row:hover{background:var(--bg2)}.devis-item .quick-send{padding:0 18px 14px}.devis-desc{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.devis-amount{font-family:var(--font-display);font-size:17px;letter-spacing:-.3px}.start-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.start-sub{font-size:13px;color:var(--fg3);margin:4px 0 14px}.start-list{list-style:none;display:flex;flex-direction:column;gap:4px}.start-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border);flex-wrap:wrap}.start-list li:first-child{border-top:none}.start-mark{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--fg3);flex-shrink:0;display:grid;place-content:center;font-size:13px;font-weight:700;color:var(--accent-fg)}.start-list li.done .start-mark{background:var(--accent);border-color:var(--accent)}.start-text{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}.start-text span{font-size:13px;color:var(--fg2)}.start-list li.done .start-text strong{color:var(--fg2);font-weight:500}.info-box{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px;border-radius:12px;background:var(--bg2);border:1px solid var(--border);font-size:14px}.hero-done{padding-bottom:32px}.done-check{margin-top:28px;width:52px;height:52px;border-radius:50%;display:grid;place-content:center;font-size:26px;background:var(--ice);color:var(--ink)}.hero-done h1{margin-top:16px}.done-card{margin:20px 16px 0}.done-dates{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.done-section{padding:24px 16px 0}.done-section h3{margin-bottom:12px}.doc-links{display:flex;flex-direction:column;gap:8px}.done-section .btn{width:100%}.done-card .line-item:has(.done-dates){flex-direction:column;align-items:flex-start;gap:6px}.done-card .done-dates{align-items:flex-start;text-align:left}button,input,select,textarea{font-family:inherit}
