:root {
  --bg: #f2f3f5;
  --paper: #fff;
  --ink: #1f2933;
  --muted: #6b7280;
  --line: #d9dde3;
  --navy: #10233f;
  --navy-2: #1b3559;
  --gold: #b7945b;
  --soft: #eef2f7;
  --danger: #9f3434;
  --shadow: 0 18px 50px rgba(16,35,63,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
.app-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:20px 28px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.app-header h1{font-family:"Libre Baskerville",serif;margin:3px 0 4px;font-size:26px;color:var(--navy)}
.eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--gold)}
.subtitle{margin:0;color:var(--muted);font-size:13px}
.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:var(--gold);color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--navy)}.btn.small{padding:8px 10px;font-size:12px}
.layout{display:grid;grid-template-columns:minmax(620px,1fr) minmax(460px,.8fr);gap:22px;max-width:1700px;margin:auto;padding:22px}
.editor{display:flex;flex-direction:column;gap:16px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 4px 14px rgba(16,35,63,.035)}
.intro-card,.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.card h2{font-size:16px;color:var(--navy);margin:0 0 15px}.card p{font-size:13px;color:var(--muted);margin:4px 0 0}
.badge{padding:6px 9px;border-radius:999px;background:var(--soft);color:var(--navy);font-size:11px;font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}
label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#3f4b59;margin-bottom:13px}label small{font-weight:400;color:var(--muted);line-height:1.3}
input,select,textarea{width:100%;border:1px solid #cfd5dd;background:#fff;border-radius:9px;padding:10px 11px;color:var(--ink);outline:none;transition:.15s}textarea{resize:vertical;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:#8095b0;box-shadow:0 0 0 3px rgba(16,35,63,.06)}
.billing-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice{margin:0;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:row;align-items:flex-start;gap:10px;cursor:pointer}.choice input{width:auto;margin-top:3px}.choice span{display:flex;flex-direction:column;gap:3px}.choice small{font-weight:400;color:var(--muted)}.choice:has(input:checked){border-color:var(--navy);background:#f7f9fc}
.toggle-line{flex-direction:row;align-items:center;margin:16px 0 0;padding:12px;border-top:1px dashed var(--line)}.toggle-line input{width:auto}
.table-wrap{overflow:auto;margin-bottom:14px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:9px 8px;background:var(--soft);color:var(--navy);white-space:nowrap}.data-table td{padding:8px;border-bottom:1px solid #e8ebef;vertical-align:middle}.data-table input{padding:8px}.data-table .row-delete{border:0;background:#fff;color:var(--danger);font-size:21px;cursor:pointer}
.summary-card{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:var(--navy);color:#fff;border:0}.summary-card div{display:flex;flex-direction:column;gap:6px;padding:6px 8px}.summary-card span{font-size:11px;opacity:.75}.summary-card strong{font-size:18px}.summary-card .result-sim{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:14px}
.hidden{display:none!important}
.preview-shell{position:sticky;top:105px;align-self:start;height:calc(100vh - 125px);display:flex;flex-direction:column;border-radius:15px;overflow:hidden;background:#dfe3e8;box-shadow:var(--shadow)}
.preview-toolbar{height:46px;display:flex;justify-content:space-between;align-items:center;padding:0 14px;background:var(--navy);color:#fff;font-size:12px;font-weight:700}.icon-btn{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer}
.document-preview{overflow:auto;margin:16px auto;width:calc(100% - 32px);max-width:760px;background:#fff;min-height:1050px;padding:52px 56px;box-shadow:0 7px 25px rgba(0,0,0,.15);font-family:Arial,sans-serif;font-size:12px;line-height:1.55;color:#252525}.document-preview h1{font-family:Georgia,serif;text-align:center;color:var(--navy);font-size:21px;margin:0 0 8px}.document-preview h2{font-family:Georgia,serif;color:var(--navy);font-size:14px;border-bottom:1px solid #c9ced6;padding-bottom:5px;margin:24px 0 10px}.document-preview h3{font-size:12px;margin:15px 0 6px;color:var(--navy)}.document-preview p{margin:7px 0}.document-preview ul{margin:6px 0 6px 18px;padding:0}.document-preview table{width:100%;border-collapse:collapse;margin:10px 0 14px}.document-preview th,.document-preview td{border:1px solid #cfd4db;padding:6px 7px;text-align:left;vertical-align:top}.document-preview th{background:#eef1f5}.document-preview .doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;font-size:11px;margin:12px 0 18px}.document-preview .parties{display:grid;grid-template-columns:1fr 1fr;gap:18px}.document-preview .totals{margin-left:auto;width:60%}.document-preview .totals td:last-child{text-align:right}.document-preview .strong{font-weight:700}.document-preview .notice{border-left:3px solid var(--gold);background:#fbf8f2;padding:9px 11px}.document-preview .signatures{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:25px}.document-preview .signature-box{height:95px;border:1px solid #ccd2d9;padding:8px}.document-preview .muted{color:#666;font-size:10px}
@media(max-width:1200px){.layout{grid-template-columns:1fr}.preview-shell{position:relative;top:0;height:900px}.summary-card{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.app-header{align-items:flex-start;flex-direction:column}.layout{padding:10px}.form-grid,.form-grid.cols-2,.form-grid.cols-3,.billing-options{grid-template-columns:1fr}.span-2{grid-column:auto}.summary-card{grid-template-columns:1fr}.document-preview{padding:32px 26px}.document-preview .parties{grid-template-columns:1fr}}
@media print{body{background:#fff}.app-header,.editor,.preview-toolbar{display:none!important}.layout{display:block;padding:0}.preview-shell{height:auto;position:static;box-shadow:none;background:#fff}.document-preview{box-shadow:none;width:100%;max-width:none;margin:0;padding:15mm;font-size:10pt;overflow:visible}}

.pappers-search{display:grid;grid-template-columns:1fr auto;gap:10px;margin:12px 0 6px}
.pappers-status{min-height:18px;font-size:12px;color:#667085;margin-bottom:6px}
.pappers-status.error{color:#b42318}
.pappers-status.ok{color:#067647}
.pappers-results{border:1px solid #d9dee7;border-radius:10px;overflow:hidden;margin:8px 0 14px;background:#fff}
.pappers-result{display:block;width:100%;border:0;border-bottom:1px solid #e8ebf0;background:#fff;text-align:left;padding:11px 12px;cursor:pointer}
.pappers-result:last-child{border-bottom:0}
.pappers-result:hover{background:#f7f9fc}
.pappers-result strong{display:block;color:#10233f;font-size:13px}
.pappers-result small{display:block;color:#667085;margin-top:3px}
@media(max-width:650px){.pappers-search{grid-template-columns:1fr}}

/* Modern quote document */
.document-preview .quote-modern{position:relative}
.document-preview .quote-modern h1{text-align:left;font-family:Inter,system-ui,sans-serif;font-size:22px;letter-spacing:-.02em;margin:2px 0 0;color:#132238}
.document-preview .quote-accent{height:4px;border-radius:999px;background:linear-gradient(90deg,#10233f 0 72%,#b7945b 72% 100%);margin:-18px 0 26px}
.document-preview .quote-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:26px;margin-bottom:22px}
.document-preview .quote-brand{display:flex;gap:14px;align-items:center;min-width:0}
.document-preview .quote-monogram{width:48px;height:48px;border-radius:14px;background:#10233f;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.04em;font-size:16px;flex:0 0 auto}
.document-preview .quote-kicker{font-size:8.5px;font-weight:800;letter-spacing:.13em;color:#8a6d43;text-transform:uppercase}
.document-preview .quote-refbox{min-width:135px;border:1px solid #e0e4e9;border-radius:14px;padding:12px 14px;text-align:right;background:#fafbfc}
.document-preview .quote-refbox span{display:block;font-size:8px;letter-spacing:.13em;color:#7b8490;font-weight:800}
.document-preview .quote-refbox strong{display:block;font-size:16px;color:#10233f;margin:4px 0 2px}
.document-preview .quote-refbox small{color:#7b8490;font-size:9px}
.document-preview .quote-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 18px}
.document-preview .quote-info-grid>div{background:#f6f8fa;border-radius:10px;padding:9px 10px;border:1px solid #edf0f3}
.document-preview .quote-info-grid span{display:block;color:#7a8491;text-transform:uppercase;letter-spacing:.07em;font-size:7.5px;font-weight:800;margin-bottom:3px}
.document-preview .quote-info-grid strong{font-size:10.5px;color:#182737}
.document-preview .quote-parties{display:grid;grid-template-columns:.9fr 1.1fr;gap:10px;margin:0 0 24px}
.document-preview .quote-party{border:1px solid #e2e6eb;border-radius:12px;padding:13px 14px;min-height:105px}
.document-preview .quote-party.client-card{background:#10233f;color:#fff;border-color:#10233f}
.document-preview .quote-party.client-card p{color:#fff}
.document-preview .quote-card-label{font-size:8px;letter-spacing:.12em;font-weight:800;color:#9a7c4d}
.document-preview .client-card .quote-card-label{color:#d9bf94}
.document-preview .quote-client-type{opacity:.7;font-size:9px;margin-top:7px}
.document-preview .quote-modern h2{font-family:Inter,system-ui,sans-serif;border:0;padding:0;margin:24px 0 9px;font-size:12px;letter-spacing:.01em;color:#10233f}
.document-preview .quote-modern h2:after{content:"";display:block;width:34px;height:2px;background:#b7945b;margin-top:6px;border-radius:999px}
.document-preview .quote-modern h3{font-family:Inter,system-ui,sans-serif;font-size:10.5px}
.document-preview .quote-modern table:not(.totals){border-collapse:separate;border-spacing:0;border:1px solid #e2e6eb;border-radius:10px;overflow:hidden}
.document-preview .quote-modern table:not(.totals) th{background:#f5f7f9;border:0;border-bottom:1px solid #e2e6eb;padding:8px}
.document-preview .quote-modern table:not(.totals) td{border:0;border-bottom:1px solid #eceff2;padding:8px}
.document-preview .quote-modern table:not(.totals) tr:last-child td{border-bottom:0}
.document-preview .quote-modern .totals{width:54%;margin:14px 0 20px auto;border-collapse:separate;border-spacing:0;background:#f6f8fa;border-radius:12px;overflow:hidden;border:1px solid #e6e9ed}
.document-preview .quote-modern .totals td{border:0;border-bottom:1px solid #e4e8ec;padding:8px 10px}
.document-preview .quote-modern .totals tr:last-child td{border-bottom:0}
.document-preview .quote-modern .totals .strong{background:#10233f;color:#fff}
.document-preview .quote-modern .notice{border:0;border-radius:12px;background:#f7f3ec;padding:12px 14px;color:#55452d}
.document-preview .quote-modern .signature-box{border:1px solid #e0e4e9;border-radius:10px;background:#fafbfc}
.history-empty{padding:18px 4px 4px;color:#7a8490;font-size:12px;text-align:center}
.history-table td:last-child{white-space:nowrap;text-align:right}
.history-action{border:1px solid #d9dee6;background:#fff;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:700;color:#10233f;cursor:pointer;margin-left:4px}
.history-action.delete{color:#9f3434}
@media(max-width:720px){.document-preview .quote-hero{flex-direction:column}.document-preview .quote-refbox{width:100%;text-align:left}.document-preview .quote-info-grid{grid-template-columns:1fr 1fr}.document-preview .quote-parties{grid-template-columns:1fr}.document-preview .quote-modern .totals{width:100%}}

/* Devis archive modal + hourly options */
.hourly-estimation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.choice.compact{padding:11px 12px}
.hourly-table .role-enabled{width:18px;height:18px;margin:0;accent-color:var(--navy);cursor:pointer}
.hourly-table tr.role-disabled td{opacity:.48}
.hourly-table tr.role-disabled td:first-child{opacity:1}
.hourly-table input:disabled{background:#f2f4f6;color:#9aa2ad;cursor:not-allowed}
body.modal-open{overflow:hidden}
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(15,28,46,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:28px}
.modal-card{width:min(980px,100%);max-height:min(760px,90vh);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(7,18,34,.28);padding:24px}
.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--line)}
.modal-head h2{font-family:"Libre Baskerville",serif;color:var(--navy);font-size:22px;margin:4px 0 5px}
.modal-head p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}
.modal-close{border:0;background:var(--soft);color:var(--navy);width:38px;height:38px;border-radius:10px;font-size:25px;line-height:1;cursor:pointer}
.modal-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:18px 0 10px}
.modal-toolbar input{margin:0}
.history-table tbody tr:hover{background:#fafbfc}
.history-table td:last-child{min-width:170px}
@media(max-width:720px){.hourly-estimation-options{grid-template-columns:1fr}.modal-overlay{padding:10px}.modal-card{padding:16px}.modal-toolbar{grid-template-columns:1fr}.history-table{min-width:700px}}

.clause-toggle{align-items:flex-start}
.clause-toggle span{display:flex;flex-direction:column;gap:3px}
.clause-toggle small{font-weight:400;color:var(--muted);line-height:1.35}
#additionalHearingSettings{margin-top:8px;padding:14px;border-radius:12px;background:#f7f9fc;border:1px solid #e5e9ef}
