:root{
  --bg:#111318;
  --panel:#181b21;
  --panel-2:#20242d;
  --panel-3:#272c36;
  --text:#f4f7fb;
  --muted:#a7b0be;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --accent:#ffffff;
  --accent-dark:#12151a;
  --ok:#7dd3a7;
  --danger:#ff8787;
  --radius:18px;
  --radius-sm:12px;
  --shadow:0 18px 50px rgba(0,0,0,.28);
}

/* Font locale opzionale: lascia un .woff2 in assets/fonts/ e togli il commento.
@font-face{font-family:"AppSans";src:url("../fonts/app-sans.woff2") format("woff2");font-weight:400 700;font-display:swap;}
*/

*{box-sizing:border-box}
/* L'attributo hidden deve sempre vincere sulle regole display di .modal/.preview-wrap/.draft-list */
[hidden]{display:none !important}
html,body{height:100%}
body{
  margin:0;
  background:linear-gradient(135deg,#0e1014 0%, #151920 52%, #0d1015 100%);
  color:var(--text);
  font-family:"AppSans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
button,input,select,textarea{font:inherit;color:inherit}

.app-shell{
  display:grid;
  grid-template-columns:340px minmax(0,1fr) 340px;
  gap:18px;
  padding:18px;
  align-items:start;
  min-height:100vh;
}

.panel{
  background:rgba(24,27,33,.92);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.sidebar,.inspector{padding:20px;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}
.canvas-panel{padding:18px;min-height:calc(100vh - 36px)}

.badge{
  display:inline-flex;padding:6px 10px;border-radius:999px;
  background:rgba(255,255,255,.07);border:1px solid var(--line);
  color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;
}
h1{font-size:22px;line-height:1.15;margin:0 0 8px}
.intro{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.5}

.field{display:grid;gap:6px;margin-bottom:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
label{font-size:12px;font-weight:600;color:rgba(255,255,255,.85)}
input[type=text],input[type=url],input[type=number],textarea,select{
  width:100%;background:var(--panel-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:10px 12px;outline:none;
}
textarea{resize:vertical;min-height:64px}
input:focus,textarea:focus,select:focus{border-color:var(--line-strong)}
input[type=range]{width:100%;accent-color:#fff}
.range-row{display:flex;justify-content:space-between;align-items:center;margin:10px 0 2px}
.range-row output{font-size:12px;color:var(--muted)}

.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
button{border:0;border-radius:var(--radius-sm);padding:10px 14px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s}
button:hover{transform:translateY(-1px)}
.btn-primary{background:#fff;color:var(--accent-dark)}
.btn-secondary{background:rgba(255,255,255,.08);color:var(--text);border:1px solid var(--line)}

.status{margin-top:12px;font-size:13px;color:var(--muted)}

.section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.section h2{margin:0 0 10px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.9)}

details.brand{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
details.brand summary{cursor:pointer;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:10px}
details.brand[open] summary{margin-bottom:14px}

.draft-list{margin-top:10px;display:grid;gap:6px}
.draft-row{display:flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px}
.draft-row .spacer{flex:1}
.draft-row button{padding:4px 8px;font-size:12px}

/* ---- Canvas blocchi ---- */
.canvas-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:3px}
.seg-btn{background:transparent;color:var(--muted);padding:6px 12px;border-radius:999px;font-size:13px}
.seg-btn.is-active{background:#fff;color:var(--accent-dark)}

.block-canvas{display:grid;gap:14px;max-width:660px;margin:0 auto}
.newsletter-block{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.newsletter-block.is-selected{border-color:#fff;box-shadow:0 0 0 1px #fff inset}
.newsletter-block.is-hidden{opacity:.45}
.block-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--panel-3);border-bottom:1px solid var(--line)}
.block-toolbar .spacer{flex:1}
.chip{background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--text);padding:4px 9px;border-radius:8px;font-size:12px;font-weight:600}
.chip.danger{color:var(--danger)}
.block-body{padding:16px 18px}
.block-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.block-title{margin:0 0 6px;font-size:20px;line-height:1.2}
.block-subtitle{margin:0;color:var(--muted)}
.block-text{margin:0;color:rgba(255,255,255,.82);line-height:1.55;font-size:14px}
.block-media{margin-top:12px}
.block-media img{display:block;width:100%;border-radius:10px}
.card-like{background:var(--panel-3);border:1px solid var(--line);border-radius:10px;padding:12px}
.card-like h4{margin:0 0 6px;font-size:15px}
.card-like p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.card-meta{font-size:12px;color:var(--muted);margin:0 0 6px}
.card-cta{display:inline-block;margin-top:10px;background:#fff;color:var(--accent-dark);text-decoration:none;padding:7px 12px;border-radius:8px;font-size:12px;font-weight:700}
.btn-mini{margin-top:10px;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px}

.preview-wrap{display:flex;justify-content:center}
#previewFrame{width:600px;max-width:100%;height:calc(100vh - 140px);border:1px solid var(--line);border-radius:12px;background:#fff;transition:width .2s ease}
#previewFrame.mobile{width:375px}

/* ---- Inspector ---- */
.inspector-title{margin:0 0 6px;font-size:18px}
.inspector-hint{margin:0 0 14px;color:var(--muted);font-size:12px}
.inspector-empty{color:var(--muted);font-size:13px}
.field-group{margin-bottom:12px;display:grid;gap:6px}
.field-group label{display:grid;gap:6px}
.inline-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---- Modal editor immagine ---- */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(1100px,100%);max-height:92vh;overflow:auto;box-shadow:var(--shadow)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}
.modal-body{display:grid;grid-template-columns:320px 1fr;gap:18px;padding:18px}
.img-controls{display:block}
.img-stage{background:#0f1116;border:1px solid var(--line);border-radius:14px;padding:14px;overflow:auto;display:flex;align-items:center;justify-content:center}
.img-stage canvas{max-width:100%;height:auto;border-radius:8px;background:#0b0d11}
.hint{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}

@media (max-width:1200px){
  .app-shell{grid-template-columns:1fr}
  .sidebar,.inspector{position:static;max-height:none}
  .modal-body{grid-template-columns:1fr}
}
