:root{
  color-scheme:dark;
  --ink:#F2F0E9;--paper:#11120F;--card:#1A1B17;--ash:#A5A398;--stamp:#E06F3C;
  --line:rgba(242,240,233,.16);--ok:#71B28F;--field:#0D0E0C;
  --f-display:"Cormorant Garamond",Georgia,serif;
  --f-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;
  font-weight:400;line-height:1.6;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2{font-family:var(--f-display);font-weight:500;letter-spacing:-.025em;margin:.1em 0}
h1{font-size:clamp(2.4rem,5vw,3.5rem);line-height:.95}
h2{font-size:1.8rem;line-height:1}
.label{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ash);margin:0 0 .4em}
.hint{color:var(--ash);font-size:.86rem;margin:.4em 0 0}
.warn{color:var(--stamp)}
code{font-family:var(--f-mono);font-size:.85em;background:rgba(242,240,233,.07);padding:2px 5px}

/* -------------------------------------------------------------- barra -- */
.abar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  padding:12px clamp(16px,4vw,40px);background:#090A08;color:var(--ink);
  border-bottom:1px solid var(--line)}
.abar__mark{font-family:var(--f-display);font-size:1.5rem;font-weight:500;text-decoration:none}
.abar__mark span{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  opacity:.6;margin-left:8px}
.abar__nav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}
.abar__nav a{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;opacity:.85}
.abar__nav a:hover{opacity:1;color:var(--stamp)}

.ashell{max-width:1080px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,4vw,40px) 120px}
.ahead{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  margin-bottom:28px}
.ahead a{color:var(--ash)}
.sub{margin-top:48px}

/* -------------------------------------------------------------- panel -- */
.panel{background:var(--card);border:1px solid var(--line);padding:clamp(18px,3vw,32px);
  margin-bottom:24px}
.panel__head{display:flex;gap:16px;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;margin-bottom:20px}
.count{font-family:var(--f-mono);font-size:.8rem;color:var(--stamp);vertical-align:super}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.stats div{background:var(--card);border:1px solid var(--line);padding:18px}
.stats strong{display:block;font-family:var(--f-display);font-size:2.4rem;line-height:1}
.stats span{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ash)}

/* --------------------------------------------------------------- form -- */
.stackform{display:grid;gap:16px;max-width:640px}
.field{display:grid;gap:5px}
.field>span{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ash)}
input,textarea,select{font:inherit;font-size:.95rem;color:var(--ink);background:var(--field);
  border:1px solid var(--line);padding:10px 12px;border-radius:0;width:100%}
textarea{resize:vertical;line-height:1.6}
input:focus,textarea:focus,select:focus{outline:2px solid var(--stamp);outline-offset:-1px;border-color:transparent}
.checks{display:flex;gap:22px;flex-wrap:wrap}
.check{display:flex;align-items:center;gap:8px;font-size:.9rem}
.check input{width:auto}
.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline input,.inline select{width:auto;min-width:160px}

.btn{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:12px 22px;
  cursor:pointer;justify-self:start;transition:background .25s,color .25s;text-decoration:none;
  display:inline-block;white-space:nowrap}
.btn:hover{background:var(--stamp);border-color:var(--stamp)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{color:var(--paper)}
.btn--danger{background:transparent;color:var(--stamp);border-color:var(--stamp)}
.btn--danger:hover{background:var(--stamp);color:var(--paper)}
.btn--small{padding:9px 16px}
.abar .btn--ghost{color:var(--ink);border-color:rgba(242,240,233,.4)}

.mini{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  background:transparent;border:1px solid var(--line);padding:6px 10px;cursor:pointer;
  text-decoration:none;color:var(--ash);width:auto}
.mini:hover{border-color:var(--ink);color:var(--ink)}
.mini--danger:hover{border-color:var(--stamp);color:var(--stamp)}

/* --------------------------------------------------------------- righe */
.rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);
  padding:14px 16px}
.row.is-drag{opacity:.4}
.row.is-over{border-color:var(--stamp)}
.row__grip{cursor:grab;color:var(--ash);font-size:1.1rem;user-select:none}
.row__main{flex:1;min-width:0}
.row__title{font-family:var(--f-display);font-size:1.6rem;font-weight:500;
  line-height:1;text-decoration:none}
.row__meta{margin:.1em 0 0;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;
  color:var(--ash);text-transform:uppercase}
.row__side{display:flex;gap:8px}

/* --------------------------------------------------------------- foto -- */
.dropzone{border:1px dashed var(--line);padding:28px;text-align:center;margin-bottom:20px;
  transition:border-color .2s,background .2s}
.dropzone.is-hot{border-color:var(--stamp);background:rgba(226,87,31,.05)}
.dropzone p{margin:.3em 0}
.progress{margin-top:16px;display:flex;align-items:center;gap:12px}
.progress__bar{flex:1;height:3px;background:var(--line);position:relative;overflow:hidden}
.progress__bar::after{content:"";position:absolute;inset:0;width:40%;background:var(--stamp);
  animation:run 1.1s ease-in-out infinite}
@keyframes run{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
.progress span{font-family:var(--f-mono);font-size:.66rem;color:var(--ash)}

.tiles{list-style:none;margin:16px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.tile{border:1px solid var(--line);background:var(--card);padding:10px;display:grid;gap:8px;
  align-content:start}
.tile.is-drag{opacity:.4}
.tile.is-over{border-color:var(--stamp)}
.tile.is-cover{border-color:var(--stamp);box-shadow:inset 0 0 0 1px var(--stamp)}
.tile__img{aspect-ratio:4/3;overflow:hidden;background:var(--field);cursor:grab}
.tile__img img{width:100%;height:100%;object-fit:cover}
.tile__title{font-size:.9rem}
.tile__caption{font-size:.85rem}
.tile__bar{display:flex;gap:6px;flex-wrap:wrap}
.tile.is-cover [data-cover]{border-color:var(--stamp);color:var(--stamp)}

/* ------------------------------------------------------------ blocchi -- */
.block{border:1px solid var(--line);padding:18px;margin-bottom:14px;background:var(--card)}
.block__head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.block__head select{width:auto}
.block form{display:grid;gap:14px}
.block__preview{max-height:220px;object-fit:cover;width:100%}
.block__bar{display:flex;gap:10px}
.block__tools{display:flex;gap:6px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.empty-note{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--ash);
  text-transform:uppercase;padding:14px 0;list-style:none}

/* ------------------------------------------------------------ login ---- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login__card{background:var(--card);border:1px solid var(--line);padding:clamp(28px,5vw,48px);
  width:min(420px,100%)}
.login__card h1{margin-bottom:24px}

/* ------------------------------------------------------------ toasts --- */
.toasts{position:fixed;top:70px;right:20px;z-index:50;display:grid;gap:8px;max-width:min(420px,90vw)}
.toast{margin:0;padding:12px 16px;background:var(--card);color:var(--ink);border:1px solid var(--line);
  font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;animation:pop .3s ease}
.toast--error{background:var(--stamp);color:var(--paper);border-color:var(--stamp)}
@keyframes pop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

.msg__body{white-space:pre-wrap;margin:0;border-left:2px solid var(--line);padding-left:16px}

@media (max-width:640px){
  .abar{gap:10px}
  .abar__nav{width:100%;margin-left:0;gap:12px}
  .row{flex-wrap:wrap}
  .row__side{width:100%}
}
