:root{--bg:#111418;--panel:#1a1f26;--line:#2a313b;--txt:#e6e9ee;--mut:#8b95a3;--acc:#5aa9ff;--ok:#4cc38a;--warn:#f2b85a;--bad:#ff6f6f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
/* ---------- barra in alto (computer) e barra in basso (telefono) ---------- */
header.top{position:sticky;top:0;z-index:6;background:rgba(12,15,19,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:center;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top))}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;cursor:pointer;color:var(--txt);text-decoration:none;flex-shrink:0}
.brand img{width:30px;height:30px;border-radius:8px}
.ptitle{display:none;font-weight:650;font-size:17px;flex:1;text-align:center}
.deskn{display:flex;gap:2px;flex:1;flex-wrap:wrap}
.deskn a{display:flex;align-items:center;gap:6px;padding:7px 11px;border-radius:9px;cursor:pointer;color:var(--mut);user-select:none}
.deskn a svg{width:17px;height:17px}
.deskn a:hover{color:var(--txt);background:#ffffff08}
.deskn a.on{background:var(--panel);color:var(--txt);box-shadow:inset 0 0 0 1px var(--line)}
.deskn a.on svg{color:var(--acc)}
.bell{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--mut);cursor:pointer;flex-shrink:0}
.bell:hover,.bell.on{color:var(--txt);background:var(--panel)}
.bell svg{width:21px;height:21px}
.bell .badge{position:absolute;top:2px;right:0;min-width:17px;text-align:center}
.tabbar{display:none}
.sheet{position:fixed;inset:0;z-index:15;background:#0008;display:flex;align-items:flex-end}
.sheet-box{width:100%;background:var(--panel);border-radius:18px 18px 0 0;border-top:1px solid var(--line);
  padding:8px 10px calc(12px + env(safe-area-inset-bottom));animation:up .18s ease-out}
@keyframes up{from{transform:translateY(40%);opacity:.4}}
.sheet-grip{width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 8px}
.sheet a.row{display:flex;align-items:center;gap:14px;padding:14px 12px;border-radius:12px;font-size:16px;color:var(--txt);cursor:pointer}
.sheet a.row svg{width:22px;height:22px;color:var(--mut)}
.sheet a.row.on{background:#ffffff0a}.sheet a.row.on svg{color:var(--acc)}
body.noscroll{overflow:hidden}
main{padding:16px;max-width:1300px;margin:0 auto}
@media (max-width:900px){
  .deskn{display:none}
  .ptitle{display:block}
  .brand span{display:none}
  header.top{padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top))}
  main{padding:10px 10px calc(84px + env(safe-area-inset-bottom))}
  main>h2:first-child{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:6;background:rgba(12,15,19,.94);backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0;color:var(--mut);font-size:10.5px;cursor:pointer;
    user-select:none;-webkit-tap-highlight-color:transparent}
  .tabbar a svg{width:24px;height:24px}
  .tabbar a.on{color:var(--acc)}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
  input,select,textarea{font-size:16px}  /* niente zoom automatico di iOS */
  .bar{gap:6px}
  .bar>input{flex:1 1 100%}
  .panel{border-radius:14px}
  .modal{padding:0;align-items:stretch}
  .modal-box{border-radius:0;min-height:100%;padding:14px 12px calc(20px + env(safe-area-inset-bottom));padding-top:max(14px,env(safe-area-inset-top))}
  .x{top:max(10px,env(safe-area-inset-top));width:36px;height:36px;border-radius:18px}
  .photos img{height:auto;max-width:100%}
}
h2{margin:4px 0 12px;font-size:18px}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
input,select,textarea,button{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 10px}
button{cursor:pointer}
button.p{background:var(--acc);border-color:var(--acc);color:#06121f;font-weight:600}
button.s{padding:3px 8px;font-size:12px}
button:disabled{opacity:.5}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--mut);font-weight:500;font-size:12px}
tr:hover td{background:#151a21}
.thumb{width:44px;height:60px;object-fit:cover;border-radius:4px;background:#222;display:block}
.mut{color:var(--mut)}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.links a{font-size:11px;margin-right:4px;color:var(--acc);text-decoration:none;border:1px solid var(--line);padding:1px 4px;border-radius:4px}
.rank{display:inline-block;min-width:22px;text-align:center;border-radius:5px;font-weight:700;font-size:12px;padding:1px 4px}
.rS{background:#5aa9ff33;color:#5aa9ff}.rA{background:#4cc38a33;color:#4cc38a}.rB{background:#f2b85a33;color:#f2b85a}.rC{background:#ff6f9133;color:#ff6f91}.rD{background:#a955ff33;color:#a955ff}
.tag{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--line)}
.tag.new{background:#4cc38a33;color:var(--ok)}.tag.restock{background:#5aa9ff33;color:var(--acc)}.tag.price{background:#f2b85a33;color:var(--warn)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;cursor:pointer}
.card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;background:#222}
.card .t{font-size:12px;margin-top:4px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
label.f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--mut)}
label.f input,label.f select,label.f textarea{color:var(--txt)}
.modal{position:fixed;inset:0;background:#000a;z-index:10;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:30px 10px}
[hidden]{display:none!important}
.modal-box{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;max-width:900px;width:100%;position:relative}
.x{position:absolute;right:10px;top:10px}
.photos{display:flex;gap:8px;flex-wrap:wrap}
.photos img{height:260px;border-radius:8px}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--line);padding:10px 16px;border-radius:10px;z-index:20}
.badge{background:var(--bad);color:#fff;border-radius:9px;padding:0 6px;font-size:11px}
.cand{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;cursor:pointer}
.cand:hover,.cand.sel{border-color:var(--acc)}
.cand img{width:60px;height:84px;object-fit:cover;border-radius:5px;background:#222}
.chips{display:flex;gap:3px}
.chip{padding:1px 7px;border-radius:6px;border:1px solid var(--line);cursor:pointer;font-size:12px;user-select:none}
.chip.on{background:var(--acc);color:#06121f;border-color:var(--acc)}
.pager{display:flex;gap:8px;align-items:center;margin-top:10px}
.dead td{opacity:.5}
.stat{display:inline-block;margin-right:16px}
.stat b{font-size:18px}
@media (max-width:700px){.hide-m{display:none}th,td{padding:6px 4px}.stat{margin-right:10px}}
/* tabelle troppo larghe per il telefono: diventano schede (classe messa da app.js solo se servono) */
table.stack,table.stack tbody{display:block}
table.stack thead,table.stack tr:has(>th){display:none}
table.stack tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 4px;border-bottom:1px solid var(--line);position:relative}
table.stack td{display:block;border:0;padding:0}
table.stack td:empty{display:none}
table.stack td[data-l]::before{content:attr(data-l);display:block;color:var(--mut);font-size:10.5px;line-height:1.2}
table.stack tr:has(.thumb){padding-left:62px;min-height:82px}
table.stack tr>td:has(.thumb){position:absolute;left:4px;top:10px}
table.stack tr>td:has(.thumb)::before{display:none}
table.stack tr>td:has(.thumb)+td{flex:1 1 100%}
table.stack tr>td:has(.thumb)+td::before{display:none}
table.stack tr:hover td{background:none}
table.stack td:last-child:has(button){margin-left:auto}

/* claims */
.prog{height:10px;background:#0001;border-radius:6px;overflow:hidden;margin-bottom:6px}
.prog>div{height:100%;background:var(--acc,#3a7)}
.st-running{background:rgba(76,195,138,.22);color:var(--ok)}.st-paused{background:rgba(242,184,90,.2);color:var(--warn)}
.st-completed{background:rgba(90,169,255,.2);color:var(--acc)}.st-failed{background:rgba(255,111,111,.2);color:var(--bad)}
.st-cancelled,.st-draft{background:rgba(139,149,163,.2);color:var(--mut)}
details summary{cursor:pointer}
td a,.panel a,p a{color:var(--acc)}
label.btn{display:inline-block;cursor:pointer;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 10px}
