:root{
  --bg:#f6f3ec; --card:#fff; --ink:#24211c; --muted:#6d665a; --line:#e2dccd;
  --accent:#8a5a14; --accent-2:#b77a1d; --ok:#2f6b3a; --err:#a3302a; --soft:#fbf7ee;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
.wrap{max-width:980px;margin:0 auto;padding:16px}
header.top{background:#2b261e;color:#f3ead8;padding:18px 0}
header.top h1{margin:0;font-size:1.5rem;letter-spacing:.02em}
header.top p{margin:.25rem 0 0;color:#cfc3a8;font-size:.9rem}
header.top nav a{color:#f3ead8;margin-right:14px;text-decoration:none;font-weight:600}
header.top nav a.on{border-bottom:2px solid var(--accent-2)}
header.top .who{float:right;font-size:.85rem;color:#cfc3a8}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin:16px 0}
.card h2{margin:0 0 12px;font-size:1.15rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
label{display:block;font-weight:600;font-size:.88rem;margin-bottom:4px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],
input[type=datetime-local],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}
textarea{min-height:70px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-2);border-color:transparent}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:6px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--accent-2)}
.btn.sec{background:#fff;color:var(--accent);border:1px solid var(--accent)}
.btn.small{padding:4px 10px;font-size:.85rem}
.btn.danger{background:var(--err)}
.msg{padding:10px 14px;border-radius:6px;margin:12px 0}
.msg.ok{background:#e5f1e6;color:var(--ok)} .msg.err{background:#f6e2e0;color:var(--err)}
table{width:100%;border-collapse:collapse}
th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
td.num,th.num{text-align:right;white-space:nowrap}
tr.cat td{background:var(--soft);font-weight:700;color:var(--accent);text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}
.qty{display:flex;gap:8px;flex-wrap:nowrap}
.qty span{display:flex;align-items:center;gap:4px;font-size:.85rem;color:var(--muted)}
.qty input{width:50px;padding:5px 6px;text-align:center}
.muted{color:var(--muted);font-size:.88rem}
.total{position:sticky;bottom:0;background:#2b261e;color:#fff;padding:12px 16px;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.total strong{font-size:1.2rem}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:.78rem;font-weight:600}
.badge.ok{background:#e5f1e6;color:var(--ok)} .badge.no{background:#eee;color:#777}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.right{text-align:right}
@media (max-width:640px){
  .qty{flex-wrap:wrap}
  .prodtable thead{display:none}
  .prodtable tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .prodtable td{display:block;border:0;padding:2px 4px}
  .prodtable td.num{text-align:left}
}
.captcha{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.captcha img{border:1px solid var(--line);border-radius:6px;background:#f4efe3}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
/* Back office : tableau d'édition du catalogue, sans défilement horizontal */
table.edit{table-layout:fixed}
table.edit th,table.edit td{padding:4px 3px}
table.edit th.c,table.edit td.c{text-align:center}
table.edit input[type=text],table.edit input[type=number]{padding:5px 6px;font-size:.9rem;text-overflow:ellipsis}
table.edit input[type=checkbox]{width:18px;height:18px}
table.edit tr.off td{opacity:.55}
table.edit tr.del td{background:#f6e2e0}
table.edit tr.del input[type=text]{text-decoration:line-through}
.savebar{position:sticky;bottom:0;background:var(--card);padding:12px 0 2px;text-align:right;border-top:1px solid var(--line);margin-top:8px}
table.edit input[type=number]{-moz-appearance:textfield;text-align:center}
table.edit input[type=number]::-webkit-inner-spin-button,table.edit input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
table.edit th{font-size:.75rem;letter-spacing:.02em}
