:root{--bg: #0f172a;--bg-soft: #1b2438;--line: #2c3852;--text: #e8edf7;--muted: #94a3b8;--accent: #3b82f6;--accent-strong: #2563eb;--danger: #ef4444;--canvas: #4b5567;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.app.drag-over:after{content:"Déposer le PDF";position:fixed;top:12px;right:12px;bottom:12px;left:12px;z-index:50;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:16px;background:#3b82f61f;font-size:20px;font-weight:600;pointer-events:none}.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-soft)}.brand{display:flex;gap:10px;align-items:center;min-width:170px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:linear-gradient(140deg,var(--accent),#8b5cf6);font-size:18px}.brand strong{display:block;line-height:1.2}.brand small{display:block;max-width:190px;overflow:hidden;color:var(--muted);font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.toolbar-group{display:flex;gap:6px;align-items:center;padding-left:14px;border-left:1px solid var(--line)}.toolbar-group:first-of-type{border-left:0;padding-left:0}.spacer{flex:1}.btn,.icon-btn,.tool,.chip,.zoom-value{border:1px solid var(--line);border-radius:8px;background:#223049;transition:background .12s,border-color .12s,transform .06s}.btn{display:inline-flex;gap:8px;align-items:center;padding:8px 13px;font-weight:550}.btn:hover:not(:disabled),.icon-btn:hover:not(:disabled),.tool:hover:not(:disabled),.chip:hover:not(:disabled),.zoom-value:hover:not(:disabled){border-color:#46557a;background:#2b3b58}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{border-color:transparent;background:var(--accent-strong)}.btn.primary:hover:not(:disabled){background:#1d4ed8}.btn.danger{border-color:#ef444466;background:#ef444424;color:#fca5a5}.btn.ghost{background:transparent}.btn.block{justify-content:center;width:100%}.btn:disabled,.icon-btn:disabled,.tool:disabled,.zoom-value:disabled{opacity:.4;cursor:not-allowed}.badge{padding:1px 7px;border-radius:20px;background:#ffffff38;font-size:11px;font-variant-numeric:tabular-nums}.icon-btn{display:grid;place-items:center;width:32px;height:32px;font-size:15px}.tools{gap:4px}.tool{display:inline-flex;gap:7px;align-items:center;padding:7px 11px;background:transparent;font-size:13px}.tool.active{border-color:var(--accent);background:#3b82f62e;color:#dbeafe}.tool-icon{display:grid;place-items:center;width:18px;font-size:14px;font-weight:700}.zoom-value{min-width:62px;padding:7px 4px;font-variant-numeric:tabular-nums}.toast.warn{border-bottom-color:#f59e0b66;background:#f59e0b29;color:#fde68a}.toast{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid rgb(239 68 68 / 35%);background:#ef444429;color:#fecaca}.workspace{display:flex;flex:1;min-height:0}.viewer{flex:1;overflow:auto;padding:26px 26px 80px;background:radial-gradient(circle at 50% 0,#2a3550 0,transparent 60%),var(--canvas)}.page-wrap{width:max-content;margin:0 auto 28px}.page-label{margin-bottom:6px;color:#ffffffb3;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}.page{position:relative;background:#fff;border-radius:3px;box-shadow:0 10px 30px #00000059}.page canvas{display:block;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .18s}.page canvas.ready{opacity:1}.page.tool-text{cursor:text}.page.tool-signature{cursor:copy}.overlay,.field-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.field-input,.field-toggle{position:absolute;margin:0;border:1px solid rgb(37 99 235 / 45%);border-radius:2px;background:#3b82f617;box-shadow:inset 0 0 0 1px #ffffff8c;color:#0b1220;font-family:Helvetica,Arial,sans-serif;transition:background .12s,border-color .12s}.field-layer.active .field-input,.field-layer.active .field-toggle{pointer-events:auto}.field-layer.active .field-input:hover,.field-layer.active .field-toggle:hover{background:#3b82f629;border-color:var(--accent-strong)}.field-input{padding:0 3px;line-height:1.15;overflow:hidden;resize:none}.field-input:focus{border-color:var(--accent-strong);outline:2px solid rgb(37 99 235 / 35%);outline-offset:0;background:#fff}.field-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:14px;background-image:linear-gradient(45deg,transparent 50%,#1e3a8a 50%),linear-gradient(135deg,#1e3a8a 50%,transparent 50%);background-position:right 7px center,right 3px center;background-repeat:no-repeat;background-size:4px 4px,4px 4px}.field-toggle{display:grid;place-items:center;padding:0;cursor:pointer}.field-radio{border-radius:50%}.field-toggle.checked{background:#fff}.field-mark{color:#0b1220;line-height:1}.ann{position:absolute;width:max-content;touch-action:none}.ann:not(.pass-through){pointer-events:auto;cursor:grab}.ann.pass-through{pointer-events:none}.ann.selected{outline:1.5px solid var(--accent-strong);outline-offset:3px}.ann.editing{cursor:text;outline:1.5px dashed var(--accent-strong);outline-offset:3px}.ann-signature img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.handle{position:absolute;right:-7px;bottom:-7px;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:var(--accent-strong);box-shadow:0 1px 4px #0006;cursor:nwse-resize;touch-action:none}.text-body,.text-mirror,.text-editor textarea{margin:0;padding:0;white-space:pre}.text-editor{display:grid}.text-editor>*{grid-area:1 / 1;font:inherit;line-height:inherit;letter-spacing:inherit}.text-mirror{visibility:hidden}.text-editor textarea{min-width:1ch;border:0;outline:none;background:#3b82f61a;color:inherit;overflow:hidden;resize:none;caret-color:currentcolor}.inspector{width:288px;flex-shrink:0;overflow-y:auto;padding:16px;border-left:1px solid var(--line);background:var(--bg-soft)}.panel{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.panel:last-child{border-bottom:0}.panel h3{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 12px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.panel-note{font-size:10.5px;letter-spacing:.02em;text-transform:none;color:#64748b}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field>span{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;color:var(--muted)}.field em{color:var(--text);font-style:normal;font-variant-numeric:tabular-nums}.field select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#223049;color:var(--text)}.field input[type=range]{width:100%;accent-color:var(--accent)}.btn-row{display:flex;gap:6px}.btn-row.wrap{flex-wrap:wrap}.chip{display:inline-flex;gap:4px;align-items:center;justify-content:center;min-width:32px;padding:5px 9px;font-size:12.5px}.chip.active{border-color:var(--accent);background:#3b82f633}.pen-dot{display:inline-block;border-radius:50%;background:currentcolor}.swatch{position:relative;width:26px;height:26px;padding:0;border:2px solid rgb(255 255 255 / 22%);border-radius:50%}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f659}.swatch.custom{display:grid;place-items:center;overflow:hidden;background:conic-gradient(#ef4444,#eab308,#22c55e,#3b82f6,#a855f7,#ef4444);cursor:pointer}.swatch.custom input{width:40px;height:40px;border:0;background:none;opacity:0;cursor:pointer}.sig-list{display:grid;gap:8px;margin-bottom:10px}.sig-slot{position:relative}.sig-card{display:grid;place-items:center;width:100%;min-height:62px;padding:8px 26px 8px 8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;cursor:pointer}.sig-card.active{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f666}.sig-card img{max-width:100%;max-height:54px}.sig-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border:0;border-radius:50%;background:#0f172a14;color:#475569;font-size:11px;line-height:1}.sig-del:hover{background:var(--danger);color:#fff}.check{display:flex;gap:9px;align-items:flex-start;margin-top:12px;font-size:12.5px;cursor:pointer}.check input{margin:1px 0 0;accent-color:var(--accent)}.check em{display:block;margin-top:3px;color:var(--muted);font-size:11.5px;font-style:normal;line-height:1.45}.hint{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.shortcuts ul{display:grid;gap:7px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:12px}kbd{display:inline-block;min-width:18px;padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:#223049;color:var(--text);font-family:inherit;font-size:11px;text-align:center}.empty{display:grid;flex:1;place-items:center;padding:24px}.dropzone{width:min(560px,100%);padding:44px 32px;border:2px dashed var(--line);border-radius:18px;background:var(--bg-soft);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--accent);background:#1f2a41}.dropzone-icon{font-size:44px}.dropzone h1{margin:12px 0 4px;font-size:22px}.dropzone p{margin:0;color:var(--muted)}.feature-list{display:grid;gap:8px;width:max-content;margin:26px auto 0;padding:0;list-style:none;color:var(--muted);font-size:13px;text-align:left}.loading{margin-top:18px!important;color:var(--accent)!important}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#080c16b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(720px,100%);max-height:100%;overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--bg-soft);box-shadow:0 24px 60px #0000008c}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:16px}.tabs{display:flex;gap:4px;padding:12px 18px 0}.tab{padding:8px 14px;border:0;border-radius:8px 8px 0 0;background:transparent;color:var(--muted)}.tab.active{background:#3b82f629;color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.modal-body{padding:14px 18px 18px}.pad-wrap{position:relative;display:grid;place-items:center;overflow:hidden;min-height:240px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.pad{display:block;width:100%;aspect-ratio:8 / 3;touch-action:none;cursor:crosshair}.pad-hint,.pad-hint-static{position:absolute;color:#94a3b8;font-size:14px;pointer-events:none}.pad-hint-static{position:static;color:#cbd5e1}.pad-baseline{position:absolute;right:40px;bottom:62px;left:40px;border-bottom:1px dashed #cbd5e1;pointer-events:none}.typed-preview{max-width:100%;padding:0 32px;overflow:hidden;font-size:clamp(30px,8vw,64px);line-height:1.4;text-align:center;text-overflow:ellipsis;white-space:nowrap}.modal-controls{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:14px}.control-group{display:flex;gap:6px;align-items:center}.control-label{color:var(--muted);font-size:12px}.text-input{flex:1 1 220px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#223049;color:var(--text);font:inherit}.text-input:focus{border-color:var(--accent);outline:none}.modal-footer{display:flex;gap:8px;align-items:center;padding:14px 18px;border-top:1px solid var(--line)}@media (width <= 860px){.workspace{flex-direction:column}.inspector{width:100%;max-height:42%;border-left:0;border-top:1px solid var(--line)}}
