
:root{
  --ink:#171118;
  --blackberry:#140f17;
  --night:#221828;
  --plum:#3a263f;
  --violet:#745782;
  --violet-soft:#a98bb6;
  --paper:#f1e9df;
  --paper-soft:#e8ddd0;
  --bone:#f8f3ec;
  --gold:#b88a54;
  --green:#4f7b5b;
  --red:#8a3f49;
  --line:rgba(23,17,24,.14);
}
*{box-sizing:border-box}
body{margin:0;background:#e9e1d8;color:var(--ink);font-family:Inter,system-ui,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:9px;font-weight:700;opacity:.58}

.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{
  position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;
  background:var(--blackberry);color:white;padding:25px 18px;
}
.admin-brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.25);font-size:22px;color:#dbc4e4}
.admin-brand strong{font-family:"Cinzel Decorative";font-size:11px;line-height:1.45}
.admin-brand small{display:block;margin-top:3px;text-transform:uppercase;letter-spacing:.15em;font-size:7px;opacity:.45}
.sidebar nav{display:grid;gap:6px;margin-top:28px}
.nav-btn{
  width:100%;text-align:left;border:0;background:transparent;color:rgba(255,255,255,.63);
  padding:13px 14px;border-radius:6px;font-size:11px;transition:.2s
}
.nav-btn span{display:inline-block;width:23px;color:#b99fc4}
.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.08);color:white}
.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:20px 8px 0;display:grid;gap:16px}
.rd-admin small{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:7px;opacity:.42}
.rd-admin strong{display:block;margin-top:4px;color:#d4b9dd;font-size:10px;letter-spacing:.06em}
.sidebar-bottom>a{font-size:9px;opacity:.52}

.admin-main{min-width:0;padding:34px 4vw 70px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}
.topbar h1{font-family:"Cormorant Garamond";font-size:42px;margin:6px 0 0;line-height:1}
.topbar-actions{display:flex;align-items:center;gap:10px}
.local-status{font-size:9px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:100px;padding:10px 13px;background:rgba(255,255,255,.45)}
.local-status i{width:7px;height:7px;border-radius:50%;background:#c88a45}
.primary-action,.secondary-btn{
  border:0;min-height:42px;padding:0 17px;font-weight:600;font-size:10px;transition:.2s
}
.primary-action{background:var(--ink);color:white;box-shadow:4px 4px 0 rgba(116,87,130,.18)}
.primary-action:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 rgba(116,87,130,.21)}
.secondary-btn{background:white;border:1px solid var(--line)}
.text-btn{border:0;background:transparent;font-size:9px;text-decoration:underline}

.panel{display:none}
.panel.active{display:block}
.warning-card{display:flex;gap:14px;align-items:flex-start;padding:15px 18px;background:#efe0bd;border:1px solid rgba(92,67,28,.18);margin-bottom:20px}
.warning-card div{font-size:18px}
.warning-card p{margin:0;font-size:10px;line-height:1.6;color:#594b34}

.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat-card{background:var(--bone);border:1px solid var(--line);padding:20px}
.stat-card span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;opacity:.55}
.stat-card strong{display:block;font-family:"Cormorant Garamond";font-size:35px;margin:10px 0 2px}
.stat-card small{font-size:8px;opacity:.45}

.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;margin-top:14px}
.dashboard-card{background:var(--bone);border:1px solid var(--line);padding:22px;min-height:330px}
.card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.dashboard-card h2,.settings-card h2{font-family:"Cormorant Garamond";font-size:30px;margin:7px 0 16px}
.mini-list{margin-top:20px}
.mini-row{display:grid;grid-template-columns:1.1fr 1fr .55fr .45fr;gap:12px;padding:13px 0;border-top:1px solid var(--line);align-items:center;font-size:9px}
.mini-row strong{font-size:10px}
.mini-row .amount{text-align:right}
.empty-state{font-size:10px;opacity:.45}
.witch-card{background:linear-gradient(145deg,#24192a,#3a263f);color:white;position:relative;overflow:hidden}
.witch-card:after{content:"☾";position:absolute;right:-15px;bottom:-70px;font-size:230px;color:rgba(255,255,255,.035)}
.witch-card h2{font-size:37px;line-height:.95}
.witch-card p{font-size:10px;line-height:1.7;color:rgba(255,255,255,.62);max-width:380px}
.shortcut-stack{display:grid;gap:8px;margin-top:28px;position:relative;z-index:2}
.shortcut-stack button{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:white;text-align:left;padding:12px 14px;font-size:10px}

.document-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.kind-switch{display:flex;background:rgba(255,255,255,.45);border:1px solid var(--line);padding:4px}
.kind-btn{border:0;background:transparent;padding:10px 16px;font-size:9px;font-weight:700;letter-spacing:.1em}
.kind-btn.active{background:var(--ink);color:white}
.doc-badge{text-align:right}
.doc-badge span{display:block;font-size:8px;letter-spacing:.15em;opacity:.48}
.doc-badge strong{display:block;margin-top:3px;font-family:"Cormorant Garamond";font-size:22px}

.document-form{display:grid;gap:14px}
.form-grid{display:grid;gap:14px}
.two-col{grid-template-columns:1fr 1fr}
fieldset{margin:0;padding:20px;background:var(--bone);border:1px solid var(--line);min-width:0}
legend{font-family:"Cormorant Garamond";font-size:23px;padding:0 8px}
label{display:grid;gap:6px;margin-bottom:12px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:rgba(23,17,24,.62)}
input,select,textarea{width:100%;border:1px solid var(--line);background:white;padding:11px 12px;outline:none;font-size:10px;text-transform:none;letter-spacing:0}
textarea{resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{border-color:rgba(116,87,130,.55);box-shadow:0 0 0 3px rgba(116,87,130,.07)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.items-fieldset{padding:20px}
.fieldset-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.fieldset-head legend{padding:0}
.items-table-wrap,.history-table-wrap{overflow:auto}
.items-table,.history-table{width:100%;border-collapse:collapse}
.items-table th,.history-table th{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);font-size:8px;text-transform:uppercase;letter-spacing:.1em;opacity:.5}
.items-table td,.history-table td{padding:8px;border-bottom:1px solid rgba(23,17,24,.07);font-size:9px;vertical-align:middle}
.items-table input,.items-table select{min-width:70px;padding:9px}
.items-table .desc-input{min-width:280px}
.remove-item{border:0;background:transparent;font-size:17px;color:#8c4850}
.preset-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:15px}
.preset-row>span{font-size:8px;text-transform:uppercase;letter-spacing:.1em;opacity:.45}
.preset-item{border:1px solid var(--line);background:white;padding:8px 10px;font-size:8px}
.lower-grid{align-items:start}
.input-suffix{display:flex}
.input-suffix input{border-right:0}
.input-suffix span{min-width:34px;display:grid;place-items:center;background:#eee5db;border:1px solid var(--line);font-size:10px}
.totals-box{margin-top:20px;border-top:1px solid var(--line)}
.totals-box>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid rgba(23,17,24,.07);font-size:9px}
.totals-box .grand-total{font-family:"Cormorant Garamond";font-size:20px;padding-top:15px}
.form-actions{display:flex;justify-content:flex-end;gap:9px;background:var(--bone);border:1px solid var(--line);padding:14px}

.history-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:14px}
.search-box{flex:1;max-width:430px}
.search-box input{background:var(--bone)}
.history-filters{display:flex;gap:6px}
.history-filter{border:1px solid var(--line);background:var(--bone);padding:9px 13px;font-size:8px}
.history-filter.active{background:var(--ink);color:white}
.history-table-wrap{background:var(--bone);border:1px solid var(--line);padding:8px 14px}
.doc-type-pill,.status-pill{display:inline-flex;align-items:center;border-radius:100px;padding:6px 8px;font-size:7px;text-transform:uppercase;letter-spacing:.08em}
.doc-type-pill.quote{background:#e7dced;color:#5b4264}
.doc-type-pill.invoice{background:#ded6c9;color:#584938}
.status-pill.draft{background:#e8e0d5;color:#6b5b48}
.status-pill.sent{background:#e2dbea;color:#604d69}
.status-pill.paid{background:#dce9df;color:#3b6947}
.status-pill.unpaid{background:#f0dcdc;color:#7a3b45}
.history-actions{display:flex;gap:5px;justify-content:flex-end}
.history-actions button{border:1px solid var(--line);background:white;padding:7px 8px;font-size:7px}
.history-actions button.danger{color:#87444d}
.history-actions button.primary-mini{background:var(--plum);color:white;border-color:var(--plum)}

.settings-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:start}
.settings-card{background:var(--bone);border:1px solid var(--line);padding:22px;margin-bottom:14px}
.settings-help,.microcopy{font-size:9px;line-height:1.6;opacity:.52;margin-top:-6px;margin-bottom:20px}
.sequence-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.backup-actions{display:flex;gap:8px}
.import-label{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 17px;border:1px solid var(--line);background:white;font-size:10px;text-transform:none;letter-spacing:0;cursor:pointer;margin:0}
.import-label input{display:none}
.compliance-card{background:#f1e8d8}
.compliance-card ul{margin:0;padding-left:18px;font-size:9px;line-height:1.8;color:rgba(23,17,24,.63)}

.document-dialog{width:min(1080px,95vw);height:min(900px,94vh);border:0;padding:0;background:#ded6ce;box-shadow:0 30px 100px rgba(0,0,0,.35)}
.document-dialog::backdrop{background:rgba(15,10,17,.67);backdrop-filter:blur(5px)}
.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;background:#18121b;color:white}
.dialog-head h2{font-family:"Cormorant Garamond";font-size:28px;margin:4px 0 0}
.dialog-head button{border:0;background:transparent;color:white;font-size:28px}
.preview-host{overflow:auto;height:calc(100% - 133px);padding:25px}
.dialog-actions{justify-content:flex-end;background:#eee5dd;color:var(--ink);border-top:1px solid var(--line);gap:8px}

/* A4 preview */
.invoice-sheet{
  width:210mm;min-height:297mm;margin:0 auto;background:#fffdf9;
  box-shadow:0 15px 50px rgba(0,0,0,.15);
  padding:18mm 17mm 16mm;
  color:#181318;
  font-family:Inter,Arial,sans-serif;
  position:relative;
}
.invoice-sheet:before{content:"";position:absolute;left:0;top:0;right:0;height:5mm;background:#3a263f}
.doc-head{display:flex;justify-content:space-between;gap:25px;margin-top:3mm;padding-bottom:9mm;border-bottom:1px solid #d9d0c8}
.doc-brand{display:flex;gap:10px;align-items:center}
.doc-brand-mark{width:16mm;height:16mm;border-radius:50%;display:grid;place-items:center;background:#181318;color:#eee5ef;font-size:8mm}
.doc-brand strong{display:block;font-family:"Cinzel Decorative",serif;font-size:11pt}
.doc-brand small{display:block;margin-top:3px;font-size:6.5pt;text-transform:uppercase;letter-spacing:.13em;color:#766b73}
.doc-id{text-align:right}
.doc-id .kind{font-family:"Cormorant Garamond";font-size:25pt;color:#3a263f}
.doc-id strong{display:block;font-size:9pt;margin-top:2px}
.doc-id small{display:block;font-size:7pt;margin-top:5px;color:#746b70}
.doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:18mm;padding:10mm 0}
.party-label{font-size:6pt;text-transform:uppercase;letter-spacing:.15em;color:#8a7c84;margin-bottom:4px}
.party strong{font-size:9pt}
.party p{font-size:7pt;line-height:1.6;margin:4px 0;color:#544d51;white-space:pre-line}
.doc-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:4mm;background:#f2eae3;padding:4mm;margin-bottom:8mm}
.doc-meta div span{display:block;font-size:5.5pt;text-transform:uppercase;letter-spacing:.1em;color:#8b7d84}
.doc-meta div strong{display:block;font-size:7pt;margin-top:3px}
.doc-subject{font-family:"Cormorant Garamond";font-size:17pt;margin:0 0 6mm}
.pdf-items{width:100%;border-collapse:collapse}
.pdf-items th{font-size:5.8pt;text-transform:uppercase;letter-spacing:.1em;text-align:left;padding:3mm 2mm;background:#3a263f;color:white}
.pdf-items td{font-size:7pt;padding:3.2mm 2mm;border-bottom:1px solid #e2dad3;vertical-align:top}
.pdf-items th:nth-child(n+2),.pdf-items td:nth-child(n+2){text-align:right}
.pdf-items td:first-child{width:48%}
.doc-bottom{display:grid;grid-template-columns:1fr 68mm;gap:10mm;margin-top:8mm}
.doc-notes h4{font-family:"Cormorant Garamond";font-size:11pt;margin:0 0 4px}
.doc-notes p{font-size:6.5pt;line-height:1.65;color:#655c61;white-space:pre-line}
.pdf-totals>div{display:flex;justify-content:space-between;padding:2.2mm 0;border-bottom:1px solid #e4dcd5;font-size:7pt}
.pdf-totals .pdf-grand{font-family:"Cormorant Garamond";font-size:14pt;color:#3a263f;border-top:1px solid #3a263f;margin-top:2mm}
.doc-legal{margin-top:9mm;padding-top:5mm;border-top:1px solid #ded5cf;font-size:5.8pt;line-height:1.55;color:#786e73}
.acceptance-box{margin-top:7mm;border:1px solid #cfc3c9;min-height:27mm;padding:4mm}
.acceptance-box strong{font-family:"Cormorant Garamond";font-size:10pt}
.acceptance-box p{font-size:6pt;color:#756b70}
.doc-footer{position:absolute;left:17mm;right:17mm;bottom:8mm;display:flex;justify-content:space-between;font-size:5.5pt;color:#93868e}
.doc-footer .hecate{font-family:"Cinzel Decorative";color:#5f4568}

@media(max-width:1000px){
  .admin-shell{grid-template-columns:76px 1fr}
  .sidebar{padding:22px 10px}
  .admin-brand div:last-child,.nav-btn{font-size:0}
  .nav-btn span{font-size:15px;width:auto}
  .nav-btn{text-align:center;padding:13px}
  .sidebar-bottom{display:none}
  .dashboard-grid,.settings-layout{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .admin-shell{display:block}
  .sidebar{position:static;height:auto;display:flex;flex-direction:row;align-items:center;padding:10px;overflow:auto}
  .admin-brand{border:0;padding:0 10px 0 0}
  .sidebar nav{display:flex;margin:0}
  .admin-main{padding:22px 14px 50px}
  .topbar{align-items:flex-start;flex-direction:column}
  .topbar-actions{width:100%;justify-content:space-between}
  .two-col,.field-row,.settings-layout,.stats-grid{grid-template-columns:1fr}
  .history-toolbar{align-items:flex-start;flex-direction:column}
  .history-filters{flex-wrap:wrap}
  .form-actions{flex-direction:column}
  .document-toolbar{align-items:flex-start;flex-direction:column;gap:12px}
  .doc-badge{text-align:left}
  .preview-host{padding:8px}
  .invoice-sheet{transform-origin:top left;transform:scale(.52);margin-bottom:-140mm}
}

/* V6.5 — navigation admin */
.back-admin-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 15px;
  border:1px solid rgba(58,38,63,.22);
  background:#f8f3ec;
  color:#3a263f;
  font-size:9px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}
.back-admin-btn:hover{
  background:#3a263f;
  color:white;
}
@media(max-width:760px){
  .topbar-actions{flex-wrap:wrap}
  .back-admin-btn{width:100%}
}


/* V6.6 — devis/factures sur téléphone et tablette */
@media(min-width:721px) and (max-width:1050px){
  .admin-main{padding-inline:3vw}
  .two-col{grid-template-columns:1fr}
  .items-table{min-width:850px}
}

@media(max-width:720px){
  body{overflow-x:hidden}
  input,select,textarea{font-size:16px!important}
  button,a{min-height:44px}

  .admin-main{padding:18px 10px 45px}
  .topbar{gap:14px}
  .topbar h1{font-size:34px}
  .topbar-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .topbar-actions .back-admin-btn{grid-column:1/-1}
  .topbar-actions .local-status{justify-content:center}
  .topbar-actions .primary-action{width:100%}

  fieldset{padding:15px}
  legend{font-size:21px}
  .field-row{grid-template-columns:1fr}
  .items-fieldset{padding:14px}
  .fieldset-head{align-items:flex-start;gap:10px;flex-direction:column}
  .fieldset-head .secondary-btn{width:100%}
  .items-table{min-width:780px}
  .items-table input,.items-table select{font-size:14px!important}
  .preset-row{display:grid;grid-template-columns:1fr 1fr}
  .preset-row>span{grid-column:1/-1}
  .preset-item{min-height:42px}
  .form-actions{display:grid;grid-template-columns:1fr}
  .form-actions>*{width:100%}

  .history-table{min-width:760px}
  .settings-card{padding:16px}
  .sequence-grid{grid-template-columns:1fr}

  .document-dialog{
    width:calc(100vw - 10px);
    height:94vh;
  }
  .dialog-head,.dialog-actions{padding:12px}
  .dialog-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .dialog-actions>*{width:100%}
  .preview-host{padding:6px}
  .invoice-sheet{
    transform:scale(.46);
    transform-origin:top left;
    margin-bottom:-160mm;
  }
}


/* V6.10 — logo officiel devis/factures */
.brand-logo{
  overflow:hidden!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.brand-logo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}

/* V6.11 — logo devis/factures */
.brand-logo{
  width:52px!important;
  height:52px!important;
  flex:0 0 52px!important;
  background:#100d12!important;
}
.brand-logo img{
  object-fit:contain!important;
}


/* V6.15 — logo devis/factures plus lisible */
.brand-logo{
  width:64px!important;
  height:64px!important;
  flex:0 0 64px!important;
  background:#120e14!important;
  box-shadow:0 0 0 1px rgba(108,72,124,.18);
}
