:root{
  --ink:#2a2320;
  --muted:#766f66;
  --line:#e4ddd0;
  --card:#ffffffee;
  --accent:#5c2430;
  --accent-dark:#431a23;
  --ok:#1f8a4c;
  --danger:#c0392b;
  --radius:14px;
  --add-accent:#b8791f;
  --add-accent-dark:#96620f;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  line-height:1.45;
  background:#f7f4ee url('fond.jpg') center top / cover no-repeat fixed;
  min-height:100vh;
}
.wrap{
  max-width:760px;
  margin:0 auto;
  padding:28px 18px 90px;
}
.wrap.narrow{max-width:420px; padding-top:10vh;}
.doc-list{display:flex; flex-direction:column; gap:8px;}
.doc-row{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:#fff;
}
.doc-thumb{
  width:38px; height:38px; object-fit:cover; border-radius:6px;
  border:1px solid var(--line); background:#faf8f4; flex-shrink:0;
}
.doc-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:38px; height:26px; padding:0 8px; border-radius:6px;
  font-size:0.66rem; font-weight:700; letter-spacing:0.02em; color:#fff; flex-shrink:0;
}
.doc-badge-pdf{background:#c0392b;}
.doc-badge-img{background:#2f7fc1;}
.doc-badge-psd{background:#6f42c1;}
.doc-badge-doc{background:#25438f;}
.doc-badge-xls{background:#1f8a4c;}
.doc-badge-other{background:#766f66;}
.doc-label{flex:1; font-weight:600; font-size:0.92rem;}
.doc-dl{white-space:nowrap; flex-shrink:0; padding:8px 14px; font-size:0.82rem;}
.site-banner{text-align:center; margin:0 0 36px;}
.site-banner img{max-width:100%; max-height:140px; width:auto; height:auto; border-radius:10px;}
.quick-links{display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin:0 0 36px;}
.quick-links a{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px; border-radius:20px; border:1px solid var(--line);
  background:#fff; color:var(--accent-dark); text-decoration:none;
  font-size:0.85rem; font-weight:600;
}
.quick-links a:hover{background:#f3ede4;}
.title-highlight{
  display:inline-block;
  background:#f3ede4;
  padding:2px 12px;
  border-radius:8px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.pricing-block{
  display:inline-block;
  background:#f3ede4cc;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 16px;
  font-size:0.9rem;
  font-weight:600;
  color:var(--accent-dark);
  margin:0 0 20px;
}
h1{font-size:1.45rem; margin:0 0 4px;}
h2{font-size:1.05rem; margin:26px 0 10px;}
p.lead{color:var(--muted); margin:0 0 20px; font-size:0.95rem;}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:18px;
  backdrop-filter:blur(3px);
  box-shadow:0 6px 24px rgba(70,40,30,0.07);
}
/* Fond légèrement plus soutenu pour les blocs Documents/Liens de la page admin
   principale, afin que les lignes blanches (.doc-row) ressortent davantage. */
#documents, #liens{
  background:#f3ede4;
}
#documents{margin-bottom:36px;}
label{
  display:block;
  font-weight:600;
  font-size:0.85rem;
  margin:0 0 6px;
  color:var(--ink);
}
.field{margin-bottom:18px;}
input[type=text], input[type=number], input[type=date], input[type=url],
input[type=password], input[type=file], select, textarea{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  font-size:1rem;
  background:#fff;
  color:var(--ink);
  font-family:inherit;
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--accent); outline-offset:1px;}
.hint{font-size:0.78rem; color:var(--muted); margin-top:5px;}
.swatches{display:flex; flex-wrap:wrap; gap:10px;}
.swatch{
  width:52px; height:52px; border-radius:50%;
  border:2px solid transparent;
  cursor:pointer;
  position:relative;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  background-size:cover;
  background-position:center;
}
.swatch.selected{border-color:var(--accent); box-shadow:0 0 0 3px rgba(92,36,48,0.18);}
.swatch.selected::after{
  content:"✓"; color:#fff; font-weight:700; font-size:1.1rem;
  text-shadow:0 1px 3px rgba(0,0,0,0.7);
}
.swatch-label{font-size:0.68rem; text-align:center; margin-top:4px; color:var(--muted);}
.swatch-col{display:flex; flex-direction:column; align-items:center; width:64px;}
.sizes{display:flex; flex-wrap:wrap; gap:8px;}
.size-btn{
  padding:9px 14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  cursor:pointer;
  font-size:0.92rem;
  font-weight:600;
}
.size-btn.selected{background:var(--accent); color:#fff; border-color:var(--accent);}
.qty-row{display:flex; align-items:center; gap:10px;}
.qty-row button{
  width:40px; height:40px; border-radius:10px; border:1px solid var(--line);
  background:#fff; font-size:1.2rem; cursor:pointer; line-height:1;
}
.qty-row input{width:70px; text-align:center;}
.preview-box{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:16px; border:1px dashed var(--line); border-radius:var(--radius);
  background:#faf8f4cc;
  min-height:180px;
  justify-content:center;
}
.preview-box img{max-width:100%; max-height:260px; border-radius:8px;}
.preview-box .cap{font-size:0.78rem; color:var(--muted);}
button.primary{
  width:100%;
  padding:14px;
  border:none;
  border-radius:12px;
  background:var(--accent);
  color:#fff;
  font-size:1.02rem;
  font-weight:700;
  cursor:pointer;
  margin-top:6px;
}
button.primary:hover{background:var(--accent-dark);}
button.primary:disabled{background:#c9b3b3; cursor:not-allowed;}
/* Bouton d'envoi de commande (page publique) : mis en vert pour bien le distinguer. */
button.primary#submit-btn{background:var(--ok);}
button.primary#submit-btn:hover{background:#176b3a;}
button.primary#submit-btn:disabled{background:#a9d9bb;}
button.secondary{
  padding:10px 16px; border-radius:10px; border:1px solid var(--line);
  background:#fff; cursor:pointer; font-weight:600; font-size:0.88rem;
}
button.secondary:hover{background:#f3ede4;}
button.add-item{
  display:block;
  width:100%;
  padding:16px;
  border:none;
  border-radius:12px;
  background:var(--add-accent);
  color:#fff;
  font-size:1.08rem;
  font-weight:700;
  text-align:center;
  cursor:pointer;
  margin-top:8px;
  box-shadow:0 2px 10px rgba(184,121,31,0.35);
}
button.add-item:hover{background:var(--add-accent-dark);}
button.link-btn{
  background:none;border:none;color:var(--accent);cursor:pointer;
  font-weight:600;font-size:0.85rem;padding:0;text-decoration:underline;
}
.msg{padding:12px 14px; border-radius:10px; font-size:0.9rem; margin-top:14px;}
.msg.ok{background:#e8f7ee; color:var(--ok); border:1px solid #bfe8cf;}
.msg.err{background:#fdecea; color:var(--danger); border:1px solid #f5c6c0;}
.msg.warn{background:#fff6e0; color:#8a6100; border:1px solid #f3dfa0;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:480px){.row2{grid-template-columns:1fr;}}
@media (min-width:481px){.field-align-checkbox{margin-top:28px;}}
.chip-toggle{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 12px; border:1px solid var(--line); border-radius:20px;
  background:#fff; cursor:pointer; font-size:0.85rem; margin:4px 6px 4px 0;
  user-select:none;
}
.chip-toggle input{margin:0;}
.colorline{
  display:grid; grid-template-columns:44px 1fr 1fr auto auto; gap:10px; align-items:center;
  margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--line);
}
@media (max-width:600px){.colorline{grid-template-columns:1fr 1fr; grid-template-areas:"a b" "c c" "d e";}}
.colorline input[type=color]{width:44px; height:38px; border:1px solid var(--line); border-radius:8px; padding:2px; background:#fff;}
.color-thumb-wrap{display:flex;align-items:center;gap:8px;font-size:0.78rem;color:var(--muted);}
.color-thumb-wrap img{width:34px;height:34px;object-fit:cover;border-radius:6px;border:1px solid var(--line);}
.icon-btn{
  width:34px; height:34px; border-radius:8px; border:1px solid var(--line);
  background:#fff; cursor:pointer; color:var(--danger); font-weight:700;
}
.icon-btn.neutral{color:var(--ink);}
.icon-btn:disabled{opacity:0.35; cursor:not-allowed;}
.list-row{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin-bottom:10px; padding:12px;
  border:1px solid var(--line); border-radius:10px; background:#faf8f4;
}
.list-row input[type=text]{flex:1 1 200px; min-width:0;}
.list-row .list-row-actions{display:flex; align-items:center; gap:6px; flex-shrink:0; margin-left:auto;}
.list-row.is-hidden{opacity:0.5;}
.list-row .chip-toggle{margin:0; flex-shrink:0;}
.small{font-size:0.8rem; color:var(--muted);}
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -4px;}
.table-scroll table.data{min-width:560px;}
table.data{width:100%; border-collapse:collapse; font-size:0.9rem;}
table.data th, table.data td{padding:9px 10px; border-bottom:1px solid var(--line); text-align:left;}
table.data th{cursor:pointer; user-select:none; white-space:nowrap;}
table.data th.sort-active{color:var(--accent);}
table.data tr.group-a{box-shadow: inset 3px 0 0 0 #c9a5ac;}
table.data tr.group-b{box-shadow: inset 3px 0 0 0 #b7c3d6;}
.topbar{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:6px;}
.topbar nav a{color:var(--accent); text-decoration:none; font-size:0.85rem; font-weight:600; margin-left:14px;}
.topbar nav a:hover{text-decoration:underline;}
.stat-pill{
  display:inline-block; background:#f3ede4; border-radius:20px; padding:6px 14px;
  font-size:0.82rem; margin:3px 6px 3px 0; font-weight:600;
}
.filters{display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin-bottom:14px;}
.filters .field{margin-bottom:0; min-width:150px;}
