:root {
  --admin-primary: #c44736;
  --admin-primary-dark: #963326;
  --admin-accent: #52677a;
  --admin-ink: #202733;
  --admin-muted: #697386;
  --admin-line: #e2e6ec;
  --admin-soft: #f4f6f9;
}

body { color: var(--admin-ink); background: var(--admin-soft) !important; }
.navbar, .builder-topbar {
  border-top: 4px solid #242320 !important;
  border-bottom: 1px solid #d7d2c9 !important;
  background: rgba(250,249,246,.97) !important;
  box-shadow: 0 5px 18px rgba(45,42,36,.06);
  backdrop-filter: blur(10px);
}
.topbar { border-top:4px solid #242320 !important; border-bottom:1px solid #d7d2c9 !important; background:#f8f6f1 !important; }
.hero { border-radius:9px !important; color:#fff !important; background:#2c2a26 !important; box-shadow:none !important; }
.hero .text-muted,.hero .small { color:#d8d2c8 !important; }
.trend-bar,.answer-bar > span { background:var(--admin-primary) !important; }
.role-badge { color:#6f2d1f !important; background:#f6e8e2 !important; }
.builder-topbar .container-fluid { padding-inline: clamp(.75rem,2vw,1.5rem); }
.builder-topbar code { color: var(--admin-primary-dark); }
.builder-topbar .btn { white-space: nowrap; }
.builder-brand { display:flex; align-items:center; gap:.55rem; min-width:max-content; padding-right:.9rem; border-right:1px solid #d7d2c9; color:#242320; text-decoration:none; }
.builder-brand img { display:block; width:76px; height:26px; object-fit:contain; }
.builder-brand span { padding:.1rem .4rem; border-radius:4px; color:#fff; background:#242320; font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.builder-title-block { min-width:180px; }

.builder-workspace {
  min-height: calc(100vh - 70px);
  background: #eeece7;
}
.builder-panel {
  padding: 1rem;
  border: 1px solid var(--admin-line);
  border-radius: 12px;
  background: #faf9f6;
  box-shadow: 0 7px 22px rgba(45,42,36,.045);
}
.builder-sections-panel { position: sticky; top: 82px; }
.builder-canvas-head {
  position: sticky;
  top: 69px;
  z-index: 12;
  margin: -.35rem -.45rem 1rem;
  padding: .7rem .75rem;
  border: 1px solid rgba(215,222,234,.85);
  border-radius: 10px;
  background: rgba(238,236,231,.96);
  backdrop-filter: blur(8px);
}

.card, .fs-card, .section-item, .q-card, .type-card, .modal-content, .offcanvas {
  border-color: var(--admin-line) !important;
  border-radius: 10px !important;
}
.card { box-shadow: 0 6px 18px rgba(45,42,36,.055); }
.q-card {
  position: relative;
  overflow: hidden;
  padding: 1rem !important;
  box-shadow: 0 3px 10px rgba(45,42,36,.035);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.q-card::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:#817d74;
}
.q-card.field-accent-image::before,.q-card.field-accent-video::before { background:#b46a3c; }
.q-card.field-accent-rating::before,.q-card.field-accent-linear_scale::before { background:#b28b2e; }
.q-card.field-accent-radio::before,.q-card.field-accent-select::before,.q-card.field-accent-checkbox::before { background:#5f715c; }
.q-card.field-accent-repeater::before,.q-card[class*="field-accent-grid"]::before { background:#5b6674; }
.q-type-icon {
  flex:0 0 42px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid #dfdbd3;
  border-radius:9px;
  color:#373530;
  background:#f2f0eb;
  font-size:1.1rem;
}
.q-meta { display:flex; flex-wrap:wrap; gap:.35rem; }
.q-type-chip,.q-state-chip {
  display:inline-flex;
  align-items:center;
  gap:.22rem;
  padding:.22rem .48rem;
  border-radius:999px;
  color:#475569;
  background:#f1f5f9;
  font-size:.72rem;
  font-weight:700;
}
.q-state-chip { color:#70432f; background:#f5e9e2; }
.q-limit-chip { color:#3f5d42; background:#e4eee3; }
.q-card:hover {
  transform: translateY(-2px);
  border-color: #aaa49a !important;
  box-shadow: 0 10px 22px rgba(45,42,36,.09) !important;
}
.q-card .text-muted code { padding: .08rem .35rem; border-radius: 6px; background: #f1f5f9; }
.q-toolbar { opacity: .72; transition: opacity .15s ease; }
.q-card:hover .q-toolbar, .q-card:focus-within .q-toolbar { opacity: 1; }

.section-item { transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.section-item:hover { border-color: #aaa49a !important; box-shadow: 0 5px 14px rgba(45,42,36,.065); }
.section-item.active {
  border-color: #4d4a44 !important;
  background: #f0ede7 !important;
  outline: 3px solid rgba(77,74,68,.08) !important;
}
.add-palette .type-card {
  min-height: 66px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-style: solid !important;
  background: #fff !important;
}
.add-palette .card-body { padding: 1.1rem; }
.add-palette .type-card i { margin-bottom:.22rem; color:var(--admin-primary); font-size:1.18rem; }
.add-palette .type-card { font-size:.82rem; font-weight:720; color:#334155; transition:.16s ease; }
.right-tools { top:82px !important; }
.add-palette .type-card:hover {
  border-color: #a69f94 !important;
  background: #f3efe8 !important;
  transform: translateY(-1px);
}

.btn { border-radius: 10px; font-weight: 650; }
.btn-primary {
  border-color: var(--admin-primary) !important;
  background: var(--admin-primary) !important;
  box-shadow: 0 5px 13px rgba(135,49,34,.16);
}
.btn-primary:hover { filter: brightness(.97); transform: translateY(-1px); }
.btn-outline-primary { --bs-btn-color: #963824; --bs-btn-border-color: #c98c7d; --bs-btn-hover-bg: #f7eae6; --bs-btn-hover-color: #702718; }
.form-control, .form-select {
  min-height: 44px;
  border-color: #d7deea;
  border-radius: 11px;
}
.form-control:focus, .form-select:focus {
  border-color: #bc7b6b;
  box-shadow: 0 0 0 .24rem rgba(184,70,47,.12);
}
.form-check-input:checked { border-color: var(--admin-primary); background-color: var(--admin-primary); }
.limit-choice-list {
  max-height: 12rem;
  overflow: auto;
  padding: .65rem .75rem;
  border: 1px solid #d7deea;
  border-radius: 11px;
  background: #fff;
}
.limit-choice-list:focus-within { border-color:#bc7b6b; box-shadow:0 0 0 .24rem rgba(184,70,47,.12); }
.limit-choice-list .form-check { padding: .42rem .55rem .42rem 2rem; margin:0; border-radius:8px; }
.limit-choice-list .form-check:hover { background:#eef2ff; }
.limit-choice-list.is-invalid { border-color:#dc3545; }

.modal-content, .offcanvas { overflow: hidden; box-shadow: 0 30px 90px rgba(15,23,42,.22); }
.modal-header, .offcanvas-header { background:#f5f2ec; }
.offcanvas-end { width:min(720px,100vw) !important; }
.offcanvas-header { padding:1.2rem 1.4rem; border-bottom:1px solid #e8edf5; }
.offcanvas-body { padding:1.35rem 1.4rem 2rem; }
.inspector-intro {
  padding:1rem;
  border-left:4px solid var(--admin-primary);
  border-radius:8px;
  background:#f2eee7;
  color:#5c5952;
  font-size:.9rem;
}
.inspector-kicker { display:block; margin-bottom:.2rem; color:var(--admin-primary-dark); font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.guided-panel {
  padding:1rem;
  border:1px solid #dce3ee;
  border-radius:10px;
  background:#fff;
  box-shadow:0 4px 12px rgba(45,42,36,.035);
}
.guided-panel-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.guided-icon { display:inline-grid; place-items:center; width:34px; height:34px; margin-right:.55rem; border-radius:8px; color:var(--admin-primary-dark); background:#f5e9e3; }
.guided-builder-cta {
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.85rem;
  border:1px solid #c8c1b7;
  border-radius:10px;
  color:#2d2b27;
  background:#fff;
  transition:.16s ease;
}
.guided-builder-cta:hover { border-color:#9b9185; transform:translateY(-1px); box-shadow:0 7px 16px rgba(45,42,36,.1); }
.guided-builder-cta-icon { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border-radius:8px; color:#fff; background:#36332e; }
.guided-builder-cta small { display:block; margin-top:.12rem; color:#64748b; font-size:.72rem; font-weight:550; }
.validation-summary { padding:.7rem .8rem; border-radius:11px; color:#475569; background:#f1f5f9; font-size:.82rem; }
.validation-summary strong { color:#334155; }
.sentence-rule { display:grid; grid-template-columns:auto minmax(150px,1.2fr) minmax(155px,1fr) minmax(130px,1fr); align-items:center; gap:.55rem; }
.sentence-rule > span { font-weight:750; color:#475569; }
.technical-settings { padding:.85rem 1rem; border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; }
.technical-settings summary,.media-url-alternative summary { cursor:pointer; color:#475569; font-weight:700; }
.required-switch { padding: .9rem 1rem .9rem 3.1rem; border-radius:14px; background:#f8fafc; }
.rich-editor {
  min-height:150px;
  padding:.85rem 1rem;
  overflow:auto;
  border:1px solid #d7d0c5;
  border-radius:8px;
  color:#2f2d29;
  background:#fff;
  line-height:1.6;
}
.rich-editor-tall { min-height:230px; }
.rich-editor:focus { border-color:#bc7b6b; outline:0; box-shadow:0 0 0 .24rem rgba(184,70,47,.12); }
.rich-editor:empty::before { content:attr(data-placeholder); color:#9a958c; pointer-events:none; }
.rich-editor p:last-child,.rich-editor ul:last-child,.rich-editor ol:last-child { margin-bottom:0; }

.media-upload-card { border:1px dashed #afa89d; border-radius:10px; background:#f6f3ed; }
.media-upload-icon { display:grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border-radius:9px; color:#fff; background:#36332e; font-size:1.25rem; }
.media-preview { overflow:hidden; border:1px solid #dbe3ef; border-radius:14px; background:#fff; }
.media-preview img,.media-preview video { display:block; width:100%; max-height:300px; object-fit:contain; background:#f8fafc; }
.media-preview video { background:#0f172a; }
.logo-upload-row { display:flex; align-items:center; gap:1rem; padding:.85rem; border:1px dashed #c7d2fe; border-radius:14px; background:#fafbff; }
.logo-preview { display:grid; place-items:center; flex:0 0 110px; width:110px; height:74px; padding:.5rem; border:1px solid #e2e8f0; border-radius:11px; background:#fff; }
.logo-preview img { max-width:100%; max-height:100%; object-fit:contain; }
.repeater-config-row { padding:.8rem; border:1px solid #e2e8f0; border-radius:13px; background:#fff; }
.repeater-row-grid { display:grid; grid-template-columns:minmax(150px,1.4fr) minmax(105px,.8fr) minmax(90px,.65fr) minmax(90px,.65fr) minmax(135px,.8fr); gap:.55rem; }
.guide-kicker { color:var(--admin-primary-dark); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.guide-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.guide-topic { display:flex; align-items:flex-start; gap:.8rem; padding:1rem; border:1px solid #ddd8cf; border-radius:10px; background:#fff; }
.guide-topic > span { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:8px; color:#fff; background:#403d37; font-size:1.1rem; }
.guide-topic p { margin:.25rem 0 0; color:#64748b; font-size:.86rem; }
.availability-group-card { padding:1rem; border:1px solid #d8d2c8; border-radius:10px; background:#f5f2ec; }
.availability-choice-row { display:grid; grid-template-columns:minmax(180px,1fr) minmax(130px,.35fr) 42px; gap:.65rem; align-items:end; padding:.65rem; border:1px solid #ded9d0; border-radius:8px; background:#fff; }
.availability-group-head { display:flex; align-items:end; gap:.75rem; }
.availability-group-head .group-label-wrap { flex:1; }
.availability-wizard .modal-body { background:#fbfaf7; }
.availability-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin-bottom:1.5rem; }
.availability-step-indicator { display:flex; align-items:center; gap:.55rem; min-width:0; padding:.65rem .8rem; border:1px solid #ddd8cf; border-radius:8px; color:#706e68; background:#fff; font-size:.82rem; }
.availability-step-indicator span { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:50%; color:#475569; background:#f1f5f9; font-weight:800; }
.availability-step-indicator.active { border-color:#c17a68; color:#712c1d; background:#f8ebe6; }
.availability-step-indicator.active span { color:#fff; background:var(--admin-primary); }
.availability-step-indicator.complete { color:#166534; border-color:#bbf7d0; background:#f0fdf4; }
.availability-step-indicator.complete span { color:#fff; background:#16a34a; }
.availability-step-pane { min-height:310px; padding:.25rem .1rem; }
.availability-step-pane > h6 { color:#1e293b; font-size:1.05rem; font-weight:780; }
.availability-example { display:flex; align-items:center; gap:.65rem; padding:.8rem .9rem; border-radius:12px; color:#475569; background:#f1f5f9; font-size:.88rem; }
.availability-example i { color:var(--admin-primary); font-size:1.1rem; }
.nav-pills .nav-link { color: #475569; font-weight: 650; }
.nav-pills .nav-link.active { background: var(--admin-primary) !important; }
.fs-head { background:#2c2a26 !important; }
.fs-sub { color:#d8d2c8; }
.table { --bs-table-color: #273449; }
.table thead th { color: #475569; background: #f8fafc; font-size: .78rem; letter-spacing: .02em; text-transform: uppercase; }
.badge { font-weight: 700; letter-spacing: .01em; }

.osi-page-title { font-weight: 780; letter-spacing: -.025em; }
.osi-page-subtitle { color: var(--admin-muted); }
.osi-stat-card { position: relative; overflow: hidden; }
.osi-stat-card::after { content:""; position:absolute; right:-24px; top:-30px; width:88px; height:88px; border-radius:50%; background:rgba(184,70,47,.08); }

/* Accesso */
.login-page { min-height:100vh; padding:1.25rem; background:#e9e5dd !important; }
.login-shell { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr); width:min(940px,100%); min-height:560px; margin:auto; overflow:hidden; border:1px solid #cdc7bc; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(45,42,36,.16); }
.login-brand { display:flex; flex-direction:column; justify-content:space-between; padding:2.4rem; color:#fff; background:#272521; }
.login-brand img { width:min(260px,86%); filter:invert(1); }
.login-brand h1 { max-width:10ch; margin:0; font-size:clamp(2rem,4vw,3.4rem); line-height:1.02; letter-spacing:-.04em; }
.login-brand p { max-width:32ch; margin:1rem 0 0; color:#d8d3ca; line-height:1.55; }
.login-form-panel { display:flex; align-items:center; padding:clamp(2rem,7vw,4.5rem); }
.login-form-panel form { width:100%; }
.login-form-panel .form-control { min-height:52px; }
.login-form-panel .btn { min-height:50px; }
.login-eyebrow { margin-bottom:.5rem; color:var(--admin-primary-dark); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }

/* Scelte rapide del builder */
.builder-action-stack { display:grid; gap:.55rem; }
.builder-action-card { display:flex; align-items:center; gap:.7rem; width:100%; padding:.75rem; border:1px solid #d8d2c8; border-radius:9px; color:#302e2a; background:#fff; text-align:left; }
.builder-action-card:hover { border-color:#a79f93; background:#f6f2eb; }
.builder-action-card i { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:7px; color:#fff; background:#3b3833; }
.builder-action-card strong { display:block; font-size:.88rem; }
.builder-action-card small { display:block; margin-top:.05rem; color:#77736c; font-size:.72rem; }
.builder-add-group { border-top:1px solid #e1ddd5; padding-top:.7rem; }
.builder-add-group + .builder-add-group { margin-top:.7rem; }
.builder-add-group > summary { cursor:pointer; color:#4f4c46; font-size:.8rem; font-weight:800; list-style:none; }
.builder-add-group > summary::-webkit-details-marker { display:none; }
.builder-add-group > summary::after { content:"+"; float:right; color:#8a857d; }
.builder-add-group[open] > summary::after { content:"−"; }
.builder-add-group > .row { margin-top:.65rem; }

/* Pagina iniziale */
.dashboard-page { background:#ece9e2 !important; }
.dashboard-topbar { position:sticky; top:0; z-index:100; border-top:5px solid #242320; border-bottom:1px solid #d5d0c6; background:rgba(250,249,246,.97); backdrop-filter:blur(10px); }
.dashboard-brand { display:flex; align-items:center; gap:.7rem; color:#292722; text-decoration:none; }
.dashboard-brand img { width:112px; height:34px; object-fit:contain; }
.dashboard-brand span { padding:.18rem .5rem; border-radius:4px; color:#fff; background:#292722; font-size:.7rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.dashboard-shell { max-width:1500px; }
.dashboard-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; padding:1.5rem 0 .75rem; }
.dashboard-heading h1 { margin:0; font-size:clamp(2rem,4vw,3.5rem); line-height:1; letter-spacing:-.045em; }
.dashboard-heading p { margin:.65rem 0 0; color:#6f6b64; font-size:1.02rem; }
.dashboard-eyebrow { margin-bottom:.55rem; color:var(--admin-primary-dark); font-size:.75rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.dashboard-stats { display:flex; align-items:stretch; overflow:hidden; border:1px solid #d4cec3; border-radius:10px; background:#f8f6f1; }
.dashboard-stats article { min-width:112px; padding:.9rem 1.1rem; border-left:1px solid #ddd7cd; }
.dashboard-stats article:first-child { border-left:0; }
.dashboard-stats strong,.dashboard-stats span { display:block; }
.dashboard-stats strong { font-size:1.55rem; line-height:1; }
.dashboard-stats span { margin-top:.3rem; color:#77726a; font-size:.78rem; }
.dashboard-controls { padding:.7rem; border:1px solid #d8d2c8; border-radius:10px; background:#f8f6f1; }
.dashboard-search { position:relative; display:block; width:min(360px,45vw); }
.dashboard-search i { position:absolute; z-index:2; left:.8rem; top:50%; transform:translateY(-50%); color:#858078; }
.dashboard-search input { padding-left:2.25rem; background:#fff; }
.dashboard-page .card-list { border:0 !important; background:transparent !important; box-shadow:none !important; }
.dashboard-page .grid-head { display:none !important; }
.dashboard-page #list-active,.dashboard-page #list-arch { display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:1rem; }
.form-tile { border:1px solid #d6d0c6; border-radius:10px; background:#fbfaf7; box-shadow:0 5px 16px rgba(45,42,36,.045); transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease; }
.form-tile:hover { transform:translateY(-2px); border-color:#aaa297; box-shadow:0 10px 24px rgba(45,42,36,.09); }
.dashboard-page .grid-row { display:grid; grid-template-columns:1fr auto; grid-template-areas:"title status" "responses responses" "actions actions"; gap:.85rem; align-items:start; }
.dashboard-page .grid-row > div:nth-child(1) { grid-area:title; min-width:0; }
.dashboard-page .grid-row > div:nth-child(2) { grid-area:status; }
.dashboard-page .grid-row > div:nth-child(3) { grid-area:responses; padding:.75rem 0; border-top:1px solid #e4dfd6; border-bottom:1px solid #e4dfd6; color:#504d47 !important; }
.dashboard-page .grid-row > div:nth-child(4) { grid-area:actions; text-align:left !important; }
.dashboard-page .title { font-size:1.08rem; line-height:1.35; }
.dashboard-page .slug { overflow:hidden; margin-top:.35rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-page .actions .btn-group { display:flex; width:100%; gap:.35rem; }
.dashboard-page .actions .btn { display:inline-flex; align-items:center; justify-content:center; border-radius:7px !important; }
.dashboard-page .actions .action-main { flex:1 1 auto; }
.dashboard-page .actions .action-compact { flex:0 0 38px; width:38px; padding-inline:.35rem; }
.dashboard-page .empty { grid-column:1/-1; border:1px dashed #c8c1b6; border-radius:10px; background:#f8f6f1; }
.new-form-layout { display:grid; grid-template-columns:220px 1fr; min-height:480px; }
.new-form-side { padding:1.6rem; color:#fff; background:#2c2a26; }
.new-form-side h5 { margin-top:1.5rem; font-size:1.5rem; letter-spacing:-.025em; }
.new-form-side p { color:#d7d1c7; line-height:1.55; }
.new-form-side img { width:120px; filter:invert(1); }
.new-form-main { padding:1.6rem; }
.new-form-main .form-control { min-height:50px; }

/* Builder: navigazione, pagina e catalogo sono tre livelli distinti */
.builder-topbar .container-fluid > .d-flex { flex-wrap:nowrap; }
.builder-title-block { max-width:min(34vw,440px); }
#builderFormTitle { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.builder-title-block .text-muted { flex-wrap:nowrap !important; overflow:hidden; white-space:nowrap; }
.builder-title-block .text-muted > span:first-child { overflow:hidden; text-overflow:ellipsis; }
.builder-workspace { min-height:calc(100vh - 70px); padding:0 !important; background:#e8e4dc; }
.builder-layout { display:grid; grid-template-columns:260px minmax(0,1fr); min-height:calc(100vh - 70px); }
.builder-outline { z-index:14; padding:1rem .85rem; border-right:1px solid #3f3c36; color:#fff; background:#2d2b27; }
.builder-outline .builder-panel { position:sticky; top:82px; padding:0; border:0 !important; border-radius:0 !important; color:inherit; background:transparent; box-shadow:none; }
.builder-outline .section-item { padding:.7rem .65rem !important; border:1px solid transparent !important; border-radius:7px !important; color:#eeeae2; background:transparent !important; box-shadow:none; cursor:pointer; }
.builder-outline .section-item:hover { transform:none; border-color:#5a564e !important; background:#37342f !important; box-shadow:none; }
.builder-outline .section-item.active { border-color:#fff !important; color:#2d2b27; background:#fff !important; outline:0 !important; }
.builder-outline .section-item .badge { color:#35322e !important; background:#e8e3d9 !important; }
.builder-outline .section-item .text-muted { color:#aaa49a !important; }
.builder-outline .section-item.active .text-muted { color:#716d66 !important; }
.builder-outline .section-item .dropdown-toggle { padding:.2rem .38rem; border-color:transparent; color:inherit; }
.builder-outline .section-item .dropdown-toggle::after { margin-left:0; }
.builder-outline .section-item .dropdown-toggle:hover { background:rgba(128,128,128,.12); }
.builder-stage { min-width:0; padding:clamp(1rem,2.8vw,2.6rem); }
.builder-stage-kicker { margin-bottom:.15rem; color:var(--admin-primary-dark); font-size:.68rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.builder-canvas-head { position:sticky; top:72px; z-index:12; display:flex; align-items:center; justify-content:space-between; width:min(980px,100%); margin:0 auto 1rem; padding:.65rem .75rem .65rem 1rem; border:1px solid #d1cabf; border-radius:8px; background:rgba(250,249,246,.96); box-shadow:0 4px 13px rgba(45,42,36,.06); backdrop-filter:blur(9px); }
.builder-page { width:min(980px,100%); min-height:calc(100vh - 180px); margin:0 auto; padding:clamp(1rem,3vw,2.25rem); border:1px solid #d1cabf; border-radius:6px; background:#fbfaf7; box-shadow:0 15px 42px rgba(45,42,36,.09); }
.builder-page .q-list { margin-bottom:0 !important; }
.builder-page .q-list > .d-flex { gap:.75rem !important; }
.builder-page .q-card { overflow:visible; padding:1.2rem 1.25rem 1.15rem !important; border-color:#dad5cc !important; border-radius:8px !important; background:#fff; box-shadow:none; cursor:pointer; }
.builder-page .q-card::before { display:none; }
.builder-page .q-card:hover { transform:none; border-color:#8c857b !important; box-shadow:0 6px 18px rgba(45,42,36,.08) !important; }
.builder-page .q-card:focus-within { border-color:var(--admin-primary) !important; box-shadow:0 0 0 3px rgba(184,70,47,.09) !important; }
.builder-page .q-drag { align-self:stretch; display:flex; align-items:center; margin-left:-.65rem; color:#aaa49a; cursor:grab; opacity:.35; }
.builder-page .q-card:hover .q-drag { opacity:1; }
.builder-page .q-type-icon { flex-basis:36px; width:36px; height:36px; border:0; border-radius:7px; color:#4a4741; background:#eeeae3; font-size:.95rem; }
.builder-page .q-card > .d-flex > .flex-grow-1 { min-width:0; padding-right:8.5rem; }
.builder-page .q-toolbar { position:absolute; top:.7rem; right:.7rem; z-index:3; padding:.3rem; border:1px solid #ddd7cd; border-radius:8px; background:#fff; box-shadow:0 5px 15px rgba(45,42,36,.08); opacity:0; transform:translateY(-3px); pointer-events:none; transition:opacity .15s ease,transform .15s ease; }
.builder-page .q-card:hover .q-toolbar,.builder-page .q-card:focus-within .q-toolbar { opacity:1; transform:none; pointer-events:auto; }
.builder-page .q-toolbar .btn { padding:.3rem .48rem; border:0; }
.builder-page .q-toolbar .form-switch { margin-left:.3rem; }
.q-preview { margin-top:.9rem; padding-top:.85rem; border-top:1px solid #eeeae3; color:#77726b; font-size:.86rem; }
.q-preview-input { min-height:39px; padding:.58rem .72rem; border:1px solid #d8d3ca; border-radius:7px; color:#969087; background:#fbfaf8; }
.q-preview-textarea { min-height:68px; }
.q-preview-choices { display:grid; gap:.55rem; }
.q-preview-choices span { display:flex; align-items:center; gap:.55rem; }
.q-preview-choices i { color:#aaa49a; font-size:1.02rem; }
.q-preview-rating { display:flex; gap:.55rem; color:#b28b2e; font-size:1.35rem; }
.q-preview-scale { display:flex; align-items:center; justify-content:space-between; max-width:420px; }
.q-preview-scale span { display:grid; place-items:center; width:33px; height:33px; border:1px solid #d1cbc2; border-radius:50%; background:#fff; }
.q-preview-grid,.q-preview-media { display:flex; align-items:center; justify-content:center; gap:.65rem; min-height:68px; border:1px dashed #cfc8bd; border-radius:7px; background:#f7f4ef; }
.q-preview-media { min-height:105px; font-size:1rem; }
.q-preview-media i { font-size:1.4rem; }
.q-preview-file { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem .8rem; border:1px solid #d5cfc6; border-radius:7px; background:#f8f6f2; }
.q-preview-copy { color:#666159; line-height:1.55; }
.builder-add-bottom { display:flex; align-items:center; justify-content:center; gap:.6rem; width:100%; margin-top:1rem; padding:.9rem; border:1px dashed #afa79b; border-radius:8px; color:#555149; background:transparent; font-weight:700; transition:.15s ease; }
.builder-add-bottom:hover { border-color:var(--admin-primary); color:var(--admin-primary-dark); background:#f8ede9; }
.builder-add-bottom i { font-size:1.05rem; }
.field-palette-drawer { width:min(470px,100vw) !important; }
.field-palette-drawer .offcanvas-body { background:#f7f4ef; }
.field-palette-drawer .builder-action-stack { grid-template-columns:1fr; }
.field-palette-drawer .builder-action-card { padding:.85rem; }
.field-palette-drawer .builder-add-group { padding:.8rem .85rem; border:1px solid #ddd7cd; border-radius:8px; background:#fff; }
.field-palette-drawer .builder-add-group + .builder-add-group { margin-top:.65rem; }
.field-palette-drawer .type-card { min-height:64px; border-style:solid !important; border-color:#ddd7ce !important; border-radius:7px !important; background:#fbfaf7 !important; }
.field-palette-drawer .type-card:hover { border-color:#9f978b !important; background:#f2eee7 !important; }
.builder-fab { position:fixed; right:1rem; bottom:1rem; z-index:30; display:none; align-items:center; gap:.45rem; border-radius:999px; box-shadow:0 10px 28px rgba(45,42,36,.23); }

/* Direzione visiva 2.0: leggera, contemporanea, fedele al rosso OSI */
body { color:#202733; background:#f4f6f9 !important; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.navbar,.builder-topbar { border-top:0 !important; border-bottom:1px solid #e3e7ed !important; background:rgba(255,255,255,.96) !important; box-shadow:0 4px 18px rgba(31,39,51,.055); }
.builder-topbar::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:var(--admin-primary); }
.builder-topbar .container-fluid { padding-top:.72rem !important; padding-bottom:.65rem !important; }
.builder-brand { border-right:1px solid #e5e8ed; color:#202733; }
.builder-brand span { border-radius:6px; background:#202733; }
.builder-title-block > .fw-semibold { color:#1c2430; font-size:.98rem; letter-spacing:-.01em; }
.builder-title-block .text-muted { color:#7b8494 !important; }
.builder-title-block .badge { border-radius:999px; font-size:.66rem; font-weight:750; }
.builder-topbar .btn { min-height:38px; border-radius:10px; }
.builder-topbar .btn-outline-secondary { border-color:#dce1e8; color:#4d5869; background:#fff; }
.builder-topbar .btn-outline-secondary:hover { border-color:#bfc7d2; color:#202733; background:#f6f8fa; }
.builder-topbar .btn-outline-primary { border-color:#e5b1a9; color:#963326; background:#fff; }
.builder-topbar .btn-primary { border-color:var(--admin-primary) !important; background:var(--admin-primary) !important; box-shadow:0 7px 18px rgba(196,71,54,.2); }
.builder-workspace { background:#f1f4f8; }
.builder-layout { grid-template-columns:272px minmax(0,1fr); }
.builder-outline { padding:1.1rem .9rem; border-right:1px solid #e2e6ec; color:#303949; background:#f8fafc; }
.builder-outline .builder-panel { color:inherit; }
.builder-outline .builder-panel > .mb-2 { margin-bottom:.85rem !important; padding:0 .25rem; }
.builder-outline .section-item { padding:.78rem .72rem !important; border:1px solid transparent !important; border-radius:12px !important; color:#3b4555; background:transparent !important; }
.builder-outline .section-item:hover { border-color:#e0e5eb !important; background:#fff !important; box-shadow:0 5px 14px rgba(31,39,51,.05); }
.builder-outline .section-item.active { border-color:#efd4cf !important; color:#202733; background:#fff !important; box-shadow:0 7px 20px rgba(31,39,51,.07); }
.builder-outline .section-item.active::before { content:""; position:absolute; inset:.65rem auto .65rem 0; width:3px; border-radius:0 4px 4px 0; background:var(--admin-primary); }
.builder-outline .section-item { position:relative; }
.builder-outline .section-item .badge { color:#5f6877 !important; background:#edf0f4 !important; }
.builder-outline .section-item.active .badge { color:#963326 !important; background:#f9e9e6 !important; }
.builder-outline .section-item .text-muted { color:#8992a1 !important; }
.builder-outline .section-item.active .text-muted { color:#697386 !important; }
.builder-outline .section-item .dropdown-toggle { border-color:transparent; color:#697386; background:transparent; }
.builder-stage { padding:clamp(1.25rem,3vw,3rem); }
.builder-stage-kicker { color:#a23a2d; }
.builder-canvas-head { top:76px; width:min(1380px,100%); margin-bottom:1.1rem; padding:.85rem .9rem .85rem 1.25rem; border:1px solid rgba(223,228,235,.96); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 8px 24px rgba(31,39,51,.065); }
.builder-stage-title { color:#1f2835; font-size:1.15rem; font-weight:760; letter-spacing:-.015em; }
.builder-stage-description { max-width:72ch; margin-top:.18rem; color:#778191; font-size:.82rem; line-height:1.45; }
.builder-canvas-head .btn { min-height:42px; padding-inline:1rem; border-radius:10px; }
.builder-page { width:min(1380px,100%); min-height:0; margin:0 auto; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.builder-page .q-list > .d-flex { gap:.85rem !important; }
.builder-page .q-card { padding:1.45rem 1.55rem 1.4rem !important; border:1px solid #e3e8ee !important; border-radius:15px !important; background:#fff; box-shadow:0 5px 18px rgba(31,39,51,.04); }
.builder-page .q-card:hover { border-color:#cdd4de !important; box-shadow:0 10px 26px rgba(31,39,51,.075) !important; }
.builder-page .q-card:focus-within { border-color:#d9897e !important; box-shadow:0 0 0 4px rgba(196,71,54,.085) !important; }
.builder-page .q-drag { color:#adb5c1; }
.builder-page .q-type-icon { flex-basis:40px; width:40px; height:40px; border-radius:11px; color:#a33a2d; background:#faece9; }
.builder-page .q-card .fw-semibold { color:#222b38; font-size:.98rem; }
.q-type-chip,.q-state-chip { padding:.24rem .52rem; color:#5f6979; background:#f0f3f6; font-size:.68rem; letter-spacing:.01em; }
.q-state-chip { color:#8a493f; background:#faeeeb; }
.q-limit-chip { color:#35614d; background:#eaf4ef; }
.builder-page .q-toolbar { top:.75rem; right:.75rem; padding:.32rem; border:1px solid #e2e6ec; border-radius:11px; background:rgba(255,255,255,.98); box-shadow:0 8px 24px rgba(31,39,51,.1); }
.builder-page .q-toolbar .btn { border-radius:8px !important; }
.q-preview { border-top:1px solid #edf0f4; color:#778191; }
.q-preview-input { min-height:42px; border:1px solid #e0e5eb; border-radius:10px; color:#99a1ad; background:#f8fafc; }
.q-preview-textarea { min-height:76px; }
.q-preview-scale span { border-color:#dbe1e8; color:#626d7d; box-shadow:0 2px 5px rgba(31,39,51,.035); }
.q-preview-grid,.q-preview-media { border-color:#d8dee6; border-radius:11px; background:#f8fafc; }
.q-preview-file { border-color:#dce2e9; border-radius:10px; background:#f8fafc; }
.q-preview-copy { max-width:92ch; max-height:190px; overflow:hidden; color:#485364; font-size:.91rem; line-height:1.62; }
.q-preview-copy p { margin:0 0 .65rem; }
.q-preview-copy p:last-child,.q-preview-copy ul:last-child,.q-preview-copy ol:last-child { margin-bottom:0; }
.q-preview-copy strong { color:#293342; }
.builder-add-bottom { margin-top:1.15rem; padding:1rem; border-color:#cbd2dc; border-radius:12px; color:#606b7b; background:#fff; box-shadow:0 4px 14px rgba(31,39,51,.035); }
.builder-add-bottom:hover { border-color:#d48377; color:#963326; background:#fff7f5; }
.builder-page .q-list > .d-flex { gap:0 !important; }
.q-insert-point { position:relative; display:flex; align-items:center; justify-content:center; min-height:22px; }
.q-insert-point::before { content:""; position:absolute; right:0; left:0; height:1px; background:#dce2e9; opacity:0; transition:opacity .15s ease; }
.q-insert-button { position:relative; z-index:2; display:inline-flex; align-items:center; gap:.35rem; min-height:28px; padding:.2rem .65rem; border:1px solid #e3a79e; border-radius:999px; color:#963326; background:#fff; box-shadow:0 4px 12px rgba(31,39,51,.08); font-size:.72rem; font-weight:750; opacity:0; transform:scale(.94); transition:opacity .15s ease,transform .15s ease,background .15s ease; }
.q-insert-button:hover,.q-insert-button:focus-visible { color:#7d291f; background:#fff4f1; outline:0; box-shadow:0 0 0 4px rgba(196,71,54,.1); }
.q-insert-point:hover::before,.q-insert-point:focus-within::before { opacity:1; }
.q-insert-point:hover .q-insert-button,.q-insert-button:focus-visible { opacity:1; transform:none; }
.q-insert-point:only-child { min-height:84px; border:1px dashed #cbd2dc; border-radius:14px; background:rgba(255,255,255,.68); }
.q-insert-point:only-child::before { display:none; }
.q-insert-point:only-child .q-insert-button { opacity:1; transform:none; }
.builder-insert-context { margin-bottom:1rem; padding:.72rem .8rem; border:1px solid #efd1cc; border-radius:11px; color:#713329; background:#fff4f1; font-size:.82rem; line-height:1.45; }
.q-card.sortable-ghost { opacity:.35; }
.field-palette-drawer { width:min(500px,100vw) !important; border-left:0 !important; border-radius:18px 0 0 18px !important; }
.field-palette-drawer .offcanvas-header { padding:1.35rem 1.5rem; background:#fff; }
.field-palette-drawer .offcanvas-body { padding:1.35rem 1.5rem 2rem; background:#f6f8fa; }
.field-palette-drawer .builder-action-card { border-color:#e0e5eb; border-radius:12px; box-shadow:0 3px 9px rgba(31,39,51,.025); }
.field-palette-drawer .builder-action-card:hover { border-color:#d6a198; background:#fff8f6; }
.field-palette-drawer .builder-action-card i { border-radius:10px; background:#b33f30; }
.field-palette-drawer .builder-add-group { border-color:#e1e5eb; border-radius:13px; box-shadow:0 3px 10px rgba(31,39,51,.025); }
.field-palette-drawer .type-card { min-height:68px; border-color:#e2e6ec !important; border-radius:11px !important; background:#fff !important; }
.field-palette-drawer .type-card:hover { border-color:#d59a91 !important; background:#fff8f6 !important; box-shadow:0 5px 14px rgba(31,39,51,.06); }
.field-palette-drawer .type-card i { color:#b13e30; }
.btn { border-radius:10px; }
.btn-primary { box-shadow:0 7px 18px rgba(196,71,54,.17); }
.form-control,.form-select { border-color:#dfe4eb; border-radius:10px; background-color:#fff; }
.modal-content,.offcanvas { border:0 !important; border-radius:18px !important; box-shadow:0 30px 90px rgba(24,32,43,.2); }
.modal-header,.offcanvas-header { border-bottom:1px solid #e6eaf0; background:#fff; }

.dashboard-page { background:#f4f6f9 !important; }
.dashboard-topbar { border-top:0; border-bottom:1px solid #e3e7ed; background:rgba(255,255,255,.96); box-shadow:0 4px 18px rgba(31,39,51,.045); }
.dashboard-topbar::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:var(--admin-primary); }
.dashboard-brand span { border-radius:6px; background:#202733; }
.dashboard-heading h1 { color:#1e2632; }
.dashboard-heading p { color:#727c8c; }
.dashboard-stats { border-color:#e0e5eb; border-radius:14px; background:#fff; box-shadow:0 5px 16px rgba(31,39,51,.04); }
.dashboard-stats article { border-color:#e7eaf0; }
.dashboard-controls { border-color:#e1e5eb; border-radius:14px; background:#fff; box-shadow:0 4px 14px rgba(31,39,51,.035); }
.form-tile { border-color:#e1e5eb; border-radius:16px; background:#fff; box-shadow:0 5px 18px rgba(31,39,51,.04); }
.form-tile:hover { border-color:#cfd5de; box-shadow:0 13px 30px rgba(31,39,51,.075); }
.dashboard-page .grid-row > div:nth-child(3) { border-color:#edf0f4; }
.new-form-side { background:#a8392c; }
.new-form-side p { color:#f2deda; }
.new-form-layout { border-radius:18px; }

/* Schermi molto larghi: metadati e anteprima affiancati, senza righe infinite */
@media (min-width: 1800px) {
  .builder-stage { padding-left:clamp(2rem,4vw,5rem); padding-right:2rem; }
  .builder-canvas-head,.builder-page { width:min(1680px,100%); margin-left:0; margin-right:0; }
  .builder-page .q-card { min-height:116px; }
  .builder-page .q-card > .d-flex > .flex-grow-1 {
    display:grid;
    grid-template-columns:minmax(280px,360px) minmax(0,1fr);
    grid-template-rows:auto auto minmax(0,1fr);
    column-gap:2rem;
    align-items:start;
    padding-right:8.5rem;
  }
  .builder-page .q-card > .d-flex > .flex-grow-1 > .fw-semibold { grid-column:1; grid-row:1; }
  .builder-page .q-card > .d-flex > .flex-grow-1 > .q-meta { grid-column:1; grid-row:2; }
  .builder-page .q-card > .d-flex > .flex-grow-1 > .small { grid-column:1; grid-row:3; }
  .builder-page .q-card > .d-flex > .flex-grow-1 > .q-preview {
    grid-column:2;
    grid-row:1 / span 3;
    align-self:stretch;
    min-width:0;
    margin-top:0;
    padding:0 0 0 2rem;
    border-top:0;
    border-left:1px solid #edf0f4;
  }
  .builder-page .q-preview-copy { max-width:100%; }
  .builder-page .q-preview-media,.builder-page .q-preview-grid { min-height:86px; }
}

@media (max-width: 1349.98px) and (min-width: 992px) {
  .builder-title-block { max-width:230px; }
  .builder-title-block .text-muted > span:first-child { display:none; }
  .builder-brand { padding-right:.55rem; }
  .builder-brand span { display:none; }
  .builder-topbar .container-fluid > .d-flex { gap:.35rem !important; }
}

@media (max-width: 991.98px) {
  .builder-topbar .d-flex { flex-wrap: wrap; }
  .builder-topbar .ms-auto { width: 100%; margin-left: 0 !important; overflow-x: auto; padding-bottom: .25rem; }
  .right-tools { position: static !important; }
  .q-toolbar { opacity: 1; }
  .builder-sections-panel,.builder-canvas-head { position:static; }
  .builder-layout { grid-template-columns:1fr; }
  .builder-outline { padding:.75rem; border-right:0; border-bottom:1px solid #3f3c36; }
  .builder-outline .builder-panel { position:static; }
  .builder-outline #sectionsList { flex-direction:row !important; overflow-x:auto; padding-bottom:.2rem; }
  .builder-outline .section-item { flex:0 0 min(250px,72vw); }
  .builder-stage { padding:1rem; }
  .builder-page { min-height:0; padding:0; }
  .builder-page .q-toolbar { position:static; width:max-content; margin-left:.65rem !important; padding:0; border:0; box-shadow:none; opacity:1; transform:none; pointer-events:auto; }
  .builder-page .q-card > .d-flex > .flex-grow-1 { padding-right:0; }
  .q-insert-button { opacity:1; transform:none; }
  .builder-sort-hint { display:none; }
  .builder-fab { display:flex; }
  .sentence-rule { grid-template-columns:1fr; }
  .repeater-row-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-topic-grid { grid-template-columns:1fr; }
  .availability-step-indicator { align-items:flex-start; flex-direction:column; }
  .login-shell { grid-template-columns:1fr; min-height:0; }
  .login-brand { min-height:220px; padding:1.6rem; }
  .login-brand h1 { max-width:none; font-size:2rem; }
  .login-form-panel { padding:2rem 1.6rem; }
  .dashboard-heading { align-items:flex-start; flex-direction:column; }
  .dashboard-stats { width:100%; }
  .dashboard-stats article { flex:1; min-width:0; }
}

@media (max-width: 575.98px) {
  .q-type-icon { display:none; }
  .q-card > .d-flex { flex-wrap:wrap; }
  .q-toolbar { width:100%; justify-content:flex-end; margin:.75rem 0 0 !important; }
  .builder-page .q-card { padding:1rem !important; }
  .builder-page .q-drag { display:none; }
  .builder-page .q-toolbar { width:100%; margin:.8rem 0 0 !important; }
  .builder-canvas-head { align-items:flex-start; }
  .builder-canvas-head .btn { padding:.5rem .7rem; }
  .repeater-row-grid { grid-template-columns:1fr; }
  .availability-choice-row { grid-template-columns:1fr; }
  .availability-choice-row .btn { justify-self:end; }
  .availability-group-head { align-items:stretch; flex-direction:column; }
  .availability-steps { gap:.35rem; }
  .availability-step-indicator { padding:.5rem; font-size:.7rem; }
  .availability-step-indicator span { width:24px; height:24px; flex-basis:24px; }
  .logo-upload-row { align-items:flex-start; flex-direction:column; }
  .dashboard-topbar .btn { padding:.45rem .6rem; }
  .dashboard-brand img { width:76px; }
  .dashboard-heading { padding-top:.7rem; }
  .dashboard-stats { display:grid; grid-template-columns:repeat(2,1fr); }
  .dashboard-stats article { border-top:1px solid #ddd7cd; }
  .dashboard-controls { align-items:stretch !important; flex-direction:column; }
  .dashboard-search { width:100%; }
  .dashboard-page #list-active,.dashboard-page #list-arch { grid-template-columns:1fr; }
  .new-form-layout { grid-template-columns:1fr; }
  .new-form-side { min-height:180px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration:.001ms !important; animation-duration:.001ms !important; }
}
