:root { --ink:#1b1b1f; --muted:#6b6b72; --bg:#fafaf7; --card:#fff; --accent:#1d7a4f; --accent-ink:#fff; --red:#b23a2a; --line:#e6e4dc; --soft:#f1f0ea;
  --border:#c9c7c0; --ok-bg:#dbeee3; --ok-ink:#1d5a3c; --err-bg:#f8d9d2; --warn-bg:#fff6d6; --warn-line:#f0dd9a; --amber:#8a5a00;
  --df-ink-c:#141a2e; --df-line-c:#dcdfe6; --df-soft-c:#f4f5f8; color-scheme:light; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; } html, body { overflow-x:hidden; }
body { margin:0; font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; background:var(--bg); color:var(--ink); font-size:16px; line-height:1.5; }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
img { max-width:100%; display:block; }
.wrap { width:92%; max-width:none; margin:0 auto; padding:0; } /* 92% della larghezza del browser */
.top { background:var(--card); border-bottom:1px solid var(--line); }
.top .wrap { display:flex; align-items:center; gap:14px; min-height:60px; flex-wrap:wrap; padding-top:8px; padding-bottom:8px; }
.brand { display:block; line-height:0; } .brand img { height:44px; width:auto; border-radius:6px; }
.search { flex:1; display:flex; min-width:220px; }
.search input { flex:1; padding:9px 12px; border:1px solid var(--border); border-radius:10px 0 0 10px; font:inherit; min-width:0; }
.search button { border-radius:0 10px 10px 0; }
.top nav { display:flex; gap:6px; align-items:center; }
.top nav a { padding:8px 10px; border-radius:10px; color:var(--ink); font-weight:600; white-space:nowrap; }
.top nav a:hover { background:var(--soft); text-decoration:none; }
.dot { display:inline-block; min-width:18px; height:18px; border-radius:9px; background:var(--red); color:#fff; font-size:11px; font-weight:700; text-align:center; line-height:18px; padding:0 5px; margin-left:4px; }
.cats { background:var(--card); border-bottom:1px solid var(--line); }
.cats .wrap { display:flex; gap:4px; overflow-x:auto; padding:6px 0; align-items:center; }
.cats a { padding:6px 12px; border-radius:16px; color:var(--ink); white-space:nowrap; font-size:14px; }
.cats a.on, .cats a:hover { background:var(--ink); color:var(--bg); text-decoration:none; }
main { padding:18px 0 40px; min-height:60vh; }
.notice { background:var(--warn-bg); border-bottom:1px solid var(--warn-line); padding:8px 16px; text-align:center; font-weight:600; }
.flash { padding:10px 14px; border-radius:10px; margin:0 0 14px; font-weight:600; background:var(--ok-bg); color:var(--ok-ink); }
.flash.err { background:var(--err-bg); color:var(--red); }
h1 { font-size:24px; margin:0 0 6px; } h2 { font-size:18px; margin:24px 0 10px; }
.sub { color:var(--muted); margin:0 0 16px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
.item { background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; color:var(--ink); display:flex; flex-direction:column; }
.item:hover { text-decoration:none; border-color:var(--border); }
.item .ph { position:relative; aspect-ratio:1; background:var(--soft); display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:12px; }
.item .ph img { width:100%; height:100%; object-fit:cover; } .item .ph img[src$="segnaposto.png"], .gallery .main img[src$="segnaposto.png"] { object-fit:contain; padding:12%; background:var(--card); }
.item .t { padding:8px 10px 2px; font-size:14px; line-height:1.3; flex:1; }
.item .pr { padding:0 10px 10px; font-weight:800; }
.item .out { display:block; margin-top:2px; color:var(--red); font-weight:600; font-size:12px; }
.item .out.ord { color:var(--amber); } .item .out.exp { color:var(--accent); } .item .out.dif { color:#a07800; }
.item.off { opacity:.6; }
.chips { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 14px; }
.chip { padding:5px 11px; border-radius:16px; border:1px solid var(--line); background:var(--card); color:var(--ink); font-size:14px; }
.chip.on { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.chip:hover { text-decoration:none; border-color:var(--border); }
button, .btn { display:inline-block; padding:10px 16px; border:0; border-radius:10px; background:var(--accent); color:var(--accent-ink); font:inherit; font-weight:700; cursor:pointer; text-align:center; }
.btn:hover { text-decoration:none; filter:brightness(1.05); }
.btn.ghost, button.ghost { background:var(--card); color:var(--ink); border:1px solid var(--border); }
.btn.danger, button.danger { background:var(--red); }
.btn.big { padding:14px 22px; font-size:17px; width:100%; }
.btn.small, button.small { padding:6px 10px; font-size:13px; }
.box { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:16px; }
.product { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:760px) { .product { grid-template-columns:1fr; } }
.gallery .main { aspect-ratio:1; background:var(--soft); border-radius:12px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.gallery .main img { width:100%; height:100%; object-fit:contain; }
.gallery .thumbs { display:flex; gap:6px; margin-top:8px; overflow-x:auto; }
.gallery .thumbs img { width:64px; height:64px; object-fit:cover; border-radius:8px; border:2px solid transparent; cursor:pointer; }
.gallery .thumbs img.on { border-color:var(--accent); }
.price { font-size:30px; font-weight:800; margin:8px 0; }
.price small { font-size:13px; font-weight:400; color:var(--muted); display:block; }
.desc { white-space:pre-line; }
.meta { color:var(--muted); font-size:14px; }
.lines { width:100%; border-collapse:collapse; }
.lines td { padding:10px 6px; border-bottom:1px solid var(--line); vertical-align:middle; }
.lines img { width:56px; height:56px; object-fit:cover; border-radius:8px; }
.lines .r { text-align:right; white-space:nowrap; }
.tot { text-align:right; font-size:18px; margin-top:10px; } .tot b { font-size:22px; }
.f { display:block; margin:10px 0; font-weight:600; }
.f input, .f select, .f textarea { display:block; width:100%; margin-top:4px; padding:10px; border:1px solid var(--border); border-radius:10px; font:inherit; font-weight:400; }
.f textarea { min-height:100px; }
.f2 { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; } @media (max-width:560px) { .f2 { grid-template-columns:1fr; } }
.opt { display:flex; gap:10px; padding:10px; border:1px solid var(--line); border-radius:10px; margin:8px 0; cursor:pointer; background:var(--card); align-items:flex-start; }
.opt input { margin-top:4px; } .opt .n { font-size:13px; color:var(--muted); }
.code { font-size:34px; font-weight:800; letter-spacing:2px; text-align:center; padding:14px; background:var(--soft); border-radius:12px; margin:12px 0; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.steps { padding-left:18px; } .steps li { margin:6px 0; }
.pill { display:inline-block; padding:2px 9px; border-radius:10px; font-size:12px; font-weight:700; background:var(--soft); }
.pill.pending_payment, .pill.open { background:#fbebc9; color:#8a5a00; }
.pill.paid, .pill.answered { background:#dce5f7; color:#2f4bb8; }
.pill.shipped { background:#e4def7; color:#5a3fb8; }
.pill.completed, .pill.accepted { background:#d4eddf; color:#1f6f5c; }
.pill.cancelled, .pill.refunded, .pill.declined, .pill.closed { background:#f8d7d0; color:var(--red); }
.msg { padding:10px 12px; border-radius:10px; margin:8px 0; background:var(--soft); }
.msg.admin { background:var(--ok-bg); } .msg .who { font-size:12px; color:var(--muted); margin-bottom:3px; }
.thumbs img { width:90px; height:90px; object-fit:cover; border-radius:8px; margin:0 6px 6px 0; display:inline-block; }
table.plain { width:100%; border-collapse:collapse; } table.plain td, table.plain th { padding:8px 6px; border-bottom:1px solid var(--line); text-align:left; }
.foot { border-top:1px solid var(--line); padding:20px 0; color:var(--muted); font-size:13px; background:var(--card); }
.foot .wrap { display:flex; flex-direction:column; gap:12px; }
.foot .links { display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; max-width:620px; }
.foot .legal { border-top:1px solid var(--line); padding-top:10px; }
.pager { margin:16px 0; display:flex; gap:10px; align-items:center; }
.muted { color:var(--muted); } .right { text-align:right; } .center { text-align:center; }
.wa { background:#25d366; color:#fff; }
.hero { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px; margin-bottom:20px; }
.hero h1 { font-size:26px; } .hero p { margin:4px 0 0; color:var(--muted); }
.rootcats { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; margin-bottom:22px; }
.rootcats a { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; color:var(--ink); font-weight:700; font-size:18px; }
.rootcats a span { display:block; font-size:13px; color:var(--muted); font-weight:400; }
.rootcats a:hover { text-decoration:none; border-color:var(--border); }
.subcats { columns:2; column-gap:20px; font-size:14px; margin-bottom:18px; } @media (max-width:560px) { .subcats { columns:1; } }
.subcats a { display:block; padding:4px 0; break-inside:avoid; }

/* telefono: marchio e menu sulla prima riga, ricerca a tutta larghezza sotto */
@media (max-width:700px) {
  .top .wrap { gap:8px; }
  .brand img { height:28px; border-radius:4px; }
  .top .wrap { min-height:0; padding-top:6px; padding-bottom:6px; }
  .top nav { margin-left:auto; gap:2px; }
  .top nav a { padding:6px 6px; font-size:14px; }
  .search { order:3; flex-basis:100%; min-width:0; }
  .search input, .search button { padding:8px 10px; }
  h1 { font-size:21px; }
  .price { font-size:26px; }
  .grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; }
  .lines td { padding:8px 4px; }
  .foot .links { grid-template-columns:1fr 1fr; }
}
.cats a.ask { background:var(--red); color:#fff; font-weight:800; margin-left:auto; }
.cats a.ask:hover { background:#8f2c1f; }
@media (max-width:700px) {
  .cats .wrap { flex-wrap:wrap; overflow:visible; gap:2px; padding:5px 10px; }
  .cats a { padding:5px 7px; font-size:13px; }
  .cats a span { display:none; }
  .cats a.ask { margin-left:0; }
}

/* nome del sito quando non c'è un logo caricato */
.brand-text { font-size: 26px; font-weight: 800; letter-spacing: .5px; color: var(--ink); line-height: 44px; display:inline-block; }
.foot .social { margin-left: 8px; }
/* ---- filtro diamanti (Lab2Diamonds) ---- */
.dfilter { --df-ink:var(--df-ink-c); --df-line:var(--df-line-c); --df-soft:var(--df-soft-c); margin:6px 0 24px; }
.df-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.df-box { background:var(--card); border:1px solid var(--df-line); border-radius:4px; padding:10px 16px 6px; min-width:0; }
.df-box h3 { font-size:13px; letter-spacing:.14em; text-transform:uppercase; margin:0 0 14px; font-weight:700; color:var(--df-ink); }
.df-shapes { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; align-content:center; padding:6px; }
.df-shape { display:flex; flex-direction:column; align-items:center; gap:2px; padding:4px 2px 3px; background:var(--card); border:1px solid var(--df-line); border-radius:4px; color:var(--df-ink); font-size:11px; cursor:pointer; min-width:0; }
.df-shape svg { width:26px; height:26px; color:var(--muted); }
.df-shape:hover { border-color:var(--border); }
.df-shape[aria-pressed="true"] { border-color:var(--df-ink); box-shadow:inset 0 0 0 1px var(--df-ink); }
.df-shape[aria-pressed="true"] svg { color:var(--df-ink); }
.df-range { position:relative; padding:0 10px; }
.df-range.off { opacity:.35; pointer-events:none; }
.df-vals { position:relative; height:22px; }
.df-val { position:absolute; top:-6px; transform:translateX(-50%); background:var(--df-ink); color:var(--card); font-size:12px; padding:1px 7px; border-radius:3px; white-space:nowrap; }
.df-track { position:relative; height:20px; }
.df-track::before { content:""; position:absolute; left:0; right:0; top:9px; height:2px; background:var(--df-line); }
.df-fill { position:absolute; top:9px; height:2px; background:var(--df-ink); }
.df-track input { position:absolute; left:-10px; width:calc(100% + 20px); top:0; height:20px; margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none; z-index:3; }
.df-track input::-webkit-slider-runnable-track { background:none; height:20px; }
.df-track input::-moz-range-track { background:none; }
.df-track input::-webkit-slider-thumb { -webkit-appearance:none; pointer-events:auto; width:18px; height:18px; margin-top:1px; border-radius:50%; background:var(--df-ink); border:3px solid var(--card); box-shadow:0 0 0 1px var(--df-ink); cursor:grab; }
.df-track input::-moz-range-thumb { pointer-events:auto; width:13px; height:13px; border-radius:50%; background:var(--df-ink); border:3px solid var(--card); box-shadow:0 0 0 1px var(--df-ink); cursor:grab; }
.df-track input:focus-visible::-webkit-slider-thumb { box-shadow:0 0 0 3px #9db3ff; }
.df-ticks { position:relative; height:18px; margin-top:2px; font-size:11px; color:var(--muted); }
.df-ticks span { position:absolute; transform:translateX(-50%); white-space:nowrap; }
.df-check { display:flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); margin-top:2px; }
.df-bar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:16px 0 14px; }
.df-count { font-size:15px; margin-right:auto; } .df-count b { font-size:20px; }
.df-bar .df-check { margin:0; }
.df-bar select { padding:9px 10px; border:1px solid var(--df-line); border-radius:4px; background:var(--card); font:inherit; font-size:14px; }
.df-reset, .df-apply { padding:12px 22px; border-radius:2px; font-weight:700; letter-spacing:.08em; font-size:13px; cursor:pointer; text-transform:uppercase; }
.df-reset { background:var(--card); color:var(--muted); border:1px solid var(--df-line); }
.df-apply { background:var(--df-ink); color:var(--card); border:1px solid var(--df-ink); }
.df-results { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; transition:opacity .15s; }
.df-results.busy { opacity:.45; }
.df-card { background:var(--card); border:1px solid var(--df-line); border-radius:4px; color:var(--df-ink); display:flex; flex-direction:column; overflow:hidden; }
.df-card:hover { text-decoration:none; border-color:var(--border); }
.df-ph { position:relative; aspect-ratio:1; background:#000; display:flex; align-items:center; justify-content:center; }
.df-ph img { width:100%; height:100%; object-fit:contain; }
.df-ph .df-big { width:46%; height:46%; color:#e9ecf5; }
.df-t { padding:10px 12px 2px; font-size:14px; line-height:1.35; }
.df-specs { padding:0 12px; font-size:12px; color:var(--muted); }
.df-pr { padding:8px 12px 12px; font-weight:800; display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:auto; }
.df-badge { font-size:11px; font-weight:700; padding:2px 7px; border-radius:3px; }
.df-badge.exp { background:var(--ok-bg); color:var(--ok-ink); } .df-badge.ord { background:var(--df-soft); color:var(--muted); }
.df-none { grid-column:1/-1; color:var(--muted); padding:20px 0; }
.df-pager { display:flex; gap:6px; justify-content:center; margin:14px 0; flex-wrap:wrap; }
.df-pager button { min-width:42px; height:42px; border:1px solid var(--df-line); background:var(--card); color:var(--df-ink); font-size:16px; cursor:pointer; border-radius:2px; }
.df-pager button.on { background:#1f4ea8; color:#fff; border-color:#1f4ea8; }
.df-pager button:disabled { opacity:.35; cursor:default; }
@media (max-width:900px) {
  .df-grid { grid-template-columns:1fr 1fr; } .df-shapes { grid-column:1/-1; }
  .df-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .df-grid { grid-template-columns:1fr; } .df-shapes { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .df-results { gap:10px; } .df-count { width:100%; } .df-apply { flex:1; }
}
/* ---- lingua (menu a tendina) e icone social fisse ---- */
.langsel { position:relative; margin-left:auto; }
.langsel summary { list-style:none; cursor:pointer; padding:7px 10px; border:1px solid var(--line); border-radius:10px; font-size:14px; white-space:nowrap; background:var(--card); }
.langsel summary::-webkit-details-marker { display:none; }
.langsel summary::after { content:" ▾"; color:var(--muted); }
.langsel[open] summary { border-color:var(--border); }
.langmenu { position:absolute; right:0; top:calc(100% + 4px); background:var(--card); border:1px solid var(--line); border-radius:10px; box-shadow:0 6px 24px rgba(0,0,0,.12); padding:4px; z-index:30; min-width:150px; }
.langmenu a { display:block; padding:7px 10px; border-radius:7px; color:var(--ink); white-space:nowrap; font-size:14px; }
.langmenu a:hover { background:var(--soft); text-decoration:none; }
.fsocial { position:fixed; left:50%; bottom:14px; transform:translateX(-50%); display:flex; gap:12px; z-index:40; }
.fsocial a { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.22); transition:transform .15s; }
.fsocial a:hover { transform:translateY(-2px); }
.fsocial svg { width:26px; height:26px; }
.fsocial .ig { background:radial-gradient(circle at 30% 110%, #fdd56e 0%, #f6673a 35%, #d0287f 65%, #7a37c9 100%); }
.fsocial .yt { background:#e62117; } .fsocial .yt svg { width:30px; }
.fsocial .tt { background:#111; } .fsocial .wa { background:#25d366; }
body:has(.fsocial) .foot { padding-bottom:84px; }
@media (max-width:640px) {
  .langsel { margin-left:0; } .langsel summary span { display:none; }
  .fsocial { gap:9px; bottom:10px; } .fsocial a { width:44px; height:44px; } .fsocial svg { width:22px; height:22px; }
}
.ordnote { background:var(--warn-bg); border:1px solid var(--warn-line); border-radius:10px; padding:10px 12px; font-size:14px; }
.cert-embed { width:100%; height:90vh; margin:0 0 12px; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--card); }
.cert-embed iframe { width:100%; height:100%; border:0; }
.cert-link { display:none; }
@media (max-width:768px) { .cert-embed { display:none; } .cert-link { display:block; } }
.df-shape img.df-ico { width:30px; height:26px; object-fit:contain; opacity:.85; }
.df-shape[aria-pressed="true"] img.df-ico { opacity:1; }
.cats .greviews { margin-left:auto; white-space:nowrap; font-size:15px; display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border:1px solid var(--border); border-radius:999px; background:var(--card); color:var(--ink); }
.cats .greviews .gword { font-weight:700; }
.cats .greviews .stars { color:#fbbc04; letter-spacing:1px; } .cats .greviews .gtxt { color:var(--muted); font-size:.9em; }
@media (max-width:700px) { .cats .greviews { font-size:16px; padding:6px 12px; } .cats .greviews span { display:inline; } .cats .greviews .stars .more, .cats .greviews .gw { display:none; } .cats .greviews .gn::before { content:"("; } .cats .greviews .gn::after { content:")"; } }
.cats .greviews + .ask { margin-left:0; }
.eta { margin:8px 0; padding:8px 12px; border-radius:10px; font-size:14px; }
.eta.exp { background:var(--ok-bg); color:var(--ok-ink); } .eta.ord { background:var(--soft); color:var(--muted); }
.page-html img { max-width:100%; height:auto; border-radius:8px; }
.page-html table { border-collapse:collapse; width:100%; margin:12px 0; } .page-html td, .page-html th { border:1px solid var(--line); padding:6px 8px; text-align:left; }
.langmenu { max-height:70vh; overflow-y:auto; }
.df-shape span { max-width:100%; text-align:center; line-height:1.15; font-size:10px; letter-spacing:-.1px; overflow-wrap:break-word; hyphens:auto; }
.gallery .main video { width:100%; height:100%; object-fit:contain; background:#000; }
.gallery .thumbs .vthumb { position:relative; flex:0 0 auto; width:64px; height:64px; border-radius:8px; border:2px solid transparent; overflow:hidden; cursor:pointer; background:#000; }
.gallery .thumbs .vthumb img { width:100%; height:100%; object-fit:cover; border:0; opacity:.8; }
.gallery .thumbs .vthumb b { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.gallery .thumbs .vthumb.on { border-color:var(--accent); }
.item .ph .vbadge, .df-card .vbadge { position:absolute; left:8px; top:8px; background:rgba(0,0,0,.65); color:#fff; font-size:11px; padding:2px 7px; border-radius:10px; }
.gallery .main [hidden] { display:none !important; }
.buyrow { display:flex; gap:10px; align-items:stretch; }
.buyrow .btn { flex:1; }
.qty { display:inline-flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); }
.qty select { padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-size:16px; background:var(--card); color:inherit; }
.qtyform { display:inline; } .qtyform .qty select { padding:6px 8px; font-size:15px; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.brandgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; }
.brandcard { display:flex; flex-direction:column; gap:6px; padding:16px; background:var(--card); border:1px solid var(--line); border-radius:12px; color:inherit; text-decoration:none; }
.brandcard:hover { border-color:var(--accent); }
.brandcard b { font-size:18px; }
.brandcard .bdesc { font-size:13px; color:var(--muted); }
.badge-auth { display:inline-block; font-size:12px; font-weight:600; color:var(--accent); background:var(--ok-bg); border-radius:10px; padding:2px 8px; }
.related { margin-top:28px; }
@media (max-width:700px) { .related { display:none; } }  /* su telefono niente righe in fondo alla scheda */


/* ===== Aspetto (core/theme.py): automatico / chiaro / scuro, 5 aspetti a colori, Natale dal 1/12 al 6/1 ===== */
input, select, textarea { background:var(--card); color:var(--ink); }
html[data-theme="dark"] { --ink:#e8ebf1; --muted:#a9b1c2; --bg:#0d1220; --card:#161d2e; --accent:#4db491; --accent-ink:#0d1220; --red:#e5705a; --line:#242d40; --soft:#212a3b;
  --border:#323d54; --ok-bg:#13302a; --ok-ink:#7fd3b0; --err-bg:#3a1c1a; --warn-bg:#33290f; --warn-line:#5a4a1a; --amber:#e2a94f;
  --df-ink-c:#e8ebf1; --df-line-c:#323d54; --df-soft-c:#212a3b; color-scheme:dark; }
@media (prefers-color-scheme: dark) { html[data-theme="auto"] { --ink:#e8ebf1; --muted:#a9b1c2; --bg:#0d1220; --card:#161d2e; --accent:#4db491; --accent-ink:#0d1220; --red:#e5705a; --line:#242d40; --soft:#212a3b;
  --border:#323d54; --ok-bg:#13302a; --ok-ink:#7fd3b0; --err-bg:#3a1c1a; --warn-bg:#33290f; --warn-line:#5a4a1a; --amber:#e2a94f;
  --df-ink-c:#e8ebf1; --df-line-c:#323d54; --df-soft-c:#212a3b; color-scheme:dark; } }
html[data-theme="celeste"] { --bg:#e3f0f8; --accent:#1f72ad; --line:#cfe1ed; --border:#b6d0e2; --soft:#e1edf5; --df-line-c:#cfe1ed; --df-soft-c:#e1edf5; --df-ink-c:#12324a; }
html[data-theme="lilla"] { --bg:#efe8f7; --accent:#7348b8; --line:#e0d5ee; --border:#ccbce2; --soft:#ebe3f4; --df-line-c:#e0d5ee; --df-soft-c:#ebe3f4; --df-ink-c:#2a1b42; }
html[data-theme="foglia"] { --bg:#e5f0df; --accent:#357a27; --line:#d2e4ca; --border:#bad4af; --soft:#e2eedb; --df-line-c:#d2e4ca; --df-soft-c:#e2eedb; --df-ink-c:#1c3315; }
html[data-theme="bianco"] { --bg:#ffffff; --card:#f6f6f8; --line:#ececef; --border:#dadadf; --soft:#f1f1f3; }
html[data-theme="siderale"] { --ink:#ecedef; --muted:#b0b4bc; --bg:#1c1e22; --card:#2a2d33; --accent:#6f9be0; --accent-ink:#1c1e22; --red:#e5705a; --line:#34373e; --soft:#2f3238;
  --border:#474b54; --ok-bg:#1d3a30; --ok-ink:#7fd3b0; --err-bg:#432420; --warn-bg:#3b3118; --warn-line:#5c4c25; --amber:#e2a94f;
  --df-ink-c:#ecedef; --df-line-c:#474b54; --df-soft-c:#2f3238; color-scheme:dark; }
/* Natale: rosso, verde abete e oro (di giorno crema, di sera verde abete scuro) */
html[data-season="natale"][data-theme="light"], html[data-season="natale"][data-theme="auto"] { --bg:#f7eedc; --card:#fffdf7; --accent:#c62828; --line:#eadcbf; --border:#d8c49c; --soft:#f2e8d3; --amber:#8e6400; --df-line-c:#eadcbf; --df-soft-c:#f2e8d3; }
html[data-season="natale"][data-theme="dark"] { --ink:#f2eee4; --muted:#b7c6ba; --bg:#0c2219; --card:#133024; --accent:#e5484d; --accent-ink:#fff; --line:#1f4234; --border:#2b5646; --soft:#1b3a2e; --amber:#e8b84f; --df-ink-c:#f2eee4; --df-line-c:#2b5646; --df-soft-c:#1b3a2e; }
@media (prefers-color-scheme: dark) { html[data-season="natale"][data-theme="auto"] { --ink:#f2eee4; --muted:#b7c6ba; --bg:#0c2219; --card:#133024; --accent:#e5484d; --accent-ink:#fff; --line:#1f4234; --border:#2b5646; --soft:#1b3a2e; --amber:#e8b84f; --df-ink-c:#f2eee4; --df-line-c:#2b5646; --df-soft-c:#1b3a2e; } }
html[data-season="natale"] .top { position:relative; }
html[data-season="natale"] .top::after { content:""; position:absolute; left:0; right:0; bottom:-6px; height:10px; pointer-events:none; z-index:5;
  background:radial-gradient(circle at 15px 5px, #e53935 3px, transparent 4px) 0 0/120px 10px repeat-x,
             radial-gradient(circle at 45px 5px, #d4a537 3px, transparent 4px) 0 0/120px 10px repeat-x,
             radial-gradient(circle at 75px 5px, #2e9e5b 3px, transparent 4px) 0 0/120px 10px repeat-x,
             radial-gradient(circle at 105px 5px, #3d7de0 3px, transparent 4px) 0 0/120px 10px repeat-x;
  animation:xmas-blink 1.8s ease-in-out infinite alternate; }
@keyframes xmas-blink { from { opacity:1; } to { opacity:.45; } }
.snow { position:fixed; inset:0; pointer-events:none; z-index:60; overflow:hidden; }
.snow i { position:absolute; top:-30px; color:#9fbbd9; font-style:normal; animation:snow-fall linear forwards; }
html[data-theme="dark"] .snow i { color:#fff; }
@media (prefers-color-scheme: dark) { html[data-theme="auto"] .snow i { color:#fff; } }
@keyframes snow-fall { 0% { transform:translate(0,0) rotate(0); opacity:0; } 8% { opacity:.95; } 85% { opacity:.95; } 100% { transform:translate(var(--sway,20px),105vh) rotate(220deg); opacity:0; } }
@media (prefers-reduced-motion: reduce) { html[data-season="natale"] .top::after { animation:none; } .snow { display:none; } }
.looks { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:10px; }
.looks a { display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 4px; border:1px solid var(--line); border-radius:999px; color:var(--ink); font-size:12px; background:var(--card); }
.looks a.on { border:2px solid var(--ink); font-weight:700; }
.looks a:hover { text-decoration:none; border-color:var(--border); }
.looks .sw { width:18px; height:18px; border-radius:50%; border:1px solid var(--border); display:inline-flex; align-items:center; justify-content:center; }
.looks .sw b { width:8px; height:8px; border-radius:50%; display:block; }
.sw-auto { background:linear-gradient(135deg,#fafaf7 50%,#0d1220 50%); } .sw-auto b, .sw-light b, .sw-bianco b { background:#1d7a4f; }
.sw-light { background:#fafaf7; } .sw-dark { background:#0d1220; } .sw-dark b { background:#4db491; }
.sw-celeste { background:#e3f0f8; } .sw-celeste b { background:#1f72ad; } .sw-lilla { background:#efe8f7; } .sw-lilla b { background:#7348b8; }
.sw-foglia { background:#e5f0df; } .sw-foglia b { background:#357a27; } .sw-bianco { background:#fff; }
.sw-siderale { background:#1c1e22; } .sw-siderale b { background:#6f9be0; }
html[data-theme="dark"] .df-ico, html[data-theme="siderale"] .df-ico { filter:invert(1); opacity:.9; }
@media (prefers-color-scheme: dark) { html[data-theme="auto"] .df-ico { filter:invert(1); opacity:.9; } }

/* filtri dell'elenco (categoria, marca) */
.filters { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end; margin:0 0 16px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.filters label { display:flex; flex-direction:column; gap:3px; font-size:13px; color:var(--muted); }
.filters label.check { flex-direction:row; align-items:center; gap:6px; color:var(--ink); font-size:14px; }
.filters select, .filters input[name^=prezzo] { padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); font-size:14px; }
.filters input[name^=prezzo] { width:5.5em; }
.filters .btn-small { padding:7px 12px; border-radius:8px; border:1px solid var(--ink); background:var(--ink); color:var(--bg); cursor:pointer; }
@media (max-width:640px) { .filters { gap:8px; } .filters label:first-child { flex:1 1 100%; } .filters select { width:100%; } }
